用硬件描述语言设计浮点乘法器(原码一位乘法) 课程设计

用硬件描述语言设计浮点乘法器(原码一位乘法) 课程设计
用硬件描述语言设计浮点乘法器(原码一位乘法) 课程设计

计算机科学与工程学院

课程设计报告

题目全称:用硬件描述语言设计浮点乘法器(原码一位乘法)

课程名称:计算机组成原理

指导老师:职称:

(注:学生姓名填写按学生对该课程设计的贡献及工作量由高到底排列,分数按排名依次递减。序号排位为“1”的学生成绩最高,排位为“10”的学生成绩最低。)指导老师评语:

指导签字:

摘要

硬件乘法器,其基础就是加法器结构,它已经是现代计算机中必不可少的一部分。其大致可分为定点乘法器和浮点乘法器。其中浮点数的格式较定点数格式复杂,硬件实现的成本较高,完成一次浮点四则运算的时间也比定点运算要长。但浮点数比定点数的表示范围更宽,有效精度更高,因此更适合科学与工程计算的需要。但要求计算精度较高时,往往采用浮点运算。浮点乘法器设计(原码一位乘法)模型就是基于“移位和相加”的算法,设浮点数A=2^AE·AM,B=2^BE·BM,则A×B=2^(AE+BE)·(AM×BM),即阶码相加,尾数相乘。其运算步骤可以简单的归为(1)检测能否简化操作,并置结果数符(2)阶码相加(3)尾数相乘(4)乘积规格化等。

本论文第一章讲述了该课程设计的研究背景及意义及其理论依据和实验基础、课题的难点、重点、核心问题及方向。第二章重点讲述了原码一位乘法实现浮点乘法器设计的原理、操作流程及课程设计实验数据和结果

关键词:浮点乘法器、原码一位乘法、阶码、尾数

目录

第1章课题背景 (3)

1.1研究背景 (3)

1.1.1国内外的研究现状 (3)

1.1.2理论依据和实验基础 (4)

1.2课题的难点、重点、核心问题及方向 (4)

1.3研究目的和意义 (5)

第2章课题的需求分析 (6)

2.1 课题对应软硬件系统的性能 (6)

2.2业务流程 (6)

2.3其他需求 (7)

第3章课题的设计与实现 (8)

3.1课程设计的理论基础 (8)

3.2开发工具简介 (8)

3.2.1硬件部分 (8)

3.2.2软件部分 (8)

3.3课程设计的框架和流程图 (8)

3.4课程设计的实现 (10)

3.4.1创建工程 (10)

3.4.2设计输入 (10)

3.4.3约束(引脚绑定) (12)

3.4.4综合 (12)

3.4.5实现 (12)

3.4.6 下载 (14)

3. 4.7开始测试 (14)

3.5结论 (16)

第4章结束语 (17)

第1章课题背景

1.1研究背景

1.1.1国内外的研究现状

今日由于科技的突飞猛进,使得在一个小小的晶片上,能够容纳上百万的电晶体。然而市场的需求日新月异,所以在像以前那种用gate-level的时代,已经完全不能使用,所以必须借助电脑及高阶的语言来模拟其行为模式。于是,在这时有了AHDL语言,没想到AHDL威力强大,从高阶的电脑行为模式到gate-level 的方式都可以使用。再加上从模拟结束后在烧到FPGA上,这样的设计方式大大缩短了时间,怪不得现今的工业会以AHDL为一种开发的标准。

而在快速乘法的发展过程中,有两个人做出聊重要贡献,1951年,Booth 提出有符号数相乘可以通过将乘数两位一乘,从而将部分积减少到N/2个,Booth 的方法被MacSorley于1961年和1964年进行一步扩展,称为改进的Booth编码,另一个人是Wallae,他于1964年指出使用“华莱士树”的机制,可以将乘数的复杂度变成log(2/3) N。

遵守IEEE754标准的浮点乘法器与定点乘法器相比,不仅要进行阶码运算,而且其尾数部分的运算也有所不同,IEE E单精度浮点乘法的尾数部分运算,是将两个24位的无符号数二进制数相乘,得到一个24位的无符号数,中间需要进行舍入和规格化操作,相对而言,IEEE双精度浮点乘法的尾数部分的计算较为复杂,要将两个53位的无符号二进制数相乘,得到一个53位的乘积。在此过程中,如果使用最简单的移位加的策略将产生53个部分积,而改进Booth编码只需要很少的逻辑就可以将部分积的数量减少为27,每一个54位宽(53位加上Booth编码后有可能产生的一位扩展位),接下来的工作是对这些部分积进行相加,得到最后的结果。采用的方法可以分为阵列和树型结构,已有文献研究了两种结构的优劣,得出树型结构在延迟、面积以及布局布线等方面均要优于阵列结构的结论。

目前,浮点乘法器不仅应用在许多数学信号处理器中,而且广泛的应用于通用微处理器中。浮点乘法的操作主要包括单、双精度操作,它们将若干个部分积累加得到乘积。与IEEE754标准兼容的浮点乘法操作,还应包括对乘积的正确舍入,对阶码的必要调整,以及产生符合实际情况的例外位。另外,对于嵌入到现代处理器中的浮点乘法部件,大多数还要求具有流水结构、面积小且速度快。

1.1.2理论依据和实验基础

浮点数表示法是一种相似于科学记号的格式,主要分成两个部分,一个称为有效数(matissa’the significand and fraction part);另一个称为指数(exponent’characteristic)。在此,我们利用二进制数表示法来表示负的有效数和指数,我们用N表示浮点数的值、F表示二进制位的的有效数,而E表示二进制位的指数。因为是二补数表示,所以小数点前一位为signed bit,用来表示正负号。

正规化(normalization)——利用有效数(mantissa)和指数(exponent)的方法来表示浮点数,会造成同一个数值有多种不同的表示形态。为了达到最大的准确值,使得浮点数所能表示的范围扩大,因此,我们规定signedbit 为0时,小数点后一位必须为1;当signedbit为1时,小数点后一位必须为0。

算术右移逻辑右移——算术右移:当乘积移位时,符号也跟着向右延伸,相当于该数乘以基数的正或负的整数次方。

对阶操作——即比较两个浮点数的阶码大小,一般是使小阶向大阶对齐。原码形式的尾数右移时,尾数符号位不参加移位,尾数高位补0。为减少误差,可用另外的线路,保留右移过程中丢掉的一到几位的高位值,供以后舍入操作使用。

舍入操作——在执行对阶或右规操作是,会使尾数低位上的一位或者若干位的数值被移掉,使数值的精度受到影响,可以把移掉的几个高位的值保存起来供舍入使用。常用的办法有“0”舍“1”入法,即移掉的最高位为1时则在尾数末尾加1;为0时则舍去移掉的数值。

浮点数乘法概念——一:指数相加;二:有效数相乘;三:正规化乘积结果,判断是否溢位;四:将结果做拾入(rounding);五:乘积符号由两运算元的符号决定。

如果要在实验层面上验证,则首先采用FPGA对该浮点乘法器进行功能验证,在Altera的FPGA上进行实现,主芯片是XILINX公司的SPRTAN XC2S200。

1.2课题的难点、重点、核心问题及方向

本课题的难点,同时也是重点,在于算法的设计,算法的实现,代码的输入,工具箱的正确连接。

核心问题是算法的设计和操作环境的正确操作。

方向就是扩大浮点乘法器的应用范围。

1.3研究目的和意义

由于浮点数表示区间大、适用范围广、开发简单,从而使得浮点数运算成为数字信号处理中最基本的运算。但因为现行ED A软件没有提供浮点运算功能,使其在FPGA中的实现却是个棘手问题,因此一般浮点运算只能在FPGA中自行设计实现。

现今的FPGA已完全具备浮点数据运算、信息处理、滤波计算等功能,从而将DSP的专用运算能力与FPGA的高速性整合到一块芯片上,以实现快速的在线开发与硬件系统小型化,同时也使PLD的应用从原来的逻辑控制功能渐渐转向了数据运算功能,为可编程单芯片系统(SOPC)开创了一个新纪元。

第2章课题的需求分析

2.1 课题对应软硬件系统的性能

功能:正常并正确处理两个浮点数的乘法运算。

设浮点数A=2^AE·AM,B=2^BE·BM,则A×B=2^(AE+BE)·(AM×BM)

即阶码相加,尾数相乘。其运算可按以下步骤进行。

(1)检测能否简化操作,并置结果数符

如果操作数中有一个为0,乘积必为0,不需要做其他操作。如果两数均不为0,才进行乘法运算。结果数符按同号相乘为正、异号相乘为负的规则确定。(2)阶码相加

阶码用补码表示,则阶码相加就可按常规补码加法进行。

当两个乘数阶码都是正数时,阶码直接按常规原码加法进行。

阶码相加可能产生溢出,同号相加可能上溢(正阶码),也可能产生下溢(负阶码)。本课题设计采用4位阶码原码相加,输出5位结果,所以避免了以上情况。(3)尾数相乘

(4)乘积规格化

尾数相乘后,可能需要左规。因为尾数是定点小数,相乘后不会出现需要右规的情况。左规时阶码的减1,有下溢的可能。

(5)正确输出结果,实验室里正确显示灯亮情况。

2.2业务流程

2.3其他需求

在实验室的硬件上,我们只能实现阶码和尾数都是4位的浮点数的乘法,不能实现更高位的浮点数乘法。

乘积的规格化不是用程序本身来实现,而是用8位扩展自动实现。

第3章课题的设计与实现

3.1课程设计的理论基础:

本课题选用原码一位乘法算法原理来实现两个浮点数相乘的尾数相乘。其原理如下:用A寄存器存放部分积累加和,其初始值为0;B寄存器存放被乘数X,C寄存器存放乘数Y。乘法运算结束时,A寄存器中存放乘积的高位部分,C

寄存器存放乘积的低位部分。

图3-1 原码一位乘法流程图

3.2开发工具简介

3.2.1硬件部分:

核心适配板:

主芯片是XILINX公司的SPRTAN XC2S200,它具有可编程接口(JTAG),通过并口与计算机相连,可以反复擦写。

输入/输出接口:

(1)按键开关:键按下为抵电平,弹起为高电平,板上接口序号是K1~K12。(2)拨码开关:开关向上为高电平,向下为低电平,板上接口序号是D1~D18。

⑶发光二极管:高电平点亮,低电平熄灭。板上接口序号是d1~d16。

3.2.2软件部分:

本实验系统的开发软件采用Xilinx公司的ISE集成开发环境。

3.3课程设计的框架和流程图

图3-2 原码一位浮点数乘法器设计框图

3.4课程设计的实现

3.4.1创建工程

*双击桌面“Xilinx ISE 7.1”;

*选择“File” New Project”;

填写“工程项目名”和文件存放路径

*点击“下一步”;

选择芯片类型、封装等信息;

选择综合工具(Synthesis Tool)

3.4.2设计输入

*在以上对话框中,输入文件名“FloatMul”,同时选左框中的“Verilog Module”*输入Verilog HDL的源程序代码如下

Module FloatMul(signA,mA,exA,signB,mB,exB,sign_out,m_out,ex_out);

//signA表示被乘数的正负,mA表示被乘数的尾数,exA表示被乘数的阶码//sign_out表示乘积的正负,m_out表示乘积的尾数,ex_out乘积的阶码

//被乘数、乘数、乘积都表示为:尾数*2^阶码

//被乘数、乘数的尾数和阶码都用4位二进制数表示,乘积的尾数用8位二进制数表示

parameter SIZE = 4,L_SIZE = 8;

input signA,signB;

input [SIZE-1:0]mA;

input [SIZE-1:0]exA;

input [SIZE-1:0]mB;

input [SIZE-1:0]exB;

output sign_out;

output [L_SIZE-1:0]m_out;

output [SIZE:0]ex_out;

reg sign_out;

reg [L_SIZE-1:0]m_out;

reg [SIZE:0]ex_out;

reg [L_SIZE-1:0]tempA;

reg [L_SIZE-1:0]tempB;

initial

begin

tempA=0;

tempB=0;

end

always @(signA or mA or exA or signB or mB or exB) begin

if((mA == 0)||(mB == 0))

begin

sign_out = 0;

m_out = 0;

ex_out = 0;

end

else

begin

sign_out = signA^signB;

ex_out = exA + exB;

tempA = mA;

tempB = mB;

m_out = 0;

repeat(SIZE)

begin

if(tempB[0])

m_out = m_out + tempA;

tempA = tempA << 1;

tempB = tempB >> 1;

end

end

end

endmodule

3.4.3约束(引脚绑定)

*在“Process View”框中,点击“User Constraints”前的‘+’,双击“Assign Package Pins”

*在“Design Browser”框中,选“I/O Pins”

*在“Design Object List…”框中‘Loc’栏添入芯片的引脚序号,如图3-3

图3-3芯片的引脚序号分配图

3.4.4综合

在“Process View”框中,点击“Synthesize-XST”;

3.4.5实现

在“Process View”框中,点击“Implement Design”,直到编译完全通过,显示如图3-4结果

图3-4程序编译通过截图

否则,重新调试,并重新执行如前操作。

连接好线路如3-5和3-6

图3-5实验接线图1

图3-6 实验接线图2

3.4.6 下载

在“Process View”框中,点击“Configure Device(Impact)”;

选“Boundary-Scan Mode”

选“Automatically connect to cable….”(注意此时必须将实验目标板通过并口与PC相连,同时打开实验箱的电源!),可见屏上显示图3-7

图3-7实验目标板和pc连通

3. 4.7开始测试

开关(开关向上为开“1”,向下为关“0”),各自输入如下浮点数,并依次

得到图3-8、3-9、3-10、3-11如下

图3-8第一次测试结果

图3-9第二次测试结果

图3-10第三次测试结果

图3-11第四次测试结果

结果分析:a.图3-8说明了当至少有一个乘数为0时,结果一定为0。

b.图3-9、3-10、3-11都说明本设计中的浮点乘法器成功地计算了所

输入的浮点数的乘法运算,其中要特别说明的是:图3-9和3-10是

因为阶码相加产生了溢出,所以代表溢出位的即左上角的灯显示灯

亮。而图3-10显示异号尾数相乘,结果为负,所以代表尾数结果的

符号位即左下角的灯显示灯亮。

3.5结论

在原码一位乘算法的理论基础和xilinx ISE集成开发环境双重结合下,我们从硬件语言的编写、调试到测试通过得到预期结果,顺利完成了浮点乘法器的设计。

我们的创新点,在于输出了阶码相加的进位,尾数相乘的结果符号位输出,以及乘法结果的扩展输出。

还需要改进的地方,在于实现乘法和加法过程中溢出位的进一步处理。

第4章结束语

在大二即将结束时,我们迎来了计算机组成原理课程设计。这次课程设计的内容是用硬件设计语言设计浮点乘法器(原码一位乘法),为了能成功出色的完成,我们课程小组对原码一位乘法做了深入的钻研,又对verilog硬件编程语言进行了进一步的学习,我们用两个加法器,分别实现阶码相加和尾数相乘,并最终调试成功。

在整个课程设计的过程中,尽管困难重重,但是在组长同学的主持下,各组员同心协力,认真对待,终于成功完成了本次课程设计。从中,我们不仅巩固了我们的专业知识,更明白了团队精神的重要意义!

致谢

在三位老师耐心的指点下,我们组克服了重重困难,终于完成了计算机组成原理的课程设计。通过本次课程设计,不但巩固了我们的专业知识,更重要的是接触了很多计算机组成原理相关的文献,开阔了我们的视野,为我们以后的学习打下坚实的基础。

再次感谢三位认真指导我们的老师。

参考文献

[1]裘雪红.毕业设计宝典.西安:西安电子科技大学出版社,2008:15-20

[2]罗克露,单立平,刘辉,等.计算机组成原理.北京:电子工业出版社,2009:125

[3]罗克露,单立平,刘辉,俸志刚.计算机组成原理.北京:电子工业出版社,2009:110-112

四位原码乘法器

1.课程设计的内容和要求 内容:设计四位原码乘法器电路。 要求:1.有关资料,设计乘法器电路; 2.画出乘法器逻辑图; 3.在实验箱上完成乘法器电路的组装,调试,核对记录,测试有关数据, 通过老师当场验收; 4.完成课程设计报告。 1.课程设计原理 运用存储器的存储功能实现数字的存储。令电路的初始状态为000,000,000000。以二进制的形式输入数字,计算方式是以十进制数字乘法。输入的数字为三位数字,输出的是六位数字。先存储输入的乘数和乘积,然后再将乘积的导线端连到输出段,此时之前输入的乘积就可以在输出端显示。 此时序电路的真值表为:

1.课程设计思路 本次课程设计的题目为四位原码乘法器,利用真值表输入乘数时,需要存放数字,于是我查阅了一些资料,用存储器可以实现这一电路,所以本实验中用到的是INTEL 2114芯片。 具体实现过程如下图: a a b b F 32F 1 1.课程设计所需的器材 1.2114是一个容量为1K4位的静态RAM芯片,常用于寄存器。 其具体的引脚图为: 此芯片的电路图为: 2.数字电路实验箱 3.导线若干 1.课程设计实现 本次课程设计的题目是四位原码乘法器电路。 此部分只用到了2块INTEL2114芯片,具体连接如下: 1、先将这些芯片按在电路板上(注意不要插反,否者容易烧毁芯片)。 2、将两片芯片的A6和GND端,A7,A8,A9接地。 3、Vcc端接电压5V,cs接存储端,WE端接控制端。 4、两块芯片的A5,A4,A3组成一个乘数,A0,A1,A2组成另一个乘数。其中一块芯

片的I/O1,I/O2,I/O3,I/O4和另一块芯片的I/O1,I/O2组成要求的乘积。乘数与乘积的显示方式均为二进制,但是计算方法是以十进制数的乘法法则计算。 1.调试步骤及方法 在连接实验器件之前,要先检查如下实验器件: 1、检查芯片引脚是否有损坏。 2、检查电路板是否好用。 连接实验器件时要注意: 2严格按照电路图一步一步连接,以避免连接错误。 3导线要先连接电源测试是否导电。 连接好电路进行数据测试,输入001,010,000010,存储;001,101,000101,存储;001,111,000111,存储。将连在输入端的四个输出连接到输出端,并输入001,010,但是结果并不是000010,而是000100;再输入001,101,也没有得到000101的结果,而是000110的结果。检查线路,发现输出的线路错位,纠正后重新输入乘数,结果均得到计算结果。调试成功。 1.实验结果 连接好整个电路。A5A4A3和A2A1A0为输入端,即乘数,F5F4F3F2F1F0为输出端,即乘积。如下表: 8. 课程设计结果 输入000,000,000000,存储;

计算机组成原理阵列乘法器课程设计报告

. 课程设计

. 教学院计算机学院 课程名称计算机组成原理题目4位乘法整列设计专业计算机科学与技术班级2014级计本非师班姓名唐健峰 同组人员黄亚军 指导教师 2016 年10 月 5 日

1 课程设计概述 1.1 课设目的 计算机组成原理是计算机专业的核心专业基础课。课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行设计及实现,进一步提高分析和解决问题的能力。 同时也巩固了我们对课本知识的掌握,加深了对知识的理解。在设计中我们发现问题,分析问题,到最终的解决问题。凝聚了我们对问题的思考,充分的锻炼了我们的动手能力、团队合作能力、分析解决问题的能力。 1.2 设计任务 设计一个4位的二进制乘法器: 输入信号:4位被乘数A(A1,A2,A3,A4), 4位乘数B(B1,B2,B3,B4), 输出信号:8位乘积q(q1,q2,q3,q4,q5,q6,q7,q8). 1.3 设计要求 根据理论课程所学的至少设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的计算机系统。 (1)制定设计方案: 我们小组做的是4位阵列乘法器,4位阵列乘法器主要由求补器和阵列全加器组成。 (2)客观要求 要掌握电子逻辑学的基本内容能在设计时运用到本课程中,其次是要思维灵活遇到问题能找到合理的解决方案。小组成员要积极配合共同达到目的。

2 实验原理与环境 2.1 1.实验原理 计算机组成原理,数字逻辑,maxplus2是现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 用乘数的每一位去乘被乘数,然后将每一位权值直接去乘被乘数得到部分积,并按位列为一行每一行部分积末位与对应的乘数数位对齐,体现对应数位的权值,将各次部分积求和得到最终的对应数位的权值。 2.2 2.实验环境 2.2.1双击maxplu2II软件图标,启动软件 (1).新建工程,flie->new project ....,出现存储路径的选项框,指定项目保存路径并且为工程命名,第三行设置实体名,保持与工程名一致。点击OK

原码一位乘法

实验课程: 计算机组成原理实验时间: 班级:姓名:学号批阅教师: 硬布线实现原码一位乘法 实验内容: 在实验箱上用硬布线方法实现原码一位乘法 实验设备: CP226组成原理实验箱 实验设备介绍: CP226 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM, 以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。 模型机为8 位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。模型机的指令码为8 位,根据指令类型的不同,可以有0 到 2 个操作数。指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。24 位控制位分别介绍如下: XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。EMWR:程序存储器EM 写信号。 EMRD:程序存储器EM 读信号。 PCOE:将程序计数器PC 的值送到地址总线ABUS 上。 EMEN:将程序存储器EM 与数据总线DBUS 接通,由EMWR和EMRD决定是将DBUS 数据写到EM 中,还是从EM 读出数据送到DBUS。 IREN:将程序存储器EM 读出的数据打入指令寄存器IR 和微指令计数器uPC。 EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。 ELP:PC 打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。 MAREN:将数据总线DBUS 上数据打入地址寄存器MAR。 MAROE:将地址寄存器MAR 的值送到地址总线ABUS 上。 OUTEN:将数据总线DBUS 上数据送到输出端口寄存器OUT 里。 STEN:将数据总线DBUS 上数据存入堆栈寄存器ST 中。RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 CN:决定运算器是否带进位移位,CN=1 带进位,CN=0 不带进位。 FEN:将标志位存入ALU内部的标志寄存器。 X2、X1、X0 三位组合来译码选择将数据送到DBUS 上的寄存器。

乘法器课程设计

摘要:基于VHDL的数字系统设计具有设计技术齐全、方法灵活、支持广泛等优点,同时也是EDA技术的重要组成部分.文章用VHDL语言设计了左移法和进位节省法实现的两种组合乘法器,通过功能仿真,对两种乘法器的性能进行了比较,从而得知后者的传输延迟时间小,即速度较快.通过设计实例,介绍了利用VHDL语言进行数字系统设计的方法. 关键词:VHDL语言左移法进位节省法 Abstract:Digital system design based on VHDL has complete design techniques, methods, the advantages of flexible and wide support, at the same time also is the important component of the EDA technology. The article using VHDL language to design the left shift method and carry save method to realize the combination of two kinds of multiplier, through the function simulation, compares the performance of the two kinds of multiplier, which the latter's small transmission delay time, namely fast. Through the design example, introduced the method of using VHDL language to design digital system. Keywords:VHDL language ,left shift method ,carry save method

计算机组成原理第四版课后习题答案完整版

第一章 1.比较数字计算机和模拟计算机的特点 解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的; 数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。 两者主要区别见P1 表1.1。 2.数字计算机如何分类?分类的依据是什么? 解:分类:数字计算机分为专用计算机和通用计算机。通用计算机又分为巨型机、大型机、 中型机、小型机、微型机和单片机六类。 分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、 指令系统规模和机器价格等因素。

3.数字计算机有那些主要应用? (略) 4.冯. 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分? 解:冯. 诺依曼型计算机的主要设计思想是:存储程序和程序控制。 存储程序:将解题的程序(指令序列)存放到存储器中; 程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。 主要组成部分有:控制器、运算器、存储器、输入设备、输出设备。 5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字? 解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB、MB、GB来度量,存储容 量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。 单元地址:单元地址简称地址,在存储器中每个存储单

元都有唯一的地址编号,称为单元地 址。 数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。 指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。 6.什么是指令?什么是程序? 解:指令:计算机所执行的每一个基本的操作。 程序:解算某一问题的一串指令序列称为该问题的计算程序,简称程序。 7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 解:一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的 信息即为数据信息。 8.什么是内存?什么是外存?什么是CPU?什么是适配器?简述其功能。

定点补码一位乘法器方案

个人资料整理仅限学习使用 课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点补码一位乘法器的设计 院<系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2018年1月15日

目录第1章总体设计方案1 1.1设计原理1 1.2设计思路2 1.3设计环境4 第2章详细设计方案5 2.1顶层方案图的设计与实现5 2.1.1创建顶层图形设计文件5 2.1.2器件的选择与引脚锁定6 2.2功能模块的设计与实现7 2.2.1求补电路模块的设计与实现7 2.2.2 控制电路模块的设计与实现8 2.2.3选择器模块的设计与实现10 第3章编程下载与硬件测试12 3.1编程下载12 3.2硬件测试及结果分析12 参考文献14 附录<电路原理图)15

第1章总体设计方案 1.1设计原理 <1)用[X]补×[Y]补直接求[X×Y]补 讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。 若[Y]补=Y0Y1Y2…Yn 当Y0为1时,则有Y=-1+Yi×2-i 故有X×Y=X×Yi×2-1-X当Y为负值时,用补码乘计算[X×Y]补,是用[X]补乘上[Y]补的数值位,而不理[Y]补符号位上的1,乘完之后,在所得的乘积中再减X,即加-[X]补。实现补码乘法的另一个方案是比较法,是由BOOTH最早提出的,这一方法的出发点是避免区分乘数符号的正负,而且让乘数符号位也参加运算。技巧上表现在分解乘数的每一位上的1为高一位的一个+1和本位上的一个-1:X×Y=X×<-1+Yi×2i)<逐项展开则得)=X×[-Y0+Y1×2-1+Y2×2-2+…+Yn×2-n]=X×[-Y0+(Y1-Y1×2-1>+(Y2×2-1-Y2×2-2>+…+(Yn×2-(n-1>-Yn×2-n>]<合并相同幂次项得)=X×[(Y1-Y0>+(Y2-Y1> ×2-1+…+(Yn-Yn-1> ×2-(n-1>+(0-Yn> ×2-n]=X× ×X]补 P2=[2-1(P1+(Yn-Yn-1> ×X>]补 … Pi=[2-1(Pn-i+(Yn-I+2-Yn-I+1> ×X>]补 … Pn=[2-1(Pn-1+(Y2-Y1> ×X>]补 Pn+1=[ (Pn+(Y1-Y0> ×X>]补 则最终补码乘积为[X*Y]补=[Pn+1]补

八位乘法器VHDL及功能模块说明

EDA课程设计报告 实验名称:八位乘法器

目录 一.引言 1.1 EDA技术的概念?? 1.2 EDA技术的特点?? 1.3 EDA设计流程?? 1.4 VHDL介绍?? 二.八位乘法器的设计要求与设计思路??2.1 设计目的?? 2.2 设计要求?? 三.八位乘法器的综合设计?? 3.1 八位乘法器功能?? 3.2 八位乘法器设计方案?? 3.3 八位乘法器实体设计?? 3.4 八位乘法器VHDL设计?? 3. 5八位乘法器仿真图形?? 心得体会?? 参考文献??

一、引言 1.1 EDA技术的概念 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 1.2 EDA技术的特点 利用EDA技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。 1.3 EDA设计流程 典型的EDA设计流程如下: 1、文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。 2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。 3、综合。将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。 4、行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。 5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配臵、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

定点原码一位乘法器的设计

沈阳航空航天大学 课程设计报告 课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位乘法器的设计 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计思路 (2) 1.3设计环境 (3) 第2章详细设计方案 (5) 2.1顶层方案图的设计与实现 (5) 2.1.1创建顶层图形设计文件 (5) 2.2功能模块的设计与实现 (6) 2.2.1 乘数寄存器模块的设计与实现 (6) 2.2.2 部分积寄存器模块的设计与实现 (8) 2.2.3 被乘数寄存器模块的设计与实现 (10) 2.2.4 控制器器模块的设计与实现 (12) 2.2.5 加法器模块的设计与实现 (15) 2.3仿真调试 (17) 第3章编程下载与硬件测试 (18) 3.1编程下载 (18) 参考文献 (19) 附录(电路原理图) (20)

第1章总体设计方案 1.1 设计原理 原码一位乘,即两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。例如: X=0.1010,Y=—0.1101,求X·Y数值的过程如下: 取双符号位,被乘数X=00 1010,乘数部分|Y|=00 1101 部分积乘数 00 0 0 0 0 1 1 0 1 +X 00 1 0 1 0 00 1 0 1 0 右移一位00 0 1 0 1 0 1 1 0 1(丢失) +0 00 0 0 0 0 000 1 0 1 右移一位00 0 0 1 0 1 0 1 1 0(丢失) +X 00 1 0 1 0 00 1 1 0 0 右移一位00 0 1 1 0 0 1 0 1 1(丢失) +x 00 1 0 1 0 010 0 0 0 右移一位00 1 0 0 0 0 0 1 0 1(丢失) 结果:X·Y=1.10000010 由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。 根据人工算法可以知道,原码一位乘法的整体设计应包括乘数寄存器,被乘数寄存器,移位电路,控制器,部分积五大模块,包含一个输入、输出、控制器

定点补码一位乘法器的设计与实现

课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点补码一位乘法器的设计与实现 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2012年1月13日

目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计思路 (1) 1.3设计环境 (2) 第2章详细设计方案 (3) 2.1顶层方案图的设计与实现 (3) 2.1.1创建顶层图形设计文件 (3) 2.1.2器件的选择与引脚锁定 (4) 2.1.3编译、综合、适配 (5) 2.2功能模块的设计与实现 (5) 2.2.1 取补模块的设计与实现 (5) 2.2.2选择器模块的设计与实现 (7) 2.2.3 乘数补码移位寄存器模块的设计与实现 (11) 2.2.4 部分积移位寄存器模块的设计与实现 (13) 2.3仿真调试 (14) 第3章编程下载与硬件测试 (16) 参考文献 (17) 附录(电路原理图) (18)

第1章总体设计方案 1.1 设计原理 在计算两个补码相乘时,可以通过Booth算法来实现定点补码一位乘的功能。布斯(Booth)算法采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据后两个数据位的情况决定进行加法、减法还是仅仅进行移位操作。讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。 Booth乘法规则如下: 假设X、Y都是用补码形式表示的机器数,[X]补和[Y]补=Ys.Y1Y2…Yn,都是任意符号表示的数。比较法求新的部分积,取决于两个比较位的数位,即Yi+1Yi 的状态。 首先设置附加位Yn+1=0,部分积初值[Z0]补=0。 当n≠0时,判断YnYn+1, 若YnYn+1=00或11,即相邻位相同时,上次部分积右移一位,直接得部分积。若YnYn+1=01,上次部分积加[X]补,然后右移一位得新部分积。 若YnYn+1=10,上次部分积加[-X]补,然后右移一位得新部分积。 当n=0时,判YnYn+1(对应于Y0Y1),运算规则同(1)只是不移位。即在运算的最后一步,乘积不再右移。 1.2 设计思路 首先要采用原码值输入,乘数和被乘数皆为8位。而且根据补码一位乘法运算规则:(1) 如果yn = yn+1,部分积[ zi ] 加0,再右移一位;(2) 如果yn yn+1 = 01,部分积加[ x ]补,再右移一位;(3) 如果yn yn+1 = 10,部分积加[ - x]补,再右移一位;这样重复进行n+1 步,但最后一步不移位。包括一位符号位,所得乘积为2n+1 位,其中n 为尾数位数。 设计一个二输入三选一选择器对可能的三种情况进行选择。当选择器中输入

44数字乘法器设计

4*4数字乘法器设计 1.设计任务 试设计一4位二进制乘法器。4位二进制乘法器的顶层符号图如图1所示。 END P A B 1 0 1 11 1 0 1×1 0 1 10 0 0 01 0 1 11 0 1 1 1 1011001 图1 4位乘法器顶层符号图 图2 4位乘法运算过程 输入信号:4位被乘数A (A 3 A 2 A 1 A 0),4位乘数B (B 3 B 2 B 1 B 0),启动信号START 。 输出信号:8位乘积P (P 7 P 6 P 5 P 4 P 3 P 2 P 1 P 0),结束信号END 。· 当发出一个高电平的START 信号以后,乘法器开始乘法运算,运算完成以后发出高电平的END 信号。 2.顶层原理图设计 从乘法器的顶层符号图可知,这是一个9输入9输出的逻辑电路。一种设计思想是把设计对象看作一个不可分割的整体,采用数字电路常规的设计方法进行设计,先列出真值表,然后写出逻辑表达式,最后画出逻辑图。这种设计方法有很多局限性,比如,当设计对象的输入变量非常多时,将不适合用真值表来描述,同时,电路功能任何一点微小的改变或改进,都必须重新开始设计。另一种设计思想是把待设计对象在逻辑上看成由许多子操作和子运算组成,在结构上看成有许多模块或功能块构成。这种设计思想在数字系统的设计中得到了广泛的应用。 对于4位乘法器而言,设A =1011,B =1101,则运算过程可由图2所示。从乘法运算过程可知,乘法运算可分解为移位和相加两种子运算,而且是多次相加运算,所以是一个累加的过程。实现这一累加过程的方法是,把每次相加的结果用部分积P 表示,若B 中某一位 B i =1,把部分积P 与A 相加后右移1位;若B 中某一位B i = 0,则部分积P 与0相加后右移1位(相当于只移位不累加)。通过4次累加和移位,最后得到的部分积P 就是A 与B 的乘积。 为了便于理解乘法器的算法,将乘法运算过程中部分积P 的变化情况用图3表示出来。存放部分积的是一个9位的寄存器,其最高位用于存放在做加法运算时的进位输出。先把寄存器内容清零,再经过4次的加法和移位操作就可得到积。注意,每次做加法运算时,被乘

定点原码一位乘法器讲课教案

定点原码一位乘法器

沈阳航空工业学院 课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点原码一位乘法器的设计 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:

目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计环境 (2) 第2章详细设计方案 (4) 2.1顶层方案图的设计与实现 (4) 2.1.1创建顶层图形设计文件 (4) 2.1.2器件的选择与引脚锁定 (5) 2.2第二层模块的设计与实现 (7) 2.3功能模块的设计与实现 (7) 2.3.1移位模块的设计与实现 (7) 2.3.2 乘数移位模块的设计与实现 (10) 2.3.3选择模块的设计与实现 (12) 2.3.4 控制模块的设计与实现 (13) 2.3.5 其他模块的设计与实现 (15) 2.4仿真调试 (16) 第3章编程下载与硬件测试 (19) 3.1编程下载 (19) 3.2硬件测试及结果分析 (19) 参考文献 (20) 附录(电路原理图) (21)

第1章总体设计方案 1.1 设计原理 原码一位乘,两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。 例:X=0.1100,Y=0.1110,计算乘积X*Y。 0.1100 * 0.1110 0000 1100 1100 1100 0.10101000 在计算时,逐次按乘数每1位上的值是1还是0,决定相加数取被乘数的值还是取零值,而且相加数逐次向左偏移1位,最后一起求积。 由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。

乘法器的设计

物理与电子工程学院集成电路设计课程论文题目:乘法器的研究 学生姓名:XXX 指导教师:XXX 201X年XX月XX日

乘法器 摘要:乘法器,其基础就是加法器结构,它已经是现代计算机中必不可少的一部分。 乘法器的模型就是基于“移位和相加”的算法。本文讨论基本的阵列乘法器,以及产生部分 积和最终求和。 关键词:全加器,半加器,阵列。 引言: 乘法运算非常耗费硬件面积并且速度很慢,许多计算问题解决的快慢受乘法器电 路工作速度的约束,因此在现代高级的数字信号处理器和微处理器中都集成了硬件乘法单 元。并且乘法器在当今数字信号处理以及其他诸多应用领域中起着十分重要的作用。随着科 学技术的发展,许多研究人员已经开始试图设计一类拥有更高速率和低功耗,布局规律占用 面积小,集成度高的乘法器。这样,就能让它们更加适用于高速率,低功耗的大规模集成电 路的应用当中。通常的乘法计算方法是添加和位移的算法。在并行乘法器当中,相加的部分乘积的数量是主要的参数。它决定了乘法器的性能。为了减少相加的部分乘积的数量,修正 的Booth 算法是最常用的一类算法。但是,随着并行化的增多,大量的部分乘积和中间求和 的增加,会导致运行速度的下降。不规则的结构会增加硅板的面积,并且由于路由复杂而导 致中间连接过程的增多继而导致功耗的增大。另一方面串并行乘法器牺牲了运行速度来获得 更好的性能和功耗。因此,选择一款并行或串行乘法器实际上取决于它的应用性质。 主体 1.1.1二进制乘法定义 考虑两个无符号二进制数X 和Y ,X 为M 位宽,Y 为N 位宽,将它们用下列二进制数形 式表达 i 1 -M 0i i 2X X ∑== (1.1) j 1 -N 0j j 2Y Y ∑== (1.2) 其中i X 和j Y 为0或者1,那么X 和Y 的乘法运算定义如下 Z=X ×Y= k 1 -N M 0k k 2Z ∑+= =(i M i i X 210∑-=)(j 1-N 0j j 2Y ∑=)=∑∑=-=+???? ??1-M 0i 10j 2N j i j i Y X (1.3) 我们先来看一下手工是如何进行二进制乘法运算的。如图1-1所示,被乘数与乘数的第一个 位相乘(实际为“与”操作)产生积,并且根据乘数相应位的位置对部分积进行左移(例如, 被乘数与乘数的第0位相乘,则不移位;与第一位相乘,部分积左移1位,以此类推),最 终将所有的部分积相加得到乘法运算的结果。M 位被乘数与N 位乘数相乘得到的乘积是 M+N 位的。 1.1.2部分积生成

基于模拟乘法器MC1496的混频器设计

基于模拟乘法器MC1496的混频器设计

摘要 集成模拟乘法器是完成两个模拟量(电压或电流)相乘的电子器件。在高频电子线路中,振幅调制、同步检波、混频、倍频、鉴频等调制与解调的过程均可视为两个信号相乘的过程,而集成模拟乘法器正是实现两个模拟量,电压或电流相乘的电子器件。采用集成模拟乘法器实现上述功能比用分立器件要简单得多,而且性能优越,因此集成模拟乘法器在无线通信、广播电视等方面应用较为广泛。 混频器在通信工程和无线电技术中,应用非常广泛,在调制系统中,输入的基带信号都要经过频率的转换变成高频已调信号。在解调过程中,接收的已调高频信号也要经过频率的转换,变成对应的中频信号。特别是在超外差式接收机中,混频器应用较为广泛,混频电路是应用电子技术和无线电专业必须掌握的关键电路。 Matlab是一种电子技术界应用广泛的优秀科学计算软件,大量应用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。主要内容是基于MC1946的混频器应用设计与仿真,阐述混频器基本原理,并在Matlab中实现各信号波形的仿真。 关键词:MC1496模拟乘法器,混频器,Matlab

DESING OF MIXER BASED ON THE ANALOG MULTIPLIER MC1496 Abstract Integrated analog multiplier is to complete two analog multiplication electronics (voltage or current) In high frequency electronic circuit, amplitude modulation, synchronous detection, mixing, times frequency, frequency modulation and demodulation process can be regarded as the multiplication of two signals process, and integrated analog multiplier is the realization of two analog, voltage or current multiplication of electronic devices. The function is realized by using integrated analog multiplier is much simpler than with a discrete device, and superior performance, therefore integrated analog multiplier in wireless communication, radio and television are more widely application. Mixer in communication engineering and electronic technology, are widely applied in modulation system, the input of the baseband signal through frequency conversion into high frequency modulated signals. In the process of demodulation, receive the high frequency signal is modulated by frequency conversion, into the corresponding intermediate frequency signals. Especially in a superheterodyne receiver, which has been widely applied mixer, mixing circuit is a professional application of electronic technology, and radio must master the key circuit. Matlab is an electronic technology widely used mathematical software, a large number of used in algorithm development, data visualization, data analysis and numerical calculation of senior technical computing language and interactive environment. Main content is based on the MC1946 mixer application design and simulation, the basic principle of mixer, and realize the signal waveform in the Matlab simulation. Key Words: MC1496 analog multiplier, mixer, Matlab

(最新版)16位定点数原码一位乘法器的设计与实现课程设计报告

计算机科学与工程学院 课程设计报告 题目全称: 16位定点数原码一位乘法器的设计与实现 课程名称:计算机组成原理 指导老师:谭浩职称: (注:学生姓名填写按学生对该课程设计的贡献及工作量由高到底排列,分数按排名依次递减。序号排位为“1”的学生成绩最高,排位为“10”的学生成绩最低。) 指导老师评语:

签字:

摘要 Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。本实验用Verilog HDL语言设计了全加器实现的组合乘法器,通过功能仿真,验证了结果。 关键词:乘法器,Verilog,组合逻辑,全加器

ABSTRACT Text…. Keywords:

目录 (自动插入目录) 第一章绪论 (1) 1.1 选题背景及意义 (1) 1.2 国内外研究现状 (1) 1.3 主要内容与章节安排 (1) 1.4 本章小结 (1) 第二章课程设计的需求分析 (3) 2.1 环境需求 (3) 2.2 功能需求 (3) 2.3 性能需求 (3) 2.3 本章小结 (3) 第三章 ****的设计 (5) 3.1 总体设计 (5) 3.2 功能模块设计 (5) 3.3 本章小结 (5) 第四章 ****的实现 (7) 4.1 开发环境介绍 (7) 4.2 主要功能模块的实现 (7) 4.3 本章小结 (7) 第五章测试及成果展示 (9) 5.1 测试环境 (9) 5.2 测试用例和结果 (9) 5.3 成果展示 (9) 5.4 本章小结 (9) 第六章总结与展望 (11) 参考文献 (12)

有符号5位整数乘法器设计与制作

哈尔滨工业大学(威海) 信息科学与工程学院 EDA课程设计报告 有符号5位整数乘法器设计与制作 指导老师:胡屏 学生班级:0802102 学生姓名:傅愉 学生学号:080210210 2009年11月10日

目录 1.课程设计的性质、目的和任务 (1) 2.题目要求 (1) 3.总体设计 (1) 3.1算法设计 (1) 3.2整体框图及原理 (2) 4.电路设计 (4) 4.1 乘法器总体电路原理图: (4) 4.2分时输入模块电路图: ........................................................... - 5 - 4.3乘法运算电路图: (6) 4.4阀门控制模块电路: ............................................................... - 9 - 4.5计数单元电路图: ................................................................. - 12 - 4.6数码管显示单元电路: ......................................................... - 14 - 4.7报警电路示意: ......................................... 错误!未定义书签。 5.调试过程中出现的问题以及解决办法 .......................................... - 19 - 6.心得体会........................................................................................... - 20 - 7.建议:............................................................................................... - 21 - 1.课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由

8位乘法器毕业设计论文

本科生毕业论文(设计) 8位乘法器的设计 姓名:吴小东 指导教师:华婷婷 院系:信息工程学院 专业:计算机科学与技术 提交日期: 2010/4/30

目录 中文摘要 (2) 外文摘要 (3) 1.绪论 (4) 1.1概述 (4) 1.2 VHDL和MAX+PIUS简介 (5) 1.3 实验平台 (6) 2.乘法器初步设计 (7) 2.1 设计思想 (7) 2.2乘法器原理 (7) 2.3乘法器设计流程 (8) 3. 乘法器具体设计 (9) 3.1右移寄存器的设计 (9) 3.2 加法器模块的设计 (10) 3.2.1 4位加法器的设计 (10) 3.2.2 8位加法器的设计 (11) 3.3 乘1模块设计 (13) 3.4锁存器模块设计 (14) 4. 乘法器仿真 (17) 4.1 8位加法器仿真 (17) 4.2 乘1模块仿真 (17) 4.3 锁存器模块仿真 (18) 4.4 8位乘法器仿真 (18) 结束语 (19) 参考文献 (20) 致谢 (21)

8位乘法器的设计 吴小东 指导老师:华婷婷 (黄山学院信息工程学院,黄山,安徽 245041) 摘要:在微处理器芯片中,乘法器是进行数字信号处理的核心,同时也是微处理器中进行数据处理的关键部件,它已经是现代计算机必不可少的一部分。本文主要是在于如何运用标准硬件描述语言(VHDL)完成八位乘法器,以及如何做二进制位相乘的运算过程。该乘法器是由八位加法器构成的以时序方式设计八位乘法器,通过逐项移位相加来实现乘法功能,并以MAX+Plus II 软件工具进行模拟,仿真并予以显示。 关键字:乘法器;标准硬件描述语言(VHDL);移位相加;MAX+Plu s II

定点原码一位乘法器的设计 (3)

沈阳航空工业学院 课程设计报告 课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位乘法器的设计 院(系):计算机学院 专业:计算机科学与技术 班级:4401102 学号:200403011034 姓名:蔡丽娇 指导教师:刘泽显 完成日期:2006年12月31日

沈阳航空工业学院课程设计报告 目录 第1章总体设计方案 (1) 1.1 设计原理 (1) 1.2 设计思路 (1) 1.3 设计环境 (2) 第二章详细设计方案 (3) 2.1顶层方案图的设计与实现 (3) 2.1.1创建顶层图形设计文件 (3) 2.1.2器件的选择与引脚锁定 (3) 2.2 功能模块的设计与实现 (5) 2.2.1 8位移位电路 (5) 2.2.2 部分积寄存器 (7) 2.2.3 乘数寄存器 (7) 2.2.4 二路选择器 (8) 2.2.5 计数器 (9) 2.2.6 结果输出器 (11) 2.3 仿真调试 (13) 第3章编程下载与硬件测试 (14) 3.1 编程下载 (14) 3.2 硬件测试及结果分析 (14) 参考文献 (15) 附录(电路原理图) (16)

第1章总体设计方案 1.1 设计原理 定点原码一位乘法器的设计主要是基于原码一位乘法的计算过成。设计内容主要是实现输入被乘数和乘数经电路得出结果。设计思想是:以乘数的最低位作为乘法判断位,若判断位为1,则在前次部分积(初始部分积为0)上加上被乘数,然后连同乘数一起右移一位;若判断位为0,则在前次部分积上加0,然后连同乘数一起右移一位。重复此判断过程,直到运算n次为止(n为乘数数值部分的长度)。 1.2 设计思路 原码一位乘法器主要包括ALU﹑部分积寄存器﹑乘数移位寄存器﹑被乘数寄存器和移位电路五大部分。这五大部分就作为底层设计,其中乘数移位寄存器需要保留移出的最低位,它的最高位要接收部分积移出的最低位这两部分采用V erilog语言进行设计,顶层的乘法器采用原理图设计输入方式。 原码一位乘的数值运算中不需要考虑符号位的情况,符号位于数值位分开处理。运算结果的符号是乘数和被乘数符号位的异或,即z=x⊕y。一位乘法运算将乘法分解成一系列加法操作,每次判断乘数中的最低位决定将被乘数或零放到加法器的一个输入端口,将部分积送入另一个输入端口。计算的结果送入移位寄存器再将其高七位送入部分积寄存器,低一位送入乘数移位寄存器。这样就完成了一次移位和加法操作。要实现8位*8位乘法运算需要进行8次移位和加法操作。8次移位完后给各元件清零,此工作由计数器控制。如图1.2所示。 完成上诉电路设计后实现原码一位乘法器的功能后,经编译、调试后形成*.bit 文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。

相关文档
最新文档