4乘4位阵列乘法器设计

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

课程设计报告课程设计题目:4乘4位阵列乘法器设计

学生姓名:杨博闻

学号:201120070115

专业:计算机科学与技术

班级: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 .连接实验电路

按下图连接实验电路。

5 .给定操作数,观察乘法器输出

将SWITCH UNIT 单元中的SW-B、AR 开关置为低电平状态。在INPUT

DEVICE 单元中的8 个开关的高4 位为乘数A ,低四位为被乘数B ,而相乘的结果将在OUTPUT DEVICE单元中的数码管中以十六进制形式显示。给 A 和B置不同的数,观察相乘的结果。

五、设计结果:

六、ABEL源码

MODULE multiply

TITLE '4 bit multiplier'

"Inputs

a3,a2, a1, a0 pin 34,35,36,37;

b3,b2, b1, b0 pin 38,39,40,41;

"Outputs

p7,p6,p5,p4,p3,p2,p1,p0 pin 45,46,47,48,49,50,51,52 istype 'com,invert';

"Set declarations

aset = [a3,a2,a1,a0];

bset = [b3,b2,b1,b0];

product = [p7,p6,p5,p4,p3,p2,p1,p0];

"Sub-module declarations, with default input values

"In this case, all inputs default to 0 if not used.

adder interface (a=0, b=0, sin=0, cin=0 -> sum, carry);

"Sub-module instances

ablk1 functional_block adder;

ablk2 functional_block adder;

ablk3 functional_block adder;

ablk4 functional_block adder;

ablk5 functional_block adder;

ablk6 functional_block adder;

ablk7 functional_block adder;

ablk8 functional_block adder;

ablk9 functional_block adder;

ablk10 functional_block adder;

ablk11 functional_block adder;

ablk12 functional_block adder;

ablk13 functional_block adder;

ablk14 functional_block adder;

ablk15 functional_block adder;

ablk16 functional_block adder;

Equations

p7 = ablk16.carry; " Product output bit 7 p6 = ablk16.sum; " bit 6

p5 = ablk14.sum; " bit 5

p4 = ablk11.sum; " bit 4

p3 = ablk7.sum; " bit 3

p2 = ablk4.sum; " bit 2

p1 = ablk2.sum; " bit 1

p0 = ablk1.sum; " bit 0

ablk16.sin = ablk15.carry;

ablk16.cin = ablk14.carry;

ablk16.a = a3;

ablk16.b = b3;

ablk15.sin = ablk13.carry;

ablk15.cin = ablk12.carry;

ablk15.a = a3;

ablk15.b = b2;

ablk14.sin = ablk15.sum;

ablk14.cin = ablk11.carry;

相关文档
最新文档