数电实验二:简易计算器(实验报告) 下载本文

数电实验2实验报告

1、 设计修改方案

(1)加入编码器连接4选一数据选择器,控制进行运算的种类

x1[0..3]y2[0..3]INPUTVCCINPUTVCCmux_4x[3..0]sub1[3..0]sub2[3..0]add1[3..0]add2[3..0]mul1[3..0]mul2[3..0]encodesw3[3..0]INPUTVCCb[1..0]b[1]b[0]y[3..0]s0s1a[3..0]b[1..0]inst14div1[3..0]div2[3..0]inst13

编码器模块功能: 用4个单独的单位负脉冲按键对计算进行控制,4个按键不按时全部为1111,当第一个按键按下后,输入变为0111,则编码器输出00(执行除法),当第二个按键按下后,输入变为1001,则编码器输出01(执行乘法),同理按下第三、四个键时则输出10、11。以此控制计算器的计算方法。encodea[3..0]b[1..0]编码器模块程序 module encode (a,b); input[3:0] a; wire[3:0] a; output[1:0] b; reg[1:0] b; always@(a) begin case(a) 4'b0111:b<=2'b00; 4'b1011:b<=2'b01; 4'b1101:b<=2'b10; 4'b1110:b<=2'b11; default:b<=2'b00; endcase end endmodule inst11 (2)修改了输出端数据选择器的程序,使得当计算器没有任何输入时,结果显示保持为0,并且利用芯片自身的灭零管脚,让显示结果中,当十位为零时,十位的零不显示。

2、 实验数据及分析

(1)修改后电路图(附后) (2)仿真波形

设置输入2个4位二进制数为0110(十进制6)和0010(十进制2),计算方式控制SW[3:0]设为0111,即模拟除法操作,加入时钟信号。

①模拟除法波形:

可以看到十位(商)的数码管显示中,1、2、3、4、7段亮,显示为数字3,而个位(余数)显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6除2商3余0。满足计算要求。

②模拟乘法波形:(SW[3:0]设为1011,其他输入同上)

可以看到个位的数码管显示中,1、4、5、6段亮,显示为C(化为十进制为12),而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6乘2等于0C,即等于12。当改变输入4和2是,显示结果为8,。满足计算要求。

③模拟加法波形:(SW[3:0]设为1101,其他输入同上)

可以看到个位的数码管显示中,1、2、3、4、5、6、7段全亮,显示为数字8,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6加2等于08,即等于8。满足计算要求。

④模拟减法波形:(SW[3:0]设为1110,其他输入同上)

可以看到个位的数码管显示中,2、3、6、7段亮,显示为数字3,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6减2等于03,即等于3。满足计算要求。

从上面加减乘除四种功能运算的波形仿真可以看出,本实验设计能够正确完成对输入数字的上述四种运算。满足题目要求。