Перейти к содержанию

Параметризируемый модуль и QSYS

Всем доброго здравия.

Второй проект с использованием QSYS и решил я что пора сделать универсальный модуль, дабы не плодить сущности из множества разных модулей.
Хотелось бы иметь возможность через параметр задавать кол-во входных и выходных портов, но QSYS, судя по всему, не понимает двумерные массивы.

Делать длинный одномерный массив и разруливать внутри модуля конечно можно, но лениво. Да и регистров предполагается больше 200 в каждом разное кол-во входных и выходных портов, основная разрядность 8 бит, но могут быть и с большей/меньшей разрядностью.

Сейчас курю документацию на QSYS, но пока не очень удачно, наставьте на путь истинный, если возможно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Может не совсем ваш случай, но посмотрите как сделано в альтеровских университетских корах
https://www.altera.com/support/training/uni...s-software.html
В частности Audio & Video -> DMA Controller. Там у них сделано через отдельный TCL скрипт, который получает параметры от GUI, и подставляет их в verilog код. На верхнем уровне у самого модуля заранее описаны все возможные порты, потом лишние убираются при генерации.

Приложил файлик
Изменено пользователем Burenkov Sergey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(wolfman @ Nov 14 2017, 00:15) <{POST_SNAPBACK}>
. Да и регистров предполагается больше 200 в каждом разное кол-во входных и выходных портов, основная разрядность 8 бит, но могут быть и с большей/меньшей разрядностью.
, наставьте на путь истинный, если возможно.

200 регистров - это жить не будет!
Надо заменять на регистровый файл на памяти и проблемы уйдут...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Burenkov Sergey @ Nov 14 2017, 18:02) <{POST_SNAPBACK}>
Может не совсем ваш случай, но посмотрите как сделано в альтеровских университетских корах
https://www.altera.com/support/training/uni...s-software.html
В частности Audio & Video -> DMA Controller. Там у них сделано через отдельный TCL скрипт, который получает параметры от GUI, и подставляет их в verilog код. На верхнем уровне у самого модуля заранее описаны все возможные порты, потом лишние убираются при генерации.

Приложил файлик

Спасибо, я как раз их примеры изучаю.


Цитата(iosifk @ Nov 14 2017, 18:30) <{POST_SNAPBACK}>
200 регистров - это жить не будет!
Надо заменять на регистровый файл на памяти и проблемы уйдут...


Спасибо за замечание, учту обязательно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация