module clk(start,clk_in,clk_out) //clk_in为输入时钟,Start为开始信号
input start,clk_in
output clk_out
reg clk_out
reg clk_out_r
always @(posedge clk_in)
begin
if(!start)
begin
clk_out <= 0
clk_out_r <= 0
end
else
begin
clk_out_r <= ~clk_out_r
clk_out <= clk_out_r
end
end
endmodule
把状态判断和赋值放入 if 的定时器里面,如:
S1:
if( C1 == Time )begin
if( result_con )
拿派 state <= S3
else
没则state <= S2
end
else
begin
C1 <= C1 + 1'b1
Time <= 10'd100
枯敏棚 end
代码程序中的#10是不能被综合的,“#”常被用在Testbench中,代码中可以使用D触发器延时也就是使用“<=”进行赋值,for一般不用在verilog的代码中,因为面积可能很大,有的综合器也可能综合不了它,verilog中可以用计数器代替之。用D触发亏昌器延时一次也只能是一个时钟,也就是一个时钟周期的时间,你要长时间的延时那只能用计数器了,可以用时钟上升沿产生销芦扒计哗陆数器,计到想要的时间了给一个高电平就行了欢迎分享,转载请注明来源:内存溢出
评论列表(0条)