|
Вопрос по TimeQuest |
|
|
|
Jan 16 2018, 10:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Приветствую. Тестовый проект прикреплен ниже. Сам модуль: CODE module add_three_numbers ( input clock, input [7:0] A, input [7:0] B, input [7:0] C, input [7:0] D, output [7:0] sum );
reg [7:0] reg_A, reg_B, reg_C, reg_D; reg [7:0] reg_sum; reg [7:0] sum1, sum2; reg [7:0] sum3; always@(posedge clock)begin reg_A <= A; reg_B <= B; reg_C <= C; reg_D <= D; end always@(posedge clock)begin sum1 <= reg_A + reg_B; sum2 <= reg_C + reg_D; sum3 <= sum1 + sum2; end
always@(posedge clock)begin reg_sum <= sum3; end assign sum = reg_sum; endmodule SDC файл: Код create_clock -name {clock} -period 400Mhz [get_ports {clock}] Входные/выходные порты идут на ножки FPGA. Ругается на путь от reg_B[7] до sum1[7], смотрю как разбросал все в ChipPlanner-e. Если в Chip Planner-e подвинуть reg_B[7] максимально близко к sum1[7] и применить изменения в нетлисте, то все тайминги соблюдаются. Вопрос - почему автоматом не хочет поставить ячейки в нужные места (куча свободных ресурсов), чтоб все тайминги соблюдались.
Эскизы прикрепленных изображений
Прикрепленные файлы
test.rar ( 2.71 килобайт )
Кол-во скачиваний: 12
|
|
|
|
|
 |
Ответов
|
Feb 7 2018, 20:45
|
Местный
  
Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639

|
Цитата(doom13 @ Jan 16 2018, 14:26)  Входные/выходные порты идут на ножки FPGA. Ругается на путь от reg_B[7] до sum1[7], смотрю как разбросал все в ChipPlanner-e. Если в Chip Planner-e подвинуть reg_B[7] максимально близко к sum1[7] и применить изменения в нетлисте, то все тайминги соблюдаются. Вопрос - почему автоматом не хочет поставить ячейки в нужные места (куча свободных ресурсов), чтоб все тайминги соблюдались. Это - не такое "очевидное" решение. Потому что он тупо боится ставить reg_B[7] далеко от остальных, справедливо опасаясь, что у вас может шина "разбежится" (400МГц, так между прочим, не хухры мухры!). А вы ещё зачем-то прилепили никому не нужный промежуточный регистр reg_sum, который явно назначили на выход sum. А компилятор Квартуса совсем не такой интеллектуальный, как вы могли подумать и он достаточно тупо выполнил ваши указания, повесив reg_sum чуть ли не на ногу sum. Была б его воля он бы его ещё на двухфазный выходной триггер (altddio) залепил, но права не имеет. И проблема тут не в мифических глюках Квартуса, а элементарно в том, что каменюга у вас выбрана огромная, схемка вшивая, а если он начнёт гонять по кристаллу туда-сюда отдельные триггеры, каждый раз заглядывая в результаты таймингов, то более серъёзные схемы он будет месяцами оптимизировать. Поэтому, да, тяжек труд плисовода: приходится либо за компилятор думать, либо, что более правильно, для здоровых камней ваять из IP-кирпичиков. Ибо об оптимизации последних уже позаботились до нас.
|
|
|
|
|
Feb 9 2018, 06:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Kluwert @ Feb 7 2018, 23:45)  Это - не такое "очевидное" решение. Потому что он тупо боится ставить reg_B[7] далеко от остальных, справедливо опасаясь, что у вас может шина "разбежится" (400МГц, так между прочим, не хухры мухры!). А вы ещё зачем-то прилепили никому не нужный промежуточный регистр reg_sum, который явно назначили на выход sum. А компилятор Квартуса совсем не такой интеллектуальный, как вы могли подумать и он достаточно тупо выполнил ваши указания, повесив reg_sum чуть ли не на ногу sum. Была б его воля он бы его ещё на двухфазный выходной триггер (altddio) залепил, но права не имеет. Это "учебный" пример, и частота такая задана, чтобы посмотреть, когда ошибки появляются и как с ними бороться, и reg_sum добавлен для этих же целей. Цитата(Kluwert @ Feb 7 2018, 23:45)  И проблема тут не в мифических глюках Квартуса, а элементарно в том, что каменюга у вас выбрана огромная, схемка вшивая, а если он начнёт гонять по кристаллу туда-сюда отдельные триггеры, каждый раз заглядывая в результаты таймингов, то более серъёзные схемы он будет месяцами оптимизировать. Поэтому, да, тяжек труд плисовода: приходится либо за компилятор думать, либо, что более правильно, для здоровых камней ваять из IP-кирпичиков. Ибо об оптимизации последних уже позаботились до нас. Может и так, но две версии Квартуса результат дают разный. Версия 14 собрала всё правильно, для 16 приходится допиливать ручками. И главный вопрос - как можно полагаться на все эти временные ограничения, если реально вижу, что возможность развести "правильно" (с учетом тех ограничений, которые заданы) есть, но разводит "криво"?!
|
|
|
|
Сообщений в этой теме
doom13 Вопрос по TimeQuest Jan 16 2018, 10:26 blackfin Цитата(doom13 @ Jan 16 2018, 13:26) SDC ф... Jan 16 2018, 10:50 doom13 Он-то локаничен, но почему есть возможность вручну... Jan 16 2018, 11:24 blackfin Цитата(doom13 @ Jan 16 2018, 14:13) Поясн... Jan 16 2018, 11:26 doom13 Вопрос остался. Если убрать один регистр с выхода,... Jan 16 2018, 11:47 blackfin Цитата(doom13 @ Jan 16 2018, 14:47) Тут в... Jan 16 2018, 11:58  Maverick http://www.alterawiki.com/wiki/Timing_Constraints
... Jan 16 2018, 12:06 doom13 Цитата(blackfin @ Jan 16 2018, 14:26) — В... Jan 16 2018, 12:18 blackfin Цитата(doom13 @ Jan 16 2018, 15:18) Вопро... Jan 16 2018, 12:28 bogaev_roman Цитата(doom13 @ Jan 16 2018, 15:18) Спаси... Jan 16 2018, 12:32  doom13 Цитата(bogaev_roman @ Jan 16 2018, 15:32)... Jan 16 2018, 13:40   bogaev_roman Цитата(doom13 @ Jan 16 2018, 16:40) QSF-f... Jan 16 2018, 13:54    doom13 Цитата(bogaev_roman @ Jan 16 2018, 16:54)... Jan 17 2018, 10:28     bogaev_roman Цитата(doom13 @ Jan 17 2018, 13:28) Если ... Jan 17 2018, 10:44      doom13 Цитата(bogaev_roman @ Jan 17 2018, 13:44)... Jan 17 2018, 12:01      doom13 Цитата(bogaev_roman @ Jan 17 2018, 13:44)... Jan 26 2018, 08:18 blackfin Цитата(doom13 @ Jan 16 2018, 16:40) Добав... Jan 16 2018, 13:55 doom13 Цитата(blackfin @ Jan 16 2018, 16:55) Из ... Jan 16 2018, 14:18 bogaev_roman Цитата(blackfin @ Jan 16 2018, 16:55) Из ... Jan 16 2018, 14:23  doom13 Цитата(bogaev_roman @ Jan 16 2018, 17:23)... Jan 16 2018, 14:47   bogaev_roman Цитата(doom13 @ Jan 16 2018, 17:32) Я пыт... Jan 16 2018, 14:48    doom13 Цитата(bogaev_roman @ Jan 16 2018, 17:48)... Jan 17 2018, 05:33 doom13 Если проектик скачать (или заново создать), то мож... Jan 16 2018, 15:01 ViKo Так покажите уже файлы sta.rpt для обоих своих вар... Jan 17 2018, 05:38 doom13 Цитата(ViKo @ Jan 17 2018, 08:38) Так пок... Jan 17 2018, 05:47  warrior-2001 Цитата(doom13 @ Jan 17 2018, 08:47) Этот ... Jan 17 2018, 06:34   Flip-fl0p Цитата(warrior-2001 @ Jan 17 2018, 09... Jan 17 2018, 06:46   doom13 Цитата(warrior-2001 @ Jan 17 2018, 09... Jan 17 2018, 07:40 ViKo И как следствие, меняется отчет. Jan 17 2018, 07:04 ViKo А файлы отчета показать - не минутное дело? Jan 17 2018, 07:50 doom13 Цитата(ViKo @ Jan 17 2018, 10:50) А файлы... Jan 17 2018, 07:59  ViKo Цитата(doom13 @ Jan 17 2018, 10:59) А зап... Jan 17 2018, 08:05   doom13 Цитата(ViKo @ Jan 17 2018, 11:05) Не пони... Jan 17 2018, 08:35 ViKo Запустите Design Space Explorer, и он "ператр... Jan 17 2018, 08:44 doom13 Поменял опцию Fitter-a Fitter Initial Placement S... Jan 17 2018, 09:10 ViKo Кроме Auto Fit и Fast Fit есть еще Standard Fit. Jan 17 2018, 09:32 doom13 Цитата(ViKo @ Jan 17 2018, 12:32) Кроме A... Jan 17 2018, 09:37  ViKo Цитата(doom13 @ Jan 17 2018, 12:37) да, о... Jan 17 2018, 09:40 warrior-2001 Много глюков ловил в новых версиях квартуса из-за ... Jan 18 2018, 08:04 bogaev_roman Цитата(warrior-2001 @ Jan 18 2018, 11... Jan 18 2018, 10:03 doom13 del Jan 18 2018, 10:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|