Hi,
ich bin noch etwas unerfahren mit VHDL. Ich möchte ein DFF beschreiben
das sich >> SYNCHRON << bei einem bestimmten Zählerstand setzt und sich
anderen falls >> SYNCHRON << zurück setzt (auf Null). Habe jetzt viel
rumprobiert und das Xilinx Synthese baut immer mal einen Asynchronen
reset
oder ein asynchrones Set ein (gesehen in der Schematic). Hier der
Codeausschnitt.
1 | process(clk)
|
2 | begin
|
3 | if rising_edge(clk) then
|
4 | counter <= counter + 1;
|
5 | if counter = 319 then
|
6 | counter <= 0;
|
7 | end if;
|
8 | if counter = 319 then
|
9 | outp <= '1';
|
10 | elsif counter /= 319 then
|
11 | outp <= '0';
|
12 | end if;
|
13 | end if;
|
14 | end process;
|
Der Synchrone Reset des Zähler (counter) funktioniert. Counter steht auf
319. Bei der nächsten Taktflanke ist der sReset Eingang auf High un der
Counter resetet sich. Das signal outp kann doch einfach mit dem
Vergleicher
gesetzt werden. Also Vergleicherausgang 1 --> DFF wird auf eins gesetzt,
Vergleicherausgang 0 --> DFF wird auf null gesetzt.
Bei diesem Programmausschnitt baut er mir allerdings ein Ashyncrones
Reset ein welches das DFF resettet wenn der Vergleicher eine Null
ausgibt. Daraus folgt doch das outp nur sehr kurz auf eins liegt, also
keine ganze Taktperiode.
Danke für Antworten.
mfg