1位十进制可逆计数、译码、显示电路设计

计数器同样由三个模块构成,分别为:顶层,计数器和译码器。

一、实验任务

大家这会儿数电理论课应该还没学到这里,所以对以上的部分名词进行解释:

1.异步清零(clr)

指不管现在时钟信号(clk)是什么,跑到哪儿了,只要你按下异步清零的按钮,计数器就应该马上归零。

2.同步使能(en)

其实就是一个计数器是否开始工作的开关,关闭了使能开关,计数器将会停在当前的计数值,不再随时间信号进行计数。

3.同步置数(load)

一个非常面向使用对象的功能。让使用者输入一个数值(预置数),再从这个数值进行加/减计数,因为是随着下一个时钟信号的到来才开始计数的,所以叫同步置数。

二、实验分析

输入信号:

clkin(时钟),clr(异步清零),upd(加减计数),en(使能开关),[3:0]data(预置数),load(同步置数)

输出信号:

seg0(位选),[3:0]Q(波形),[6:0]codeout (译码器),CO(进位信号)

三、代码

顶层文件:

module w_2495_03(codeout,  Q, clkin, clr, CO, upd, en, load, seg0, data);
input  clkin, clr, upd, en, load;
input  [3:0] data;
output[6:0] codeout;
output [3:0] Q;
output CO,seg0;

w_2495_03_2(clkin, clr, Q, CO, upd, en, load, data );
w_2495_03_1 (codeout,Q,seg0);

endmodule

译码器:

module w_2495_03_1 (codeout, Indec,seg0);  //译码器
input[3:0] Indec;
output[6:0] codeout;
reg [6:0]codeout;
output seg0;
assign seg0 = 1;
always@(Indec)
begin
    case(Indec)
	 4'd0 : codeout=7'b111_1110; 
    4'd1 : codeout=7'b011_0000;
    4'd2 : codeout=7'b110_1101;
    4'd3 : codeout=7'b111_1001;
    4'd4 : codeout=7'b011_0011;
    4'd5 : codeout=7'b101_1011;
    4'd6 : codeout=7'b101_1111;
	 4'd7 : codeout=7'b111_0000;
    4'd8 : codeout=7'b111_1111;
    4'd9 : codeout=7'b111_1011;
	 default: codeout=7'bx;
	 endcase
	end
endmodule

计数器

module w_2495_03_2(clkin, clr, Q, CO, upd, en, load, data);   //十进制计数器
input  clkin, clr, upd, en, load;
input  [3:0] data;
output [3:0] Q;
reg [3:0]Q;
output wire CO;

always@(posedge clkin, posedge clr)

if(clr)          //异步清零(为1时)
    Q<=4'd0;
else if(!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值