乘位阵列乘法器设计Word下载.docx
《乘位阵列乘法器设计Word下载.docx》由会员分享,可在线阅读,更多相关《乘位阵列乘法器设计Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
![乘位阵列乘法器设计Word下载.docx](https://file1.bdocx.com/fileroot1/2022-12/6/5cc60242-555b-481c-b6c4-9debc8e7f316/5cc60242-555b-481c-b6c4-9debc8e7f3161.gif)
1.掌握乘法器的原理及其设计方法。
2.熟练应用CPLD设计及EDA操作软件。
二、设计设备
1.TDN-CM+或TDN-CM++教学实验系统一套。
2·
PC微机一台。
3·
ispDesignEXPERT软件
模型机数据通路结构框图
三、设计原理
本实验用CPLD来设计一个4×
4位乘法器,相对于画电路图输入,用ABEL语言描述是比较方便的。
其算式如下(其中括号中的数字表示在ABEL源程序描述中的功能块调用编号):
a3a2a1a0
×
b3b2b1b0
----------------------------------------------------------------------------------------------------------
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)
-----------------------------------------------------------------------------------------------------------
p7p6p5p4p3p2p1p0
四、设计步骤
1.安装EDA软件
打开计算机电源,进入Windows系统,安装上述ispDesignEXPERT软件。
安装完成后,桌面和开始菜单中则建有ispDesignEXPERT软件图标。
2.用ispDesignEXPERT软件根据上述乘法的逻辑原理用ABEL语言编写功能描述程序。
其在1032芯片中对应的管脚如图:
3.编辑、编译和下载
使用ispDesignEXPERT软件编辑源程序并进行编译,然后打开实验系统电源,将生成的JEDEC文件下载到ispLSI1032中去。
4.连接实验电路
按下图连接实验电路。
5.给定操作数,观察乘法器输出
将SWITCHUNIT单元中的SW-B、AR开关置为低电平状态。
在INPUTDEVICE单元中的8个开关的高4位为乘数A,低四位为被乘数B,而相乘的结果将在OUTPUTDEVICE单元中的数码管中以十六进制形式显示。
给A和B置不同的数,观察相乘的结果。
五、设计结果:
输入信号
输出
K0
(7)
(6)
(5)
(4)
(3)
(2)
(1)
(0)
K2
(1)
K2(0)
C
S1
1
14
12
六、ABEL源码
MODULEmultiply
TITLE'
4bitmultiplier'
"
Inputs
a3,a2,a1,a0pin34,35,36,37;
b3,b2,b1,b0pin38,39,40,41;
Outputs
p7,p6,p5,p4,p3,p2,p1,p0pin45,46,47,48,49,50,51,52istype'
com,invert'
;
Setdeclarations
aset=[a3,a2,a1,a0];
bset=[b3,b2,b1,b0];
product=[p7,p6,p5,p4,p3,p2,p1,p0];
Sub-moduledeclarations,withdefaultinputvalues
Inthiscase,allinputsdefaultto0ifnotused.
adderinterface(a=0,b=0,sin=0,cin=0->
sum,carry);
Sub-moduleinstances
ablk1functional_blockadder;
ablk2functional_blockadder;
ablk3functional_blockadder;
ablk4functional_blockadder;
ablk5functional_blockadder;
ablk6functional_blockadder;
ablk7functional_blockadder;
ablk8functional_blockadder;
ablk9functional_blockadder;
ablk10functional_blockadder;
ablk11functional_blockadder;
ablk12functional_blockadder;
ablk13functional_blockadder;
ablk14functional_blockadder;
ablk15functional_blockadder;
ablk16functional_blockadder;
Equations
p7=;
"
Productoutputbit7
p6=;
bit6
p5=;
bit5
p4=;
bit4
p3=;
bit3
p2=;
bit2
p1=;
bit1
p0=;
bit0
=;
=a3;
=b3;
=b2;
=a2;
=b1;
=a1;
=b0;
=a0;
Test_vectors
([aset,bset]->
product)
[0,0]->
0;
[0,1]->
[1,2]->
2;
[2,3]->
6;
[3,4]->
12;
[3,5]->
15;
[4,5]->
20;
[4,6]->
24;
[5,6]->
30;
[5,7]->
35;
[6,7]->
42;
[7,7]->
49;
[8,8]->
64;
[9,9]->
81;
[10,11]->
110;
[12,13]->
156;
[13,14]->
182;
[13,15]->
195;
[14,15]->
210;
END
六、心得体会
经过这次课程设计充分地实践了课上所学到的知识,提高了动手能力,把理论知识运用到实践中。
对阵列乘法运算器的结构以及原理得到了进一步的了解。
在设计的过程中也遇到了很多的问题,最大的问题就是ABEL源码的理解,在老师的教导下,了解了这一源码的形成。
通过本次课程设计受益良多。