0
我想寫一個滾動移位/環形計數器,需要兩個開關作爲verilog中的時鐘。兩個時鐘環形計數器與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
我試圖用兩個always
塊,但後來想通了,我不能這樣做。當我在always
聲明中使用posedge CLK2
時,我的FPGA上的LED全部保持亮起。
Ofcouse,因爲你有多個驅動程序。您需要爲此分配使用多路複用器。 – Roman
這個問題更多的是關於數字邏輯能做些什麼而不是關於Verilog的語法或語義,所以它可能屬於[Electrical Engineering Stackexchange](http://electronics.stackexchange.com)而不是這裏。 –