реклама на сайте
подробности

 
 
> Условный Timing Control на Verilog, Синтезируемый
DmitryR
сообщение Jan 24 2018, 14:14
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Решил я оптимизировать один простой контроллер, чтобы был кратким (как выстрел, ЛОЛ) и полностью конфигурируемым. В частности чтобы можно было ему задавать фронт, по которому работать. Ну и пишу:

clocking get_edge @((posedge clk iff a) or (negedge clk iff !a));

И сразу же выясняется, что ни clocking, ни даже iff синтезатором (Квартус) не поддерживаются. У кого-нибудь есть идеи, как это сделать элегантно с помощью синтезируемых конструкций? Я понимаю, как это сделать с помощью условной компиляции, но это мне кажется как-то... Не совсем современно, что ли.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Shivers
сообщение Jan 24 2018, 17:14
Сообщение #2


Знающий
****

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



Топикстартер жжет. Особенно про DDR-триггер порадовало. Конечно, и DDR-триггер можно сделать, но в ПЛИС используются обычные флип-флопы, состоящие из двух защелок с разнополярным управлением (если точнее - однопроводным двухфазным управлением).
В проекте можно использовать сигнал управления записью обеих полярностей, надо только понимать, что это порождает пути длинной пол-периода, т.е. дизайн фактически начинает работать на удвоенной частоте. А вот задач, где надо оперативно инвертировать клок "на лету" я не встречал. Это какая то особо извращенная фантазия топикстартера. По хорошему, лучше идти читать учебник по схемотехнике сначала, а потом браться за верилог.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 25 2018, 07:54
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Shivers @ Jan 24 2018, 20:14) *
А вот задач, где надо оперативно инвертировать клок "на лету" я не встречал. Это какая то особо извращенная фантазия топикстартера. По хорошему, лучше идти читать учебник по схемотехнике сначала, а потом браться за верилог.

Почему все всегда подозревают в людях худшее, да ещё и хамят при этом? Я совершенно не собираюсь менять клок "на лету" (в данном случае), а хочу настраивать его константой времени компиляции.


Цитата(Golikov A. @ Jan 24 2018, 22:41) *
строго говоря в СПИ иногда надо клок инвертироватьsm.gif

Проблема в том, что если я напишу

wire real_clk = a ? clk:!clk;

то скорее всего получу на самом деле инвертированный клок со всеми сопутствующими прелестями (в смысле инвертированный именно инвертором, на логике), а вовсе не переход на обратный фронт. И вот это уже совершенно нехорошо.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jan 25 2018, 08:47
Сообщение #4


Знающий
****

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



Цитата(DmitryR @ Jan 25 2018, 10:54) *
Почему все всегда подозревают в людях худшее, да ещё и хамят при этом? Я совершенно не собираюсь менять клок "на лету" (в данном случае), а хочу настраивать его константой времени компиляции.

Хамить и не думал, но - мои извинения.
Не хотите читать учебчники? ОК, извольте:
На верилоге можно много чего написать, но результатом интерпретации должен стать либо флоп, либо защелка. С клоком возможны манипуляции, к примеру - можно мультиплексировать входной клок со своей инверсией (как в Вашем посте). Если же Вы хотите получить флоп, тактируемый передним фронтом, либо тот же флоп. но тактируемый задним фронтом (в зависимости от параметра компиляции) то используйте конструкцию generate, либо дефайны. Но на мой вкус, это уже ветвление архитектуры, и совмещать такое ветвление в одном файле - неправильно.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 25 2018, 09:38
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Shivers @ Jan 25 2018, 11:47) *
Если же Вы хотите получить флоп, тактируемый передним фронтом, либо тот же флоп. но тактируемый задним фронтом (в зависимости от параметра компиляции) то используйте конструкцию generate, либо дефайны. Но на мой вкус, это уже ветвление архитектуры, и совмещать такое ветвление в одном файле - неправильно.

Спасибо, мне это всё понятно. Но define - это устаревшая конструкция, а использование generate в данном случе приводит к удвоению объёма кода.

Цитата(Shivers @ Jan 25 2018, 11:47) *
Но на мой вкус, это уже ветвление архитектуры, и совмещать такое ветвление в одном файле - неправильно.

Возьмите хотя бы SPI - там в зависимости от параметров CPHA и CPOL меняются фронты, по которым происходят захват и выдача данных. Другое дело, что в реальных реализациях клок там чаще всего так или иначе эмулируется, но с точки зрения теории это уже детали.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - RobFPGA   Приветствую! Цитата(DmitryR @ Jan 25 201...   Jan 25 2018, 08:16
||- - 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, 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01442 секунд с 7
ELECTRONIX ©2004-2016