16位有符号乘法器设计


对每个部分积,符号扩展的过程可以看成符号位取非,再上全 1 的扩展。这也是前面部 分积产生电路中取 E 为符号位的非的原因。 对于全 1 的扩展,可以预先计算出结果。如图 6 中的 1 阵列,经过计算,可以化简成 图 7 的样子。 然后,加上符号位的非,得图 8。类似前面符号位扩展,可以把 E+(11)b 变为 EEE 。(图 9)
1. 部分积的产生
我们知道,N 位补码表示的数,它的值等于
val ( X ) X N 1 2N 1 X N 2 2N 2
X 2 22 X1 21 X 0 20
2 / 12
根据 ( X k ) 2k ( X k ) 2k 1 (2 X k ) 2k 1 ,可以把一个奇数项分解成前后两个偶数项 (图 1),那么部分积的数量减少了一半。变换之后,X 的值可以表示为
表 1 Wallace 资源使用情况
资源 半加器 全加器
数量 22 个 91 个
7 / 12
16 bits
A
PP[i] 1 E E S Half Adder Full Adder
B
C
D
E
F
图 10 构造 Wallace Tree
3) 加法器的选择 使用 DC 综合时,可以指定加法器的实现方式。在 Verilog 代码中,通过注释指定 DC 综 合时选用的加法器类型, 如图 11。 根据 synopsys 提供的 DesignWare Building Block IP user guide,在设计中指定模块实现的方法如下。
二. 方案选择
编码方式: Booth2 编码 拓扑结构: Wallace 树 加法器:Carry look ahead Adder Booth2 编码可以使部分积的数量减半,并且解决了符号问题,也就是说,符号位不需要 单独处理。 部分积的累加采用 Wallace 树,和其它拓扑结构相比,Wallace 具有硬件节省,延时小的 优点,Wallace 树的传播延时等于 O(log3/2 N ) 。 最终相加使用的加法器使用的是 DesignWare 中的超前进位加法器,通过在 Verilog 中添 加 synopsis 控制命令来明确指定 DC 选择何种实现。
3 / 12
图 2 部分积选择表
对应的部分积选择电路如图 3。电路由布斯编码器和选择器组成。先对 Y 进行一位符号 扩展,然后选择 Y 或者 2Y,最后决定是否要取反。 注意其中的 E 是符号位的非。
Y[15:0]
SM S2M
Booth encoder
X(2k-1) X(2k) X(2k+1)
E Partial Product[15:0]
三. 详细设计
乘法器设计主要参考了文献[1]的方法,并在此基础上有所改进,改进的内容包括两个方 面: 1. 2. 简化了 E 的逻辑。实际上,E 等于符号位取反。 每行的部分积点数是 16 点,比文献[1]的 17 点少 1 点。17 点的部分积中,最高位 是符号位,取反后等于 E,余下的只有 16 点。
X0 X1 X2
S S S
X14 X15
图 6 全 1 扩展
5 / 12
0
16 bits
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 S S S S S S S S
X0 X1 X2
X14 X15
图 7 预先计算的结果
0
16 bits
E 1 1 1 E 1 E 1 E 1 E 1 E 1 E 1 E S S S S S S S S
图 3 使用 Booth 2 编码的部分积产生电路
S
2. 部分积的累加
由前面的部分积产生电路, 能够得到 8 个部分积, 这些部分积需要经过符号扩展和累加, 才能得出乘法运算的结果。 1) 符号位扩展逻辑 符号位扩展,以扩展 8 位为例,假设符号位是 S,那么扩展的后,得到
4 / 12
S S S S S S S S
16*16 有符号乘法器设计
翁新钎 10212020048
一. 二. 三. 1. 2. 1) 2) 3) 四. 五. 六.
设计要求 ............................................................................................................................... 2 方案选择 ............................................................................................................................... 2 详细设计 ............................................................................................................................... 2 部分积的产生 ............................................................................................................................. 2 部分积的累加 ............................................................................................................................. 4
1 / 12
一. 设计要求
设计方案选择要求如下: 编码方式:non-booth 编码,Booth 编码,Booth2 编码(任选一种) 拓扑结构:简单阵列,双阵列,二进制树,Wallace 树(任选一种) 加法器:Ripple Carry Adder,Carry bypass,Carry select,Carry look ahead(任选一 种或采用混合方法)
k 0
N /2 1

N /2 1 k 0
[( X
2 k 1
X 2 k 2 X 2 k 1 )Y ] 22 k
因此,部分积的表达式是 PP k ( X 2 k 1 X 2 k 2 X 2 k 1 )Y 。根据这个表达式,可以列出 如图 2 的部分积选择表,其中 Multiplicand=Y。
符号位扩展逻辑..................................................................................................................... 4 构造 Wallace Tree .................................................................................................................. 7 加法器的选择......................................................................................................................... 8
2 Rn 1 Rn 。 3
初始的点阵有 9 行,所以第一轮覆盖,约减目标是 6 行(9*2/3=6),第二轮覆盖的约 减目标是 4 行(6*2/3=4),第三轮覆盖的约减目标是 3 行(4*2/3=2.67),第四轮覆盖 的约减目标是 2 行(3*2/3=2)。经过四轮覆盖,将部分积点阵约减到两行,然后使用 一个加法器做最终相加。 树的构造方法:从右向左,逐列处理。从第一个超出约减目标行数的列开始,使用压缩 器覆盖,半加器的功能是减少一行,全加器的功能是减少两行,半加器或者全加器都会 向左边一列贡献一个点,因此在处理下一列时,初始行数是原始的行数加上右边一列的 压缩器数量。使用压缩器覆盖,如此反复,直到处理完每一列。 图 10(B、C、D、E)示意出每一轮覆盖的方法。经过 4 层覆盖,得到图 10(F)的两 行 32 点,使用一个 32 位加法器做最终相加。
仿真结果 ............................................................................................................................. 10 综合结果 ............................................................................................................................. 10 参考文献 ............................................................................................................................. 11
图 4 基本的符号扩展
如果 S 等于 1,得到的是 0xFF,如果 S 等于 0,得到 0x00。0xFF 加上 1 再舍去溢出位就 得到 0x00, 所以符号扩展的逻辑可以等价于 0xFF+not(S)。
S 1 1 1 1 1 1 1 1 S S S S S S S S S
图 5 符号扩展的等价方法
215 X 15
214 X 14 2 X 15 X 13
23 X3
22 X2 2 X 3 X1
21 X1
20 X0 2 X 1 X 1 ( 0)图 1 一个奇数项分解 Nhomakorabea两个偶数项
合集下载

采用Booth算法的16

采用Booth算法的16

采用Booth算法的16×16并行乘法器设计刘东(西南交通大学计算机与通信工程学院四川成都610031)摘要:介绍了一种可以完成16位有符号/无符号二进制数乘法的乘法器。

该乘法器采用了改进的Booth算法,简化了部分积的符号扩展,采用Wallace 树和超前进位加法器来进一步提高电路的运算速度。

本乘法器可以作为嵌入式CPU内核的乘法单元,整个设计用VHDL语言实现。

关键词:乘法器;Booth算法;Wallace树;超前进位加法器在专用集成电路设计中,面积小但功能强大的CPU内核可以为设计提供很大的方便。

而乘法器又是CPU中一个重要的部件,本文分析了设计乘法器所用到的算法并提供了乘法器的设计方案。

乘法器的处理过程大致相同,都是先生成部分积再相加。

为了提高乘法器的性能,可以从减少部分积的个数,对部分积的相加采用并行加法。

采用Booth算法[1]可以使部分积的个数减少一半[1],采用Wallace 树行结构的加法器完成N个部分积需要lgN次加法时间[2],最后再使用超前进位加法器来减少加法运算中进位传播时间[3]。

本文设计的乘法器由Booth编码、Wallace树形结构和超前进位加法器3部分组成。

1乘法器结构本乘法器提供16位二进制有符号/无符号乘法运算。

为了区分是有符号还是无符号数,增加了1位即第17位用于符号控制,有符号则为1,无符号则为0。

无符号数的范围是0~216-1,有符合的范围是-215~215-1。

乘法器的结构如图1所示。

在执行一次乘法运算时,首先乘数和被乘数扩展1位符号控制位以判断是有符号数还是无符号数,然后用并行Booth编码器对乘数进行编码,根据Booth 编码输出并行生成部分积。

生成所有部分积后需要对部分积进行符号扩展以便进行相加,然后用Wallace树形结构加法器将部分积相加得到32位乘法结果。

2 Booth算法在乘法器设计中大都采用改进Booth算法以减少部分积,简化电路和提高运算速度。

十六位硬件乘法器电路设计报告

十六位硬件乘法器电路设计报告

课程名称电子设计自动化题目十六位硬件乘法器电路院系班级信息学院11电子信息工程A班姓名学号指导老师凌朝东2013 年 12 月 5 日题目名称:十六位硬件乘法器电路摘要:设计一个16位硬件乘法器电路.要求2位十进制乘法,能用LED数码管同时显示乘数,被乘数和积的值.本设计利用Quartus II软件为设计平台,通过移位相加的乘法原理:即从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。

经软件仿真和硬件测试验证后,以达到实验要求。

目录1.题目名称 (2)2.摘要 (2)3.目录 (3)4.正文 (4)4.1. 系统设计 (4)4.1 设计要求 (4)4.2 系统设计方案 (4)4.2 单元电路设计 (4)4.2.1十进制计算模块 (5)4.2.2 BCD码转二进制模块 (5)4.2.3 8位右移寄存器模块 (6)4.2.4 8位加法器模块 (7)4.2.5 1乘法器multi_1模块 (7)4.2.6 16位移位寄存器reg_16模块 (8)4.2.7 16位二进制转BCD码B_BCD模块 (9)4.2.8 8位乘法器multi_8x8顶层设计 (10)4.3 软件设计 (12)4.3.1设计平台和开发工具 (12)4.3.2程序流程方框图 (13)4.4 系统测试 (14)4.1仿真分析 (14)4.2硬件验证 (15)5. 结论 (15)6. 参考文献 (15)7. 附录 (15)4.正文4.1系统设计1.1设计要求题目要求设计一个16位硬件乘法器电路.要求2位十进制乘法;能用LED数码管同时显示乘数,被乘数和积的信息.设置一个乘法使能端,控制乘法器的计算和输出.1.2系统设计方案此设计问题可分为乘数和被乘数输入控制模块,乘法模块和输出乘积显示模块基本分.乘数和被乘数的输入模块使输入的十进制数转化为二进制数输入乘法模块,乘法模块利用移位相加的方法将输入的两组二进制数进行相乘,并将16位乘积输出到乘积输出显示模块.显示模块将输入的二进制数按千,百,十,个位分别转化为十进制数输出.乘数和被乘数的输入可用数据开关K1~K10分别代表数字1,2,…,9,0,用编码器对数据开关K1~K10的电平信号进行编码后输入乘法器进行计算.但此方案所用硬件资源较多,输入繁琐,故不采取.方案二是利用硬件箱自带16进制码发生器,由对应的键控制输出4位2进制构成的1位16进制码,数的范围是0000~1111,即0H~FH.每按键一次,输出递增1,输出进入目标芯片的4位2进制数将显示在该键对应的数码管.乘数和被乘数的输入模块将16进制码的A~F码设计成输出为null.使得减少了无用码的输入.两数相乘的方法很多,可以用移位相加的方法,也可以将乘法器看成计数器,乘积的初始值为零,每一个时钟周期将乘数的值加到积上,同时乘数减一,这样反复执行,直到乘数为零.本设计利用移位相加的方法使得程序大大简化.系统总体电路组成原理图如下图所示:4.2单元电路设计下面分解8位乘法器的层次结构,分为以下7个模块:1. 十进制计算模块:使用4个十进制计数模块,输入乘数的十位个位,被乘数的十位个位。

一种高效16位有符号数乘法器设计

一种高效16位有符号数乘法器设计

一种高效16位有符号数乘法器设计
李娅妮;郎世坤;王雅;师瑞之
【期刊名称】《集成电路与嵌入式系统》
【年(卷),期】2024(24)6
【摘要】为了进一步优化乘法器的性能,提高乘法运算单元的运算速率,本文基于Radix 4 Booth算法和Wallace树压缩结构提出了一种改进的16位有符号数乘法器。

其特点包括优化Radix 4 Booth编码方式,有效减小部分积选择电路的面积;改进部分积计算过程,通过优化取反加1的方法直接生成被乘数的相反数,同时采用经典的符号位补偿算法使得部分积阵列变得规整易压缩;提出一种新型42压缩器,采用单个全加器处理压缩器的中间进位,针对每行部分积不同的数据特征,细化处理了Wallace树压缩结构,提高了部分积的压缩效率。

基于SMIC 180 nm标准单元库进行了综合与验证,结果表明本文所设计的乘法器关键路径延时为3.94 ns,面积为16246μm^(2),相比于现有的乘法器,本文乘法器的运算速率和综合性能都得到显著提升。

【总页数】5页(P41-45)
【作者】李娅妮;郎世坤;王雅;师瑞之
【作者单位】西安电子科技大学
【正文语种】中文
【中图分类】TM76
【相关文献】
1.一种高效双精度浮点乘法器
2.一种高效模(2n-2p)乘法器的设计
3.一种基于中国剩余定理的高效乘法器设计
4.基于有符号数乘法器优化设计的自适应陷波器FPGA实现
5.一种高效能可重构1024位大数乘法器的设计
因版权原因,仅展示原文概要,查看原文内容请购买。

16乘16乘法器电路

16乘16乘法器电路

摘要随着现代数字技术的高速发展,乘法器在高速实时信号处理中特别是在数字信号处理和数字图像处理系统中起到了重要的作用。

乘法器已经是现代计算机中必不可少的一部分。

随着乘数和被乘数位数的增加,乘法器电路中的加法器位树也要相应的增加。

通过研究CLA电路的特性,也可以在乘法器中开发出更快的加法阵列。

纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器。

这里介绍由十六位加法器构成的以时序逻辑方式设计的十六位乘法器,具有一定的实用价值,而且由FPGA\CPLD构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。

其运算速度是决定逻辑运算单元(ALU)工作频率的关键,并在很大程度上决定了系统的性能。

由于DSP芯片是串行执行,速度慢、功耗大,所以现在高速实时信号处理中一般采用FPGA\CPLD来进行并行处理。

现在很多系统设计中,要求速度越来越快,功耗越来越小,因此研究高速低功率的乘法器相当重要。

在此次课设中我将在modelsim的环境下完成十六位的乘法器的设计。

关键词FPGA;加法器;Modelsim;锁存器,;移位寄存器目录引言 (1)1总体电路结构设计 (2)1.1电路功能与性能 (2)1.2关键功能电路设计 (3)1.3电路接口 (3)1.4电路功能框图 (5)1.5验证方案 (6)2模块的设计 (7)2.1 输入信号处理模块设计 (8)2.2 16位移位寄存器模块 (9)2.3 16位计数器模块 (9)2.4 输出信号处理模块 (10)3 设计仿真与测试 (12)3.1仿真与测试的功能列表 (12)3.2 仿真平台构建和仿真结果 (12)3.2.1 顶层仿真平台与激励..................... 错误!未定义书签。

3.2.2 电路功能仿真结果....................... 错误!未定义书签。

3.2.3 电路后仿真结果......................... 错误!未定义书签。

《乘法器设计报告》word版

《乘法器设计报告》word版

有符号乘法器设计报告——VLSI课程设计2010年12月复旦大学专用集成电路与国家重点实验室第一章 设计要求完成16*16有符号乘法器的设计。

具体设计方案选择要求如下:1、 编码方式:non-booth 编码,Booth 编码,Booth2编码(任选一种)2、 拓扑结构:简单阵列,双阵列,二进制树,Wallace 树(任选一种)3、 加法器:Ripple Carry Adder ,Carry bypass ,Carry select ,Carrylook ahead (任选一种或采用混合方法)设计报告必须包含设计方案说明及选择该方案的理由、仿真和设计结构等。

第二章 设计分析在微控制器(MCU )、微处理器(MPU )、数字信号处理器(DSP )、滤波器(FIR/IIR )等各种电路中都会用到乘法器,乘法器是最基本、最重要的运算模块之一。

并且乘法器往往还是处在关键路径上,所以乘法器的性能就显得更加重要。

伴随着现在工艺水平的提高,模块的面积也随着减小,在一定程度下以面积为代价来追求性能的提升,这也是允许的。

本设计是以追求性能为设计目标的,采用全并行的乘法器电路,设计指标设为传播延时为5ns 。

第三章 乘法器原理分析乘法器通常有三种结构形式,全串行乘法器、串并行乘法器以及全并行乘法器。

全串行乘法器都可以是串行的,需要多个时钟周期,速度很慢;串并行乘法器的一个输入是并行的,另一输入是串行的,乘积串行输出;全并行乘法器,输入和输出都是并行的,电路较为复杂,但是速度极快。

本设计追求的就是速度,所以采用全并行乘法器机构。

16位有符号乘法器可以分为三个部分:根据输入的被乘数和乘数产生部分积、部分积压缩产生和和进位、将产生的和和进位相加。

这三个部分分别对应着编码方式、拓扑结构以及加法器。

3.1 编码方式本设计采用booth2编码。

Booth 算法的提出主要是为了解决有符号数乘法运算中的复杂的符号修正的问题,所以采用booth2编码对于补码表示的两数就不需要考虑符号的问题。

基于CSD编码的16位并行乘法器的设计

基于CSD编码的16位并行乘法器的设计

基于CSD编码的16位并行乘法器的设计
王瑞光;田利波
【期刊名称】《微计算机信息》
【年(卷),期】2008(024)023
【摘要】文中介绍了二进制数的CSD(Canonic Signed-Digit)编码技术;针对目前CSD编码大都是用软件预先求得或基于查找表实现,本文设计了一种有/无符号二进制数的CSD码快速转换的电路结构,其速度快、占用资源少.该编码电路用于乘法器中可以减少一半的部分积数目,文中设计了一种16位有/无符号的乘法器,其采用了Wallace加法树和超前进位加法器,整个设计用Verilog HDL语言实现了RTL描述,并在Altera公司的FPGA上进行了实验验证,结果表明该乘法器是可行性的.
【总页数】3页(P75-76,26)
【作者】王瑞光;田利波
【作者单位】130033,中国科学院长春光学精密机械与物理研究所,吉林,长
春;130033,中国科学院长春光学精密机械与物理研究所,吉林,长春;100039,中国科学院研究生院,北京
【正文语种】中文
【中图分类】TP301.6
【相关文献】
1.基于BoothCSD混合编码的模2n+1乘法器的设计 [J], 王敏;徐祖强;邱陈辉
2.基于改进的BOOTH编码的高速32×32位并行乘法器设计 [J], 刘强;王荣生
3.基于CSD编码的高速乘法器IP设计 [J], 熊承义;田金文;柳健
4.基于16位定点DSP的并行乘法器的设计 [J], 王叶辉;林贻侠;严伟
5.基于FPGA的CSD编码乘法器 [J], 何永泰;黄文卿
因版权原因,仅展示原文概要,查看原文内容请购买。

实验五、16位乘法器芯片设计

begin if(ain[15]) areg = ~ain+1; else areg = ain; if(bin[15]) breg = ~bin+1;
4
BJ-EPM240V2 学习板实验说明
else breg = bin; if(i==0) yout = 32'h00000000; if( (i<16) && areg[i]) yout[31:16] = yout[31:16]+breg; if(i==16)
begin
if(!rst_n)ຫໍສະໝຸດ beginareg <= 16'h0000;
breg <= 16'h0000;
done_r <= 1'b0;
yout_r <= 32'h00000000;
i <= 5'd0;
end else if(start)
//启动运算
begin
if(i < 5'd21) i <= i+1'b1; if(i == 5'd0) begin //锁存乘数、被乘数
//芯片输出标志信号。定义为 1 表示乘法运算完成.
reg[15:0] areg;//乘数 a 寄存器 reg[15:0] breg; //乘数 b 寄存器 reg[31:0] yout_r; //乘积寄存器
reg done_r;
reg[4:0] i;
//移位次数寄存器
always@(posedge clk)
信号无效。 start: 芯片使能信号。定义为 0 表示信号无效;定义为 1 表示芯片读入输
入管脚得乘数和被乘数,并将乘积复位清零。 ain:输入 a(被乘数),其数据位宽为 16bit. bin:输入 b(乘数),其数据位宽为 16bit.

16位乘法器

乘法器是众多数字系统中的基本模块。

从原理上说它属于组合逻辑范畴;但从工程实际设计上来说,它往往会利用时序逻辑设计的方法来实现,属于时序逻辑范畴。

通过这个实验使大家能够掌握利用FPGA/CPLD设计乘法器的思想,并且能够将我们设计的乘法器应用到实际工程中。

下面我们分别列举了十进制乘法运算和二进制乘法运算的例子。

下面这种计算乘法的方式是大家非常熟悉的:乘积项与乘数相应位对齐(即将乘积项左移),加法运算的数据宽度与被乘数的数据位宽相同。

下面例子中的被乘数和乘数都是无符号的整数,对于有符号数的乘法,可以将符号与数据绝对值分开处理,即绝对值相乘,符号异或。

乘法器的设计方法有两种:组合逻辑设计方法和时序逻辑设计方法。

采用组合逻辑设计方法,电路事先将所有的乘积项全部计算出来,最后加法运算。

采用时序逻辑设计方法,电路将部分已经得到的乘积结果右移,然后与乘积项相加并保存和值,反复迭代上述步骤直到计算出最终乘积。

在本次实验中我们就利用时序逻辑设计方法来设计一个16位乘法器,既然是利用时序逻辑设计方法那么我们就得利用时钟信号控制乘法器运算,那么这样用时序逻辑设计方法与用组合逻辑设计方法比较,它有什么好处呢?利用时序逻辑设计方法可以使整体设计具备流水线结构的特征,能适用在实际工程设计中。

IO口定义:clk:芯片的时钟信号。

rst_n:低电平复位、清零信号。

定义为0表示芯片复位;定义为1表示复位信号无效。

start: 芯片使能信号。

定义为0表示信号无效;定义为1表示芯片读入输入管脚得乘数和被乘数,并将乘积复位清零。

ain:输入a(被乘数),其数据位宽为16bit.bin:输入b(乘数),其数据位宽为16bit.yout:乘积输出,其数据位宽为32bit.done:芯片输出标志信号。

定义为1表示乘法运算完成,yout端口的数据稳定,得到最终的乘积;定义为0表示乘法运算未完成,yout端口的数据不稳定。

数据吞吐量的计算:数据吞吐量使指芯片在一定时钟频率条件下所能处理的有效数据量。

基于FPGA的16位乘法器设计与实现



将 移位 寄 存 器 mi 移 d右 位
2 1 6位 乘 法 器 设 计 结 构 l 位 乘法 器 设计框 图如 图 l 示 。由 图可知 ,6位 乘法 器主 6 所 l
要 由乘 数移 位 寄存器 和 累加 器 2 模 块组 成 ,并 且 由移位 计 数器 个 控 制 监视 移位 计 数进 程 。首 先 , 被 乘 数 m x 入 移位 寄存 器移 将 a 输 位, 然后 , 由低位 往高 位判 断乘 数 p x的对 应位 的值 , mu 对应 位 为 l
I 乘 移 移 1 乘 法 器 设 计 原 理

般 的n 有 符 号 乘 法 器会 在 整 个 的 乘 法 过 程 中 产 生 ( ) 位 1 r1
将移位 寄存器 中的数据 mi d与输 出寄 存器 ot u 中的数据 累加 , 并将 累加 其中 的数 据 存 入 输 出寄 存 器 o t u
在 Mo es 上 实 现 了其 功 能 仿 真 。 d lm i 关 键 词 :6位 乘 法 器 , ro 1 Vei gHDL Mo es 仿 真 l ; d lm; i
1 6位乘 法 器 由于计 算 量大 、 算 时 间长 , 此 , 用软 件 实 现 计 因 采 l 6位乘 法 器效 率不 高 , 且编 程 相对 复 杂 。 由于 F G 工 作 频 率 而 PA
l 复 ,始 数 I 位初 化 据

高 , 用 V ro D 使 e l H L语言 设计 1 ig 6位乘 法 器相 对 简单 , 于 F G 基 PA
的 l 位 乘法 器可 以很好 地解 决 这一 问题 。本文 使 用 V ro D 6 el i gH L 语 言 设计 1 6位乘 法器 , 1 乘法 器设 计成 为一个 状 态机 , 将 6化 分为 空闲、 累加 和 移位 3 状态 , 用 F M ( 限状 态机 ) 计风 格 , 个 采 S 有 设 在 实现 Mo e i 上 实现 了其功 能 仿真 。 dl m s

16位(8x8)硬件乘法器设计报告

EDA课程设计16位(8x8)硬件乘法器设计学校:华侨大学学院:信息与工程学院班级:10集成姓名:项传煜学号:1015251031老师:凌朝东目录摘要一.设计要求二.正文2.1. 系统设计2.1.1 系统设计方案 (3)2.1.2 系统设计原理 (4)2.2. 各子模块设计2.2.1 十进制加计数器设计 (5)2.2.2 BCD码转二进制码BCD_B的设计 (5)2.2.3 8位移位寄存器reg_8的设计 (6)2.2.4 8位加法器adder_8的设计 (7)2.2.5 1位乘法器multi_1的设计 (7)2.2.6 16位移位寄存器reg_16的设计 (8)2.2.7 16位二进制转BCD码B_BCD的设计 (9)2.3. 软件设计2.3.1 设计平台和开发工具 (10)2.3.2 程序流程方框图 (10)2.3.3 实现功能 (11)2.3.4 8位乘法器的顶层设计 (11)2.4. 系统测试2.4.1 乘法器使用 (13)2.4.2 仪器设备 (13)2.4.3 测试数据 (14)2.5. 结论 (14)三.测试结果仿真图 (14)四.参考文献 (15)五.附录:设计说明书及使用说明书 (15)摘要本设计通过对一个8×8的二进制乘法器的设计,学习利用VHDL语言来描述简单的算法,掌握利用移位相加方法实现乘法运算的基本原理。

在此次设计中该乘法器是由十进制计数器,BCD码(输入)转二进制码,8位寄存器,8位加法器,16位寄存器,8x1乘法器,二进制码转BCD码(输出显示)7个模块构成的以时序方式设计的8位乘法器,采用逐项移位相加的方法来实现相乘。

设计中乘数,被乘数的十位和个位分别采用cnt10(十进制加法器)来输入,经拼接符“&”拼接成8位BCD码,再由BCD_B(BCD码转二进制码)转化成二进制码后计算,计算结果由B_BCD(二进制转BCD码)转化成BCD码输入到数码管中显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档