概述
设计代码
`timescale 1ns / 1ps
module Test0953(clk,reset,count);
input clk;
input reset;
output [3:0] count;
reg [3:0] count;
parameter zero=0,one=1,two=2,three=3,four=4,five=5,six=6,seven=7,eight=8,nine=9;
reg [3:0] pr_state,nx_state;
///
always @(posedge clk)
if(reset)
pr_state<=zero;
else
pr_state<=nx_state;
//
always @(pr_state)
case(pr_state)
zero:begin
nx_state=one;
count=4'b0000;
end
one:begin
nx_state=two;
count=4'b0001;
end
two:begin
nx_state=three;
count=4'b0010;
end
three:begin
nx_state=four;
count=4'b0011;
end
four:begin
nx_state=five;
count=4'b0100;
end
five:begin
nx_state=six;
count=4'b0101;
end
six:begin
nx_state=seven;
count=4'b0110;
end
seven:begin
nx_state=eight;
count=4'b0111;
end
eight:begin
nx_state=nine;
count=4'b1000;
end
nine:begin
nx_state=zero;
count=4'b1001;
end
default:nx_state=0;
endcase
endmodule
测试代码
`timescale 1ns / 1ps
module Test1006;
reg clk;
reg reset;
wire [3:0] count;
always begin
#10 clk=1;
#10 clk=0;
end
initial begin
clk=0;
reset=1;
#20 reset=0;
#4000;
end
Test0953 x1(.clk(clk),
.reset(reset),
.count(count));
endmodule
要求和代码逻辑比较简单,就不放置仿真波形了,可以自己去做仿真看。
最后
以上就是帅气啤酒为你收集整理的Verilog代码BCD计数器的全部内容,希望文章能够帮你解决Verilog代码BCD计数器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复