Problem bei der Simulation von Vivado FIFO mit Questasim

OP #6841346
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Design mit einem per Vivado generierten FIFO. Dieses Design 
möchte ich per VUnit/Questasim simulieren. Vivado erzeugt ja zu diesem 
Zweck eine Datei mit der Endung "_sim_netlist.vhdl". Beim Compilieren 
dieser Datei bekomme ich rätselhafte Fehlermeldungen:
1
WARNING - <long_path>/pl_biom-fpga.gen/sources_1/ip/ctrl_bus_rx_fifo/ctrl_bus_rx_fifo_sim_netlist.vhdl: failed to find a primary design unit 'ctrl_bus_rx_fifo_fifo_generator_v13_2_5' in library 'biom_fpga_lib'
2
[mCompiling into biom_fpga_lib: ../synthesis/pl_biom-fpga.gen/sources_1/ip/ctrl_bus_rx_fifo/ctrl_bus_rx_fifo_sim_netlist.vhdl                                         [0m[31;1mfailed[0m[m
3
[0m[m=== Command used: ===
4
/tools/mentor/questa_sim-2020.2/questasim/linux_x86_64/vcom -quiet -modelsimini <long_path>/modelsim.ini -2008 -work biom_fpga_lib <long_path>/pl_biom-fpga.gen/sources_1/ip/ctrl_bus_rx_fifo/ctrl_bus_rx_fifo_sim_netlist.vhdl
5
[0m[m
6
[0m[m=== Command output: ===
7
###### /opt/xilinx_simlib/unisim/73823f3/_primary.dat(48): <in protected region>** Error: /opt/xilinx_simlib/unisim/73823f3/_primary.dat(48): in protected region
8
** Error: /opt/xilinx_simlib/unisim/73823f3/_primary.dat(48): in protected region
9
** Error: /opt/xilinx_simlib/unisim/73823f3/_primary.dat(48): in protected region
10
** Error: /opt/xilinx_simlib/unisim/73823f3/_primary.dat(48): in protected region
11
** Error: /opt/xilinx_simlib/unisim/73823f3/_primary.dat(48): in protected region
12
...

Kann damit jemand was anfangen?
Gast #6841402
Lesenswert?
• ▲
▼
Ich hatte vor längerer Seit den gleichen Fehler, und das lag tatsächlich 
an einer fehlenden Lizenz für einen IP-Core von Xilinx (ein 
Reed-Solomon-Decoder in dem Fall).
Aber dödelige FIFOs sind doch lizenzfrei. Hast du noch andere Cores im 
Design?
OP #6841423
Lesenswert?
• ▲
▼
Ja, habe ich. Die lassen sich problemlos übersetzen. Allerdings hat bei 
denen, im Gegensatz zum FIFO, die Netzliste auch nicht solchen 
kryptischen Inhalt.
1
...
2
`protect data_method = "AES128-CBC"
3
`protect encoding = (enctype = "BASE64", line_length = 76, bytes = 82016)
4
`protect data_block
5
ChUqTfiuVRZEs9RrH4klkEzaqvxsmIKfVTyoctNwR6LAQIuQRuwBRnos3McZX1zDTe7v1yjrbXY4
6
5KYaxc1f6CmyzCcsqCU6KmPNrC+EFsuk/VekCCP3WV0UfY1RgPk2uYvv35ZXTYbRy0kcBO2Gnmf6
7
WOhOYiq00M74o0fHJnJF2MjvW8QK/5CwLw2hJ6oY1+nlogyhFQuQZgB1U8WfB5o6lGnMvCvJqlpM
8
yVLWop2dX+HHr0ln759YR7TGz1RVRbPCdLDk6hospo+jP80OtXtjGrGBWCYAYgzQys5aLiCB3Y/q
9
xkLNT8tY0zPlYoT/ymwYlKI6NpcIjoxVK90JKIxEIAv5y+O2GLtyP7pQZiKwjayQ/LgLoYso/FY1
10
X7efzEJcCnKNHEXCUbcQx+RNoGB8XAhXwSEpQrOp1J0W8/DLN29cK4Z7Yi1Hx7HuGvtr+EVYCqsS
11
ru/2PWsfYcaAKcAzUvPinD8GvMF5Zo592hTKmvZG2qsvALbNmA8OT8lR9MGo6i8RIrEF5+8K8vOy
12
UI3UMK5iSDTc/3sHiDUoufC9oHI/tIlNzcICazHTr+IjKUHWjDdBn74/knWmrrCKXSXAJ4Pm8nt8
13
LQKJbR+iSrAGKS70Qoz5mLi84zYsrTZNg7Q6kn7Vfw4AoFlJb0GglTp/WPbNQvTSorcy+NARJ3yg
14
aYyJAzgaNqGbAbddajHd0gZ1kMREIiRUx+mfjQAt8dafFxUhB1vTY52usObsHLqX6tG0isbCrD2X
15
...

Es handelt sich übrigens um ein Builtin-FIFO, falls das einen 
Unterschied macht.
Gast #6841434
Lesenswert?
• ▲
▼
Ja, das ist definitiv verschlüsselter Code. Dass man für FIFOs eine 
Lizenz braucht, ist mir neu. Da musst du mal bei Xilinx nachhaken, 
sorry...
Ansonsten: Im Xilinx Synthesis Guide (UG901 glaube ich) steht drin, wie 
man FIFOs im RTL-Code baut, sodass sie auf die FPGA-Ressourcen gemappt 
werden. Falls diese Fifos passen, hast du das Problem damit nicht.
Gast #6843829
Lesenswert?
• ▲
▼
Komisch, ich verwende sowohl FIFOs in einem Block-RAM als auch die 
built-in Versionen und habe noch keine Probleme damit gehabt. Die stehen 
auch auf "license included". Wäre mir neu, wenn die eine LIC bräuchten.

Kann es sein, dass es ein Problem mit der free-ware Version ist? 
(Web-Version heisst die glaube ich).

Oder ist der Simulator die free-Version? Da braucht es doch spezielle 
precompiled Libraries.

Oder die Module werden in die falsche LIB compiliert und er kann sie 
deshalb nicht finden. Oder du hast sie gar nicht eingebunden.

Übersetze mal die FIFO-Netzliste alleine.
Gast #6843841
Lesenswert?
• ▲
▼
Philip K. schrieb:

> ich habe ein Design mit einem per Vivado generierten FIFO. Dieses Design
> möchte ich per VUnit/Questasim simulieren. Vivado erzeugt ja zu diesem
> Zweck eine Datei mit der Endung "_sim_netlist.vhdl". Beim Compilieren
> dieser Datei bekomme ich rätselhafte Fehlermeldungen:

vielleicht ist es ja auch einfach die falsche Datei, Xilinx erzeugt 
etliche Simulationsdateien bei der Erstellung eines Cores, abhängig von 
den Einstellungen zu benutzten Simualtor.

Und gelegentlich muß man noch ein script laufen lassen um für Questa 
eine passende Library zu erzeugen.

Denn eigentlich braucht der Simulator keine Datei sondern eine 
compilierte library für die ganzen 'Xilinx-makros'.


https://support.xilinx.com/s/article/66533?language=en_US
https://support.xilinx.com/s/article/53678?language=en_US
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_2/ug900-vivado-logic-simulation.pdf 
S. 14 ff

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.