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

 
 
> Quartus. Объединение проектов, Как в Quartus из нескольких проектов "слепить" один большой пр
Flip-fl0p
сообщение Feb 19 2018, 11:17
Сообщение #1


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Господа, а как в Quartus из нескольких проектов "слепить" один большой проект ?
Столкнулся с ситуацией:
Есть проект "SDRAM_controller" - SDRAM контроллера. Он сосотоит из нескольких HDL описаний, в которые входят библиотечные элементы собственной разработки.
Есть проект "DVI_receiver" - приёмника DVI сигнала с выводом его на VGA. Он так-же состоит из нескольких HDL описаний, в которые входят библиотечные элементы собственной разработки.
А так-же есть проект "SCALER" - масштабатор видеопотока. И он тоже состоит из нескольких HDL описаний в который так-же входят библиотечные элементы.
И хочу я создать из этого добра новый большой проект.
Как мне правильно объединить все эти проекты, не добавляя каждый файл вручную по-отдельности.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Flip-fl0p
сообщение Feb 22 2018, 06:10
Сообщение #2


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Итак. Что-то похожее на то, что мне нужно я получил:
Можно создать файл с расширением .qip и в нем описать все файлы проектов.

Допустим у меня есть отдельный проект, который называется "TMDS_RECEIVER".
В проект входят следующие файлы:
Код
"TMDS_RECEIVER.vhd"      
"TMDS_DECODER.vhd"      
"OUT_FIFO.vhd"          
"KAA_RESET_BRIDGE.vhd"  
"KAA_PULSE_GENERATOR.vhd"
"DDR_REG.vhd"            
"LVDS_RX.vhd"

Я хочу проект "TMDS_RECEIVER" применить в проекте более высокого уровня, например в проекте "DVI_RECEIVER".

Для этого я в проекте "TMDS_RECEIVER" создал файл TMDS_RECEIVER.qip
который содержит описание всех, входящих в него файлов:
Код
set_global_assignment -library "TMDS_RECEIVER" -name VHDL_FILE [file join $::quartus(qip_path) "TMDS_RECEIVER.vhd"         ]
set_global_assignment -library "TMDS_RECEIVER" -name VHDL_FILE [file join $::quartus(qip_path) "TMDS_DECODER.vhd"          ]
set_global_assignment -library "TMDS_RECEIVER" -name VHDL_FILE [file join $::quartus(qip_path) "OUT_FIFO.vhd"              ]
set_global_assignment -library "TMDS_RECEIVER" -name VHDL_FILE [file join $::quartus(qip_path) "KAA_RESET_BRIDGE.vhd"      ]
set_global_assignment -library "TMDS_RECEIVER" -name VHDL_FILE [file join $::quartus(qip_path) "KAA_PULSE_GENERATOR.vhd"   ]
set_global_assignment -library "TMDS_RECEIVER" -name VHDL_FILE [file join $::quartus(qip_path) "DDR_REG.vhd"               ]
set_global_assignment -library "TMDS_RECEIVER" -name VHDL_FILE [file join $::quartus(qip_path) "LVDS_RX.vhd"               ]

И в проект "DVI_RECEIVER" мне достаточно просто добавить файл TMDS_RECEIVER.qip.

Список файлов, из которых состоит проект можно посмотреть в файле .rpt, который автоматически генерируется Quartus'ом.
К примеру у меня найти его можно по пути ...\TMDS_RECEIVER\output_files\TMDS_RECEIVER.map.rpt

Из явных преимуществ - это то, что qip файл пишется очень быстро и просто. И если, например у меня подключается несколько проектов, которые содержат файлы с одинаковыми именами, то никаких конфликтов не происходит( это основная проблема была, т.к проекты содержат большое количество повторяющихся библиотечных элементов собственной разработки).

Из недостатков - требуется на VHDL в явном виде описать,подключаемый компонент в области декларации архитектуры, поскольку direct instantiation не работает...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:05
Рейтинг@Mail.ru


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