Приветствую!
Цитата(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.