Verilog数字系统设计——10进制计数器,具有异步复位功能
题目
- 编程实现10进制计数器,具有异步复位功能,十位和个位用8421BCD码表示,各端口定义如下图所示:
- 仔细考虑端口定义中每个端口的含义;
- 要求完成程序编辑、编译、时序仿真;
- 实验提交Verilog设计文件(.v文件)、仿真波形截图以及对于第3个步骤所提出问题的回答,文件打包,压缩包以自己的学号+姓名命名;
i_clk时钟
I_rest复位
i_load置位
i_datin置位的数
o_cout10进制的进位端
o_count 计数值
下面展示一些内联代码片
。
module Decimal_counter(c_count,cout,i_datin,i_load,i_cin,i_rest,i_clk);
output [7:0]c_count;
output cout;
input [7:0]i_datin;
input i_load,i_cin,i_rest,i_clk;
reg [7:0]c_count;
// reg cout;
always @(posedge i_clk or negedge i_rest)
begin
if (!i_rest)
c_count=0;
else if (i_load)
c_count=i_datin;
else if (i_cin)
begin
if(c_count[3:0]==9)
begin
//cout=1;
c_count[3:0]=0;
if(c_count[7:4]==9)
c_count[7:4]=0;
else
c_count[7:4]=c_count[7:4]+1;
end
else
begin
c_count[3:0]=c_count[3:0]+1;
//cout=0;
end
end
end
assign cout=((c_count[7:0]==8'b10011001)&i_cin)?1:0;
endmodule
下面展示一些 内联代码片
。
module Decimal_counter_test();
reg [7:0]i_datin_t;
reg i_cin_t,i_load_t;
reg i_rest_t,i_clk_t;
wire [7:0]c_count_t;
wire cout;
Decimal_counter Decimal_counter1(.c_count(c_count_t),.cout(cout_t),.i_datin(i_datin_t),.i_load(i_load_t),.i_cin(i_cin_t),.i_rest(i_rest_t),.i_clk(i_clk_t));
initial
begin
i_rest_t=1;
i_clk_t=0;
i_load_t=0;
i_cin_t=0;
i_datin_t[7:0]=8'd3;
#20 i_rest_t=0;
#40 i_rest_t=1;
#100 i_load_t=1;
#120 i_load_t=0;
end
always #10 i_cin_t=~i_cin_t;
always #5 i_clk_t=~i_clk_t;
endmodule
下面展示一些 内联代码片
。文章来源:https://www.toymoban.com/news/detail-508635.html
// A code block
var foo = 'bar';
module Decimal_counter(c_count,cout,i_datin,i_load,i_cin,i_rest,i_clk);
output [7:0]c_count;
output cout;
input [7:0]i_datin;
input i_load,i_cin,i_rest,i_clk;
reg [7:0]c_count;
reg cout;
always @(posedge i_clk or negedge i_rest)
begin
if (!i_rest)
c_count=0;
else if (i_load)
c_count=i_datin;
else if (i_cin)
begin
if(c_count[3:0]==9)
begin
cout=1;
c_count[3:0]=0;
if(c_count[7:4]==9)
c_count[7:4]=0;
else
c_count[7:4]=c_count[7:4]+1;
end
else
begin
c_count[3:0]=c_count[3:0]+1;
cout=0;
end
end
end
//assign cout=((c_count[3:0]==9)&i_cin)?1:0;
Endmodule
文章来源地址https://www.toymoban.com/news/detail-508635.html
到了这里,关于Verilog数字系统设计——10进制计数器,具有异步复位功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!