|
Условный Timing Control на Verilog, Синтезируемый |
|
|
|
Jan 24 2018, 14:14
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Решил я оптимизировать один простой контроллер, чтобы был кратким (как выстрел, ЛОЛ) и полностью конфигурируемым. В частности чтобы можно было ему задавать фронт, по которому работать. Ну и пишу:
clocking get_edge @((posedge clk iff a) or (negedge clk iff !a));
И сразу же выясняется, что ни clocking, ни даже iff синтезатором (Квартус) не поддерживаются. У кого-нибудь есть идеи, как это сделать элегантно с помощью синтезируемых конструкций? Я понимаю, как это сделать с помощью условной компиляции, но это мне кажется как-то... Не совсем современно, что ли.
|
|
|
|
|
 |
Ответов
|
Jan 24 2018, 17:14
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Топикстартер жжет. Особенно про DDR-триггер порадовало. Конечно, и DDR-триггер можно сделать, но в ПЛИС используются обычные флип-флопы, состоящие из двух защелок с разнополярным управлением (если точнее - однопроводным двухфазным управлением). В проекте можно использовать сигнал управления записью обеих полярностей, надо только понимать, что это порождает пути длинной пол-периода, т.е. дизайн фактически начинает работать на удвоенной частоте. А вот задач, где надо оперативно инвертировать клок "на лету" я не встречал. Это какая то особо извращенная фантазия топикстартера. По хорошему, лучше идти читать учебник по схемотехнике сначала, а потом браться за верилог.
|
|
|
|
|
Jan 25 2018, 07:54
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(Shivers @ Jan 24 2018, 20:14)  А вот задач, где надо оперативно инвертировать клок "на лету" я не встречал. Это какая то особо извращенная фантазия топикстартера. По хорошему, лучше идти читать учебник по схемотехнике сначала, а потом браться за верилог. Почему все всегда подозревают в людях худшее, да ещё и хамят при этом? Я совершенно не собираюсь менять клок "на лету" (в данном случае), а хочу настраивать его константой времени компиляции. Цитата(Golikov A. @ Jan 24 2018, 22:41)  строго говоря в СПИ иногда надо клок инвертировать  Проблема в том, что если я напишу wire real_clk = a ? clk:!clk;то скорее всего получу на самом деле инвертированный клок со всеми сопутствующими прелестями (в смысле инвертированный именно инвертором, на логике), а вовсе не переход на обратный фронт. И вот это уже совершенно нехорошо.
|
|
|
|
|
Jan 25 2018, 08:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(DmitryR @ Jan 25 2018, 10:54)  Почему все всегда подозревают в людях худшее, да ещё и хамят при этом? Я совершенно не собираюсь менять клок "на лету" (в данном случае), а хочу настраивать его константой времени компиляции.
Проблема в том, что если я напишу
wire real_clk = a ? clk:!clk;
то скорее всего получу на самом деле инвертированный клок со всеми сопутствующими прелестями (в смысле инвертированный именно инвертором, на логике), а вовсе не переход на обратный фронт. И вот это уже совершенно нехорошо. Почему все всегда подозревают в компиляторах худшее ... А Вы пробовали в реальном проекте ? И для какого типа FPGA? Как Вы думаете если напишете Код module bla_bla_bla (.... always @(posedge clk) begin ... end always @(negedge clk) begin ... end Как синтезатор сделает Вам тригера с инверсными клоками? Удачи! Rob.
|
|
|
|
Сообщений в этой теме
DmitryR Условный Timing Control на Verilog Jan 24 2018, 14:14 iosifk Цитата(DmitryR @ Jan 24 2018, 17:14) Реши... Jan 24 2018, 14:25 DmitryR С этого постулата хорошо начинать учить людей осно... Jan 24 2018, 14:40 Димыч Цитата(iosifk @ Jan 24 2018, 17:25) <.... Jan 24 2018, 16:50 ViKo У меня такт инвертируется с помощью xor. Но это не... Jan 24 2018, 16:42   DmitryR Цитата(RobFPGA @ Jan 25 2018, 11:16) А Вы... Jan 25 2018, 08:22    RobFPGA Приветствую!
Цитата(DmitryR @ Jan 25 201... Jan 25 2018, 09:12  Shivers Цитата(DmitryR @ Jan 25 2018, 10:54) Поче... Jan 25 2018, 08:47   DmitryR Цитата(Shivers @ Jan 25 2018, 11:47) Если... Jan 25 2018, 09:38    Shivers Цитата(DmitryR @ Jan 25 2018, 12:38) Возь... Jan 25 2018, 09:55     DmitryR Цитата(Shivers @ Jan 25 2018, 12:55) Выхо... Jan 25 2018, 10:31    blackfin Цитата(DmitryR @ Jan 25 2018, 12:38) Но d... Jan 25 2018, 11:53     iosifk Цитата(blackfin @ Jan 25 2018, 14:53) А г... Jan 25 2018, 13:12      blackfin Цитата(iosifk @ Jan 25 2018, 16:12) У Саз... Jan 25 2018, 13:20       iosifk Цитата(blackfin @ Jan 25 2018, 16:20) Ну ... Jan 25 2018, 13:27        blackfin Цитата(iosifk @ Jan 25 2018, 16:27) А Саз... Jan 25 2018, 14:16 Golikov A. строго говоря в СПИ иногда надо клок инвертировать... Jan 24 2018, 19:41 Dantist2k17 Цитата(DmitryR @ Jan 24 2018, 14:14) Реши... Jan 25 2018, 10:53 DmitryR Цитата(Dantist2k17 @ Jan 25 2018, 13:53) ... Jan 25 2018, 12:10  blackfin .. Jan 25 2018, 12:27  RobFPGA Приветствую!
Цитата(DmitryR @ Jan 25 2018... Jan 25 2018, 12:38 Golikov A. define - это когда их используют как параметры. Ту... Jan 25 2018, 17:35 Shivers Лично я больше предпочитаю параметры в RTL, чем де... Jan 26 2018, 05:29 _Sam_ Цитатахочу настраивать его константой времени комп... Jan 26 2018, 06:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|