基于FPGA的浮点运算器IP核的设计与实现

基于FPGA的浮点运算器IP核的设计与实现
基于FPGA的浮点运算器IP核的设计与实现

基于FPGA的浮点运算器IP核的设计与实现

摘要

浮点运算作为数字信号处理的最基本的运算,具备动态范围大的特点,不仅成为衡量微处理器性能的主要指标之一,而且广泛适用于复杂的数学计算、科学应用和工程设计中,随着多媒体技术的蓬勃发展,浮点运算单元的应用范围越来越广泛,它已经走入了千家万户,用来解决复杂的数字图像处理,移动物体模型的建立,三维动画设计与演示等等。随着FPGA的出现以及EDA技术的成熟,采用FPGA实现数字信号处理的方法已经显示出巨大的潜力,利用FPGA技术设计浮点乘法器可以缩短产品的开发周期。本设计提出了一种基于VHDL语言的浮点乘法器的硬件实现方法,就是用VHDL 语言描述设计文件和原理图方式设计,以Altera公司的Cyclone系列产品为硬件平台,以Quartus为软件工具进行模拟仿真,实现了任意以IEEE754标准表示的23位单精度浮点数的乘法运算。设计中对阶码的溢出进行了研究并进行了处理,同时对结果进行了规格化处理,通过利用FPGA在线可编程的技术,设计出的浮点乘法器更加方便灵活,克服了专用乘法器的不足,更能广泛的应用到各个领域。

关键词:IEEE754,单精度浮点数,乘法器,硬件描述语言,FPGA,Quartus

THE DESIGN AND IMPLEMENTATION OF FLOATING-POINT UNIT IP CORE BASED ON FPGA

ABSTRACT

As the most basic operation o f digital signal processing, floating-point calculation is equipped with the characteristic of dynamic range, it is not only the main measure of microprocessor performance indexes, but also is widely used in comp lex mathematical calculation, science applications and engineering design. with the vigorous develop ment of multimed ia technolo gy, floating point arithmetic unit has been widely used, and it has come home, been used to solve comp lex problems, such as digital image processing, the establishment of the moving object model, 3-d animation design and demo nstrate, etc. With the maturity o f FPGA presence and EDA techno logy, it has shown great potential to realize digital signal processing by the method of using FPGA, it can cut short the development cycle by using the FPGA techno logy design floating-point on time-multip lier. The design is proposed based on VHDL language of floating on time-multip lier, the hardware realization method is described with VHDL language schematic design documents and Altera design, by the way the Cyclo ne series products for hardware platform, with Quartus for software tools for simulatio n,it realized any twenty-three single precision floating-point multiplication which is in the IEEE754 standard. Design of order yards was studied and spill the processing, and the results are the normalized processing, by using the on-line programmable FPGA techno logy, design the floating-point greater flexibility on time-multiplier, overcome the deficiency o f special on time-multip lier, more can widely used in various fields.

KEY WORDS:IEEE754,float,multip lier unit,VHDL,FPGA,Quartus

目录

前言 (1)

第1章绪论 (3)

§1.1 引言 (3)

§1.2 浮点数的格式 (3)

§1.2.1 一般浮点数表示方法 (3)

§1.2.2 IEEE754标准表示的浮点数 (4)

§1.2.3 浮点数的规格化 (5)

§1.2.4 特殊浮点数 (5)

§1.3 浮点乘法器的原理 (6)

第2章EDA工具介绍 (8)

§2.1 EDA技术及其发展 (8)

§2.2 EDA设计流程及其工具 (8)

§2.2.1 设计流程 (8)

§2.2.2 HDL简介 (10)

§2.2.3 Quartus II简介 (10)

第3章整体框架设计及功能模块介绍 (11)

§3.1 设计思路 (11)

§3.2 预处理模块 (11)

§3.3 定点乘法器 (12)

§3.3.1 IEEE754舍入模式 (12)

§3.3.2 定点乘法器原理 (13)

§3.3.3 定点乘法器模块 (13)

§3.4 计算尾数模块 (15)

§3.5 计算阶码及溢出处理 (16)

§3.5.1 定点加减法原理 (16)

§3.5.2 溢出概念与检测方法 (17)

§3.5.3 阶码运算原理 (18)

§3.5.4 补码模块 (18)

§3.5.5 阶码相加模块 (19)

§3.5.6 溢出模块 (20)

§3.6 数据显示模块 (21)

§3.6.1 数据模块 (21)

§3.6.2 显示模块 (22)

第4章仿真结果及实验验证 (24)

§4.1 顶层原理图 (24)

§4.2 顶层仿真 (25)

§4.2.1 一般情况 (25)

§4.2.2 特殊情况 (25)

§4.2.3 显示情况 (26)

§4.3 引脚锁定 (26)

§4.4 硬件平台 (27)

§4.4.1 FPGA简介 (27)

§4.4.2 芯片选择 (28)

§4.5 下载验证 (28)

结论 (30)

参考文献 (31)

致谢 (33)

附录 (34)

前言

21世纪是信息化的时代,信息产业已经成为衡量一个国家经济科技实力的重要标志,集成电路则是信息技术与信息产业的基础,是电子信息产业的命脉。自1971年Intel公司第一块4位处理器芯片面世以来,微处理器的性能遵照“摩尔定律”按照每18个月翻一番的速度不断提高。而随着技术的发展,在国民经济生产的各个领域,越来越需要更高性能的处理器对大量的数据进行处理,且对数据计算精度和实时性要求更高。目前,浮点乘法器不仅应用在许多数字信号处理器中,而且广泛地应用于通用微处理器中,浮点乘法的操作主要包括单、双精度的操作,与IEEE754标准兼容的浮点乘法操作还应包括对乘积的正确舍入、对阶码的必要调整,多数FPGA上可以实现整数和标准逻辑矢量的乘法,但不支持浮点乘法运算,因此使得FPGA在数值计算、数据分析和信号处理能力等方面受到了限制,所以对浮点数据的处理能力就被提上了日程。

随着半导体工艺技术的进步和浮点处理器设计技术的发展,浮点处理器经历了由数字协处理器,到集成在微处理器中的浮点处理器单元,到集成多个浮点处理单元等不同阶段。我国微处理器和浮点处理器的研制水平还比较落后,规模和档次与国外相比差距较大,但经过这几年的努力,已经取得了不少可惜的研究成果。16位DSP汉芯一号的问世,打破了国内没有自主知识产权的局面,使得我国的DSP芯片得到蓬勃的发展。但是汉芯系列芯片,目前仍然只能处理定点数据,这在一定程度上限制了汉芯打入高端DSP市场的发展。而且目前国外的著名芯片设计生产厂无一不推出了浮点DSP产品,如TI的6X系列等,在高端市场上有垄断性的地位。所以研究浮点协处理器对将来推出汉芯系列浮点DSP芯片具有重要的意义。

现在一般的浮点处理器都是在采用定点DSP的条件下由软件实现浮点计算,但是这样的软件程序会占用大量处理器的时间,效率低下。即使采用改进的方法(块浮点法,用软件或软硬件协同来实现),软件的执行效率仍不能与本课题所采用的硬件实现高,所以基于FPGA设计的浮点处理器具有速度快、效率高、性能好的优势。

本文将讨论浮点数按IEEE754标准表示的方法,并针对IEEE754 单精度浮点数据格式进行浮点乘法器设计,即将任意输入的两个以IEEE754标准表示浮点数,遵循其乘法规则,采用VHDL和原理图的设计方法,利用Quartus 软件进行在线编程调试,并下载到FPGA芯片中,验证输出结果的正确性。本课题解决的主要问题有对阶码溢出的处理、结果的规格化处理以及合理利用实验箱的资源进行验证这三方面,最后画出其硬件电路图。全文共分为4章,主要介绍了利用VHDL语言设计乘法器的步骤,本论文的结构为:第1章为绪论,介绍了IEEE754标准及浮点乘法器的原理。

第2章主要介绍了EDA工具,包括VHDL的介绍以及Quartus等相应设计工具的使用方法。

第3章给出了系统整体框架设计和各模块的实现,详细介绍了每个模块的功能及运用Quartus软件工具进行波形仿真的结果。

第4章主要对设计顶层进行仿真以及对结果进行验证并画出其硬件电路图。

最后总结了全文的主要内容,并提出了今后研究的方向。

第1章 绪论

§1.1 引言

计算机中常用的数据一般来说,定点格式容许的数值范围有限,但要求的处理硬件比较简单。而浮点格式容许的数值范围太大,但要求的处理硬件较为复杂。所谓定点格式,即约定机器中所有的数据的小数点位置是固定不变的,通常将数据表示成纯小数或纯整数。可是电子的质量(28-10

9?克)和太阳的质量(33102?克)相差甚远,在定点计算机中无法直接来表示这个数

值范围。这便引入了浮点数表示法既把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,相当于数的小数点位置随比例因子的不同而在一定范围内可以自由浮动,浮点运算与定点运算相比,具有运算速度快,有效精度高,计数范围宽等特点,更适合运用在工程计算与科学计算中,它已成为计算机运算的重要方式。

§1.2 浮点数的格式

§1.2.1 一般浮点数表示方法

任意一个十进制数N 可以写成

M N E

?=10 同样,在计算机中一个任意进制数N 可以写成

M R N ?=e

其中M 称为浮点数的尾数,是一个纯小数。e 是比例因子的指数,称为浮点数的指数,是一个整数。比例因子的基数R=2对二进记数制的机器 是一个常数。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出指数,用整数形式表示,常称为阶码,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号 位。早期计算机中,一个机器浮点数由阶码和尾数及其符号位组成,表示方法见图1-1。

E s

E m-1…E E 10S M M M M …n-110阶符

阶码数符

尾数

图1-1 早期浮点数表示方法

§1.2.2 IEEE754标准表示的浮点数

为便于软件的移植,浮点数的表示格式应该有统一标准。1985年IEEE (Institute of Electrical and Electronics Engineers )提出了IEEE754标准。该标准规定基数为2,阶码E 用移码表示,尾数M 用原码表示,根据原码的规格化方法,最高数字位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储的多一位。其3种浮点格式见表1-1。 表1-1 IEEE754三种浮点数格式参数

类型 存储位数 偏移值

数符(S ) 阶码(E ) 尾数(M ) 总位数 十六进制 十进制

短实数(单精度) 1位 8位 23位 32位 0X7FH +127 长实数(双精度) 1位 11位 52位 64位 0X3FFH +1023 临时实数(不常用) 1位 15位 64位 80位 0X3FFFH +16383

32位单精度浮点数标准格式见图1-2;64位双精度浮点数标准格式见图1-3。

S E M

31302322

0符号位阶码尾数

图1-2 单精度浮点数标准格式

S E M

符号位阶码尾数

636252510

图1-3 双精度浮点数标准格式

不论是32位浮点数还是64位浮点数,规定基数R=2。由于基数2是固定常数,对每一个浮点数都一样,所以不必用显示方式来表示它。32位的浮点数中,S 是浮点数的符号位,占1位,安排在最高位,S=0表示正数,S=1表示负数。M 是尾数,放在低位部分,占用23位,小数点位置放在尾数域

最左(最高)有效位的右边。E 是阶码,占用8位,阶符采用隐含方式,即采用移码方法来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较简单,因为阶码域值大者其指数值大,采用这种方式时,将浮点数的指数真值e 变成阶码E 时,应将指数e 加上一个固定的偏移值127,即E=e+127。

§1.2.3 浮点数的规格化

若不对浮点数的表示做出明确的规定,同一个浮点数的表示就不是惟一的。例如(1.75)10可以表示成,220111.0?,12111.0?,0211.1?等 多种形式。为了提高数据的表示精度,当尾数的值不为0时,尾数域的最高有效位应为1,这称为浮点数的规格化表示,否则以修改阶码同时左右移小数点位置的办法,使其变成规格化数的形式。在IEEE754标准中,一个规格化的32位浮点数x 的真值表示成:

127-2.11-x E S M ??=)()(

e=E-127

其中尾数域所表示的值是1.M 。因为规格化的浮点数的尾数域最左边(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。

§1.2.4 特殊浮点数

指数的偏移值为什么不选128而选127呢?因为存在特殊的浮点数。当阶码E 为全0时,表示的真值x 为零,结合符号位S 为0或1,有正零和负零之分。当阶码E 为全1且尾数M 为全0时,表示的真值x 为无穷大,结合符号位S 为0或1,也有正无穷大和负无穷大之分。这样在32位浮点数表示中,要除去E 用全0和全1表示零和无穷大的特殊情况,指数的偏移量不选128而选127,对于规格化浮点数,E 的范围变为1到254,真正的指数值e 则为-126到+127。特殊浮点数见表1-2。

表1-2 特殊浮点数

单精度(32 bit ) 双精度(64 bit ) 符号位 指数 尾数 值 符号位 指数 尾数 值

正零

0 0 0 0 0 0 0 0 负零

1 0 0 -0 1 0 0 -0 正无穷大

0 255 0 ∞ 0 2047 0 ∞ 负无穷大 1 255 0 -∞ 1 2047 0 -∞

§1.3 浮点乘法器的原理

32位浮点数据格式已知:127-2.11-x E S M ??=)()(。其中乘法器运算操作分

4步进行:

一、确定结果的符号,对A 和B 的符号位做异或操作。

二、计算阶码,两数相乘, 结果的阶码是两数的阶码相加,由于A 和B 都是偏移码,因此需要从中减去偏移码值127,得到A 和B 的实际阶码, 然后相加,得到的是结果的阶码,再把他加上127,变成偏移码。

三、尾数相乘,A 和B 的实际尾数分别为24位数,即1×M a 和1×M b ,最高位1是隐藏位,浮点数据格式只显示后23位,所以尾数相乘结果应为一个48位的数据。

四、尾数规格化,需要把尾数相乘的48位结果数据变成24 位的数据分3步进行:

1、如果乘积的整数位为01,则尾数已经是规格化了;如果乘积的整

数位为10、11,则需要把尾数右移1位,同时把结果阶码加1。

2、对尾数进行舍入操作,使尾数为24位,包括整数的隐藏位。

3、把结果数据处理为32位符合IEEE754浮点数标准的结果,包括1

位符号位,8位结果阶码位,23位尾数位。

其设计流程图如图1-4所示。

确定符号开始

判零

尾数相乘

阶码相加

规格化处理

结束

为零

不为零

图1-4 设计流程图

第2章EDA工具介绍

§2.1EDA技术及其发展

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

§2.2EDA设计流程及其工具

§2.2.1设计流程

一个完整的EDA设计流程采用的是自顶向下的设计方法,图2-1是基于EDA软件的FPGA/CPLD开发流程框图。

其一般流程如图2-1所示。

综合

原理图HDL 文本编辑

FPGA/CPLD

适配

FPGA/CPLD

编程下载逻辑综合器

结构综合器

FPGA/CPLD 器件和电路系统时序与功能门级仿真1. 功能仿真2. 时序仿真功能仿真

1. isp 方式下载

2. JTAG 方式下载

3. 针对SRAM 结构的配置

4. OTP 器件编程

图2-1 应用于FPGA/CPLD 的EDA 开发流程

一、电路设计输入

1、图形输入:原理图输入、状态图输入,波形图输入。

2、HDL 文本输入。

二、 综合。综合是仅对HDL 而言的,综合过程是把软件设计的HDL 描述与硬件结构挂钩,是将软件软化为硬件电路的关键步骤,是文字描述与硬件实现的一座桥梁。

三、适配。适配是将综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。

四、时序仿真和功能仿真。在编程下载前必须利用EDA 工具对适配生成的结果进行模拟测试。

五、编程下载。把适配后生成的下载或配置文件,通过编程器或编程电缆向FPGA 或CPLD 下载,以便进行硬件调试和验证。

六、 硬件测试。最后是将含有载入了设计的FPGA 或CPLD 的硬件系统进行统一测试,以便最终验证设计项目在目标系统上的实际工作情况。

§2.2.2HDL简介

硬件描述语言HDL是EDA技术的重要组成部分,常见的HDL主要VHDL、Verilog、HDL、ABEL、AHDL、System Verilog和SystemC。其中VHDL、Verilo g和现在的EDA设计中使用最多。

VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language),由IEEE(Institute o f Electrical and Electro nics Engineers)进一步发展,并在1987年作为“IEEE标准1076”公布。从此VHDL 成为硬件描述语言的业界标准之一。VHDL技术与传统的数字电子系统或IC 设计相比之下有很大的优势,主要表现在:

第一,VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务提高了设计效率和可靠性。

第二,VHDL语言具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的的能力,并在语言易读性和层次化,结构化设计方面,表现了强大的生命力和应用潜力。

§2.2.3Quartus II简介

Quartus II是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。Quartus II在21世纪初推出时,是Altera 前一代FPGA/CPLD集成开发环境MAX+p lus II的更新换代产品,其界面友好,使用便捷。Altera的Quartus II提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具。此外,Quartus II与MATLAB 和DSP Builder 结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。

第3章整体框架设计及功能模块介绍

§3.1设计思路

首先要根据该乘法器的原理确定本次设计的主要功能模块,本次设计主要实现了以下功能:用实验箱的按键手动输入两个32位的单精度浮点数,并用数码管显示,然后实现这两个数的乘法,进行规格化处理,最终显示在数码管上,同时用两个指示灯来表示阶码的溢出。

该乘法器主要由预处理模块、相乘模块、计算阶码模块、计算尾数模块、计算阶码模块、溢出模块、显示模块组成。其中预处理模块主要是实现对两个浮点数符号位、阶码、尾数的提取,以便为下面的乘法做准备;相乘模块主要实现尾数的相乘得出去其整数部分和小数部分,为计算尾数、规格化处理、以及阶码是否加1做准备;计算阶码模块主要是计算阶码;溢出模块主要对阶码是否溢出做出判断;显示模块主要实现了2个乘数和结果的切换显示。

§3.2预处理模块

由于实验箱的硬件有限,假若一次输入32位二进制数,则将没有多余的控制键,不利于设计的进行,所以在充分利用其硬件资源的情况下,采取一次输入4位二进制数,并对应一个数码管显示,进行16次的输入完成两个乘数的输入。其模块端口如图3-1所示。

图3-1 预处理模块

其中inp ut[3..0]为一次输入的4位二进制数,ok为每次输入的确认键,rst 是复位键,a[31..0]、b[31..0]是最终得到的两个单精度浮点数。a_s、a_e[7..0]、

a_m[22..0]和b_s 、b_e[7..0]、b_m[22..0]分别为两个数的符号位、阶码、尾数。

时序仿真结果如图3-2所示。

图3-2 预处理模块仿真波形

根据仿真波形可以看出经过16次的ok 键确认后,把输入的input 最终转化成了两个单精度浮点数a=(D5685462)16和b=(33642222)16,此时再经过一次ok 键确认便得到了它们各自的符号位、阶码、尾数,a 的符号位a_s=1、阶码a_e=10101010、尾数a_m=11010000101010001100010,b 的符号b_s=0、阶码b_e=01100110、尾数b_m=11001000010001000100010。这为下面的运算做好准备。

§3.3 定点乘法器

§3.3.1 IEEE754舍入模式

在浮点运算过程中一个很重要的步骤是舍入,舍入的目的是使得有效数据的位数保持在固定位数范围内。

一、就近舍入(偶数):目标是使舍入结果尽可能接近实际值。最大误差为±21

LSB(Least Significant Bit)。

二、零舍入RZ:通过截断实际值的多余位来实现。最大误差为土LSB。

三、+∞舍入:结果向正无穷大方向舍入。所有值被舍入到下一个可能值,负数的舍入结果将截去多余位,正数的舍入结果为下一个较大的有效值。

四、-∞舍入:结果向负无穷大方向舍入,负数的舍入结果将为下一个较小的有效值。

下表给出了不同的舍入方法下的舍入结果,以8位值舍入为4位值为例。

表3-1 不同舍入方法的舍入值

数值就近舍入零舍入+∞舍入-∞舍入.01101001.0111.0110.0111.0110

-.01101001-.0111-.0110-.0110-.0111

.10000111.1000.1000.1001.1000

-10000111-.1000-.1000-.1000-.1001

.10000000.1000.1000.1000.1000本次设计中对小数部分的舍入采取零舍入RZ模式。

§3.3.2定点乘法器原理

相乘模块主要实现尾数的相乘,是一个24位定点乘法器,送入定点乘法器的处理后尾数部分都是1.m,所以2个数相乘一定大于1小于4,将相乘的结果分为整数部分和小数部分,则输出结果小数点前的整数部分应有2 bit,且只有01、10、11三种取值;小数点后面的小数部分应该有46位。

当整数位为01时,则只需要对小数部分进行舍入得到23位,这23位即相乘后的尾数部分;当整数位为10、11时,此时需要进行规格化处理,阶码应该加上偏移量1,小数部分进行舍入得到22位,第23位由整数部分决定,整数位为10时,第23位为0,整数位为11时,第23位为1。

§3.3.3定点乘法器模块

该模块的主要功能是得到整数部分和小数部分的舍入值。其模块如图3-3所示。

图3-3 定点乘法器模块

其中clk是工作时钟,mul_ea为定点乘法使能端,高电平有效,a_m[22..0]、b_m[22..0]为送入的两个尾数,zhengshu[1..0]为整数部分,xiaoshu[22..0]为小数部分的舍入值。其乘法规则遵循的是 1.m*1.n=1+(0.m+0.n)+(0.m*0.n)。小数部分则是由0.m*0.n(mul_tmp)和0.m+0.n(add_tmp)得到,整数部分则有1和add_tmp 的进位和xiaoshu_tmp的进位3部分得到。

部分VHDL代码

signal mul_tmp:std_logic_vector(45 downto 0);

signal add_tmp:std_logic_vector(23 downto 0);

signal xiaoshu_tmp:std_logic_vector(23 downto 0);

begin

mul_tmp<=a_m*b_m; --1.m*1.n=1+(0.m+0.n)+(0.m*0.n)

add_tmp<=('0'& a_m)+('0'& b_m);

xiaoshu_tmp<=('0'& add_tmp(22 downto 0))+('0'& mul_tmp(45 downto

23));

zhengshu<="01"+('0'& add_tmp(23))+('0'& xiaoshu_tmp(23));

process(clk,mul_ea)

begin

if(mul_ea='1') then

if(clk'event and clk='1') then

if((a_m="00000000000000000000000")or(b_m="000000000000000 00000000")) then

xiaoshu<=(others=>'0');

else xiaoshu<=xiaoshu_tmp(22 downto 0);

end if;

end if;

end if;

end process;

若输入的尾数中有全为0的情况,xiaoshu[22..0]全为0,当输入的尾数不全为0时,xiaoshu[22..0]为xiaoshu_tmp[22..0]

时序仿真结果见图3-4。

图3-4 定点乘法器模块仿真波形

根据仿真波形可以看出当输入的尾数a_m和b_m至少有一个全为0时,输出的小数部分(xiaoshu)则全为0,整数部分(zhengshu)为01。当输入的两个尾数都不全为0时,此时按照定制的运算规则进行运算。

§3.4计算尾数模块

该模块的主要功能是根据定点乘法器的整数部分和小数部分,从而计算出尾数,其原理可以参照3.3.1节的定点乘法器原理,即当整数部分为01时,得到的xiaoshu就是尾数,不需要处理,当整数部分为1X时,需要对xiaoshu 处理后才能得到尾数。该模块的另一个功能就是对输入两个浮点数的符号位运算。

其端口框图如图3-5所示。

图3-5 计算尾数和符号模块

其中输出端口有data_s,n,data_m[22..0]。data_s是符号位,n是指阶码偏移量,用于对阶码的规格化处理中,data_m[22..0]是计算得到的尾数。

时序仿真结果如图3-6所示

图3-6 计算尾数模块仿真波形

根据仿真波形可以看出在使能端为1的情况下,data_s为a_s异或b_s。尾数则依据定点乘法器的原理,根据整数部分的不同而不同,只有整数部分为01时,此时得到的尾数部分直接等于小数部分,不需要规格化处理,且此时的阶码偏移量n等于0。若整数部分为1X时,此时偏移量n等于1,尾数也需要进行规格化处理。

§3.5计算阶码及溢出处理

§3.5.1定点加减法原理

计算机中经常遇到两个位数等长的带符号位的二进制数相加减,称为定

四位原码乘法器

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,存储;

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次的加法和移位操作就可得到积。注意,每次做加法运算时,被乘

乘法器课程设计

摘要:基于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

有符号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.课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由

乘法器的设计

物理与电子工程学院集成电路设计课程论文题目:乘法器的研究 学生姓名: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部分积生成

VHDL的乘法器设计——数字电路课程设计

数字电路课程设计 题目乘法器设计 班级实验二班 学号 姓名 时间第十三、十四周 地点科A-304 指导陈学英唐青

【摘要】:用FPGA设计完成基于半加器、全加器和保留进位思想设计的4BIT四级流水乘法器,用modelsim仿真其结果。 【目录】: 第一章、实验任务及原理 第二章、设计思路方法及方案 第三章、FPGA模块程序设计与仿真 第四章、结束语

【正文】 【第一章】:实验任务及原理 本实验只要求编写乘法器的硬件代码,并用Modelsim进行仿真测 试。设计乘法器,两个输入都是4BIT,对所有输入相乘都得到正 确结果,乘法器采用四级流水设计,以增加处理速度。用modelsim 仿真时,要求用时钟上升沿方式遍历所有输入,检查输出结果是否 正确。原理用到流水,进位保留思想。 【第二章】:设计思路及方案 算法结构(无符号) 由上图可见,乘法的运算最终是加法的运算,两个4BIT输入,输出为7BIT。模块一、半加器:单比特输入相加, 模块二、全加器:由两个半加器组成,有一个进位输入, 模块三、进位保留加法器:

最终程序结构图 流水设计的原理:在前向割集上加入四级流水 图一 图二 如上图所示方框代表触发器,五边形代表组合逻辑块,假设图一中逻辑块输入输出延时为Ta,图二将逻辑块切割成两块,延时分别为T1,T2,且Ta=T1+T2,

并在两逻辑块之间加触发器,两个逻辑块工作频率都可以达到clk频率,故工作速度增加一倍,虽然时延增加了,但资源优化了许多。 【第三章】:FPGA程序模块及仿真 半加器的程序模块: entity half_adder is port(a,b:in std_logic; s,cout:out std_logic); end half_adder; architecture Behavioral of half_adder is begin s<=a xor b; cout<=a and b; end Behavioral; 全加器的程序模块:调用半加器,采用顶层设计 entity full_adder is port(a,b,cin:in std_logic; s,cout:out std_logic); end full_adder; architecture Behavioral of full_adder is component half_adder port(a,b:in std_logic; cout,s:out std_logic); end component; signal h1s,h1cout,h2cout:std_logic; begin u1:half_adder port map(a,b,h1cout,h1s); u2:half_adder port map(cin,h1s,h2cout,s); cout<=h1cout or h2cout; end Behavioral; 乘法器的程序模块: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ----Uncomment the following library declaration if instantiating ----any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all;

4位二进制乘法器课设报告

课程设计4位二进制乘法器电路的设计 班级 学号 学生姓名 指导教师

课程设计任务书 课程名称数字逻辑课程设计 课程设计题目4位二进制乘法器电路的设计 课程设计的内容及要求: 一、设计说明 设计一个4位二进制乘法器,可以存贮其乘积。 电路原理框图如图1所示。乘法器可以利用加法器和寄存器实现。 图1 乘法器原理框图 寄存器B存放被乘数,寄存器Q存放乘数,两个乘积长度有可能是原来的2倍,故计算完成后将累加和寄存器A放乘积的高位,而Q放乘积的低位,P记录乘数的位数,每形成一个部分积P加1,当P=4时,乘法结束,两数之积放在AQ寄存器中。 二、技术指标 1.设计4位二进制乘法器。 2.其乘积可以存贮。 三、设计要求 1.在选择器件时,应考虑成本。 2.根据技术指标通过分析计算确定电路形式和元器件参数。

3.主要器件:(1)74LS74双D触发器;(2)74LS194双向移位的寄存器; (3)74LS283加法器;(4)74LS00、74LS04等门电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。 2.进行实验数据处理和分析。 五、推荐参考资料 1.谢自美. 电子线路设计·实验·测试. [M]武汉:华中理工大学出版社,2000年 2.阎石. 数字电子技术基础. [M]北京:高等教育出版社,2006年 3.付家才. 电子实验与实践. [M]北京:高等教育出版社,2004年 六、按照要求撰写课程设计报告 成绩评定表: 指导教师签字:

一、概述 4位二进制乘法器在实际中具有广泛应用。它是一些计算器的基本组 成部分,其原理适用于很多计算器和大型计算机,它涉及到时序逻辑电路如何 设计、分析和工作等方面。通过此电路更深刻的了解时序逻辑部件的工作原理,从而掌握如何根据需要设计满足要求的各种电路图,解决生活中的实际问题,将所学知识应用于实践中。 根据任务书规定,设计电路的技术指标:设计乘积可存贮的4位二进制乘法器;设计要求:根据成本选择器件,根据技术指标确定电路形式和元器件参数;实验要求:根据技术指标制定实验方案,并验证所设计的电路,对实验数据进行处理和分析。 二、方案论证 本实验要求设计一个乘积可存贮的4位二进制乘法器。 实验电路输入的被乘数取值范围为(0000)2~(1111)2,乘数的取值范围为(0000)2~(1111)2。通过计算可得,乘积的取值范围为(00000000)2~(11100001)2。通过初步的数值位数分析可知,储存被乘数需要1片4位二进制寄存器,储存乘数需要1片4位二进制寄存器,储存乘积需要2片4位二进制寄存器。 由图1中二进乘法竖式计算可以看出:二进制乘法可以转化为移位累加操作。对于4位二进制乘法,以8位乘积寄存器的高4位储存累加结果。运算时先将乘 图1 4位二进制乘法运算竖式分析

16×16位移位相加乘法器设计样本

本科学生毕业论文 6 月 13日 论文题目: 16×16位移位相加乘法器设计 学 院: 电子工程学院 年 级: 级 专 业: 集成电路设计与集成系统 姓 名: 于昊 学 号: 2141 指引教师: 曹贝

摘要 随着集成电路设计技术不断进步,乘法器芯片设计实现研究与应用越来越广泛,对乘法器进行ASIC芯片设计,具备设计实现过程简朴、所用到EDA工具完善并且成熟、硬件开销小、易于在VLSI电路或系统级芯片中集成。普通,数字电路设计流程对于芯片实现而言,需要RTL级HDL描述,并要对各层次设计进行功能仿真验证,在验证电路能按预期设计功能工作后,即可对RTL级HDL描述进行综合、优化,形成门级网表。整个设计流程可称为数字电路前端设计。本课题基于移位相加算法研究,设计16位移位相加乘法器,并在功能仿真通过后,将所设计Verilog RTL级代码进行综合,采用Synopsys公司Design Compiler EDA工具进行电路综合,获得16位移位相加乘法器门级网表与电路实现。 核心词 数字电路设计;移位相加乘法器;综合;

Abstract Abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract.(英文摘要内容必要与中文摘要完全相应。英文摘要采用Times New Roman小四号字书写,毕业论文、毕业设计行与行之间、段落和层次标题以及各段落之间均为1.5倍行距。) Key words Key words;key words;key words(英文核心词内容必要与中文核心词完全相应。英文核心词采用Times New Roman小四号字书写,毕业论文、毕业设计行与行之间、段落和层次标题以及各段落之间均为1.5倍行距。核心词与核心词之间用“;”隔开)

乘法器设计

目录 引言 (1) 1 设计任务及设计要求 (1) 1.1设计任务 (1) 1.2设计要求 (2) 1.3编码器的真值表 (2) 2 设计总体思路 (2) 2.1系统框图 (2) 2.2各单元电路设计 (3) 2.2.1 输入模块 (3) 2.2.2 数字与符号分离模块 (3) 2.2.3 乘法运算模块 (3) 2.2.4 数字与符号组合模块 (4) 2.2.5 显示控制模块 (4) 2.2.6 输出数字与符号分离模块 (5) 2.2.7 进制转换模块 (5) 2.2.8 消零模块 (6) 2.2.9 seltime模块 (6) 2.2.10 led模块 (7) 2.2.11 灭点模块 (7) 2.3总电路图设计 (8) 3 设计调试与分析 (8) 3.1设计调试 (8) 3.1.1 管脚锁定 (8) 3.1.2 各模块仿真波形图 (9) 3.2设计结果分析 (13) 4 设计改进及总结 (14) 4.1设计改进 (14) 4.1.1 电路图: (14) 4.1.2 INPUT模块 (15) 4.1.3 SEGSEL模块 (16) 4.1.4 DELED模块 (18)

4.1.5 电路图 (19) 4.1.6 仿真波形图 (19) 4.1.7 实验箱调试 (20) 4.2设计总结 (20) 参考文献 (21) 附录:程序部分 (21) 1输入模块 (22) 2数字与符号分离模块 (22) 3乘法运算模块 (23) 4数字与符号组合模块 (24) 5显示控制模块 (24) 6输出数字与符号分离模块 (25) 7进制转换模块 (25) 8消零模块 (26) 9SELTIME模块 (27) 10LED模块 (29)

4位二进制乘法器

4位二进制乘法器的设计 一、概述 4位二进制乘法器在实际中的应用相当广泛,是一些计算器的基本组成部分,其原理适用于很多计算器和大型计算机,它涉及到时序逻辑电路如何设计、分析和工作等方面。通过此电路更深刻的了解时序逻辑部件的工作原理,从而掌握如何根据需要设计满足要求的各种电路图,解决生活中的实际问题,将所学知识应用于实践中。 根据任务书设计电路主要要求是:绘制出电路的原理图,并且诠释每部分的功能;根据设计的电路图分析所需要元器件种类和个数;根据技术指标制定实验方案,验证所设计的电路;进行实验数据处理和分析。 设计任务技术指标;输入数据:被乘数X(0000~1111);乘数Y(0000~1111);输入命令:启动信号S1,高有效。输出数据:乘积C(00000000~11100001);其乘积可以存贮。 二、方案说明 此方案采用74LS194双向移位寄存器,74LS283加法器和 74LS00、74LS04等门电路。乘法就是反复进行移位和加法,被乘数放入MD寄存器,乘数放入MQ 寄存器,A寄存器中放结果,乘数的位数放在C寄存器中。AC寄存器的初值为0。A寄存器的内容被右移时,最高位移入0,其最低位内容被移入MQ的最高位。C 寄存器右移时,其最高位移入1。若MQ寄存器的最低位(用M(0)来表示)为1时,将被乘数与A寄存器中的内容用全加器相加后,将结果放回A寄存器中保存。若M(0)的值为0,将0与A寄存器的内容相加,将其结果再存入A寄存器。接着,将A、MQ、C寄存器的内容右移1位。将此动作反复进行乘数位数那么多遍。此乘法电路通过同步电路操作,运算与时钟脉冲同步进行。 从以上方案中可知,方案设有信号发生电路,数据输入电路,移位寄存电路,加法电路和运算结束判断电路和启动电路。各部分功能明确且之间的联系容易理解,所以采用这种方案。 原理框图如图1所示。 1

4位乘法器的设计

数字电子技术课程设计报告题目: 4位乘法器的设计 学年 2009-2010 学期 2 专业***** 班级:*** 学号:****** 姓名:*** 指导教师: ***8 时间:2010年3 月1 日~2010 年3 月4 日浙江万里学院电子信息学院

目录 一、设计任务与要求 (3) 二、设计总体方案 (3) 三、各单元模块电路的设计实施方案 (5) 四、结果分析 (7) 五、体会和总结 (10) 附录一、电路设计总图 (10) 附录二、主要芯片引脚图 (10)

1、 设计任务与要求 试设计一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、设计总体方案 移向-加法器数混合乘法器实现框图如图所示,主体包括寄存序列、与逻辑 和加法器等三部分。 启动信号 寄存序列 与逻辑 加法器 积 被乘数 乘数 清零信号 通过实现框图看出其原理就是:被乘数与乘数进入寄存序列,然后通过与逻辑和加法器的运算后得到被乘数与乘数的乘积。其中启动信号用来启动乘法运算,而清零信号则为积存器和计数器的清零信号。可以确定乘法器的表达式为: B AII B AI B AII AI Y ?+??=?+?=222)2( 移向-加法器树混合乘法器算法方案框图设计出的移向-加法器树混合乘法器框。 MUL END P 844 A B START 1 0 1 1 1 1 0 1×1 0 1 10 0 0 0 1 0 1 11 0 1 1 1 1011001

乘法器课程设计

中文摘要 在科技巨轮的飞速旋转下,当今数字技术应用在生活中可以说是无处不在。信息技术型人才的需求与日俱增,为跟上时代数字发展的阔步迈进,保证为社会提供具有创新能力,能解决实际问题的高新型技术人才成为高等教育的首要任务之一。数字电子技术正是应和当今教育趋势的一门必修基础课。 中规模集成电路及其应用,本身就是一种促进时代进步的优秀的数字逻辑设计作品,使用时只需适当地进行连接,就能实现预定的逻辑功能。而且由于他们所具有的通用性、灵活性、及多功能性,使之除完成基本功能之外,还能以他们为基本器件组成各类逻辑部件和数字系统,有效地实现各种逻辑功能。 乘法器正是中规模集成电路应用中的典型代表,该设计根据乘法的运算原理为加法(即被乘数与乘数的拆项求积后的移位相加),通过键盘、优先编码器、移位寄存器、加法器、译码器和显示器等通过十进制数到二进制及BCD码的码实现数字电路的乘法可算及可视。该设计电路不单用于单纯的乘法运算,亦是构成其他大规模集成电路的基本组成部分,完成在系统里实行符合该电路模块工作特性的分支操作。 关键词电力系统,集成电路,加法器,分支操作,寄存器

目录 课程设计任务书..............................................................................................I 课程设计成绩评定表.....................................................................................II 中文摘要......................................................................................................III 1 设计任务描述.. (1) 1.1 设计题目 (1) 1.2 设计要求 (1) 1.2.1 设计目的 (1) 1.2.2 基本要求 (1) 1.2.3 发挥部分 (1) 2 设计思路 (2) 3 设计方框图 (3) 4 各部分电路设计及参数计算 (4) 4.1 键盘输入及寄存电路 (4) 4.1.1键盘输入及寄存电路设计 (4) 4.2乘法运算电路设计及其参数计算 (5) 4.2.1电路设计 (5) 4.2.2电路说明 (6) 4.2.3参数计算 (6) 4.3.1 电路设计 (7) 4.3.2电路说明 (7) 4.4显示电路设计 (8) 4.5夜间照明电路 (8) 5 工作过程分析 (9) 6 元器件清单 (11) 7主要元器件介绍 (12) 7.1 双向移位寄存器74LS194 (12) 7.1.1 74LS194的功能介绍 (12) 7.1.2 74LS194的功能表 (12) 7.2 超前进位全加器74HC283 (13) 7.2.1 74HC283的工作原理介绍 (13) 7.2.2 74HC283的功能表 (13) 7.3 编码器74148N (14) 7.3.1 74148N的工作原理 (14) 7.3.3 74148N的状态表 (15) 小结 (16) 致谢 (17) 参考文献 (18) 附录 (19) A1逻辑电路图 (19)

EDA4位乘法器的程序

实验四、4位乘法器的实现 一、实验前准备 本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为 2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。请参考前面第二章中关于“电源模块”的说明。 二、实验目的 1、掌握利用V erilog HDL语言实现乘法器的方法 2、掌握利用8位数码显示模块的设计 三、实验内容 1、用Verilog HDL语言按照移位循环相加方法实现4x4乘法器模块。 2、用Verilog HDL语言实现8位数码显示模块。 三、实验原理 乘法运算模块可采用移位相加原理实现,本实验采用乘法器模块和显示模块在顶层模块中例化的方法实现。 四、实验步骤 1、按照以下步骤完成每一个模块的设计:新建设计文件夹(不可用中文)-》新建设计文件-》输入设计项目(原理图/Verilog HDL文本代码)-》存盘(注意原理图/文本取名)-》将设计项目设置成Project-》选择目标器件-》启动编译-》(可选:建立仿真波形文件-》仿真测试和波形分析) 2、新建顶层原理图文件,调入第1步中设计好的各模块,以原理图方式实现顶层设计-》存盘(注意原理图/文本取名)-》将设计项目设置成Project-》选择目标器件-》启动编译-》建立仿真波形文件-》(可选:建立仿真波形文件-》仿真测试和波形分析)-》引脚锁定并编译-》编程下载/配置-》硬件测试 五、硬件测试说明 1、乘数与被乘数接8位数字开关A组。 2、结果显示接动态数码管。 六、硬件连线说明 如果独立扩展板芯片为EP1K30QC208 PIN分配 CLK 79 接GCLK1 Rst 71 接按键F12,需要连线到右下角F12的连线插孔 Display[6] 93 接数码管段位引线A Display[5] 92 接数码管段位引线B Display[4] 90 接数码管段位引线C Display[3] 89 接数码管段位引线D Display[2] 88 接数码管段位引线E Display[1] 87 接数码管段位引线F Display[0] 86 接数码管段位引线G

四位二进制乘法器课程设计报告

4位二进制乘法器课程设计报告 目录 1 设计任务 (2) 1.1 设计的目的 (2) 1.2 设计要求 (3) 2硬件描述语言——VHDL (3) 2.1 VHDL简介 (3)

3 设计规划过程 (5) 3.1四位二进制乘法器的组成原理 (6) 3.2乘法器的设计 (6) 4 心得体会 (9) 5 参考文献 (10) 1 设计任务 1.1 设计的目的 本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对四位二进制乘法器的设计,

巩固和综合运用所学课程,加深对数字电路和VHDL基本单元的理解,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标,乘法器的设计可以使对计算机怎样工作有了更深了解,其实当初想到设计这个课题。 1.2 设计要求 1)构造一个4位二进制乘法器; 2)受按键控制由4bit输入端口先后输入四位乘数和被乘数(乘数,被乘数均由HDB3码表示); 3)用两个七段数码管显示积,以十进制显示; 2硬件描述语言——VHDL 2.1 VHDL简介 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。VHDL的英文全写是:VHSIC(Very High eed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。 VHDL主要用于描述数字系统的结构,行为,功能和接

4乘4位阵列乘法器设计

课程设计报告课程设计题目:4乘4位阵列乘法器设计学生姓名:杨博闻 学号 专业:计算机科学与技术 班级:1120701 指导教师:汪宇玲 2014年1月4日

一、设计目的 1.掌握乘法器的原理及其设计方法。 2 .熟练应用CPLD 设计及EDA 操作软件。 二、设计设备 1.TDN-CM+或TDN-CM++教学实验系统一套。 2 ·PC 微机一台。 3·ispDesignEXPERT 软件 模型机数据通路结构框图 三、设计原理 本实验用CPLD 来设计一个4 ×4 位乘法器,相对于画电路图输入,用ABEL 语言描述是比较方便的。其算式如下(其中括号中的数字表示在ABEL 源程序描述中的功能块调用编号): a3 a2 a1 a0 ×b3 b2 b1 b0 ---------------------------------------------------------------------------------------------------------- a3b0(10) a2b0(6) a1b0(3) a0b0(1) a3b1(13) a2b1(9) a1b1(5) a0b1(2) a3b2(15) a2b2(12) a1b2(8) a0b2(4) +a3b3(16) a2b3(14) a1b3(11) a0b3(7) ----------------------------------------------------------------------------------------------------------- p7 p6 p5 p4 p3 p2 p1 p0 四、设计步骤 1.安装EDA 软件 打开计算机电源,进入Windows 系统,安装上述ispDesignEXPERT 软件。 安装完成后,桌面和开始菜单中则建有ispDesignEXPERT 软件图标。 2.用ispDesignEXPERT 软件根据上述乘法的逻辑原理用ABEL 语言编写功 能描述程序。 其在1032 芯片中对应的管脚如图: 3.编辑、编译和下载 使用ispDesignEXPERT 软件编辑源程序并进行编译,然后打开实验系统电 源,将生成的JEDEC 文件下载到ispLSI1032 中去。 4 .连接实验电路

4位乘法器设计开题报告

中国海洋大学青岛学院 毕业设计 开题报告 题目 4位乘法器的设计 系(中心)信息工程系 年级 2008级 专业电子信息工程 姓名高吉 学号 200802305331 指导教师王学玲

一、选题依据 课题来源、选题依据和背景情况;课题研究目的、学术价值或实际应用价值 现代社会在飞速发展,科学技术的发展越来越快。4位二进制乘法器在十几种的应用相当广泛,是一些计算器的基本组成部分,其远离适用于很多计算器和大型计算机,他涉及到实训逻辑电路如何设计。分析和工作等方面。通过次电路更深刻的了解时许逻辑不见的工作原理,从而掌握如何根据需要设计满足要求的各种电路图,解决生活中的实际问题,将知识应用于实践中。 根据课题研究的目地是,绘制出电路的原理图,并且诠释每部分的功能;根据设计的电路图分析所需要的元器件种类和个数;根据技术指标指定实验反感,验证所设计的电路;进行实验数据处理和分析。 研究此课题,目地在于使我们了解4位乘法器在实际中的应用,了解它的具体工作原理以及它的基本电路图,使我们以后可以应用它解决一些实际问题。通过对4位乘法器的设计,让我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 二、文献综述 国内外研究现状、发展动态;查阅的主要文献 研究现状 乘法器由于它的应用十分广泛,是一些计算器的基本组成部分,被广泛应用于大型计算机中,所以各国科学家对其都进行了积极的研究,现在超级计算机的出现,使的最基本的乘法器又有了更大的发展。发展前景广阔。 查阅主要文献: 1.《VHDL应用与开发实践》著译者: 甘历出版者:科学出版社 2.《VHDL与数字电路设计》卢毅赖杰科学出版社 2001年4月 3.《VHDL编程与仿真》王毅平张振荣人民邮电出版社 2000年7月 4.《数字电路设计与Verllog HDL》张亮人民邮电出版社 2000年10月 5.《VHDL简明教程》王小军清华大学出版社

ASIC系统设计实验报告_八位乘法器

八位乘法器的设计 汪明 2080130204 信号与信息处理 乘法是算术运算中经常用到的一个运算单元,所以在算法实现中会经常用到乘法。由于乘法器具有一定的复杂性,考虑到面积等因素,很多传统的处理器中都不包含乘法器单元,乘法则是通过算法换算成加法和移位在处理器中进行实现,针对这些处理器编写程序的时候应尽量少的应用乘法运算。随着DSP 技术的逐步发展,目前大多数高性能的处理器中都包含了乘法器运算单元,但仍有很多小型的控制型处理器不包含这一单元,所以设计面积小、速度快、性能稳定的乘法器模块仍然很有意义。本实验的目的是选用一种设计方案设计一个八位乘法器,利用XINLINX ISE 软件进行VHDL 程序的编写,然后对程序进行仿真验证,并对所设计的乘法器进行评价。 1 原理分析与方案选择 乘法器的设计有多种方案,有模拟乘法器、数字乘法器两种类型,前者主要是利用模拟器件对模拟信号进行乘法的设计,复杂度较高,后者则是通过数字器件来实现数字信号的乘法。本实验利用FPGA 设计数字乘法器件,根据数字信号的乘法运算准则,又有串行和并行两种设计方法,串行设计时被乘数从低位到高位串行输入,乘法结果从低位到高位串行输出,其常用的结构(四位乘法器)如下图(1)所示;并行乘法器的输入/输出采用并行的方式,通常情况下计算性能比串行的好。 图1 四位串行乘法器结构 本文采用并行输入/输出方式来进行乘法器的设计。下面以4位二进制数的乘法为例,对二进制乘法运算的过程(图2示)进行说明。由图2可知,如果对中间部分一行一行的处理,则乘法部分由一个个的2输入与门与二输入全加器组成,将这些结构联合在一起组成如图3所示的结构。 ) 0()1()2()3()4()5()6()7(0313233302122232011121310010203001230123pro pro pro pro pro pro pro pro b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a a a a a b b b b ----------------------------------------+????+????+????????? 图2 四位二进制乘法过程

相关文档
最新文档