Forum: FPGA, VHDL & Co. Simulation im ModelSim läuft langsam!


von Yann B. (yann)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe eine PLL (IP Core) in dem VGA-Controller meines Projektes 
eingebaut, um die 25,175 MHz Pixelfrequenz aus der 50 MHz 
Referenzfrequenz zu erzeugen. Allerdings läuft die Simulation im 
ModelSim langsammer als vorher (mit abgeleitetem Clock statt PLL IP 
Core) und ich kriege eine Warnung über die eingefügte PLL-Komponente 
(siehe Anhang modelSim_Warnung.png).

1) Was sagt diese Warnung überhaupt aus? Ich habe keine "locked Output", 
während der Konfiguration der PLL gewählt.
2) Könnte es an der Konfiguration(Anhang pll_cfg.png) der PLL liegen? 
Wenn ja, wie sollte ich am besten die PLL im MegaWizard konfigurieren?
3) Liegt es aber daran, dass die PLL innerhalb des VGA-Controller 
eingebaut habe statt in der Top-Level Datei?

Ich nutze Quartus Prime Lite 18.1 mit dem DE2-115 Board.

Ich freue mich auf eure Hilfe.

von Dunst Emulator (Gast)


Lesenswert?

Yann B. schrieb:
> 1) Was sagt diese Warnung überhaupt aus? Ich habe keine "locked Output",
> während der Konfiguration der PLL gewählt.

schlag mal nach wofür das L in PLL steht und was ein Phasenregelkreis 
überhaupt tut ... 
https://www.analog-praxis.de/pll-grundlagen-was-sie-ueber-phasenregelung-wissen-muessen-a-749979/

von Markus F. (mfro)


Lesenswert?

Die Quelle für die simulierte PLL kannst Du dir in 
quartus/eda/sim_lib/altera_mf.vhd im Quartus-Installationsverzeichnis 
anschauen.

Beim Betrachten wird dir dann sicherlich aufgehen, warum die Simulation 
dieser Komponente nicht besonders flott läuft...

von FPGA zum Spass (Gast)


Lesenswert?

Aus diesem Grund simulierte ich PLLs nie mit, sondern kompiliere für die 
Simulation eine seperate Datei die den gleichen Takt simpel erzeugt.

Beispiel:
1
LIBRARY ieee;
2
USE ieee.std_logic_1164.all;
3
4
ENTITY pll_vga IS
5
   PORT
6
   (
7
      inclk0      : IN STD_LOGIC  := '0';
8
      c0          : OUT STD_LOGIC
9
   );
10
END pll_vga;
11
12
ARCHITECTURE arch OF pll_vga IS
13
   signal c0_buf      : STD_LOGIC := '1';
14
BEGIN
15
   c0_buf <= not c0_buf after 4630 ps;
16
   c0 <= c0_buf;
17
END arch;

Wenn du dringend die Totzeit am Anfang brauchst lässt die sich auch noch 
leicht machen.

von Elbi (Gast)


Lesenswert?

FPGA zum Spass schrieb im Beitrag #5949344:
> Aus diesem Grund simulierte ich PLLs nie mit, s

Ich frage mich auch ernsthaft was man bei denen simulieren soll, deren 
Verhalten ist ja nicht wirklich intuitiv.

von Markus F. (mfro)


Lesenswert?

Elbi schrieb:
> FPGA zum Spass schrieb im Beitrag #5949344:
>> Aus diesem Grund simulierte ich PLLs nie mit, s
>
> Ich frage mich auch ernsthaft was man bei denen simulieren soll,

Wenn Du z.B. einem Problem bei der PLL-Rekonfiguration auf die Spur 
kommen willst, wird dir wohl nichts anderes übrig bleiben.

von FPGA zum Spass (Gast)


Lesenswert?

Ja, wenn man tatsächlich solche Funktionen nutzt und damit Probleme hat 
lohnt sich das schon.

Wie zur Inbetriebnahme von RAMs, High Speed Links, PCIe usw.

Sobald es funktioniert nimmt man das Modul aus der Simulation raus und 
ersetzt es mit einem schnellem Modell, gerne per Config.

von Burkhard (Gast)


Lesenswert?

FPGA zum Spass schrieb im Beitrag #5950740:
> ersetzt es mit einem schnellem Modell

Xilinx hat "library unifast"*, evtl. bietet Altera etwas Vergleichbares?

*https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug900-vivado-logic-simulation.pdf. 
Seite 26.

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.