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

Проблемы с добавлением файла netlist в проект (Xilinx)

Здравствуйте!

 

Среда разработки - Xilinx ISE 12.2

 

Есть потребность добавить в проект ( HDL - top level) файл .ngc.

 

Сначала создаю один (HDL-проект) в котором после синтеза получаю требуемый для добавления .ngc-файл.

Далее создаю второй (HDL-проект), в который кроме обычных hdl source файлов добавляю и данный .ngc файл.

Файл добавляется нормально ( пробовал и add source file / add copy of source ). Вызов модуля из top-level HDL-файла

сопровождаю (* BOX_TYPE = "user_black_box" *).

 

Запускаю синтез - практически сразу выдаётся сообщение - не могу найти данный primitive/module.

Перекидывал данный файл прямо в директорию проекта - то же самое.

 

Заметил, что

Когда в проект добавляется IP Core, сгенерированные CORE GENERATOR или EDK, то добавляются не сами файлы-netlist, а .xco или .xmp.

В документации XILINX это чётко прописано.

 

Ну вообщем, пока не могу найти в документации XILINX как правильно это сделать и в чём может быть причина.

Вопрос можно трактовать и так - как же сделать собственные IP в виде .ngc, чтобы затем вставлять их в HDL-проекты ?

Подозреваю, что нужны ещё какие-то сопутствующие файлы ...

 

Подскажите, пожалуйста - как решается данная задача.

 

С Уважением,

Игорь

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Вот то, что нашёл в документации:

 

For HDL and schematic top-level designs, lower-level source files can be multiple formats, including HDL, schematic, IP, and netlist.

 

.ngc, .ngo - Specifies the module in a Xilinx proprietary file format.

-----------------------------------------------------------------------------

Must be generated by a Xilinx IP generator tool (for example, CORE Generator software or System Generator for DSP) or generated directly by the XST software.

Note You can add an NGC/NGO netlist file as a top-level module or as a lower-level module. For information on adding lower-level NGC/NGO modules to your design, see Working with Netlist-Based IP

 

Working with Netlist-Based IP

-------------------------------------

You can incorporate EDIF, NGC, and NGO netlists into your design by instantiating the module and including the netlist in the project. Netlist sources typically represent IP modules, that is, modules that you have already synthesized or that were synthesized and delivered by Xilinx® or by third-party companies.

 

To Add Netlists to the Project:

----------------------------------

To add netlists (EDIF, NGC, NGO) to the project, add the netlists as source files, as described in Adding a Source File to a Project.

Netlists appear in the design hierarchy as follows:

Netlists that are instantiated in HDL parent files appear in the hierarchy.

Netlists that are sub-modules of other netlists do not appear in the hierarchy.

 

Project Navigator manages and tracks status for netlists that are part of the design hierarchy. For example:

If you make changes to the netlists, the status of associated processes become out-of-date.

If you use the File > Copy Project menu command and choose to copy source files, netlists are copied as part of the project.

 

To Synthesize Netlists

-------------------------

To synthesize netlists, do either of the following:

If you want the synthesis engine to read and optimize the design based on the contents of the netlist module, enable the Read Cores property in the XST Synthesis Options dialog box.

Note Netlists in the design hierarchy are not passed explicitly to synthesis and are only read by the synthesis engine if the Read Cores property is enabled.

If you want the synthesis engine to treat the module as a black box, instantiate the module in the design as a black box, as described in the following topics:

Synthesizing a Verilog Design Containing Cores

Synthesizing a VHDL Design Containing Cores

Изменено пользователем lim

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


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

>If you want the synthesis engine to read and optimize the design based on the contents of the netlist module, enable the Read Cores property in the XST Synthesis Options dialog box.

 

Задайте в опциях проекта Read Cores, в пути укажите путь к *.ngc.

Это же надо сделать в настройках транслятора.

Вместо исходного модуля берётся чёрный ящик - модуль с пустым телом.

 

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


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

>If you want the synthesis engine to read and optimize the design based on the contents of the netlist module, enable the Read Cores property in the XST Synthesis Options dialog box.

 

Задайте в опциях проекта Read Cores, в пути укажите путь к *.ngc.

Это же надо сделать в настройках транслятора.

Вместо исходного модуля берётся чёрный ящик - модуль с пустым телом.

 

Галочка Read Cores в опциях синтезатора включена, насчёт путей - помоему я вчера пробовал и это, но проделаю ещё раз.

Я тут посмотрел сообщения по данной ошибке - хотя точно мой случай не приводится, но вот заинтересовал следующий вопрос.

 

В HDL-проект, где собственно создаётся сам .ngc модуль входит также несколько IP Cores.

Далее я всавляю этот .ngc модуль, как netlist-файл в проект верхнего уровня, а сами IP Cores вставлять туда отдельно надо ?

Я пробовал добавлять отдельно IP Cores в проект верхнего уровня - они появляются в самом верху в иерархии - ну и результат тот же.

 

Не совсем понял следующее ( может здесь причина ): Вместо исходного модуля берётся чёрный ящик - модуль с пустым телом.

Что в проект, кроме .ngc нужно ещё добавлять .v файл с пустым телом ?

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


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

Я добавляю только .v с пустым телом, а ngc, (xco и т.п.) не добавляю вообще никак.

При сборке чёрный ящик заменяется на содержимое ngc.

 

Попробуйте не делать ngc верхним уровнем. Сделайте верхним уровнем ящик .v, а ядра сами подцепятся через Read Cores.

 

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


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

Я добавляю только .v с пустым телом, а ngc, (xco и т.п.) не добавляю вообще никак.

При сборке чёрный ящик заменяется на содержимое ngc.

 

Попробуйте не делать ngc верхним уровнем. Сделайте верхним уровнем ящик .v, а ядра сами подцепятся через Read Cores.

Вообщем синтез ПРОШЁЛ! Спасибо Большое!

Правда я решил вставить в проект верхнего уровня wrapper для .v файла. Ну а внутри неё - black box с пустым содержимым.

И указал путь к .ngc файлу в опциях синтезатора. Завтра запущу Implementation.

 

Ещё раз Спасибо.

 

С Уважением,

Игорь

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...