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

 
 
> Конфигурация IP Core Altera для QSYS в зависимости от параметров
xxxmatrixxx
сообщение Sep 25 2018, 17:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050



Здравствуйте, уважаемые форумчане!!!

возникла такая задача - необходимо размножить IP Core интерфейса, написанного мною на verilog, в зависимости от параметров, задаваемых пользователем при выборе IP Core в QSYS

т.е. при выборе IP Core во время вставки ее в QSYS систему, если пользователь вводит в окошке количество интерфейсов цифру 3, то у меня должно появиться 3 Avalon-MM Master, если 1, то 1 Avalon-MM Master и т.д. в результате в зависимости от параметра появлялись, либо исчезали интерфейсы, относящиеся к Avalon шине, либо какие-либо внешние сигналы

я так понял, что сам Quartus и Qsys не позволяют сгенерировать такой tcl код, практических примеров в интернете я тоже не нашел

огромная просьба, поделиться примерами tcl кодов, которые реализовывают данные функции, если скините ссылки на документацию, где это описано,тоже буду очень благодарен
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
xxxmatrixxx
сообщение Sep 26 2018, 11:38
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050



Спасибо большое за помощь!!!

сделал свою кору по аналогии с демультиплексором на avalon-stream(*\altera\13.0sp1\ip\altera\merlin\altera_merlin_demultiplexer\)

пришлось написать свой собственный TCL файл, а так же откорректировать файл top уровня моего проекта, чтобы скрипт корректировал данный файл под параметры, задаваемые пользователем

в итоге, я так понял, что скрипт на TCL управляет отображением IP Core в QSYS, а так же генерирует сам файл top уровня, открывая его и подставляя параметры пользователя, генерируя требуемый код на verilog(vhdl и т.д.)

еще раз спасибо!!!
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Sep 26 2018, 12:14
Сообщение #3


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(xxxmatrixxx @ Sep 26 2018, 14:38) *
...
в итоге, я так понял, что скрипт на TCL управляет отображением IP Core в QSYS, а так же генерирует сам файл top уровня, открывая его и подставляя параметры пользователя, генерируя требуемый код на verilog(vhdl и т.д.)
Да так и есть - все это TCL. Можно из скрипта генерировать динамически целые qsys модули в зависимости от параметров. Удобно еще то что можно собрать в библиотеку блоки кода для работы с часто используемыми шинами, блоками, ... и реюзать потом без лишней copy-paste.

CODE
proc add_mm_ctrl_port {{name_bus "avmm_ctrl"} {name_port "avmm_ctrl"} {addr_wh 14} {name_clk ""} {name_rst ""}} {

if {$name_clk==""} {
set name_clk ${name_bus}_clk
}

if {$name_rst==""} {
set name_rst ${name_bus}_rst
}

add_interface ${name_bus} avalon end
set_interface_property ${name_bus} associatedClock ${name_clk}
set_interface_property ${name_bus} associatedReset ${name_rst}
...
add_interface_port ${name_bus} ${name_port}_waitrequest waitrequest Output 1
add_interface_port ${name_bus} ${name_port}_address address Input ${addr_wh}
add_interface_port ${name_bus} ${name_port}_write write Input 1
add_interface_port ${name_bus} ${name_port}_writedata writedata Input 32
add_interface_port ${name_bus} ${name_port}_byteenable byteenable Input 4
add_interface_port ${name_bus} ${name_port}_read read Input 1
add_interface_port ${name_bus} ${name_port}_readdata readdata Output 32
add_interface_port ${name_bus} ${name_port}_readdatavalid readdatavalid Output 1
}

...
add_mm_ctrl_port "dma_ctrl" "dma_ctrl" 14 "ctrl_clk" "ctrl_rst"
...


Удачи! Rob.
Go to the top of the page
 
+Quote Post



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

 


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


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