华中科技大学计算机学院数字逻辑实验报告2.docx

上传人:b****6 文档编号:16638542 上传时间:2023-07-15 格式:DOCX 页数:17 大小:333.76KB
下载 相关 举报
华中科技大学计算机学院数字逻辑实验报告2.docx_第1页
第1页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第2页
第2页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第3页
第3页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第4页
第4页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第5页
第5页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第6页
第6页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第7页
第7页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第8页
第8页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第9页
第9页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第10页
第10页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第11页
第11页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第12页
第12页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第13页
第13页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第14页
第14页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第15页
第15页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第16页
第16页 / 共17页
华中科技大学计算机学院数字逻辑实验报告2.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

华中科技大学计算机学院数字逻辑实验报告2.docx

《华中科技大学计算机学院数字逻辑实验报告2.docx》由会员分享,可在线阅读,更多相关《华中科技大学计算机学院数字逻辑实验报告2.docx(17页珍藏版)》请在冰点文库上搜索。

华中科技大学计算机学院数字逻辑实验报告2.docx

华中科技大学计算机学院数字逻辑实验报告2

数字逻辑实验报告

(2)

数字逻辑实验2

一、无符号数的乘法器设计50%

二、无符号数的除法器设计50%

总成绩

评语:

(包含:

预习报告内容、实验过程、实验结果及分析)

 

教师签名

姓名:

学号:

班级:

指导教师:

计算机科学与技术学院

20年月日

数字逻辑实验报告

(2)

 

无符号数的乘法器设计

 

一、无符号数的乘法器设计

1、实验名称

无符号数的乘法器的设计。

2、实验目的

要求使用合适的逻辑电路的设计方法,通过工具软件logisim进行无符号数的乘法器的设计和验证,记录实验结果,验证设计是否达到要求。

通过无符号数的乘法器的设计、仿真、验证3个训练过程,使同学们掌握数字逻辑电路的设计、仿真、调试的方法。

3、实验所用设备

软件一套。

4、实验内容

(1)四位乘法器设计

四位乘法器Mul44实现两个无符号的4位二进制数的乘法运算,其结构框图如图3-1所示。

设被乘数为b(3:

0),乘数为a(3:

0),乘积需要8位二进制数表示,乘积为p(7:

0)。

图3-1四位乘法器结构框图

四位乘法器运算可以用4个相同的模块串接而成,其内部结构如图3-2所示。

每个模块均包含一个加法器、一个2选1多路选择器和一个移位器shl。

图3-2中数据通路上的数据位宽都为8,确保两个4位二进制数的乘积不会发生溢出。

shl是左移一位的操作,在这里可以不用逻辑器件来实现,而仅通过数据连线的改变(两个分线器错位相连接)就可实现。

图3-2四位乘法器内部结构

(2)324乘法器设计

324乘法器Mul324实现一个无符号的32位二进制数和一个无符号的4位二进制数的乘法运算,其结构框图如图3-3所示。

设被乘数为b(31:

0),乘数为a(3:

0),乘积也用32位二进制数表示,乘积为p(31:

0)。

这里,要求乘积p能用32位二进制数表示,且不会发生溢出。

图3-3324乘法器结构框图

在四位乘法器Mul44上进行改进,将数据通路上的数据位宽都改为32位,即可实现Mul324。

(3)3232乘法器设计

3232乘法器Mul3232实现两个无符号的32位二进制数的乘法运算,其结构框图如图3-4所示。

设被乘数为b(31:

0),乘数为a(31:

0),乘积也用32位二进制数表示,乘积为p(31:

0)。

这里,要求乘积p能用32位二进制数表示,且不会发生溢出。

Mul3232

a(31:

0)

b(31:

0)

p(31:

0)

图3-43232乘法器结构框图

用324乘法器Mul324作为基本部件,实现3232乘法器Mul3232。

设被乘数为b(31:

0)=(b31b30b29b28···b15b14b13b12···b4b3b2b1b0)2

乘数为a(31:

0)=(a31a30a29a28···a15a14a13a12···a3a2a1a0)2

=(a31a30a29a28)2228+···+(a15a14a13a12)2212+···+(a3a2a1a0)220

所以,

p(31:

0)=b(31:

0)a(31:

0)

=b(31:

0)((a31a30a29a28)2228+···+(a15a14a13a12)2212+···+(a3a2a1a0)220)

=b(31:

0)(a31a30a29a28)2228+···+b(31:

0)(a15a14a13a12)2212+···

+b(31:

0)(a3a2a1a0)220

从上述推导可知,Mul3232可以用8个Mul324分组相乘,然后通过4的倍数位的左移(相当于乘2i),再将左移结果两两相加得到。

5、实验设计方案

(1)四位乘法器设计

1)mul4*4的乘法公式为

图3-54x4的乘法公式

所以其设计思路为:

假设b为被乘数,a为乘数,则通过a作为数据选择端,若a为0,则取之前一位的运算结果作为本位的值;如果a为1,b左移1位(并将移位后的b作为下一位运算的b值),将前一位的运算结果加上b左移1位后的结果的和作为本位的值。

2)其电路图如图3-6所示:

图3-64x4乘法器电路

 

(2)324乘法器设计

其基本算法与4*4的乘法器基本相当,只是此时被乘数b变为32位,因而需要将数据位宽变为32位,同样采用移位并且使用数据选择器。

其电路图如图3-7所示:

图3-732x4乘法器

(3)3232乘法器设计

mul32*32乘法器的设计思路为:

使用之前封装的32*4的乘法器,将乘数a分为8个4位二进制数,分设为p1,p2,p3,p4,p5,p6,p7,p8。

然后分别将pi左移4*(i-1)位,(该结果可以通过移位器分线出来4位)得到的数再分别两两相加,再两两相加,最后加在一起,得到的结果即为两数相乘的结果p。

图3-832x32乘法器

6、实验结果记录

根据实验方案设计要求,对于相应的乘法器和除法器,在给定的输入条件下,填写表3-1。

表3-1无符号数的乘法器实验结果记录表

电路

输入1(16进制)

输入2(16进制)

输出(16进制)

Mul44

b=0A

a=0A

p=064

Mul44

b=0E

a=09

p=07E

Mul324

b=0003ABEF1

a=0A

p=024B756A

Mul324

b=0019ABEF1

a=07

p=0B3B3897

Mul3232

b=00002BEF1

a=000004EF1

p=0D8C32EE1

Mul3232

b=000003EF1

a=00003BEF1

p=0EBC51EE1

图3-9

图3-10

图3-11

图3-12

图3-13

图3-14

数字逻辑实验报告(3)

 

无符号数的除法器设计

 

二、无符号数的除法器设计

1、实验名称

无符号数的除法器的设计。

2、实验目的

要求使用合适的逻辑电路的设计方法,通过工具软件logisim进行无符号数的除法器的设计和验证,记录实验结果,验证设计是否达到要求。

通过无符号数的除法器的设计、仿真、验证3个训练过程,使同学们掌握数字逻辑电路的设计、仿真、调试的方法。

3、实验所用设备

软件一套。

4、实验内容

(1)四位除法器设计

四位除法器实现两个无符号的4位二进制数的除法运算,其结构框图如图2-1所示。

设被除数为n2(3:

0),除数为d(3:

0),商为quot(3:

0),余数为rem(3:

0)。

Div4

n2(3:

0)

d(3:

0)

quot(3:

0)

rem(3:

0)

2-1四位除法器结构框图

四位除法器Div4算法步骤如下:

(1)设n1="0000",将被除数以n1:

n2的形式拼接,除数为d;

(2)重复4次:

将n1:

n2左移1位;

if(n1>d)beginn1=n1-d;n2(0)=1end

(3)商和余数的结果为:

quot=n2;rem=n1。

四位除法器也可以用4个相同的模块串接而成。

每个模块均包含一个减法器、两个2选1多路选择器、一个比较器和一个移位器shl。

请参照四位乘法器的设计思路,实现两个无符号的4位二进制数的除法器。

(2)32位除法器设计

32位除法器Div32实现两个无符号的32位二进制数的除法运算,其结构框图如图2-2所示。

设被除数为n(31:

0),除数为d(31:

0),商为quot(31:

0),余数为rem(31:

0)。

Div32

n(31:

0)

d(31:

0)

quot(31:

0)

rem(31:

0)

2-232位除法器结构框图

对四位除法器Div4中4个相同的模块之一进行改进,将数据通路上的数据位宽都扩展为32位,得到一个Div1。

将32个Div1拼接起来即可实现Div32。

5、实验设计方案

(1)四位除法器设计

(1)除法器Div4的内部逻辑结构框图如图3-1所示

图3-1除法器div4的内部逻辑结构框图

(2)其电路图如图3-2所示

图3-2除法器div4的电路图

(2)32位除法器Div32设计

(1)首先,先连接一个一次32div32的除法器,即已知当前的余数和当前的商,推算出下一位的余数和下一位的商。

将该子电路命名为32div_1

32div_1子电路的设计思路如下:

1.32div_1有d、cur_quot、cur_rem三个输入端,有next_quot,next_rem两个输出端。

2.将当前余数左移一位,余数的最低为补商的最高位

3.商左移一位,最低位补0还是1根据以下步骤判断:

将移位后的余数与除数d比较,d>rem时,商的最低位应该补0;否则,商的最低位应该补1。

将商输出,即为next_quot。

4.d>rem时,余数仍为移位后的余数;否则,余数rem=rem-d。

将rem输出,即为next_rem。

将该操作重复32次,即将32个已经封装好的32div_1相连,则产生的即为32div32除法器。

(2)其电路图分别如下所示:

图3-3为32div_1的除法器的内部图:

图3-332div_1除法器的内部原理图

图3-4为32div32的除法器图:

图3-432div32除法器内部原理图

 

6、实验结果记录

根据实验方案设计要求,对于相应的乘法器和除法器,在给定的输入条件下,填写表2-1。

表2-1无符号数的乘法器实验结果记录表

电路

输入1(16进制)

输入2(16进制)

输出(16进制)

Div4

n2=0E

d=09

quot=0F

rem=07

Div4

n2=0E

d=00

quot=0E

rem=0E

Div32

n=0019ABEF1

d=000004EF1

quot=0534

rem=0fd

Div32

n=0A0504EF1

d=0019ABEF1

quot=063

rem=017877be

图3-5

图3-6

图3-7

图3-8

 

7、实验中遇到的问题及解决方法

(1)故障1

问题描述:

在设计4位除法器时比较器出现了问题,当被除数位1110,除数为1100时出现了错误的输出。

后来发现原来是因为比较器的数据类型是关于2的补码,在一些情况下会输出错误的结果。

问题分析:

比较器的数据类型是关于2的补码,所以在比较的时候不会按照无符号数来进行比较。

解决方法:

将比较器的数字类型改为无符号数。

(2)故障2

问题描述:

在设计32位除法器时电路显示出现明显振荡,所以会输出错误的结果。

问题分析:

由于32位除法器电路不稳定所以会引起振荡。

解决方法:

在电路的输入和输出处添加一个探测器。

8、思考题

(1)乘法器/除法器中的延时主要取决于加法器/减法器的延时,其它组件延时可忽略不计。

假设每个加法器/减法器的延时都为Δt,你所设计的乘法器Mul44、Mul324、Mul3232、除法器Div4、Div32的延时各是多少它们是组合逻辑电路、同步时序逻辑电路还是异步时序逻辑电路

乘法器Mul44的延时为4Δt;Mul324的延时为4Δt;Mul3232的延时为39Δt;除法器Div4的延时为4Δt;Div32的延时为32Δt。

它们是组合逻辑电路。

 

(2)通过改变设计,乘法器Mul3232的延时能不能再减少如果能减少,它的最小值是多少

可以。

将4x4乘法器换成32位的,用64个4x4乘法器组成32位乘法器,只需用到31个加法器,即时延为31Δt。

 

(3)目前的除法器Div32性能并不好,你是否有性能更好设计

使用基于可编程逻辑器件FPGA来实现除法器。

计算时先将计算的被除数向前扩展7位,随后由高位向低位逐8位递减,滚动记录差值。

首先被减数16位在前边拼接7位0,拼接后不会改变被除数的大小,而且方便向下操作。

拼接后将此23位数称为mid。

之后取mid的高8位与除数作比较,若大于除数,则减去除数,结果低位拼接一。

若小于除数,则验证最高位是不是0,若是则左移一位,结果拼接0.若不是则用高九位减去除数,结果拼接两个0.然后将差和后15位以及末尾一个0拼接,实现结果循环向前。

在计算的同时用计数器计数来确定运行到的位数。

在进行以上操作,最终得到结果。

 

9、心得体会、意见与建议

此次乘法器的设计较为简单,实验指导中直接给出了设计思路,相关的元件也可以直接使用logisim中自带的,所以设计起来很方便。

32x32的乘法器也只需要将用8个Mul324分组相乘,然后通过4的倍数位的左移(相当于乘2i),再将左移结果两两相加得到。

除法器的设计比乘法器更复杂一些,但是因为除法器中有相似的部分,可将这些相似的部分单独形成一个模块,再把这些相同的模块进行单独的封装,在使用封装后的元件来设计除法器会使电路简洁许多。

4位除法器中由于模块数较少没有采用封装好的模块,32位除法器则采用了32个相同的模块32div1。

这次实验不像前几次实验那样需要自己根据真值表来设计电路,而是直接使用软件里提供的各种封装好的元件,站在更高的层次进行设计,感觉容易了许多。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2