Forum: FPGA, VHDL & Co. Problem bei der Simulation von Vivado FIFO mit Questasim


von Philip K. (philip_k)


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?

von Fitzebutze (Gast)


Lesenswert?

Vermutlich fehlt dir der Xilinx-Key für das vernudelte IP.

von Philip K. (philip_k)


Lesenswert?

Und wie komme ich an diesen Key und was muss ich damit machen?

von Vancouver (Gast)


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?

von Philip K. (philip_k)


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.

von Vancouver (Gast)


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.

von Nick (Gast)


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.

von Fpgakuechle K. (Gast)


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

von Philip K. (philip_k)


Lesenswert?

Offenbar hat mit der Xilinx Sim-Lib irgendwas nicht gepasst. Nachdem ich 
die nochmal compiliert habe funktioniert alles.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.