|
|
 |
Ответов
|
Sep 29 2015, 07:04
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Мне удобнее с верилогом работать. Поправил код : Код module slacks #(parameter pDAT_W = 14) (input Clk, input [pDAT_W-1 : 0] Din, output logic [pDAT_W-1 : 0] dout_re, dout_im);
logic [pDAT_W-1 : 0] ddio__dataout_h; logic [pDAT_W-1 : 0] ddio__dataout_l; logic [pDAT_W-1 : 0] dat_re [2]; logic [pDAT_W-1 : 0] dat_im [2];
altddio_in #( .intended_device_family ( "Cyclone V" ) , .invert_input_clocks ( "OFF" ) , .lpm_hint ( "UNUSED" ) , .lpm_type ( "altddio_in" ) , .power_up_high ( "OFF" ) , .width ( pDAT_W ) ) ddio ( .datain ( Din ), .inclock ( Clk ), .dataout_h ( ddio__dataout_h ), .dataout_l ( ddio__dataout_l ), .aclr (1'b0), .aset (1'b0), .inclocken (1'b1), .sclr (1'b0), .sset (1'b0) );
always_ff @(posedge Clk) begin {dat_re[1], dat_re[0]} <= {dat_re[0], ddio__dataout_h}; {dat_im[1], dat_im[0]} <= {dat_im[0], ddio__dataout_l}; // dout_re <= dat_re[1]; dout_im <= dat_im[1]; end
endmodule Сделал, адекватный, по моему мнению, sdc Код set_time_format -unit ns -decimal_places 3
set CLK_PERIOD 4.0
create_clock -name {Clk} -period $CLK_PERIOD [get_ports {Clk}]
set tskew_min 0.4 set tskew_max 1.0
# setup set_input_delay -clock {Clk} -rise -max 1.0 [get_ports {Din[*]}] -add_delay set_input_delay -clock {Clk} -clock_fall -fall -max 1.0 [get_ports {Din[*]}] -add_delay
# hold set_input_delay -clock {Clk} -rise -min -0.4 [get_ports {Din[*]}] -add_delay set_input_delay -clock {Clk} -clock_fall -fall -min -0.4 [get_ports {Din[*]}] -add_delay
# remove incorrect from-to paths set_false_path -rise_from [get_clocks {Clk}] -through [get_pins -compatibility_mode ddio*\|datain] -fall_to [get_clocks {Clk}] set_false_path -fall_from [get_clocks {Clk}] -through [get_pins -compatibility_mode ddio*\|datain] -rise_to [get_clocks {Clk}] И вот дальше не понимаю чем занимается квартус. Пути до регистров, одного вектора, отличаются на 2 нс (см. скрин). Картинка в чип эдиторе и просмотрщике ресурсов, вызывает подозрение на багу софта. Я не понимаю как так происходит. из вариантов вижу подвинуть клок на PLLке или на lcell. Либо сделать все на PLLке
Эскизы прикрепленных изображений
--------------------
|
|
|
|
|
Sep 29 2015, 10:28
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(andrew_b @ Sep 29 2015, 13:21)  У меня 13, у des00 -- 14. Предлагаете откатиться на 12? Ну я пока с 12.1 не соскакиваю... Стоп,вспомнил - в новых версиях Квартуса поставили уточнённые задержки,поэтому времянки и валятся. Так что ,похоже, синие слэки в Q12.1 ещё не факт что всё будет гут в железе... Цитата(des00 @ Sep 29 2015, 08:02)  вы используете сферического коня в вакууме (виртуальный клок). А вы читали альтеровский документ "Implementing a Source Synchronous Interface between Altera FPGAs"? Они для подобного интерфейса совсем не брезгуют виртуальным клоком.
|
|
|
|
|
Sep 29 2015, 11:58
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(_Anatoliy @ Sep 29 2015, 15:42)  Эта картинка вам понятна? Из неё непонятно, зачем использовать какой-то виртуальный клок, если есть вполне реальный clock_out. Цитата(_Anatoliy @ Sep 29 2015, 14:28)  Стоп,вспомнил - в новых версиях Квартуса поставили уточнённые задержки,поэтому времянки и валятся. Ну так в логе и пишется: временные характеристики чипа предварительные. Цитата Так что ,похоже, синие слэки в Q12.1 ещё не факт что всё будет гут в железе... У меня тоже есть эти сомнения. И таки шо делать?
|
|
|
|
|
Sep 30 2015, 10:30
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(des00 @ Sep 29 2015, 16:56)  пропустить DCO через PLL, на ней сформировать 2 клока: для IO регистров и для регистров на чипе. Если делать так, то немедленно появляются hold slack'и непосредственно в IOCELL. И мне не удалось подобрать сдвиг, чтобы их не было. Это в дополнение в setup slack'ам на прежних местах. То есть всё становится ещё хуже. Если DCO заводить на IO, а выход PLL в ALM, то получаем то же самое, что и начальная ситуация. И тоже не удаётся компенсировать все slack'и сдвигом тактовой. В общем, ситуация такая: сдвиги тактовой (одной или обеих) лечат одни slack'и, но дают другие. При некоторых сдвигах в дополнение к setup slack'ам появляются hold slack'и. Минус в использовании PLL я вижу в том, что DCO может быть разной. Как PLL на это будет реагировать?
|
|
|
|
|
Oct 1 2015, 06:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(_Anatoliy @ Sep 30 2015, 15:38)  А в принципе вам удаётся подобрать такую фазу что слэки в регистрах уходят? В принципе нет. Вот какая штука получается. Я экспериментировал с такой схемой: IO тактируются напрямую DCO, регистры -- клоком с выхода PLL, фазу которого я подбирал. PLL работает в режиме source synchronous. При фазе 0 слаки лежат в диапазоне -2.056...-1..771 нс. Этих слаков 18 из 24. Далее начинаем двигать фазу клока с шагом 15 градусов (1/24 периода или 4/24 ~ 0.17 нс). При сдвиге +15 градусов в слаках оказываются все 28 триггеров, диапазон слаков -5.890...-3.417 нс. Ну, оно и понятно: -5.890 = -2.056 - 4 * 23/24. Дальнейшие сдвиги приводят к уменьшению слаков пропорционально величине сдвига, но в пределе получаем те же изначальные -2.056...-1..771. Если приглядеться к диапазону -5.890...-3.417 нс, то можно увидеть, что часть слаков меньше периода клока, а часть больше. То есть задержки по данным таковы, что часть шины таксть "лежит" в одном периоде, а часть в другом. И тут как клок ни двигай, ничего не получится. Втыкание LCELL -- это крайний случай, НЗ. Очень бы не хотелось его использовать.
|
|
|
|
|
Oct 1 2015, 06:35
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
[attachment=95765:sms2.png] Цитата(andrew_b @ Oct 1 2015, 09:03)  Если приглядеться к диапазону -5.890...-3.417 нс, то можно увидеть, что часть слаков меньше периода клока, а часть больше. То есть задержки по данным таковы, что часть шины таксть "лежит" в одном периоде, а часть в другом. И тут как клок ни двигай, ничего не получится. Я правильно нарисовал ситуацию которую вы описали? Код ____||----|____|----|____ ххххххxxxxxххх<=>xxxxxxx ---|____|----|____||----|____ Здесь || - фронт-источник и фронт-приёмник. Может просто ввести мультициклы? Это не ваша ситуация?На картинке задержки превышают период тактовой,это не страшно, здесь главное чтобы разброс задержек в шине был меньше тактового периода,а подбором фазы уже обеспечить надёжный приём.
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
andrew_b ADC DDR and setup slacks Sep 28 2015, 10:55 _Anatoliy Цитата(andrew_b @ Sep 28 2015, 13:55) Име... Sep 28 2015, 11:32 des00 Цитата(andrew_b @ Sep 28 2015, 17:55) При... Sep 28 2015, 11:45 _Anatoliy Вот пример для AD9634.
Код#***********************... Sep 28 2015, 11:52  des00 Цитата(_Anatoliy @ Sep 28 2015, 18:52) Во... Sep 28 2015, 12:03   _Anatoliy Цитата(des00 @ Sep 28 2015, 15:03) брррр.... Sep 28 2015, 12:14    des00 Цитата(_Anatoliy @ Sep 28 2015, 19:14) А ... Sep 28 2015, 12:21     _Anatoliy Цитата(des00 @ Sep 28 2015, 15:21) может ... Sep 28 2015, 12:37      des00 Цитата(_Anatoliy @ Sep 28 2015, 19:37) Зн... Sep 28 2015, 12:47       _Anatoliy Цитата(des00 @ Sep 28 2015, 15:47) Если н... Sep 28 2015, 13:57        des00 Цитата(_Anatoliy @ Sep 28 2015, 21:57) А ... Sep 29 2015, 05:02 andrew_b Цитата(des00 @ Sep 28 2015, 15:45) Всё ст... Sep 28 2015, 13:03 Anton1990 Цитата(andrew_b @ Sep 28 2015, 13:55) Име... Sep 28 2015, 15:36 andrew_b Цитата(Anton1990 @ Sep 28 2015, 19:36) Та... Sep 29 2015, 06:00       _Anatoliy Думаю что нельзя сказать что один метод хорош,друг... Sep 29 2015, 12:28 des00 а так вообще последние квартусы глюкодромы у меня... Sep 29 2015, 11:51 alexadmin Меня сейчас растопчут ногами, но я давно уже махну... Sep 30 2015, 15:55 _Anatoliy Цитата(alexadmin @ Sep 30 2015, 18:55) Ме... Oct 1 2015, 10:52 andrew_b Начал наконец смотреть распиновку.
КодDin [0... Oct 2 2015, 08:00 des00 Цитата(andrew_b @ Oct 2 2015, 15:00) И ... Oct 2 2015, 08:26  andrew_b Цитата(des00 @ Oct 2 2015, 12:26) лечите ... Oct 2 2015, 11:14   des00 Цитата(andrew_b @ Oct 2 2015, 19:14) Вопр... Oct 2 2015, 15:28 andrew_b Отпишусь по результатам натурных испытаний.
HMCPH... Nov 14 2015, 13:36 otv116 Добрый день.
Делаю прошивку под C-III как раз с АЦ... Mar 3 2018, 09:38 otv116 Пробовал бороться с задержкой сигнала от DQ пина д... Mar 21 2018, 12:57 _Anatoliy Кстати, насчёт HMCPHY, может есть у кого доступ на... Mar 21 2018, 13:34 otv116 Для интереса поменял CEBA на CEFA, у которого есть... Mar 21 2018, 13:44 _Anatoliy Цитата(otv116 @ Mar 21 2018, 16:44)
Спас... Mar 22 2018, 04:16  Flip-fl0p ЦитатаСпасибо, коллега!
Тоже сталкивался с по... Mar 22 2018, 04:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|