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

 
 
> Метод HDL-описания в модулях XILINX и других.
Олег Гаврильченк...
сообщение Dec 1 2017, 09:50
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
el.d
сообщение Dec 1 2017, 09:59
Сообщение #2


Участник
*

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



А разве всегда надо пихать конечный автомат?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 2 2017, 08:02
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(el.d @ Dec 1 2017, 12:59) *
А разве всегда надо пихать конечный автомат?

Я сейчас представляю проект как иерархическую структуру автоматов с таймерами и "исполнительных узлов".
Верхний автомат "ведет" весь процесс. Ну скажем, выдает сообщения на хост. Он управляет подчиненным ему автоматом, который формирует и передает кадры данных. А этот, в свою очередь, управляет автоматом, который умеет передавать биты за требуемое время. Причем модули этих двух автоматов могут быть одинаковые.
Таким образом резко сокращается число строк кода в одном файле. А значит, сокращается и вероятность появления ошибок. Такие проекты гораздо проще симулировать, поскольку каждый файл должен быть параметризирован.
Сам же автомат однозначно пишется из блок-схемы процесса управления объектом.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Олег Гаврильченк...
сообщение Dec 4 2017, 08:37
Сообщение #4


Частый гость
**

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



Цитата(iosifk @ Dec 2 2017, 11:02) *
Я сейчас представляю проект как иерархическую структуру автоматов с таймерами и "исполнительных узлов".
Верхний автомат "ведет" весь процесс. Ну скажем, выдает сообщения на хост. Он управляет подчиненным ему автоматом, который формирует и передает кадры данных. А этот, в свою очередь, управляет автоматом, который умеет передавать биты за требуемое время. Причем модули этих двух автоматов могут быть одинаковые.
Таким образом резко сокращается число строк кода в одном файле. А значит, сокращается и вероятность появления ошибок. Такие проекты гораздо проще симулировать, поскольку каждый файл должен быть параметризирован.
Сам же автомат однозначно пишется из блок-схемы процесса управления объектом.

Буду благодарен, если Вы покажете какой-нибудь пример. Или дадите ссылку на информацию, где это объяснено.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 4 2017, 08:45
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Олег Гаврильченко @ Dec 4 2017, 11:37) *
Буду благодарен, если Вы покажете какой-нибудь пример. Или дадите ссылку на информацию, где это объяснено.

Ответ отправил в личку.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Dec 5 2017, 09:31
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(iosifk @ Dec 4 2017, 11:45) *
Ответ отправил в личку.


А можете продублировать?
Спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Олег Гаврильченко   Метод 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


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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 16:24
Рейтинг@Mail.ru


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