Winger11 0 September 16, 2019 Posted September 16, 2019 · Report post Приветствую! Подскажите пожалуйста, как правильно использовать созданное в Виваде 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. В общем, нужна помощь. Заранее спасибо! Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 10 September 16, 2019 Posted September 16, 2019 · Report post Приветствую! 35 minutes ago, Winger11 said: 3) После успешной симуляции проекта создаю IP в Виваде и добавляю в него все файлы проекта (в т.ч. и fifo_generator.vhd) А что мешает вам упаковать еще и .xci файл от fifo_generator в вашу корку? Добавляете так же как и другие файлы. Удачи! Rob. Quote Share this post Link to post Share on other sites More sharing options...
Winger11 0 September 16, 2019 Posted September 16, 2019 · Report post 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. Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 10 September 16, 2019 Posted September 16, 2019 · Report post Приветствую! 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 добавляете. А так не правильно. Удачи Rob. Quote Share this post Link to post Share on other sites More sharing options...
Bad0512 2 September 17, 2019 Posted September 17, 2019 · Report post Может конечно в Виваде что и поменялось, но раньше для синтеза необходимо было цеплять нетлист *.ngc. Точнее даже не так. Синтезу пофиг на ваши фифошки если у них есть атрибут black_box. А вот на этапе имплементации понадобятся нетлисты. Но если вы всё делаете в Виваде, то инструкции от Роба очень правильные. Quote Share this post Link to post Share on other sites More sharing options...
Winger11 0 September 17, 2019 Posted September 17, 2019 · Report post 8 hours ago, RobFPGA said: Приветствую! Пробовал как? Вы с неправильной стороны, наверное, добавляете - в исходниках должно быть видно fifo_core_name.xci А в RTL вы вставляете шаблон из фала fifo_core_name.veo (или .vho). А вы наверно напрямую файл .../synth/fifo_core_name.vhd добавляете. А так не правильно. Удачи Rob. Спасибо большое, всё получилось - просто в папке src валялся vhdl-файл от предыдущих попыток, и IP Packager цеплялся за него вместо xci. 30 minutes ago, Bad0512 said: Может конечно в Виваде что и поменялось, но раньше для синтеза необходимо было цеплять нетлист *.ngc. Точнее даже не так. Синтезу пофиг на ваши фифошки если у них есть атрибут black_box. А вот на этапе имплементации понадобятся нетлисты. Но если вы всё делаете в Виваде, то инструкции от Роба очень правильные. Я сначала весь RTL отлаживаю в HDL Designer'e, потом запаковываю проект в IP и синтезирую средствами Вивады. Последнее время на Альтере все делал, поэтому с механизмом подключения сгенеренных модулей в Виваде проблема возникла. Сейчас заработало, вроде бы, спасибо! Quote Share this post Link to post Share on other sites More sharing options...
Lixlex 0 September 24, 2019 Posted September 24, 2019 · Report post А еще лучше не мучаться с генерацией ip-корок fifo, а вместо этого использовать XPM Quote Share this post Link to post Share on other sites More sharing options...
OparinVD 0 April 14, 2020 Posted April 14, 2020 · Report post Всем привет! Не стал создавать отдельную тему, решил присоседиться. Второй день уже не могу вставить 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. Внешние порты там как у заказанного компонента, а внутри соответственно универсальная энтити, настраиваемая под мои нужды. В этом файле вначале объявляется ссылка на библиотеку Вроде всё понятно, но в этой библиотеке нет такого пункта! Есть какие угодно другие со своим хвостиком в названии Соответственно компилятор ругается, и ничего не компилируется. Пробовал подсунуть verilog-овский файл, при компиляции выскакивает warning, а при elaboration вылетает с ошибкой... Что я не так делаю? Quote Share this post Link to post Share on other sites More sharing options...
Vengin 0 April 15, 2020 Posted April 15, 2020 · Report post 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). Quote Share this post Link to post Share on other sites More sharing options...
OparinVD 0 April 16, 2020 Posted April 16, 2020 · Report post На сайте 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'ами... но я этим не пользовался никогда. Где и как эти скрипты можно запустить? Quote Share this post Link to post Share on other sites More sharing options...
andrew_b 9 April 16, 2020 Posted April 16, 2020 · Report post 3 минуты назад, OparinVD сказал: IPcore generator в своих выходных папках вроде как кладет все исходники для компиляции Если ядра криптованные (а FIFO именно такие), то в симуляторе должны быть ключи для декриптования. Если Vivado свежая, а симулятор старый, то таких ключей в нём не будет. Quote Share this post Link to post Share on other sites More sharing options...
OparinVD 0 April 16, 2020 Posted April 16, 2020 · Report post По идее там должно всё происходить также, как и при массовой компиляции библиотек. Фактически Vivado запускает большой скрипт и передает в Active-HDL все имеющиеся в доступе ipcore... Там даже галочка есть "компилировать IP" для тех кто не хочет ждать несколько часов, чтобы получить исчерпывающий перечень IP, а пользоваться только нужными отдельными ядрами. Вот отдельные ядра можно скомпилировать отдельно, а как - я пока не разобрался Quote Share this post Link to post Share on other sites More sharing options...
Nick_K 0 April 16, 2020 Posted April 16, 2020 · Report post Так может стоит действительно закомпилить все либы для всех IP и не морочить голову. Ибо в следующий раз Вам понадобится другое IP, а потом третье... За ночь собирается спокойно. На достаточно мощном процессоре займёт от силы минут 30-40. Quote Share this post Link to post Share on other sites More sharing options...
OparinVD 0 April 16, 2020 Posted April 16, 2020 · Report post Я бы с радостью так и сделал, но суть проблемы как раз в том, что так не получается. Вот лог при компиляции в 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. Quote Share this post Link to post Share on other sites More sharing options...
Nick_K 0 April 16, 2020 Posted April 16, 2020 · Report post Конечно будет сыпать ошибками. Согласно этой страницы - у Вас несоответствуют версии Vivado и Active HDL. Дабы избежать проблем нужно юзать одинаковые версии ПО из указаного списка. Я так на Моделсиме запоролся однажды Quote Share this post Link to post Share on other sites More sharing options...