私は、ロールシフト/リングカウンタを書き、Verilogのクロックとして2つのスイッチを使用しています。次のように2つのクロックリングカウンタとVerilog
私のコードは次のとおりです。
module roll(CLK1, CLK2, LEDS);
input CLK1;
input CLK2;
output [3:0] LEDS;
reg [3:0] LEDS;
initial
begin
LEDS = 4'b0001;
end
[email protected](posedge CLK1 or posedge CLK2)
begin
if(CLK1)
begin
LEDS[3]<=LEDS[2];
LEDS[2]<=LEDS[1];
LEDS[1]<=LEDS[0];
LEDS[0]<=LEDS[3];
end
// Roll Right
if(CLK2)
begin
LEDS[3]<=LEDS[0];
LEDS[2]<=LEDS[3];
LEDS[1]<=LEDS[2];
LEDS[0]<=LEDS[1];
end
end
endmodule
私は2個のalways
のブロックを使用してみましたが、その後、私はそれを行うことができないことを考え出しました。 always
の文にposedge CLK2
があると、私のFPGA上のLEDはすべてそのまま残ります。
複数のドライバがあるため、Ofcouse。このアサイメントにはマルチプレクサを使用する必要があります。 – Roman
この質問は、Verilogのシンタックスやシンセティックスよりもデジタルロジックでできることが多いため、ここではなく、[Electrical Engineering Stackexchange](http://electronics.stackexchange.com)に属している可能性があります。 –