|
Алтера: описание внешнего такта, TimeQuest, Как корректно описать такт в SDC? |
|
|
|
Jan 23 2010, 13:10
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 24-10-05
Пользователь №: 10 056

|
Нужна помощ с описанием внешнего такта в SDC языке для TimeQuest (Altera) У меня PLL генерирует 200MHz и 50MHz такты. Этот 200MHz идёт сразу на внешний чип, каторый делит этот такт на два, и через кокое то время (скажем, 3nS) посупает опять на FPGA. И потом этот сигнал пользуется как такт в внутренних цепях. Нарисовал картинку чтоб было бы ясно.  Написал так: Код create_generated_clock -source <..PLL> -name MHz50 create_clock -period 10.000 -name MHz100 [get_ports {Clk2}] Но как правильно описать эту задержку (фазу)?
|
|
|
|
|
 |
Ответов
|
Jan 24 2010, 07:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Если добавить строчку: Код set_clock_latency -source 0 [get_clocks {clk100MHz}] то задержка lcell начнет учитываться.
--------------------
|
|
|
|
|
Jan 24 2010, 07:35
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(des333 @ Jan 24 2010, 01:22)  Если добавить строчку: Код set_clock_latency -source 0 [get_clocks {clk100MHz}] то задержка lcell начнет учитываться. Точно, занятно. Значит таймквест, утвержая Цитата Warning: No paths exist between clock target "iclk100MHz" of clock "clk100MHz" and its clock source. Assuming zero source clock latency. нагло врет в текстовой форме %)
--------------------
|
|
|
|
|
Jan 24 2010, 15:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(SM @ Jan 24 2010, 11:17)  Разработчики имели в виду, что не будет учитываться задержка от source (указанного ы ключике -source) до таргета, указанного без всяких ключиков в конце команды. Т.е. будет, но она равна нулю, так как ее он сам посчитать не может. Но не никакие - ручная set_clock_latency - будет. Оффсеты и фазы от генерейтед-клока - будут. Тогда не понятно, почему добавление lcell'ов при отсутсвии ручной set_clock_latency не влияет на результат, при наличии же ручной set_clock_latency=0 влияет? В чем разница автоматического приравнивание к нулю, так как TQ сам ее посчитать не смог и ручного приравнивания к нулю?
--------------------
|
|
|
|
|
Jan 24 2010, 20:19
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(SM @ Jan 24 2010, 21:15)  Ну я разницы-то не заметил, в моем примере он четко берет фронт выходного клока out_clk с учетом всех его задержек и еще и offset-а. Эти задержки еще второй create_generated_clock рассчитал. Или может не туда смотрел? Добавив в ваш код триггер, тактируемый мастер клоком, и несколько lcell, я получил следующее: Код `define SEVEN_LCELL
module count ( input master_clk, output out_clk, input ret_clk, input d, output reg o );
logic d1; logic t1, t2, t3, t4, t5 , t6, t7;
`ifdef SEVEN_LCELL
lcell lcell1 (master_clk, t1); lcell lcell2 (t1, t2); lcell lcell3 (t2, t3); lcell lcell4 (t3, t4); lcell lcell5 (t4, t5); lcell lcell6 (t5, t6); lcell lcell7 (t6, t7); `else
lcell lcell1 (master_clk, t1); lcell lcell2 (t1, t7);
`endif
assign out_clk = !t7;
always @(posedge ret_clk) d1 <= d;
always @(posedge master_clk) o <= d1;
endmodule При этом .sdc файл остался неизменным: Код create_clock -name mclk -period "100 MHz" master_clk create_generated_clock -name gclk -source master_clk -invert out_clk create_generated_clock -name rclk -source out_clk -divide_by 2 -offset 1 ret_clk set_clock_uncertainty -to [get_clocks rclk] 1 На команду: Цитата report_timing -from_clock { rclk } -to_clock { mclk } -setup -npaths 1 -detail path_only -panel_name {Report Timing} мы получаем следующее результаты. При 2-х lcell: Цитата Worst case slack is 2.802 При 7-ми lcell: Цитата Worst case slack is 2.802 Если же добавить в .sdc файл строку: Цитата set_clock_latency -source 0 [get_clocks {rclk}] то результаты будут следующие: При 2-х lcell: Цитата Worst case slack is -2.211 При 7-ми lcell: Цитата Worst case slack is -4.194 Вопрос: почему при добавлении вышеуказанной строки появляется разница в задержке при разном количестве lcell, а при отсутствии этой строки количество lcell не задержку никак не влияет?
Сообщение отредактировал des333 - Jan 24 2010, 20:20
--------------------
|
|
|
|
Сообщений в этой теме
solidreg Алтера: описание внешнего такта, TimeQuest Jan 23 2010, 13:10 des333 Я не специалист по TQ, но, на мой взгляд, Вам след... Jan 23 2010, 13:22 solidreg Цитата(des333 @ Jan 23 2010, 16:22) Я не ... Jan 23 2010, 13:47 des00 Цитата(des333 @ Jan 23 2010, 07:22) Я не ... Jan 23 2010, 15:34 solidreg Цитата(des00 @ Jan 23 2010, 19:34) Еще мн... Jan 23 2010, 15:47  des00 ЦитатаЗадержка там фиксированна, окола 3-5nS.
Она ... Jan 23 2010, 15:53 des333 Цитата(des00 @ Jan 23 2010, 18:34) create... Jan 23 2010, 16:56  des00 Цитата(des333 @ Jan 23 2010, 10:56) Так в... Jan 23 2010, 17:40   des333 Цитата(des00 @ Jan 23 2010, 20:40) 200 вы... Jan 23 2010, 18:49   SM Цитата(des00 @ Jan 23 2010, 20:40) 200 вы... Jan 23 2010, 19:11    solidreg Цитата(SM @ Jan 23 2010, 23:11) SDC:
Кодc... Jan 23 2010, 19:38 des00 Цитата(des333 @ Jan 23 2010, 12:49) А так... Jan 24 2010, 05:29   des00 Цитата(des333 @ Jan 24 2010, 01:41) Возмо... Jan 24 2010, 07:47    des00 Цитата(SM @ Jan 24 2010, 02:17) Разработч... Jan 24 2010, 10:05       SM Цитата(des333 @ Jan 24 2010, 23:19) Вопро... Jan 25 2010, 22:55        des00 Цитата(SM @ Jan 25 2010, 16:55) ХЗ. Глюк ... Jan 26 2010, 04:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|