|
本人是一个fpga初学者,在学习的过程中,遇到一点问题,先请各位高手帮忙,先谢谢大家!!
我想用一个8位计数器的每一位状态实现对8个开关的控制,即用计数器的最高位控制第一个开关,次高位控制第2个,依次类推,用最低位控制第8个开关,
要求后一个开关的整个输出比前一个开关延迟一个时钟。
我自己觉得不是很难,可是延迟那个没有弄好,希望大家帮忙看看!谢谢!下边是程序,只实现了开关的控制,延迟没有实现。
module sel_control_8xm(clk,rst_n,sel1,sel2,sel3,sel4,sel5,sel6,sel7,sel8);
input clk,rst_n;
output sel1,sel2,sel3,sel4,sel5,sel6,sel7,sel8;
wire sel1,sel2,sel3,sel4,sel5,sel6,sel7,sel8; //分别为8个开关
reg [7:0] cnt; //计数器
always@(posedge clk or negedge rst_n)
begin
if(!rst_n) begin
cnt<=8'd0;end
else if (cnt==8'b11111111)
cnt<=8'd0;
else
cnt<=cnt+1'b1;
end
assign sel1=cnt[7];
assign sel2=cnt[6];
assign sel3=cnt[5];
assign sel4=cnt[4];
assign sel5=cnt[3];
assign sel6=cnt[2];
assign sel7=cnt[1];
assign sel8=cnt[0];
endmodule |
|