沈阳航空航天大学
课程设计报告
课程设计名称:计算机组成原理课程设计课程设计题目:阵列乘法器的设计与实现
院(系):计算机学院
专业:计算机科学与技术
班级:
学号:
姓名:
指导教师:
完成日期:2014年1月10日
目录
第1章总体设计方案1
1.1设计原理1
1.2设计思路2
1.3设计环境3
第2章详细设计方案3
2.1总体方案的设计与实现4
2.1.1总体方案的逻辑图5
2.1.2器件的选择与引脚锁定5
2.1.3编译、综合、适配6
2.2功能模块的设计与实现6
2.2.1一位全加器的设计与实现6
2.2.2 4位输入端加法器的设计与实现9
2.2.3 阵列乘法器的设计与实现12
第3章硬件测试15
3.1编程下载15
3.2 硬件测试及结果分析15
参考文献17
附录(电路原理图)19
第1章总体设计方案
1.1 设计原理
阵列乘法器采用类似人工计算的方法进行乘法运算。人工计算方法是用乘数的每一位去乘被乘数,然后将每一位权值对应相加得出每一位的最终结果。如图1.1所示,用乘数的每一位直接去乘被乘数得到部分积并按位列为一行,每一行部分积末位与对应的乘数数位对齐,体现对应数位的权值。将各次部分积求和,即将各次部分积的对应数位求和即得到最终乘积的对应数位的权值。
为了进一步提高乘法的运算速度,可采用大规模的阵列乘法器来实现,阵列乘法器的乘数与被乘数都是二进制数。可以通过乘数从最后一位起一个一个和被乘数相与,自第二位起要依次向左移一位,形成一个阵列的形式。这就可将其看成一个全加的过程,将乘数某位与被乘数某位与完的结果加上乘数某位的下一位与被乘数某位的下一位与完的结果再加上前一列的进位进而得出每一位的结果,假设被乘数与乘数的位数均为4位二进制数,即m=n=4,A×B可用如下竖式算出,如图1.1所示。
X 4 X
3
X
2
X
1
=A
×Y
4 Y
3
Y
2
Y
1
=B
X
4
Y
1
X
3
Y
1
X
2
Y
1
X
1
Y
1
X
4
Y
2
X
3
Y
2
X
2
Y
2
X
1
Y
2
X
4
Y
3
X
3
Y
3
X
2
Y
3
X
1
Y
3
(进位)X4Y4 X3Y4X2Y4X1Y4
Z 8Z
7
Z
6
Z
5
Z
4
Z
3
Z
2
Z
1
图1.1 A×B计算竖式
X 4 ,X
3
,X
2
,X
1
,Y
4
,Y
3
,Y
2
,Y
1
为阵列乘法器的输入端,Z
1
-Z
8
为阵列乘法器的输出
端,该逻辑框图所要完成的功能是实现两个四位二进制既A(X)*B(Y)的乘法运
算,其计算结果为C(Z) (其中A(X)=X
4X
3
X
2
X
1
,B(Y)=Y
4
Y
3
Y
2
Y
1
,C(Z)=Z
8
Z
7
Z
6
Z
5
Z
4
Z
3
Z
2
Z
1
而且输入和输出结果均用二进制表示)。阵列乘法器的总原理如图1.2所示。
图1.2 阵列器的总原理图
1.2设计思路
(1)整体部分:阵列乘法器采用的是先逐位求解部分积,本课程设计要完成
X与Y的乘法运算(X=X
4X
3
X
2
X
1
,Y=Y
4
Y
3
Y
2
Y
1
),采用自上而下的设计方法,顶层设计
采用8输入和8输出的一个自设置芯片,芯片内部封装16个模块,构成4×4的乘法阵列,如图1.3所示,阵列的每一行送入乘数Y的每一位数位,而各行错开形成的每一斜列则送入被乘数的每一数位。
图1.3 阵列乘法器4×4阵列
(2)单元部分:设计整体框图中的每一个细胞模块实现的功能是计算部分积和向高位的进位。
(3)仿真部分:将整个电路连接好以后即可进行仿真,用以验证设计是否正确。主要需要仿真的部分有:一位全加器、4输入加法器以及整体电路图。
(4)采用硬件描述语言进行电路设计并实现给定的功能,设计的原理图经编译、调试后形成*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。
阵列乘法器是由十六个模块组成,每一个模块构包括一个与门和一位全加器。具体的各个模块的设计在模块设计中一一呈现。
1.3 设计环境
(1)硬件坏境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机。具体内容如下:
COP2000实验仪:COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器
B、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。
XCV200实验板:在COP2000 实验仪中的FPGA 实验板主要用于设计性实验和课程设计实验,它的核心器件是20 万门XCV200 的FPGA 芯片。用FPGA 实验板可设计8 位16 位和32 位模型机
(2)软件坏境:Xilinx foundation f3.1设计软件、COP2000仿真软件。Xilinx foundation f3.1是Xilinx公司的可编程期间开发工具,该平台功能强大,主要用于百万逻辑门设计。该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。COP2000 集成开发环境是为COP2000 实验仪与PC 机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC 机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA 实验等功能,该软件在Windows 下运行。
第2章详细设计方案
2.1 总体方案的设计与实现
本课设采用自上而下的设计方法,其顶层方案图实现4×4位阵列乘法器的逻辑功能,采用原理图设计输入方式完成,把16个细胞模块封装在自设置的芯片内,电路实现基于XCV200可编程逻辑芯片。在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定,即在每一个IPAD与OPAD都锁定一个引脚。
2.1.1总体方案的逻辑图
顶层图形文件主要由四位被乘数输入端(X
4X
3
X
2
X
1
)、四位乘数输入端(Y
4
Y
3
Y
2
Y
1
)
和八位乘积输出端(Z
8Z
7
Z
6
Z
5
Z
4
Z
3
Z
2
Z
1
)。
4×4阵列乘法器总设计框图可利用Xilinx foundation f3.1模块实现顶层图形文件的设计,顶层图形文件结构如图2.1所示。
图2.1 4×4阵列乘法器总设计框图
2.1.2器件的选择与引脚锁定
(1)器件的选择
硬件设计环境以伟福COP2000型计算机组成原理实验仪和XCV200实验板为硬件平台,采用Xilinx foundation f3.1设计工具和COP2000仿真软件。
(2)引脚锁定
把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xlinx XCV200芯片引脚对应关系如表2.1所示。
表2.1信号和芯片引脚对应关系
阵列乘法器内部信号原理图中的信号XCV200芯片引脚Y4 YY4 P41
2.1.3编译、综合、适配
利用Xilinx foundation f3.1对顶层图形文件进行编译、综合、优化、逻辑分割、适配和布线,生成可供时序仿真的文件和器件下载编程文件。
2.2功能模块的设计与实现
4×4阵列乘法器的每一个模块都是由一个两输入与门和一个全加器组成的,设计时将与门和全加器使用原理图输入设计方式实现阵列乘法器一个模块的功能。下面分成三大块:由小单元器件模块到最终阵列乘法器大功能模块(其中包括:功能表,仿真图)
2.2.1一位全加器的设计与实现
2.2.1.1 功能描述
一位全加器指两个多位二进制数中的某一位的加法运算电路,其输入变量有3个:被加数XN、加数YN、低一位的进位输入CIN;输出变量有2个:产生的和FN和进位输出COUT。一位全加器的真值表如表2.1所示。
XN YN CIN COUT FN
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
由表可写出逻辑表达式如下:
COUTN=(YN),(CIN)(XN),+(XN),(CIN),(YN)+(YN),(CIN),(XN)+(YN)(CIN)(XN) FN=(YN)(CIN)(XN),+(XN)(CIN)(YN),+(YN)(XN)(CIN),+(YN)(CIN)(XN)化简结果如下:
COUTN=(XN)(YN)+CIN(XN⊕YN)
FN=XN⊕YN⊕CIN
2.2.1.2 电路图
根据逻辑表达式的化简结果可得一位全加器的逻辑图,如下图2.2所示:
图2.2一位全加器的电路图
一位全加器可以由两个与门,三个异或门及一个或门构成,XN,YN,CIN分别表示乘数与被乘数的一位二进制数和来自低位的进位。
2.2.1.3 功能仿真
仿真调试主要验证设计电路逻辑功能、时序的正确性,用高电平代表输入的二进制数为1,低电平代表输入的二进制数为0,本设计中主要采用功能仿真方法对设计的一位全加器电路进行仿真。
(1)建立仿真波形文件及仿真信号选择:
功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如功能表2.1所示。
图2.3 一位全加器的功能仿真图
(2)功能仿真结果与分析
上图2.3是一位全加器的功能仿真波形结果,而仿真数据结果如表2.1所示,当输入分别为000、001、010、011、100、101、110、111时,相对应的输出分别为00、01、01、10、01、00、00、11,对表与仿真图的结果进行对比,可以看出功能仿真结果是正确的,进而说明电路设计正确性
2.2.2 4位输入端加法器的设计与实现
2.2.2.1功能描述
4位输入端加法器是在一位全加器的基础之上加上一个与门所构成,其真值表如表2.3所示。
其中XIN、YIN表示乘数与被乘数多位二进制中的一位二进制数,CNIN表示进位输入,CNOUT表示进位输出,PARTOUT表示部分积。
2.2.2.2电路图
4位输入端加法器可以由一个与门和一位全加器构成,加法器的逻辑图如下图2.4所示:
图2.4 4位输入端加法器电路图
注:AND表示两个逻辑量相与,XOR表示两个逻辑量相异或,OR表示两个逻辑量相或。
阵列乘法器由十六个相同的基本乘法器模块构成,每一个模块的内部图如上图2.4所示,由四个输入端(XIN,YIN,PARTIN,CNIN),两个输出端(PARTOUT,CNOUT)组成。实现XIN,YIN与完后和PARTIN,CNIN相加后,PARTOUT输出部分积结果加到同一列的下一行的模块上,CNOUT输出结果加到同一行的下一列的模块上。依次类推将结果输出。
2.2.2.3功能仿真
仿真调试主要验证设计电路逻辑功能、时序的正确性,用高电平代表输入的二进制数为1,低电平代表输入的二进制数为0,本设计中主要采用功能仿真方法对设计的4端输入加法器电路进行仿真。
(1)建立仿真波形文件及仿真信号选择:
功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如功能表2.3所示。
图2.5 4位输入端加法器的功能仿真图
(2)功能仿真结果与分析
功能仿真波形结果如图2.5所示,仿真数据结果如表2.3所示。对表2.3与仿真图2.5的结果进行对比,当输入分别为0000、0011、0100、0111、1000、1011、1100、1111、0001、0010、0101、0110、1001、1010、1101、1110,相对应的输出分别为00、10、00、10、00、00、10、11、00、10、00、10、00、10、01、11,可以看出功能仿真结果是正确的,进而说明电路设计正确性
2.2.2.4 4输入端加法器的封装
为了能在图形编辑器(原理图设计输入方式)中调用此器件,需要为此器件创建一个元件图形符号,可用Xilinx Foundation3.1编译器的Create Symbol模块实现。此元件如下图2.6所示(为图2.4的封装图)。
图2.6 4位输入端加法器的封装图
2.2.3 阵列乘法器的设计与实现
2.2.
3.1功能描述
4×4阵列乘法器可以由16个4输入加法器模块构成,一个模块由三个与门、三个异或门和一个或门组成。输入方式采用原理图输入设计方式。四个输入为
XIN、YIN、PARTIN,CNIN,两个输出为PARTOUT、CNOUT。X
1、X
2
、X
3
、X
4
为阵
列乘法器的四个被乘数输入端Y
1、Y
2
、Y
3
、Y
4
为四个乘数输入端。将输入输出连
接在模块上。Z
1、Z
2
、Z
3
、Z
4
、Z
5
、Z
6
、Z
7
、Z
8
为八个乘积的输出端。阵列乘法器
的部分真值表如下表2.4所示。
2.2.
3.2电路图
阵列乘法器的电路图如下图2.7所示
图2.7 4×4阵列乘法器电路图
2.2.
3.3功能仿真
仿真调试主要验证设计电路逻辑功能、时序的正确性,用高电平代表输入的二进制数为1,低电平代表输入的二进制数为0,本设计中主要采用功能仿真方法对设计的4端输入加法器电路进行仿真。
图2.8 4×4阵列乘法器功能仿真图
(1)建立仿真波形文件及仿真信号选择:
功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如功能表2.4所示。
(2)功能仿真结果与分析
功能仿真波形结果如图2.8所示,仿真数据结果如表2.4所示。对表2.4与仿真图2.8的结果进行对比,当X、Y输入的分别为0100×0111、0101×1000、0110×1010、1000×1110、1111×1010、1011×0101、0101×0011、1001×0100、1111×1111,相对应的输出结果分别为00001100、00010100、00011110、00001111、01001011、
10000010、01111000、00010110、11100001(此仿真图从Z
8到Z
1
的顺序看),可
以看出功能仿真结果是正确的,进而说明电路设计正确性。
第3章硬件测试
3.1 编程下载
利用COP2000仿真软件的编程下载功能,将得到ADD.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2 硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。阵列乘法器的输入数据通过XCV200实验板的输入开关k4实现,输出数据通过XCV200实验板的发光二极管LED指示灯实现,其对应关系如表3.2所示。
表3.1XCV200实验板信号对应关系
硬件测试图如图3.2所示,当输入:X
1 X
2
X
3
X
4
为1111,Y
1
Y
2
Y
3
Y
4
为1111 时其结
果输出:E 1即(11100001),查相应功能表2.4,得结果为正确可以看出硬件测试结果是正确的,说明电路设计完全正确。
图3.1硬件测试图
参考文献
[1] 曹昕燕.EDA技术实验与课程设计[M].:清华大学出版社,2006
[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].:北京邮电大学出版
社,2006
[3] 唐朔飞.计算机组成原理(第2版)[M].:高等教育出版社,2008