Jump to content

    

Vivado 2018.2 - как подключить библиотеку fifo_generator'a

Recommended Posts

Winger11

Приветствую!

Подскажите пожалуйста, как правильно использовать созданное в Виваде FIFO?

1) Создаю FIFO с помощью IP fifo_generator (через вкладку IP Catalog)

2) Сгенеренный файл fifo_generator.vhd подключаю к проекту в HDL Designer'e 

3) После успешной симуляции проекта создаю IP в Виваде и добавляю в него все файлы проекта (в т.ч. и fifo_generator.vhd)

4) В IP Packager'e видно, что модуль fifo_generator ищет модуль fifo_generator_v13_2_2 и не находит. Видимо, надо подключать не vdhl-файл, а какой-то другой, или же вообще добавлять библиотеку с этим ФИФО на уровне проекта, а не в IP Packager.

В общем, нужна помощь. Заранее спасибо!

2.jpg

Share this post


Link to post
Share on other sites

RobFPGA

Приветствую!

35 minutes ago, Winger11 said:

3) После успешной симуляции проекта создаю IP в Виваде и добавляю в него все файлы проекта (в т.ч. и fifo_generator.vhd)

А что мешает вам упаковать еще и .xci файл от fifo_generator в вашу корку? Добавляете так же как и другие файлы. 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Winger11
3 hours ago, RobFPGA said:

Приветствую!

А что мешает вам упаковать еще и .xci файл от fifo_generator в вашу корку? Добавляете так же как и другие файлы. 

Удачи! Rob.

Пробовал так, но тогда выдается ошибка при синтезе:

[DRC INBB-3] Black Box Instances: Cell 'design_1_i/cc_if_0/U0/ps_pl_interface_top_inst/pkt_prop_FIFO/U0' of type 'design_1_cc_if_0_0_fifo_generator_v13_2_2' has undefined contents and is considered a black box.  The contents of this cell must be defined for opt_design to complete successfully.
 

Share this post


Link to post
Share on other sites

RobFPGA

Приветствую!

10 minutes ago, Winger11 said:

Пробовал так, но тогда выдается ошибка при синтезе:

Пробовал как?  Вы с неправильной стороны, наверное, добавляете - в исходниках должно быть видно fifo_core_name.xci   А в RTL вы вставляете шаблон из фала  fifo_core_name.veo (или .vho).

//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
fifo_core_name your_instance_name (
  .rst(rst),                  // input wire rst
  .wr_clk(wr_clk),            // input wire wr_clk
  .rd_clk(rd_clk),            // input wire rd_clk
  .din(din),                  // input wire [111 : 0] din
  .wr_en(wr_en),              // input wire wr_en
  .rd_en(rd_en),              // input wire rd_en
  .dout(dout),                // output wire [111 : 0] dout
  .full(full),                // output wire full
  .empty(empty),              // output wire empty
  .valid(valid),              // output wire valid
  .wr_rst_busy(wr_rst_busy),  // output wire wr_rst_busy
  .rd_rst_busy(rd_rst_busy)  // output wire rd_rst_busy
);

А вы наверно напрямую файл .../synth/fifo_core_name.vhd добавляете. А так не правильно. :cray2:

Удачи Rob.

Share this post


Link to post
Share on other sites

Bad0512

Может конечно в Виваде что и поменялось, но раньше для синтеза необходимо было цеплять нетлист *.ngc.

 

Точнее даже не так. Синтезу пофиг на ваши фифошки если у них есть атрибут black_box. А вот на этапе имплементации понадобятся нетлисты.

 

Но если вы всё делаете в Виваде, то инструкции от Роба очень правильные.

 

Share this post


Link to post
Share on other sites

Winger11
8 hours ago, RobFPGA said:

Приветствую!

Пробовал как?  Вы с неправильной стороны, наверное, добавляете - в исходниках должно быть видно fifo_core_name.xci   А в RTL вы вставляете шаблон из фала  fifo_core_name.veo (или .vho).

А вы наверно напрямую файл .../synth/fifo_core_name.vhd добавляете. А так не правильно. :cray2:

Удачи Rob.

Спасибо большое, всё получилось - просто в папке src валялся vhdl-файл от предыдущих попыток, и IP Packager цеплялся за него вместо xci.

30 minutes ago, Bad0512 said:

Может конечно в Виваде что и поменялось, но раньше для синтеза необходимо было цеплять нетлист *.ngc.

Точнее даже не так. Синтезу пофиг на ваши фифошки если у них есть атрибут black_box. А вот на этапе имплементации понадобятся нетлисты.

Но если вы всё делаете в Виваде, то инструкции от Роба очень правильные.

 

Я сначала весь RTL отлаживаю в HDL Designer'e, потом запаковываю проект в IP и синтезирую средствами Вивады. Последнее время на Альтере все делал, поэтому с механизмом подключения сгенеренных модулей в Виваде проблема возникла. Сейчас заработало, вроде бы, спасибо!

Share this post


Link to post
Share on other sites

OparinVD

Всем привет!

Не стал создавать отдельную тему, решил присоседиться.

Второй день уже не могу вставить ipcore FIFO, сгенерированный в vivado 19.1 в Active-HDL 9.2.

Делаю так:

1) скомпилировал в вивадо библиотеки для симуляций. Библиотеку fifo_generator_v13_2_4 подцепил в library manager, сделал ее глобальной. Заодно туда же также подцепил unisim, unimacro и simprims. Эти же либы указал в настройках компиляции и симуляции (в раздел про verilog).

2) нахожу в папке сгенерированной FIFO VHDL-ный файл .../synth/fifo_core_name.vhd. Внешние порты там как у заказанного компонента, а внутри соответственно универсальная энтити, настраиваемая под мои нужды.

В этом файле вначале объявляется ссылка на библиотеку

image.png.c9b57761ed0fe93c8c2c0e46fbf70807.png

Вроде всё понятно, но в этой библиотеке нет такого пункта! Есть какие угодно другие со своим хвостиком в названии
image.thumb.png.a4aa62137ebe61c4c17081ab0ca8bbc6.png

Соответственно компилятор ругается, и ничего не компилируется.

Пробовал подсунуть verilog-овский файл, при компиляции выскакивает warning, а при elaboration вылетает с ошибкой...

Что я не так делаю?

 

Share this post


Link to post
Share on other sites

Vengin
22 часа назад, OparinVD сказал:

Второй день уже не могу вставить ipcore FIFO, сгенерированный в vivado 19.1 в Active-HDL 9.2.

А вы уверены, что Active-HDL 9.2 вообще поддерживает работу с ipcore Vivado 2019.1? Когда-то давно с этим боролся, и вроде поддержка версий Vivado от 2018 была в в Active-HDL где то 10.3 (или 10.4, 10.5). Смотрите совместимость (должна быть  где-то то в доках или на сайте у xilinx-а и/или Active-hdl).

Share this post


Link to post
Share on other sites

OparinVD

На сайте Aldec есть статья, как скомпилировать библиотеки Vivado для компиляции в Active-HDL. В требованиях там версии не менее 19.2 для Vivado и 11.1 для Active-HDL.

Quote

This application note assumes that you have Xilinx Vivado Design Suite 2019.2 or later and Active-HDL 11.1 or later properly installed and licensed

Т.е. с "возрастом" они точно не отменили поддержку друг друга. 
Что касается правильной установки и лицензирования, то Vivado 19.1 действительно отказалась компилировать тестовый проект, сославшись на то, что лицензия вроде не поддерживает фичу "synthesis" или выбранный кристалл. Тогда я поставил 18.2, там пробный проект прошел все этапы компиляции... Но библиотеки там тоже не компилируются...

Посмотрел повнимательней лог компиляции, оказалось, что практически все библиотеки (и стандартный, типа unisim) при компиляции вызывают ошибку "[common 17-180] spawn failed: no error" или "[common 17-180] spawn failed: No such file or directory". Причем эти ошибки вылетают как при компиляции VHDL варианта, так и Verilog. Для разных библиотек в разных сочетаниях.

Толкового решения для устранения этих ошибок я не нашел. Даже на китайском сайте встречал аналогичный крик души, но решения нет...
Из самых толовых предложений перепробовал:
1) Отключил антивирус и брандмауэр - не помогло
2) переустановил Vivado с отключенным антивирусом - не помогло
3) встретил информацию, что длина имени файла при компиляции ограничена - положил выходную папку в корень диска - не помогло

Пока вижу два пути дальнейших поисков:
1) скачать откуда-нибудь скомпилированные библиотеки. Но Альдек к своему разделу Download не пускает, логин уже неделю висит на проверке, и скорей всего одобрен не будет... Может поделится кто-нибудь?
2) IPcore generator в своих выходных папках вроде как кладет все исходники для компиляции на сторонних симуляторах, там даже Do файл есть с amap'ами и vlog'ами... но я этим не пользовался никогда. Где и как эти скрипты можно запустить?

Share this post


Link to post
Share on other sites

andrew_b
3 минуты назад, OparinVD сказал:

IPcore generator в своих выходных папках вроде как кладет все исходники для компиляции

Если ядра криптованные (а FIFO именно такие), то в симуляторе должны быть ключи для декриптования. Если Vivado свежая, а симулятор старый, то таких ключей в нём не будет.

Share this post


Link to post
Share on other sites

OparinVD

По идее там должно всё происходить также, как и при массовой компиляции библиотек. Фактически Vivado запускает большой скрипт и передает в Active-HDL все имеющиеся в доступе ipcore... Там даже галочка есть "компилировать IP" для тех кто не хочет ждать несколько часов, чтобы получить исчерпывающий перечень IP, а пользоваться только нужными отдельными ядрами. Вот отдельные ядра можно скомпилировать отдельно, а как - я пока не разобрался

Share this post


Link to post
Share on other sites

Nick_K

Так может стоит действительно закомпилить все либы для всех IP и не морочить голову. Ибо в следующий раз Вам понадобится другое IP, а потом третье... За ночь собирается спокойно. На достаточно мощном процессоре займёт от силы минут 30-40.

Share this post


Link to post
Share on other sites

OparinVD

Я бы с радостью так и сделал, но суть проблемы как раз в том, что так не получается.

Вот лог при компиляции в Vivado 2018.2 (он до ядер даже не доходит. 2019.1 переходит к компиляции ядер, но тоже сыплет ошибки, только в варианте "[common 17-180] spawn failed: No such file or directory"):

Spoiler

compile_simlib -simulator activehdl -simulator_exec_path {C:/Aldec/Active-HDL_9.1} -family all -language all -library all -dir {D:/xilinx_simlib} -force
INFO: [Vivado 12-5496] Finding simulator executables and checking version...
INFO: [Vivado 12-5498] Processing source library information for the selected device family (default:all) ...

Compiling libraries for 'active_hdl' simulator in 'D:\xilinx_simlib'
ALIB: Library `secureip' attached.
secureip = D:\xilinx_simlib\secureip\secureip.lib
--> Compiling 'verilog.secureip' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/secureip'
    > Compiled Path  = 'D:\xilinx_simlib\secureip'
ERROR: [Common 17-180] Spawn failed: No error
ERROR: [Common 17-180] Spawn failed: No error
    > Log File       = 'D:\xilinx_simlib/secureip/.cxl.verilog.secureip.secureip.nt64.log'

compile_simlib[verilog.secureip]: 2 error(s), 0 warning(s), 14.29 % complete
Please refer to the messages between 'BEGIN_COMPILATION_MESSAGES(active_hdl:verilog:secureip)' and 'END_COMPILATION_MESSAGES(active_hdl:verilog:secureip)' in the log file compile_simlib.log for details of compilation error(s).

ALIB: Library `unisim' attached.
unisim = D:\xilinx_simlib\unisim\unisim.lib
--> Compiling 'vhdl.unisim' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/vhdl/src/unisims'
    > Compiled Path  = 'D:\xilinx_simlib\unisim'
ERROR: [Common 17-180] Spawn failed: No error
    > Log File       = 'D:\xilinx_simlib/unisim/.cxl.vhdl.unisim.unisim.nt64.log'
ALIB: Library `unimacro' attached.
unimacro = D:\xilinx_simlib\unimacro\unimacro.lib
--> Compiling 'vhdl.unisim:vhdl.unimacro' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/vhdl/src/unimacro'
    > Compiled Path  = 'D:\xilinx_simlib\unimacro'
ERROR: [Common 17-180] Spawn failed: No error
    > Log File       = 'D:\xilinx_simlib/unimacro/.cxl.vhdl.unimacro.unimacro.nt64.log'
compile_simlib[vhdl.unisim:vhdl.unimacro]: 1 error(s), 1 warning(s)
INFO: Please refer to the messages between 'BEGIN_COMPILATION_MESSAGES(active_hdl:vhdl:unimacro)' and 'END_COMPILATION_MESSAGES(active_hdl:vhdl:unimacro)' in the log file compile_simlib.log for details of compilation error(s).

ALIB: Library `unifast' attached.
unifast = D:\xilinx_simlib\unifast\unifast.lib
--> Compiling 'vhdl.unisim:vhdl.unifast' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/vhdl/src/unifast'
    > Compiled Path  = 'D:\xilinx_simlib\unifast'
ERROR: [Common 17-180] Spawn failed: No error
    > Log File       = 'D:\xilinx_simlib/unifast/.cxl.vhdl.unifast.unifast.nt64.log'
compile_simlib[vhdl.unisim:vhdl.unifast]: 1 error(s), 1 warning(s)
INFO: Please refer to the messages between 'BEGIN_COMPILATION_MESSAGES(active_hdl:vhdl:unifast)' and 'END_COMPILATION_MESSAGES(active_hdl:vhdl:unifast)' in the log file compile_simlib.log for details of compilation error(s).


compile_simlib[vhdl.unisim]: 3 error(s), 3 warning(s), 28.57 % complete
Please refer to the messages between 'BEGIN_COMPILATION_MESSAGES(active_hdl:vhdl:unisim)' and 'END_COMPILATION_MESSAGES(active_hdl:vhdl:unisim)' in the log file compile_simlib.log for details of compilation error(s).

ALIB: Library `unisims_ver' attached.
unisims_ver = D:\xilinx_simlib\unisims_ver\unisims_ver.lib
--> Compiling 'verilog.unisim' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/verilog/src'
    > Compiled Path  = 'D:\xilinx_simlib\unisims_ver'
ERROR: [Common 17-180] Spawn failed: No error
ERROR: [Common 17-180] Spawn failed: No error
    > Log File       = 'D:\xilinx_simlib/unisims_ver/.cxl.verilog.unisim.unisims_ver.nt64.log'
ALIB: Library `unimacro_ver' attached.
unimacro_ver = D:\xilinx_simlib\unimacro_ver\unimacro_ver.lib
--> Compiling 'verilog.unisim:verilog.unimacro' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/verilog/src/unimacro'
    > Compiled Path  = 'D:\xilinx_simlib\unimacro_ver'
    > Log File       = 'D:\xilinx_simlib/unimacro_ver/.cxl.verilog.unimacro.unimacro_ver.nt64.log'
compile_simlib[verilog.unisim:verilog.unimacro]: 0 error(s), 17 warning(s)
ALIB: Library `unifast_ver' attached.
unifast_ver = D:\xilinx_simlib\unifast_ver\unifast_ver.lib
--> Compiling 'verilog.unisim:verilog.unifast' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/verilog/src/unifast'
    > Compiled Path  = 'D:\xilinx_simlib\unifast_ver'
    > Log File       = 'D:\xilinx_simlib/unifast_ver/.cxl.verilog.unifast.unifast_ver.nt64.log'
compile_simlib[verilog.unisim:verilog.unifast]: 0 error(s), 34 warning(s)

compile_simlib[verilog.unisim]: 2 error(s), 51 warning(s), 42.86 % complete
Please refer to the messages between 'BEGIN_COMPILATION_MESSAGES(active_hdl:verilog:unisim)' and 'END_COMPILATION_MESSAGES(active_hdl:verilog:unisim)' in the log file compile_simlib.log for details of compilation error(s).

ALIB: Library `simprims_ver' attached.
simprims_ver = D:\xilinx_simlib\simprims_ver\simprims_ver.lib
--> Compiling 'verilog.simprim' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/verilog/src/unisims'
    > Compiled Path  = 'D:\xilinx_simlib\simprims_ver'
ERROR: [Common 17-180] Spawn failed: No error
    > Log File       = 'D:\xilinx_simlib/simprims_ver/.cxl.verilog.simprim.simprims_ver.nt64.log'

compile_simlib[verilog.simprim]: 1 error(s), 0 warning(s), 57.14 % complete
Please refer to the messages between 'BEGIN_COMPILATION_MESSAGES(active_hdl:verilog:simprim)' and 'END_COMPILATION_MESSAGES(active_hdl:verilog:simprim)' in the log file compile_simlib.log for details of compilation error(s).

ALIB: Library `xpm' attached.
xpm = D:\xilinx_simlib\xpm\xpm.lib
--> Compiling 'vhdl.xpm' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/ip/xpm'
    > Compiled Path  = 'D:\xilinx_simlib\xpm'
    > Log File       = 'D:\xilinx_simlib/xpm/.cxl.vhdl.xpm.xpm.nt64.log'

compile_simlib[vhdl.xpm]: 0 error(s), 1 warning(s), 71.43 % complete
ALIB: Library `xpm' attached.
xpm = D:\xilinx_simlib\xpm\xpm.lib
--> Compiling 'verilog.xpm' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data/ip/xpm'
    > Compiled Path  = 'D:\xilinx_simlib\xpm'
ERROR: [Common 17-180] Spawn failed: No error
    > Log File       = 'D:\xilinx_simlib/xpm/.cxl.verilog.xpm.xpm.nt64.log'

compile_simlib[verilog.xpm]: 1 error(s), 0 warning(s), 85.71 % complete
Please refer to the messages between 'BEGIN_COMPILATION_MESSAGES(active_hdl:verilog:xpm)' and 'END_COMPILATION_MESSAGES(active_hdl:verilog:xpm)' in the log file compile_simlib.log for details of compilation error(s).

ALIB: Library `xilinx_vip' attached.
xilinx_vip = D:\xilinx_simlib\xilinx_vip\xilinx_vip.lib
--> Compiling 'verilog.xilinx_vip' library...
    > Source Library = 'C:\Xilinx2\Vivado\2018.2\data'
    > Compiled Path  = 'D:\xilinx_simlib\xilinx_vip'
ERROR: [Common 17-180] Spawn failed: No error
    > Log File       = 'D:\xilinx_simlib/xilinx_vip/.cxl.verilog.xilinx_vip.xilinx_vip.nt64.log'

compile_simlib[verilog.xilinx_vip]: 1 error(s), 0 warning(s), 100.00 % complete
Please refer to the messages between 'BEGIN_COMPILATION_MESSAGES(active_hdl:verilog:xilinx_vip)' and 'END_COMPILATION_MESSAGES(active_hdl:verilog:xilinx_vip)' in the log file compile_simlib.log for details of compilation error(s).


********************************************************************************************
*                                  COMPILATION SUMMARY                                     *
*                                                                                          *
*  Simulator used: active_hdl                                                              *
*  Compiled on: Thu Apr 16 08:46:56 2020                                                   *
*                                                                                          *
********************************************************************************************
*  Library                        | Language | Mapped Library Name | Error(s) | Warning(s) *
*------------------------------------------------------------------------------------------*
*  secureip                       | verilog  | secureip            | 2        | 0          *
*------------------------------------------------------------------------------------------*
*  unisim                         | vhdl     | unisim              | 3        | 3          *
*------------------------------------------------------------------------------------------*
*  unimacro                       | vhdl     | unimacro            | 1        | 1          *
*------------------------------------------------------------------------------------------*
*  unifast                        | vhdl     | unifast             | 1        | 1          *
*------------------------------------------------------------------------------------------*
*  unisim                         | verilog  | unisims_ver         | 2        | 51         *
*------------------------------------------------------------------------------------------*
*  unimacro                       | verilog  | unimacro_ver        | 0        | 17         *
*------------------------------------------------------------------------------------------*
*  unifast                        | verilog  | unifast_ver         | 0        | 34         *
*------------------------------------------------------------------------------------------*
*  simprim                        | verilog  | simprims_ver        | 1        | 0          *
*------------------------------------------------------------------------------------------*
*  xpm                            | vhdl     | xpm                 | 0        | 1          *
*------------------------------------------------------------------------------------------*
*  xpm                            | verilog  | xpm                 | 1        | 0          *
*------------------------------------------------------------------------------------------*
*  xilinx_vip                     | verilog  | xilinx_vip          | 1        | 0          *
*------------------------------------------------------------------------------------------*

ERROR: [Vivado 12-5602] compile_simlib failed to compile for active_hdl with error in 12 libraries (cxl_error.log)
compile_simlib: Time (s): cpu = 00:00:03 ; elapsed = 00:00:37 . Memory (MB): peak = 741.316 ; gain = 0.000
ERROR: [Common 17-39] 'compile_simlib' failed due to earlier errors.

 

Share this post


Link to post
Share on other sites

Nick_K

Конечно будет сыпать ошибками. Согласно этой страницы - у Вас несоответствуют версии Vivado и Active HDL. Дабы избежать проблем нужно юзать одинаковые версии ПО из указаного списка. Я так на Моделсиме запоролся однажды

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.