|
Метод HDL-описания в модулях XILINX и других. |
|
|
|
Dec 1 2017, 09:50
|

Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052

|
Вопрос возможно, покажется непонятным. Он касается методики описания HDL-проекта на HDL-языке, неважно каком, Verilog или VHDL Мне известны только такие методы описания модуля на HDL: 1. Если это тривиальный модуль, такой как счетчик, мультиплексор и др., то он описывается по шаблону, который легко найти в руководстве по HDL от производителя ПЛИС или в Google. 2. Если это схема соединяющая другие модули, то здесь тоже не сложно. Определить сигналы, определить компоненты, соединить их. 3. Если это не тривиальная схема с последовательной логикой. То я составляю алгоритм ее работы, выделяю какие нужны состояния и регистры(Control path и Data path). Составляю диаграмму состояний и определяю какое следующее значение будет у регистров в Data path. Определяю, какие значения должны будут иметь выходы. Таким образом, если я пишу на VHDL у меня обычно 4 процесса: 2 последовательных, определяют что на каждом такте Clk регистры и состояние должны принимать следующее значение, и 2 процесса, описывающие следующее состояние и следующее значение регистров. И еще описание выходных сигналов.
Однако, когда я просматриваю чужой код, в том числе и код Xilinx модулей как для симуляции, так и для синтеза, я вижу что там все сделано не так, как в п.3. Они применяют какую-то другую методологию описания последовательных схем. Часто там даже нет машины состояний. Зато, очень много коротких описаний процессов. Но логику, по которой все это описано я не понимаю. Если, кто-то ее знает, объясните, пожалуйста.
Сообщение отредактировал Олег Гаврильченко - Dec 1 2017, 09:51
|
|
|
|
|
 |
Ответов
|
Dec 1 2017, 09:59
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600

|
А разве всегда надо пихать конечный автомат?
|
|
|
|
|
Dec 2 2017, 08:02
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(el.d @ Dec 1 2017, 12:59)  А разве всегда надо пихать конечный автомат? Я сейчас представляю проект как иерархическую структуру автоматов с таймерами и "исполнительных узлов". Верхний автомат "ведет" весь процесс. Ну скажем, выдает сообщения на хост. Он управляет подчиненным ему автоматом, который формирует и передает кадры данных. А этот, в свою очередь, управляет автоматом, который умеет передавать биты за требуемое время. Причем модули этих двух автоматов могут быть одинаковые. Таким образом резко сокращается число строк кода в одном файле. А значит, сокращается и вероятность появления ошибок. Такие проекты гораздо проще симулировать, поскольку каждый файл должен быть параметризирован. Сам же автомат однозначно пишется из блок-схемы процесса управления объектом.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Dec 4 2017, 08:37
|

Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052

|
Цитата(iosifk @ Dec 2 2017, 11:02)  Я сейчас представляю проект как иерархическую структуру автоматов с таймерами и "исполнительных узлов". Верхний автомат "ведет" весь процесс. Ну скажем, выдает сообщения на хост. Он управляет подчиненным ему автоматом, который формирует и передает кадры данных. А этот, в свою очередь, управляет автоматом, который умеет передавать биты за требуемое время. Причем модули этих двух автоматов могут быть одинаковые. Таким образом резко сокращается число строк кода в одном файле. А значит, сокращается и вероятность появления ошибок. Такие проекты гораздо проще симулировать, поскольку каждый файл должен быть параметризирован. Сам же автомат однозначно пишется из блок-схемы процесса управления объектом. Буду благодарен, если Вы покажете какой-нибудь пример. Или дадите ссылку на информацию, где это объяснено.
|
|
|
|
|
Dec 5 2017, 09:31
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(iosifk @ Dec 4 2017, 11:45)  Ответ отправил в личку. А можете продублировать? Спасибо.
|
|
|
|
Сообщений в этой теме
Олег Гаврильченко Метод HDL-описания в модулях XILINX и других. Dec 1 2017, 09:50 Олег Гаврильченко Цитата(el.d @ Dec 1 2017, 12:59) А разве ... Dec 1 2017, 10:07     iosifk Цитата(Tpeck @ Dec 5 2017, 12:31) А может... Dec 5 2017, 09:42 el.d Я лично для себя не могу понять, с чем у вас пробл... Dec 1 2017, 10:11 Flip-fl0p КодОднако, когда я просматриваю чужой код, в том ч... Dec 1 2017, 10:15 Tpeck Цитата(Олег Гаврильченко @ Dec 1 2017, 12... Dec 1 2017, 11:22 Mad_max Цитата(Олег Гаврильченко @ Dec 1 2017, 12... Dec 1 2017, 11:32 des333 Представьте в голове (или на бумаге) схему модуля,... Dec 1 2017, 22:04 svedach Олег Гаврильченко, в целом модули, обрабатывающие ... Dec 2 2017, 07:59 dvladim Цитата(Олег Гаврильченко @ Dec 1 2017, 12... Dec 2 2017, 16:22 lembrix Цитата(Олег Гаврильченко @ Dec 1 2017, 12... Dec 4 2017, 07:51 GriXa Есть замечательная книга под названием "Advan... Dec 4 2017, 12:10
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|