Mo schrieb:
> Wie kann Ich mein Programm ändern ?
Vorneweg: die Sensitivliste deiner Beschreibung muss hier eigentlich nur
den Takt enthalten. DIR ist unnötig, denn der Prozess mus bei einer
Änderung von DIR nicht neu berechnet werden:
1 | counter:process(ClkLeft,DIR)
|
Als Tipp: die Sensitivliste ist ausschließlich für den Simulator
relevant. Der Synthesizer nimmt "automatisch" fehlende signale dazu oder
lässt überflüssige weg. Allerdings passt bei einer falschen
Sensitivliste das Simulationsergebnis nicht mehr unbedingt zum
Syntheseergebnis und damit zum Verhalten der Hardware.
> Wie kann Ich mein Programm ändern ?
Sieh dir an, wie ein asynchroner Reset üblicherweise beschrieben wird.
Du findest das in jedem beliebigen VHDL-Buch:
1 | counter:process(ClkLeft,RES)
|
2 |
|
3 | begin
|
4 | if RES = '1' then
|
5 | LED<="0000";
|
6 | elsif rising_edge(ClkLeft) then
|
7 |
|
8 | if DIR = '1' then
|
9 | :
|
10 | :
|
Damit ist dann auch der "Reset-Prozess" unnötig.
Deinen 4-Bit-Zähler würde ich übrigens so schreiben:
1 | library ieee;
|
2 | use ieee.std_logic_1164.all;
|
3 | use ieee.numeric_std.all;
|
4 |
|
5 | -- use work.all; -- unnötig, weil soweiso im Projekt
|
6 | -- library machxo2; -- unnötig, weil hier nicht verwendet
|
7 | -- use machxo2.components.all;
|
8 |
|
9 | entity bit is
|
10 | port(
|
11 | ClkLeft: in std_logic;
|
12 | LED_in: in std_logic_vector(3 downto 0);
|
13 | DIR: in std_logic;
|
14 | LED_out: out std_logic_vector(3 downto 0)
|
15 | );
|
16 | end entity bit;
|
17 |
|
18 | architecture behaviour of bit is
|
19 | signal counter: unsigned(3 downto 0):="0000";
|
20 | begin
|
21 |
|
22 | counter:process(ClkLeft,RES)
|
23 | begin
|
24 | if RES = '1' then
|
25 | counter <= "0000";
|
26 | elsif rising_edge(ClkLeft) then
|
27 |
|
28 | if DIR = '1' then
|
29 | counter <= counter + '1';
|
30 | else
|
31 | counter <= counter - '1';
|
32 | end if;
|
33 | end if;
|
34 | end process counter;
|
35 |
|
36 | LED_out <= std_logic_vector(counter);
|
37 | end architecture behaviour;
|
Mo schrieb:
> tic<= tic + 1;
> tic zählt ja die positiven Signale der Clk
Dieser tic "zählt" die steigenden Flanken vom Takt.
Ein Tipp: du musst an deiner Wortwahl arbeiten. Mit deiner derzeitigen
Semantik verwirrst du Gesprächspartner. Dass die Signale zudem beliebige
Namen haben, die nichts über ihre Funktion aussagen, verwirrt zudem.
Und wenn sie an jeder Schnittstelle ihren Namen wechseln, macht das
die Sache nicht besser...
Mo schrieb:
> plan.JPG
Screenshots besser als (nicht verlustbehaftete) PNG-Datei anhängen. Bei
JPEGs werden Screenshots dank der Komprimierung automatisch "unscharf"
mit verwaschenen Linien und Kanten.