verilog中延时的控制,望各位高手给点思路
本人是一个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 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;
assign sel2=cnt;
assign sel3=cnt;
assign sel4=cnt;
assign sel5=cnt;
assign sel6=cnt;
assign sel7=cnt;
assign sel8=cnt;
endmodule 我的QQ:491106543。邮箱:laner_6sl@163.com,希望可以和各位交流学习。 回复 2# miwueshine
可以用计数器实现时钟的延迟 回复 3# polozpt
谢谢 您的指导,这个输出有优先级,是我没有说明白。呵呵。实现这样的输出:
采用8位计数器的每一位状态控制各级开关(sel1...)的输出(通过这些开关的转换实现不同优先级数据的操作),最高位控制第一级,由于上一级的数据进入下一级需要一个时钟,所以下一级的开关转换时刻比上一级延迟一个时钟周期。 我的这个只是实现了延时,时序不对,请各位帮下忙,非常感谢
页:
[1]