-
Thread
Simulation und Design falsch kompiliert?
Name für einen Takt... hmmm... Wieviele Takte gibt es denn in dem Design?) taucht ja auch in der Sensitivliste des Prozesses auf: > p_regelung : process (conv, reset) Günter schrieb im Beitrag #3025802: > Dieser Teil hat auch nichts mit der PWM zu tun. Nein? Ich würde schwören, das sind die /Zähler
-
Thread
process sensitivity list
meine müsste für den Prozess der Takt sync. ist ja schnuppe > sein oder? Der Synthese ist die Sensitivliste sowieso weitestgehend egal. Du bekommst bei einer unvollständigen Liste einfach eine freundliche Meldung. In der Simulation (und nur dort!!!) wird dein Counter aber dann einen halben (!) Takt "
-
Thread
Verständnisproblem interprocess communication
fragender schrieb im Beitrag #4616790: > P_N_D: process(D_N_DATA,S_SYSCLK) D_N_DATA ist in der Sensitivliste nicht nötig. Es ist nur der Takt nötig. fragender schrieb im Beitrag #4616790: > variable addr: integer := 0; > variable V_TMPA: std_logic_vector(8 downto 0); > variable ADDR: integer :=
-
Thread
Prozess mit kombinatorischer und getakteter Logik
nicht mehr. Das ist es, was der Synthesizer dir sagen möchte: "Da fehlen etliche Signale in der Sensitivliste. Mich schert das nicht, weil ich diese Liste nicht verwende. Aber deine Simulation wird nicht zur Realität passen!" Und das ist diese Liste, die du da dann angezeigt bekommst: Marius S. schrieb
-
Thread
Endlicher Automat hängt
= "00"; RESET_OUT <= '0'; else if rising_edge(CLK_IN) then [/vhdl] Diese Sensitivliste ist überbestimmt. Da muss der Simulator zu viel tun, denn er wird unnötigerweise bei einer Änderung von state und RESET_IN zu einer Neuberechnung genötigt! Patric vL schrieb im Beitrag #2639055
-
Thread
Was muss ich bitte bei "clock" ändern, es kommt eine Fehlermeldung.
Das hätte man bei einem /getakteten Prozess/ nicht erwartet! Denn da gehört nur der Takt in die Sensitivliste. Und dann [pre] WARNING:Xst:737 - Found 8-bit latch for signal <address_z2>. Latches may be generated from incomplete case or if statements. We do not recommend the use of latches in FPGA
-
Thread
Zustandsautomat,vorherriger Zustand
ZUSTAND_WEITERGEBEN; : [/vhdl] Und dann noch das Übliche: deine Simulation ist falsch, weil die Sensitivliste unvollständig ist. [vhdl] ZUSTAND_WEITERGEBEN:process (FLASH_CLK) -- hier fehlt FLASH_RESET begin if FLASH_RESET = '1' then [/vhdl]
-
Thread
Ampelschaltung
das da im https://www.mikrocontroller.net/topic/298779#3194895 > Hat jemand einen Tipp? die Sensitivliste ist falsch: [vhdl] STATE1: process(CLK, STB, BTN0) begin if CLK='1' and CLK'event then : [/vhdl] Da gehört nur CLK rein, die anderen beiden Signale sind unnötig.
-
Thread
Hall Sensor in VHDL/FPGA
den S1 für 1 ms, dann hat der cnt schon auf 50000 hochgezählt... Darüber hinaus ist auch die Sensitivliste des Prozesses überdefiniert, denn Wolfgang schrieb im Beitrag #6907597: > process (S_1, clk,reset) Der Prozess ist vollkommen synchron zum clk und deshalb *ausschließlich* auf clk sensitv. Aus
-
Thread
Fehler im VHDL-Quellcode
vorbei dann : [/vhdl] EIDT: > Außerdem ist eine Awareness Liste beim PROCESS nötig: Eine Sensitivliste ist nur bei einem Prozess ohne /wait/ nötig.
-
Thread
Warnung ****** is unused and will be removed from module ******
www.lothar-miller.de/s9y/categories/6-Clock-Enable Dann sparst du dir diese vielen Signale in der Sensitivliste, die sowieso nichts bewirken und trotzdem rein müssen. Dominik G. schrieb im Beitrag #4454025: > Aber ich benutze sie doch oder ? Nicht so richtig... Sehen wir uns mal das temp_ones an. Weil
-
Thread
VHDL RAM Ansteuerung
end if; ZUSTAND <= F_ZUSTAND; end process Z_SPEICHER; [/vhdl] Weil hier zudem die Sensitivliste nicht vollständig ist, ist deine Simulation eigentlich falsch. Es funktioniert trotzdem etwas, weil du das unnötige Signal CLK mit aufgenommen hast. Allerdings bekommst du hier in der Simulation
-
Thread
Ausgabe an LED's
Sensitiv-Liste nicht vollständig ist oder unnötige Signale enthält. Leider fallen einem die Sensitivlisten immer mal wieder auf die Füße. Gerade wenn man mal ein weiters Signal im Process auswertet, bzw. eins nicht mehr benötigt. Konsequenterweise müsste es wenigstens (bei mir die ISE) ein Switch geben
-
Thread
VHDL Prozess nur "anstupsen"
Prozesses. Die "Laufzeit" eines Prozesses (also ab Aktivierung durch eine Signaländerung in der Sensitivliste) ist theoretisch 0. In der Praxis kommt der Takt, dann herrscht Hektik in der Logik, die rechtzeitig vor dem nächsten Tkat beendet sein muss. > Was passieren soll wenn die Flanke waerend des
-
Thread
Synthese dauer ewig, Grund: RAM
ganze Ding ist ein Mega-Monster-Latch! So wird kein Takt beschrieben, und der RST fehlt in der Sensitivliste (eigentlich nocht viel mehr, aber das nur weil fehlerhafterweise der Takt keiner ist...). Weil 'event fehlt ist hier nirgends ein Takt: [vhdl] if (RST='1') then elsif CLK='1'
-
Thread
Altera Timequest signal als clock identifiziert
) eh alle > gelesenen Signal nachträglich in diese Liste einfügt? Nein. Er /ignoriert/ die Sensitivliste komplett und meldet bestenfalls mit einer Info, dass die Simulation nicht merh zur generierten Hardware passt und somit /falsch/ ist. > 2. Ihr fragt nach den CLKs Ich erzeuge eine BCLK aus
-
Thread
vhdl anfänger mit problem
an. > process(bcd0, bcd1, bcd2, bcd3, bcd4, bcd5, bcd6, CLK) Wozu ist der CLK in der Sensitivliste? Der wird in diesem Prozess doch gar nicht verwendet :-/ > FATAL_ERROR:Xst:Portability/export/Port_Main.h:127:1.17 - This > application has discovered an exceptional condition from which
-
Thread
Stoppuhr Normal/Addition/Split, Funktion abhängig von "Taktrate"
einem synchronen Prozess der Reset (wenn für die Funktion überhaupt nötig!) und der Takt in der Sensitivliste. Denn der Simulator (und nur der schert sich überhaupt um diese Liste, dem Synthesizer ist die schnuppe) berechnet bei einer Änderung eines der Signale darin den betroffenen Prozess neu. Nachdem
-
Thread
Einfacher VHDL Zähler
. Aber in der /Realität/ wird dich der Synthesozer darauf hinweisen, dass das Signal A in der Sensitivliste fehlt, und CLK zu viel ist. Und dann wird er eine Warnung ausgeben, weil er eine kombinatorische Schleife gemacht hat: http://www.lothar-miller.de/s9y/archives/42-Kombinatorische-Schleifen.html
-
Thread
Led Matrix - Verbesserung/Tip/Rat zu Design
besser wie "der Rest der Welt": [vhdl] leds_shiften : process(clk) begin -- nur der Takt in der Sensitivliste, dann sieht jeder: voll synchron das Ding if rising_edge(clk) then if (shift_en = '1') then ... [/vhdl]
-
Thread
Ein wirklich blöder Fehler, den ich nicht sehe
sensitivity list. Da hast du aber was in den falschen Hals bekommen. Dem Synthesizer war die Sensitivliste immer schon völlig schnuppe. Der hat sich das (all) ganz einfach so herausgenommen. Und dann lapidar gemeldet, dass die Simulation nicht zur Hardware passt.
: > Nur > Warning (13410): Pin "LED[0]" is stuck at VCC > ist etwas wenig. Naja, wenn die Sensitivliste nicht stimmt, dann gibt es nicht mal eine Warnung, sondern nur eine "Info". Und das, obwohl ganz sicher was anderes herauskommt als in der Simulation.
-
Thread
FSM möglichst einfach und übersichtlich
Concurrent-Beschreibung ist ja nur ein degenerierter Prozess, bei dem alle verwendeten Signale implizit in der Sensitivliste stehen. > bin ich aktuell meist bei der 2-Prozess-Darstellung ... > Das liegt daran, dass ich immer mal wieder eine Latenz 0 benötige, bzw. > nur so die benötigte Performance bekomme (also
-
Thread
Vektorinhalt variabel zuweisen
, wenn to_much ein Signal ist? BTW: falls das so wäre, müsste es auf jeden Fall auch in die Sensitivliste, sonst ist die Simulation falsch... Duke Scarring schrieb im Beitrag #2107310: >> So definiert ehrlich gesagt niemand Vektoren... :-/ > Doch, leider. Xilinx beim Microblaze :-( Es gibt Sachen
-
Thread
Bauen oder nicht bauen ?
Dort wird ein Prozess immer dann ausgeführt, wenn sich eins der Signale in der Liste am Anfang (Sensitivliste) ändert. Für die Synthese gilt das nicht, denn: Stefanus F. schrieb im Beitrag #5941260: > Frage dazu: Wir der Code von oben nach unten ausgeführt > oder läuft das am Ende alles parallel
Ohne Takt gibt es keine Zeit, ohne Zeit keine Ereignisse. Und wenn man in einem Prozess die Sensitivliste falsch ist, stimmen Synthese und Simulation nicht mehr überein. Ist eine nette Fehlerquelle. Die notwendige Denkweise für VHDL (bzw. Hardware) ist überhaupt eher seltsam. Ein Blockschaltbild
-
Thread
Entstehung von Latches
Zweig? Nein, weil z1 mit x*y vorbelegt wird. Trotzdem gilt natürlich, dass in der dortigen Sensitivliste das Signal z1 fehlt und deshalb die Simulation falsch ist. Das ist dort aber dem offenbar unzureichenden Wissen zum Thema "Signale und Variablen" geschuldet. Martin K. schrieb im Beitrag #4818301
-
Thread
Fehler durch Signalabgreifen
dann geht es. BTW: Das Design wird nicht mal richtig simuliert werden, denn hier ist die Sensitivliste falsch: [vhdl] process(global_clk, reset) begin if reset='0' then help<='0'; help_2<='0'; else if (counter = 0) then : end
-
Thread
Flanke vom Signal erkennen
Die Sensitivliste des Prozesses ist unvollständig: [vhdl] Mittelwert: process (REGISTER_CLK) begin S6 <=signed(SAVE6); --- SAVE6 S7 <=signed(SAVE7);
-
Thread
Hauptprogramm mit 2 Prozessen gegen testbench
conv_std_logic_vector(dx_werte(i), 8); i <= i+1; end if; ref_in1 <= r_ref_in1; -- Sensitivliste des Prozesses unvollständig: r_ref_in1 fehlt!!! end if; end process; [/vhdl] Kontrollier erst mal, warum du hier keinen sinnvollen Wert herbekommst.
-
Thread
Daten in flash speichern und abrufen?
when 1 => ADD <= ADD; : [/vhdl] Und dann ist auch noch die Sensitivliste unvollständig. In diesen kombinatorischen Prozess gehören eigentlich FLASH_DATA und ADD und ADD1 auch mit rein. Aber das ist dein kleinstes Problem... > Signal CE,OE : std_logic:='1'; Das
-
Thread
Problem mit FSM
in der Simulation macht, wenn sich IO_CE ändert? Gar nichts. Denn dieses Signal fehlt in der Sensitivliste. Und deshalb wird das Signal fsm niemals auf fsm_stop gesetzt werden. Solche Fehler findet man übrigens am einfachsten in der Simulation. Wenn du den nicht findest, dann mußt du noch ein wenig
-
Thread
use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL;
/s9y/categories/16-Numeric_Std >> process (clk, clk_enable) begin Hierreicht clk in der Sensitivliste aus, denn der Prozess muß nur dann neu berehnet werden, wenn clk sich ändert. EDIT: Hat ein Nibble bei dir 4 Bits? Dann müsste das ein integer range 0 to 15 := 0; sein. Alternativ z.B.
-
Thread
Logisch High/Low/RTL_EQ/Latch
"Zeitunterschied". So ein Prozess passiert per Definition "sofort" mit einer Änderung in der Sensitivliste. > Achja und wie erzeuge ich reine Verzögerungsglieder mit VHDL? Gar nicht. Lies das hier: http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html und exerziere es selber durch.
-
Artikel
VHDL
Variablen verwendet, und eines der Hauptprobleme von Variablen übersehen: sie können nicht in der Sensitivliste eines Prozesses aufgeführt werden. Von diesem Nebeneffekt sind insbesondere speichernde Variablen betroffen. Im Beitrag sind dort ein paar Beispiele aufgeführt. Das Hauptproblem an diesem Verhalten
-
Thread
Kein Bild bei eigenem VGA
es diese "seltsame" Aufteilung der Bitbreiten gibt... Dieser Prozess hat eine fehlerhafte Sensitivliste, dadurch ist die Simulation falsch: die Daten werden dort einen "halben" Takt versetzt an Color weitergegeben. [vhdl] -- Bild ausgeben process(Clock_VGA) begin Color <=