原码一位乘法器Word格式文档下载.docx
《原码一位乘法器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《原码一位乘法器Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
附录(电路原理图)23
第1章总体设计方案
1.1设计原理
原码一位乘,两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。
例如:
X的值为1101,Y的数值为1011,求X·
Y数值的过程如下:
即X·
Y=10001111
由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。
部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。
根据人工算法可以知道,原码一位乘法的整体设计应包括乘数寄存器,被乘数寄存器,移位电路,控制器,部分积五大模块,包含一个输入、输出、控制器模块,并作为顶层设计,以上五大模块作为底层设计,采用硬件器件设计实现。
因此,可以得出以下原理框图设计如图1.1所示:
图1.1原码一位乘的逻辑电路框图
如上逻辑框图1.1中所示,其中B为被乘数寄存器,用来存放被乘数,C为乘数寄存器,用来存放乘数并且移位,A为部分积寄存器,存放每次相加并移位后的数据,ALU加法器实现加法操作,移位电路用来对相加后的数据作移位处理,计数器控制移位次数和输出结果。
1.2设计思路
定点原码一位乘法器的设计(如图1.1所示)主要包含如下两个部分。
一、运算部分:
被乘数寄存器要有并入功能,从而进行被乘数的输入,被乘数寄存器的输出和乘数寄存器的最后一位分别相与,以此来确定+X或+0;
乘数寄存器要有并入和右移的功能,从而实现乘数部分的右移,最后得到结果的低八位;
被乘数和乘数的最后一位相与的结果作为加法器的一个输入,与原部分积相加,得到新的部分积,最后则为结果的高八位。
二、控制部分:
进行运算时主要有两个状态,一个是乘数与被乘数的并入状态,一个就是乘数与部分积的右移状态。
定点原码一位乘法器的底层、顶层的设计都采用原理图设计输入方式,经编译、调试后形成*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。
1.3设计环境
(1)硬件环境
•伟福COP2000型计算机组成原理实验仪
COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器B、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。
COP2000计算机组成原理实验系统各单元部件都以计算机结构模型布局,清晰明了,系统在实验时即使不借助PC机,也可实时监控数据流状态及正确与否,实验系统的软硬件对用户的实验设计具有完全的开放特性,系统提供了微程序控制器和组合逻辑控制器两种控制器方式,系统还支持手动方式、联机方式、模拟方式三种工作方式,系统具备完善的寻址方式、指令系统和强大的模拟调试功能。
(2)EDA环境
•Xilinxfoundationf3.1设计软件
Xilinxfoundationf3.1是Xilinx公司的可编程期间开发工具,该平台(如图1.2所示)功能强大,主要用于百万逻辑门设计。
该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。
设计入口工具包括原理图编辑器、有限状态机编辑器、硬件描述语言(HDL)编辑器、LogiBLOX模块生成器、Xilinx内核生成器等软件。
其功能是:
接收各种图形或文字的设计输入,并最终生成网络表文件。
设计实现工具包括流程引擎、限制编辑器、基片规划器、FPGA编辑器、FPGA写入器等软件。
设计实现工具用于将网络表转化为配置比特流,并下载到器件。
设计验证工具包括功能和时序仿真器、静态时序分析器等,可用来对设计中的逻辑关系及输出结果进行检验,并详尽分析各个时序限制的满足情况。
图1.2Xilinxfoundationf3.1设计平台
•COP2000集成调试软件
COP2000集成开发环境是为COP2000实验仪与PC机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA实验等功能,该软件在Windows下运行。
第2章详细设计方案
2.1顶层方案图的设计与实现
顶层方案图实现原码一位乘的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件
顶层图形文件的设计实体主要由控制电路(H13)、加法器(H10)、两个寄存器(H9和H11)、一个由寄存器和与门组成的芯片(H8)等模块组装而成的一个完整的可编程逻辑芯片H1。
而以上顶层图形文件的设计可利用Xilinxfoundationf3.1中逻辑器件实现,顶层图形文件结构如图2.1所示。
图2.1定点原码一位乘法器的设计图形文件结构
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XilinxXCV200可编程逻辑芯片。
(2)引脚锁定
把顶层图形文件中的输入/输出信号安排到XilinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XilinxXCV200芯片引脚对应关系如表2.1所示。
表2.1信号和芯片引脚对应关系
图形文件中的输入/输出信号
XCV200芯片引脚信号
X1
P94
X2
P95
X3
P96
X4
P97
X5
P100
X6
P101
X7
P102
X8
P103
Y1
P79
Y2
P80
Y3
P81
Y4
P82
Y5
P84
Y6
P85
Y7
P86
Y8
P87
X0
P63
Y0
P64
S
P65
CLR
P66
CK
P213
S0
P223
S1
P147
S2
P152
S3
P178
S4
P184
S5
P185
S6
P203
S7
P111
S8
P110
S9
P78
S10
P93
S11
P99
S12
P107
S13
P108
S14
P19
S15
P124
S16
125
2.1.3编译、综合、适配
利用Xilinxfoundationf3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。
2.2功能模块的设计与实现
定点原码一位乘法器的底层设计包括控制器(运算控制电路)、一个由寄存器和与门组成的芯片、加法器及两个寄存器的实现由XilinxXCV200可编程逻辑芯片分别实现。
2.2.1控制器模块的设计与实现
该模块的输出为三个寄存器的控制端和加法器的进位输入端,根据S为0和1时他们应取的值,判断S与他们每个之间的关系,用对应的控制门连接。
所以只需要一个S控制端,开关S的电平变化可以控制整个电路的状态变化。
(1)创建控制器设计原理图。
控制器原理结构如图2.2所示:
图2.2控制器逻辑框图
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用CONTROLER芯片,需要为CONTROLER模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>
SymbolWizard=>
下一步。
S是输入信号,0、S11、S01、S12、S02、S13、S03是输出信号。
其元件图形符号如图2.3所示:
图2.3控制器元件图形符号
(3)功能仿真
对创建的控制器模块进行功能仿真,验证其功能的正确性,可用Xilinx
Foundationf3.1编译器Simulator模块实现。
仿真结果如图2.4所示:
图2.4控制器仿真结果
控制电路的输入与输出信号的真值表如表2.2所示:
表2.2控制电路的输入与输出信号的真值表
步骤
S01
S02
S03
乘数与被乘数的并入
1
右移
将仿真结果与控制电路的输入与输出信号的真值表相对照可知,控制器电路的仿真结果正确。
2.2.2寄存器和与门组成的模块的设计与实现
该模块分为两部分,74_198为被乘数寄存器,它将实现被乘数的并入,将其与乘数的最后一位分别相与,得到的即是要与部分积相加的X或0。
(1)创建寄存器和与门组成模块设计原理图。
寄存器和与门组成模块原理结构如图2.5所示:
图2.5寄存器和与门组成模块逻辑框图
其中,与门的原理结构如图2.6所示:
图2.6与门逻辑框图
为能在图形编辑器(原理图设计输入方式)中调用X芯片,需要为X模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
A1-A8是数据输入信号,CP、CLR、CK、B、1、0是输入信号,S1-S8是数据输出信号。
其元件图形符号如图2.7所示:
图2.7寄存器和与门模块元件图形符号
对创建的寄存器和与门模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.8所示:
图2.8寄存器和与门模块仿真结果
与门仿真结果如图2.9所示:
图2.9与门仿真结果
将寄存器和与门模块的功能和仿真结果对照可知,寄存器和与门模块的仿真结果正确。
2.2.3加法器模块的设计与实现
该模块实现的是两个八位二进制数的相加,可以用两个四位二进制数加法器组合得到。
四位加法器的设计可以参考环境中已有的芯片结构来设计。
(1)创建加法器设计原理图。
加法器原理结构如图2.10所示:
图2.10加法器逻辑框图
其中,4位加法器原理结构如图2.11所示:
图2.114位加法器逻辑框图
为能在图形编辑器(原理图设计输入方式)中调用AND_8芯片,需要为AND_8模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
A1-A8、B1-B8是数据输入信号,CI是进位输入,S1-S8是数据输出信号,CO是进位输出。
其元件图形符号如图2.12所示:
图2.12加法器原件图形符号
对创建的加法器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的Simulator模块实现。
仿真结果如图2.13所示:
图2.13加法器仿真结果
四位加法器仿真结果如图2.14所示:
图2.14四位加法器仿真结果
将加法器的功能和仿真结果对照可知,加法器的仿真结果正确。
2.2.4寄存器模块的设计与实现
该模块要实现八位二进制数的并入和右移功能,可以用两个四位寄存器组合得到。
四位寄存器的设计可以参考环境中已有的芯片结构来设计。
(1)创建寄存器模块原理图。
寄存器模块原理如图2.15所示:
图2.15寄存器逻辑框图
其中,4位寄存器原理结构如图2.16所示:
图2.164位寄存器逻辑框图
为能在图形编辑器(原理图设计输入方式)中调用74_198芯片,需要为74_198模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
A1-A8是数据输入信号,CK、CLR、S0、S1、SL1、SR1是控制输入,Q1-Q8是数据输出信号。
其元件图形符号如图2.17所示:
图2.17寄存器元件图形符号
对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的Simulator模块实现。
仿真结果如图2.18所示:
图2.18寄存器仿真结果
四位寄存器仿真结果如图2.19所示:
图2.19四位寄存器仿真结果
将寄存器所实现的功能与仿真结果对照可知,寄存器的仿真结果正确。
2.3仿真调试
仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。
(1)建立仿真波形文件及仿真信号选择
功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.3所示。
表2.3仿真信号选择和参数设置
输入信号
输出信号
S0-S16
X0-X8
↑
Y0-Y8
(2)功能仿真结果与分析
功能仿真波形结果如图2.20所示,仿真数据结果如表2.4所示。
对表2.3与表2.4的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。
图2.20功能仿真波形结果
表2.4仿真结果
输入信号
输出信号
输入数据序列及控制脉冲信号同表2.3相同。
由此可知,定点原码一位乘法器的设计中,每当给一个高电平,寄存器就运行一次,由S来控制乘数和被乘数的并入以及乘数的右移。
X0-X8=+0.11010110,Y0-Y8=+0.10010111,S0-S16=+0.11010,由此可知结果验证正确,定点原码一位乘法器设计成功。
第3章编程下载与硬件测试
3.1编程下载
利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。
定点原码一位乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。
表3.1XCV200实验板信号对应关系
XCV200实验板
K0:
7
6
5
4
3
2
K1:
K2:
D2
A7
A6
A5
A4
A3
A2
A1
A0
B7
B6
B5
B4
B3
B2
B1
P125
B0
利用表2.3中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1及K2控制数据输入,同时观察数码显示管和发光二极管显示结果,得到如图3.1及表3.2所示的硬件测试结果。
图3.1硬件测试结果图
表3.2硬件测试结果
对表3.2与表2.3和图2.1的内容进行对比。
可以看出硬件测试结果是正确的,说明电路设计完全正确。
X0-X8=+0.11010110,Y0-Y8=+0.10010111,S0-S16=+0.11010,由此可知结果验证正确,定点原码一位乘法器设计成功。
参考文献
[1]李景华.可编程程逻辑器件与EDA技术[M].北京:
东北大学出版社,2001
[2]王爱英.计算机组成与结构(第4版)[M].北京:
清华大学出版社,2006
[3]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:
北京邮电大学出版社,2006
[4]莫正坤.计算机组成原理[M].武汉:
华中理工大学出版社,1996
[5]江国强.EAD技术习题与实验[M].北京:
电子工业出版社,2005
[6]白中英.计算机组成原理(第三版)[M].北京:
科学出版社,2005
[7]柳春风.电子设计自动化(EAD)教程[M].北京:
北京理工大学大学出版社,2005
附录(电路原理图)
课程设计总结:
主要从以下几方面总结:
1.设计过程中出现的问题及采用的解决方法:
对于本次定点原码一位乘法器的设计,在设计过程中由于控制信号较多并且有两个部分要移位,为了简化电路,我用了错位连接的方法实现了右移功能。
2.设计达到的目的:
本次设计实现了原码一位乘的功能,所以设计最终实现了8位二进制数的乘法运算,从而最终求得积。
3.感受:
通过本次实验加深了我对原码一位乘法器的理解,将理论知识很好的应用在实践中,同时通过本次实验也初步掌握了编程语言及原理图实现芯片生成的功能。
在不断的研究复习中也掌握了Xilinxfoundationf3.1设计软件的使用及相关知识。
能独立的制作和生成所需要的逻辑部件。
在加深理论知识的同时,个人实践能力及动手能力得到提高。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩