Christian schrieb:
> Ich würde mich sehr freuen wenn mir jemand hilft
Mach das nächste Mal die [vhdl ] Tokens um deinen Code.
Poste doch mal den gesamten Code. Der beginnt schon vor "entity"...
Christian schrieb:
> Generis
> Beginn
Wäre es nicht sinnvoll, den Code einfach mal dem Simulator oder dem
Synthesizer zu geben, dass die solche einfachen Fehler gleich mal
anmäkeln können?
Christian schrieb:
> wollte fragen wie ich den Zähler da zu kriege, das er bei einen
> Nulldurchgang bei null anhalten soll?
Vergleiche den Zählerwert gegen "0000...000" und zähle dann nicht, wenn
er diesen Wert hat.
> Und könnte mir einer erklären wie der Zähler funktioniert?
Das ist ein Binärzähler, der mit jedem Takt eins hochzählt. Dann wird
unnötigerweise kontrolliert, ob alle Bits "111...11" sind und in diesem
Fall der Zähler auf "000...000" gesetzt. Unötigerweise deshalb, weil das
der Zähler sowieso von sich aus gemacht hätte.
Ich würde das Anhalten so machen:
1 | Signal start: std_logic := '0';
|
2 |
|
3 | Beginn
|
4 | Process
|
5 | Beginn
|
6 | Wait until clk='1';
|
7 | If (res='1') Then qtmp<=(others=>'0');
|
8 | start<='1';
|
9 | Elsif (qtmp/=(qtmp'range=>'0') or start='1') Then
|
10 | (qtmp<=qtmp+1)
|
11 | start <= '0';
|
12 | End if;
|
13 | End process;
|
14 | q<=qtmp;
|
15 | End Beharvioral
|
Christian schrieb:
>> schon mal simuliert
> Ja
Das war aber 100% nicht dieser Code...
> aber nur mit Hilfe hab ich es geschafft
Ja, und was hast du daraus gelernt? Welche Erkenntnisse hast du
gewonnen?