0
目前我正在嘗試執行this項目,而我被困在移位寄存器中。 事情是,我非常確定他們希望我們用d觸發器來實現這一點,但我只見過簡單的if/then轉換器。帶d觸發器的旋轉移位寄存器verilog
到目前爲止,我已經得到了每一個模擬照明的重置信號的持續時間,因爲我用它來輸入。但是,這個目標的全部目標是讓每個指示燈僅點亮一個時鐘,並無限旋轉。
這裏是我的問題:我如何從一開始就將輸入作爲一個開始,以及如何實現,因此復位信號不會影響後續LED亮起多久? (交替question-我要對這個只是讓不正確的,我應該放棄,現在和採取不同的方式?)
器代碼:
module shift_reg(
input clk,
input rst,
output [7:0] led
);
//connector wire between flipflops
wire [7:0] bitshift;
// creating the shifter out of d flipflops
//1st one
d_ff d_ff0(
.clk(clk),
.rst(rst),
.D(bitshift[0]),
.Q(bitshift[1])
);
//middle ones
genvar i;
generate
for (i=1; i<7; i=i+1)
begin : d_ff_gen_label0
d_ff d_ff_inst1(
.clk(clk),
.rst(rst),
.D(bitshift[i]),
.Q(bitshift[i+1])
);
end
endgenerate;
//last one
d_ff d_ff1(
.clk(clk),
.rst(rst),
.D(bitshift[7]),
.Q(bitshift[0])
);
assign led = bitshift;
endmodule
D觸發器代碼:
module d_ff(
input D,
input clk,
input rst,
output reg Q
);
always @(posedge 9clk0, posedge (rst))
begin
if (rst == 1)
Q <=1'b0;
else
Q <= D;
end
endmodule
我假設你的意思'(CLK) ',而不是'9clk0' ... – wilcroft