Hallo Zusammen, ich habe da ein kleines Problem mit meinem Projekt... Das Signal dIn_neu ist in der Simulation immer mit einem 'X' versehen, also Buskonflikt, aber ich finde meinen Fehler nicht, da der SD-Wandler alleine getestet funktioniert und auch der Sinusgenerator geht, kann mal einer draufschauen, ob er einen Fehler findet, danke schonmal
Gast
#1892393
Es ist etwas schwierig sich durch deine Files durchzusehen,
ich denke es wäre gut die Datei und die entity jeweils
gleich zu benennen. (z.B.: Entity "SDModulator" == Datei
"SDModulator.vhd").
nun sah ich bei kurzem durchsehen dies hier:1 | |
2 | |
3 | |
4 | |
5 | |
Da wird, so glaub ich, kein Flipflop daraus, sondern ein Multiplexer der durch "clk" gesteuert wird. ein Flipflop sieht eher so aus:
1 | |
2 | |
3 | |
4 | |
Weitere Beispiele hier http://www.lothar-miller.de/s9y/categories/34-Getakteter-Prozess
Morgen, nein da wird schon auch ein flip-flop draus. Aber es gibt da einen Undefine zustand am Anfang den ich nicht mehr los werde.
Florian Z. schrieb: > nein da wird schon auch ein flip-flop draus. Garantiert niemals!
1 | |
2 | |
3 | |
4 | |
Was passiert denn bei dieser Beschreibung mit dIn_alt, wenn clk='1' ist und dIn_neu sich ändert? bko schrieb: > Da wird, so glaub ich, kein Flipflop daraus, sondern > ein Multiplexer der durch "clk" gesteuert wird. Schlimmer noch: es ist ein zurückgekoppelter Multiplexer. Besser bekannt und berüchtigt unter dem Namen Latch... :-o >>> immer mit einem 'X' versehen > Undefine zustand am Anfang Ja, was denn jetzt: 'U' oder 'X'?
Florian Z. schrieb: > Aber es gibt da einen Undefine zustand am Anfang den ich nicht mehr los > werde. Probier mal das:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Und überleg dir dann, warum das hilft... Und ersetz diese Zeilen:
1 | |
2 | |
3 | |
4 | |
Durch diese hier:
1 | |
2 | |
Erst dann passt der Kommentar... :-/ BTW: Bei sowas hier:
1 | |
2 | |
3 | |
4 | |
Kannst du drei Zeilen streichen:
1 | |
Gast
#1893792
@lkmiller ja der ise (10.1) macht daraus ein Latch: >with clk select > dIn_alt <= dIn_neu when '1', > dIn_alt when others; Staun - hab das eben mal eingegeben >-- Erzeugen des D-FlipFlop zum Zwischenspeichern -- > dIn_alt <= dIn_neu when rising_edge(clk); ... und das ise erzeugt ein Flipflop, tja man lernt nicht aus: Aber hier noch ein Zusatz zur Schrittkette http://www.lothar-miller.de/s9y/categories/34-Getakteter-Prozess (aus dem ise-xst-Manual 10. Seite 494) [vhdl] architecture ARCH of EXAMPLE is begin process begin SEQ_LOOP : loop wait until CLK'EVENT and CLK = '1'; exit SEQ_LOOP when RST = '1'; RESULT <= DATA1; wait until CLK'EVENT and CLK = '1'; exit SEQ_LOOP when RST = '1'; RESULT <= DATA2; wait until CLK'EVENT and CLK = '1'; exit SEQ_LOOP when RST = '1'; RESULT <= DATA3; wait until CLK'EVENT and CLK = '1'; exit SEQ_LOOP when RST = '1'; RESULT <= DATA4; end loop; end process; [\vhdl] Die Beispiel geb ich bei Gelegenheit mal ins unser S..teures Synopsys Synthese tool ein ... end ARCH;
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
