Ich versuche tatsächlich 3 Tage, um meinen Code funktioniert. Ich habe ein Dev-Board mit gemultiplexten 7-Segment-Display - es funktioniert. Das Problem ist, wenn ich versuche, eine Variable zu erhöhen. Ich habe folgenden Code geschrieben:Verilog - Inkrementieren Variable mit den Tasten
assign buttons = debouncedL | debouncedR;
always @(posedge buttons or negedge RES) begin
if(~RES) number <= 0;
else if(debouncedL) number <= (number + 10);
else if(debouncedR) number <= (number + 1);
end
Und es funktioniert nicht. Wenn ich die Taste R drücke, wird die Variable um 1 erhöht, aber wenn ich L drücke passiert nichts. Nach dem Ändern der Positionen beider else if
funktioniert die L-Taste immer noch nicht und die angezeigte Nummer wechselt zwischen 0000 und 0001, nachdem die R-Taste gedrückt wurde. Es könnte eine neue Frage sein, aber ich kann keine Lösung im Buch und im Internet finden. Kannst du mir helfen? Vielen Dank im Voraus.
Wie wird 'number' definiert? – wilcroft
Das ist: 'reg [13: 0] Nummer;' – Kma
Wie implementiert Ihr FPGA Toolkit dies? Ich denke, dass Ihre seltsame Trigger-Logik es schwieriger macht, dies zu synthetisieren als ein synchrones Design. – hexafraction