-
Thread
Ganze Zahl in Ziffern zerlegen
Diese beiden Schreibweisen ergeben genau das selbe Ergebnis. Allerdings kann es im 2. Fall keine unvollständige Sensitivliste geben (weil ja gar keine da ist). siehe: http://www.lothar-miller.de/s9y/archives/16-Takt-im-Prozess.html Aber die Synthesetools können noch mehr: http://www.lothar-miller.de
Sch...lags kaputt... :-/ Nachtrag: >>> 2.) Mit einem wait until ist natürlich keine Sensitivliste nötig bzw. erlaubt: [vhdl] process begin wait until rising_edge(clk); : end process; [/vhdl]
-
Thread
vhdl process zeitablaufdiagramm
dass man die Grundfunktion eines "AND" verstanden hat und es erkennen kann. Wenn man, um das "unvollständige Sensitivliste"-Problem zu umgehen, einfach nur den Prozess in eine nebenläufige Beschreibung umsetzen will, dann eher so: [vhdl] y <= '0' when a='0' else '0' when b='0' else '0' when
-
Thread
rsing_edge Problem
[/vhdl] Wie sollte denn bitteschön das Bauteil aussehen, das sowas kann? BTW: zudem ist die Sensitivliste unvollständig, da würde cnt fehlen :-/ Probiers so: [vhdl] process(value) begin if rising_edge(value) then if (cnt = 98) then cnt <= (others
-
Thread
Volladdierer, Probleme mir Simulation
nimmt aber den alten Wert von temp für seine Berechnungen. Ein klarer Fall einer falschen, unvollständigen Sensitivliste :-o Am einfachsten wäre eine Verkettung im Prozess: [vhdl] Volladdierer : process (X,Y,Cin) begin case X & Y & Cin is -- Verkettung der Eingangssignale
-
Thread
VHDL Einsteigerfragen
Prozesses sieht anders aus. 2. die Simulation ist falsch, weil /counter/ und /duty_cycle/ in der Sensitivliste fehlen. 3. die Sache mit dem Multiplizierer solltest du besser so lösen: [vhdl] case ASI_ASIC_IN_DUTY is when "01" => duty_cycle <=3300; when "10" => duty_cycle <
eigentlich" ja (muss nicht streng für alle Simulatoren gelten, einige ergänzen wohl z.B. auch unvollständige Sensitivity-Listen.) In der FPGA-Hardware existieren keine "Prozesse, die abgearbeitet werden". Dort ist die Fragestellung also sinnlos. Alex schrieb im Beitrag #3847280: > Und gibt es Probleme
-
Thread
Problem bei AC97-Codec Ansteuerung (LM4550)
dann arbeite, um die Frames zu übertragen... Du hast natürlich recht dass meine Sensivity-Liste unvollständig ist, ich habe viel herumexperimentiert weshalb noch das ein oder andere Artefakt im Code vorhanden ist... Muss aber zu meiner Verteidigung sagen dass sich bisher keine Auffälligkeiten nach einem
is when reset => led1 <= '1'; [/vhdl] clk ist in der Sensitivliste nicht nötig, weil er im Prozess gar nicht verwendet wird. Korrekterweise müsste aber /current_state/ da rein. Aber: zum Glück macht das der Synthesizer automatisch... ;-) Nur: die Hardware
-
Thread
Seltsames Verhalten im Design
für die vielen Antworten. Schlumpf schrieb im Beitrag #3088400: > Am Ende lag es an einer unvollständigen Sensitivity-Liste. Immer wieder lese ich, dass die Sensitivity-List mehr für die Simulation seinen Zweck hat, als für die Implementierung des Designs. Aber abgesehen davon gestalte ich meine
des Designs. Ersetze "mehr" duch "ausschließlich". Dann passts. Die Synthese /erweitert/ die Sensitivliste selber und weißt dich dann mit eine Info darauf hin, dass die Simulation nicht zur Hardware passen wird... > Was ich noch zu Prozessen mal fragen will. Ist es besser viele > Funktionen und
-
Thread
Prozess mit kombinatorischer und getakteter Logik
ebenjenem Ausgang bildet. Könnte mich natürlich auch täuschen, wenn man zusammenhangslosen unvollständigen Code postet. Aber mein Vorschlag wäre Shiftcnt zu registern. Mfg
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
Ausgabe an LED's
selber feststellen, dass dem so ist. >Der Code stimmte, allerdings war die Sensitivity-List unvollständig und Says who? >nach der Implementierung auf die Zielhardware traten immer wieder >äusserst seltsame Fehler auf, die dann verschwanden, sobald die >Sensititivty-Liste vollständig beschrieben
Ich hab nur gesagt, dass ich einmal schlechte Erfahrungen gemacht habe, und diese auf eine unvollständige Sensitivity-Liste zurückführe. Daher der Hinweis meinerseits. Woran es letztendlich lag, das konnte ich bis heute nicht feststellen. Kann natürlich auch ein Fehler im Compiler sein, der genau
-
Thread
Lauflicht mit VHDL
.. BTW: 1. man macht keine solchen seltsamen kombinatorisch-getakteten Prozesse. 2. die Sensitivliste des Prozesses ist unvollständig: Qn fehlt. Und zum Thema Lauflicht: http://www.lothar-miller.de/s9y/archives/61-Lauflicht.html
-
Thread
Quartus. Case statement mit 256 when wirft Fehler
Werden da tatsächlich nur Konstanten zugewiesen oder ist die Sensitivliste unvollständig?
-
Thread
ISE 13.1 - VHDL 2008?
Signale automatisch hinzugefügt, und dann eine nette Info ausgegeben, dass die Liste eigentlich unvollständig sei. Dieses process (all) statement braucht also eigentlich /ausschliesslich/ der Simulator. Weil ja auch nur der die Sensitivliste /überhaupt/ braucht... Und was viel schlimmer ist: mit
-
Thread
VHDL Einsteigerset
Hardware aber nicht bzw. unterschiedlich. Als Probleme kenne ich bis jetzt (als Hobbyist) nur unvollständige SensitiveLists (eigener Fehler), Übergänge zwischen Taktdomänen oder Interfaces zu externen Chips (OFFSET-Constraints..). Gruss, Hobbie
seinen Studenten... ;-) > bzw. unterschiedlich. Du mußt nur mal einen kleinen Fehler in die Sensitivliste eines Prozesses machen, dann hast du sofort einen Unterschied: [vhdl] process (clk) begin a <= b; end process; [/vhdl] Das sieht jetzt in der Simulation aus, als wenn der Prozess
-
Thread
Entstehung von Latches
helfen könnt. Also soweit ich mitbekommen habe, sollte man bei der kombinatorischer Logik unvollständige IF-Anweisungen vermeiden, sprich alle Möglichkeiten abdecken, da sonst Latches entstehen können. Meine Frage wäre jetzt, ob diese "Regel" genauso für eine sequentielle Logik gilt und ob falls
irgendwelchen sonderbaren Latches, die man benötigt (sofern überhaupt) sehe ich keinen Grund, sie durch unvollständiges VHDL zu beschreiben.
-
Thread
Textausgabe mittels SPI an Lattice FPGA
zusammenzumantschen. Da verliert man schnell mal den Überblick! Z.B. ist in diesem Fall die Sensitivliste /absolut unvollständig/! Da gehört alles rein, was eine /Neuberechnung/ des Prozesses nötig macht: pi1_SCLK, s1_SCLK_next, pi1_Enable, pi1_Enable2, s1_Blocked, usw. Aber sicher nicht s1_SCLK_Fall
-
Thread
Xilinx Spartan 3E: Code geht bei der Translation kaputt
> Wenn der Code hier fehlerfrei ist Wenn die Simulation läuft (und nicht solche seltsamen unvollständigen Sensitivlisten hat, die dann aber der Synthesizer anmeckert), dann ist der Code fehlerfrei. > was könnte sonst den Reset-Wert des Zählers beeinflussen? Wenn du den Zähler eigentlich nie verwendest
-
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
syntax error bei Lattice Diamond
/muss... ;-) Das sieht man dann auch an der beliebigen Struktur des Prozesses und seiner unvollständigen Sensitivliste. Sieh mal in dein VHDL Buch: entweder ist ein Prozess synchron oder kombinatorisch. Aber nicht irgendeine vogelwilde Kombination von beiden. BTW: bitte künftig die [ vhdl ] Tags
-
Thread
Ein- oder Zwei-Prozess-Darstellung für FSM
Aber mit /passiert sowas/ meinte ich, dass es eben nicht gewollt war. Und dann bekommt man eine unvollständige Sensitivliste und die Simulation passt nicht zur Hardware... > Mein Vorschlag mit den Selbstzuweisungen zielt darauf ab das ich die > Erfahrung gemacht habe das die Synthesetools (arbeite bevorzugt
-
Thread
Einige Fragen zum VHDL
signal_2 <= signal_1; else signal_2 <= signal_1_save; end [/vhdl] weil (wieder mal) die Sensitivliste unvollständig ist :-/ Da müsste nämlich noch signal_1_save mit rein.
-
Thread
Lauflicht mit vorgegbenen Clkgen
Prozess /Counter/ ist eine Mischung aus Kombinatorik und getaktetem Prozess. Zudem ist seine Sensitivliste unvollständig. Da passt die Simulation nie zur Realität... Mo schrieb im Beitrag #5690228: > Die clkgen.vhd sowie die Datei CT.vhd wurde vorgegeben und gesagt, dass > sie verwendet werden
-
Thread
Latchs bei FSM
unterstützt. Einen Vorteil hat das (all) allerdings unbestritten: es gibt auch in der Simulation keine unvollständige Sensitivlisten mehr. Insgesamt tendiere ich allerdings auch dazu, Kombinatorik nebenläufig zu beschreiben. Nur selten braucht man da wirklich einen Prozess.
-
Thread
VHDL Text für die Ertönung eines 1 kHz Tons
[vhdl] FOLGEZUSTANDSBERECHNUNG: process (taste,ZUSTAND) [/vhdl] Unvollständige Sensitivliste, B und co fehlen --> fehlerhafte Simulation Aber das ist nicht so schlimm. Schlimm ist der Aufwand, den du treibst. Eine Abfrage auf eine steigende bzw. fallende Flanke geht ganz
-
Thread
VHDL Signal Teilen und in die nächst höhere Adresse schreiben
Markus G. schrieb im Beitrag #6501147: > Ich habe die CLK miteinbezogen Generell wäre so die Sensitivliste unvollständig. > if(rising_edge(Clk) and en_read = '1') then > outputsignal <= ram(to_integer(unsigned(addr2))); > elsif(rising_edge(Clk) and en_write = '1') then Steht das so im Userguide
-
Thread
Case konstrukt
kombinatorisch machst, dann wird er auf jeden Fall ein > paar Latches anmeckern. Zudem ist die Sensitivliste unvollständig: [vhdl] process (DATA_LOADED, DATA_IN_SIG) begin if DATA_LOADED = '1' then if (MAX_SIG < DATA_IN_SIG) then -- Ja, holla: MAX_SIG fehlt in der Senslist
-
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
gehen an , wenn das 3.Bit von cnt erreicht ist. Das ist prinzipiell richtig, aber halt nur unvollstaendig... Auch die LEDs 1 und 3 gehen an. Und interessant sind die Phasenlagen der 4 LEDs... Das kannst du mit einem 4-Kanal Oszilloskop an der echten HW nachschauen oder eben halt den Simulator bemuehen
-
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
Ein fuer alle mal: Signal <signal> cannot be synthesized, bad synchronous description.
lernst "so kann man es machen!", dann wirst du später noch mal Sorgen damit haben... Diese Sensitivliste ist unvollständig (es fehlen sig_anodos, sw, selsect_cntMSECs10 und save_cnt) und und zudem ist da mittendrin nochmal ein Takt versteckt: [vhdl] process(cntDisp(16)) ------ hier fehlt was
-
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
Vektorinhalt variabel zuweisen
bei der Synthese mit Signalen Warnungen wegen Einfügen von Latches bei to_much( was ich wegen unvollständiger Zuweisung nachvollziehen kann), mit Variablen gibt es keine Warnung -> daher meine Annahme
, 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
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
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
Flanke vom Signal erkennen
Die Sensitivliste des Prozesses ist unvollständig: [vhdl] Mittelwert: process (REGISTER_CLK) begin S6 <=signed(SAVE6); --- SAVE6 S7 <=signed(SAVE7);