原码一位乘法器.docx

上传人:b****4 文档编号:3871706 上传时间:2023-05-06 格式:DOCX 页数:26 大小:180.80KB
下载 相关 举报
原码一位乘法器.docx_第1页
第1页 / 共26页
原码一位乘法器.docx_第2页
第2页 / 共26页
原码一位乘法器.docx_第3页
第3页 / 共26页
原码一位乘法器.docx_第4页
第4页 / 共26页
原码一位乘法器.docx_第5页
第5页 / 共26页
原码一位乘法器.docx_第6页
第6页 / 共26页
原码一位乘法器.docx_第7页
第7页 / 共26页
原码一位乘法器.docx_第8页
第8页 / 共26页
原码一位乘法器.docx_第9页
第9页 / 共26页
原码一位乘法器.docx_第10页
第10页 / 共26页
原码一位乘法器.docx_第11页
第11页 / 共26页
原码一位乘法器.docx_第12页
第12页 / 共26页
原码一位乘法器.docx_第13页
第13页 / 共26页
原码一位乘法器.docx_第14页
第14页 / 共26页
原码一位乘法器.docx_第15页
第15页 / 共26页
原码一位乘法器.docx_第16页
第16页 / 共26页
原码一位乘法器.docx_第17页
第17页 / 共26页
原码一位乘法器.docx_第18页
第18页 / 共26页
原码一位乘法器.docx_第19页
第19页 / 共26页
原码一位乘法器.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

原码一位乘法器.docx

《原码一位乘法器.docx》由会员分享,可在线阅读,更多相关《原码一位乘法器.docx(26页珍藏版)》请在冰点文库上搜索。

原码一位乘法器.docx

原码一位乘法器

 

课程设计报告

 

课程设计名称:

计算机组成原理课程设计

课程设计题目:

定点原码一位乘法器的设计

 

院(系):

专业:

班级:

学号:

姓名:

指导教师:

完成日期:

目录

第1章总体设计方案1

1.1设计原理1

1.2设计思路2

1.3设计环境3

第2章详细设计方案5

2.1顶层方案图的设计与实现5

2.1.1创建顶层图形设计文件5

2.1.2器件的选择与引脚锁定5

2.1.3编译、综合、适配7

2.2功能模块的设计与实现7

2.2.1控制器模块的设计与实现7

2.2.2寄存器和与门组成的模块的设计与实现9

2.2.3加法器模块的设计与实现11

2.2.4寄存器模块的设计与实现14

2.3仿真调试16

第3章编程下载与硬件测试19

3.1编程下载19

3.2硬件测试及结果分析19

参考文献22

附录(电路原理图)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控制电路的输入与输出信号的真值表

步骤

S

0

S11

S01

S12

S02

S13

S03

乘数与被乘数的并入

1

0

1

1

1

1

1

1

右移

1

0

0

0

1

0

1

1

将仿真结果与控制电路的输入与输出信号的真值表相对照可知,控制器电路的仿真结果正确。

2.2.2寄存器和与门组成的模块的设计与实现

该模块分为两部分,74_198为被乘数寄存器,它将实现被乘数的并入,将其与乘数的最后一位分别相与,得到的即是要与部分积相加的X或0。

(1)创建寄存器和与门组成模块设计原理图。

寄存器和与门组成模块原理结构如图2.5所示:

图2.5寄存器和与门组成模块逻辑框图

其中,与门的原理结构如图2.6所示:

图2.6与门逻辑框图

(2)创建元件图形符号

为能在图形编辑器(原理图设计输入方式)中调用X芯片,需要为X模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:

Tools=>SymbolWizard=>下一步。

A1-A8是数据输入信号,CP、CLR、CK、B、1、0是输入信号,S1-S8是数据输出信号。

其元件图形符号如图2.7所示:

图2.7寄存器和与门模块元件图形符号

(3)功能仿真

对创建的寄存器和与门模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。

仿真结果如图2.8所示:

图2.8寄存器和与门模块仿真结果

与门仿真结果如图2.9所示:

图2.9与门仿真结果

将寄存器和与门模块的功能和仿真结果对照可知,寄存器和与门模块的仿真结果正确。

2.2.3加法器模块的设计与实现

该模块实现的是两个八位二进制数的相加,可以用两个四位二进制数加法器组合得到。

四位加法器的设计可以参考环境中已有的芯片结构来设计。

(1)创建加法器设计原理图。

加法器原理结构如图2.10所示:

图2.10加法器逻辑框图

其中,4位加法器原理结构如图2.11所示:

图2.114位加法器逻辑框图

(2)创建元件图形符号

为能在图形编辑器(原理图设计输入方式)中调用AND_8芯片,需要为AND_8模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:

Tools=>SymbolWizard=>下一步。

A1-A8、B1-B8是数据输入信号,CI是进位输入,S1-S8是数据输出信号,CO是进位输出。

其元件图形符号如图2.12所示:

图2.12加法器原件图形符号

(3)功能仿真

对创建的加法器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的Simulator模块实现。

仿真结果如图2.13所示:

图2.13加法器仿真结果

四位加法器仿真结果如图2.14所示:

图2.14四位加法器仿真结果

将加法器的功能和仿真结果对照可知,加法器的仿真结果正确。

2.2.4寄存器模块的设计与实现

该模块要实现八位二进制数的并入和右移功能,可以用两个四位寄存器组合得到。

四位寄存器的设计可以参考环境中已有的芯片结构来设计。

(1)创建寄存器模块原理图。

寄存器模块原理如图2.15所示:

图2.15寄存器逻辑框图

其中,4位寄存器原理结构如图2.16所示:

图2.164位寄存器逻辑框图

(2)创建元件图形符号

为能在图形编辑器(原理图设计输入方式)中调用74_198芯片,需要为74_198模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:

Tools=>SymbolWizard=>下一步。

A1-A8是数据输入信号,CK、CLR、S0、S1、SL1、SR1是控制输入,Q1-Q8是数据输出信号。

其元件图形符号如图2.17所示:

图2.17寄存器元件图形符号

(3)功能仿真

对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的Simulator模块实现。

仿真结果如图2.18所示:

图2.18寄存器仿真结果

四位寄存器仿真结果如图2.19所示:

图2.19四位寄存器仿真结果

将寄存器所实现的功能与仿真结果对照可知,寄存器的仿真结果正确。

2.3仿真调试

仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。

(1)建立仿真波形文件及仿真信号选择

功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.3所示。

表2.3仿真信号选择和参数设置

输入信号

输出信号

S

CK

CLR

S0-S16

X0-X8

1

1

Y0-Y8

0

1

(2)功能仿真结果与分析

功能仿真波形结果如图2.20所示,仿真数据结果如表2.4所示。

对表2.3与表2.4的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。

图2.20功能仿真波形结果

表2.4仿真结果

输入信号

输出信号

S

CK

CLR

S0-S16

X0-X8

1

1

Y0-Y8

0

1

输入数据序列及控制脉冲信号同表2.3相同。

由此可知,定点原码一位乘法器的设计中,每当给一个高电平,寄存器就运行一次,由S来控制乘数和被乘数的并入以及乘数的右移。

X0-X8=+0.11010110,Y0-Y8=+0.10010111,S0-S16=+0.0111111000111010,由此可知结果验证正确,定点原码一位乘法器设计成功。

第3章编程下载与硬件测试

3.1编程下载

利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。

3.2硬件测试及结果分析

利用XCV200实验板进行硬件功能测试。

定点原码一位乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。

表3.1XCV200实验板信号对应关系

XCV200芯片引脚信号

XCV200实验板

P94

K0:

7

P95

K0:

6

P96

K0:

5

P97

K0:

4

P100

K0:

3

P101

K0:

2

P102

K0:

1

P103

K0:

0

P79

K1:

7

P80

K1:

6

P81

K1:

5

P82

K1:

4

P84

K1:

3

P85

K1:

2

P86

K1:

1

P87

K1:

0

P63

K2:

7

P64

K2:

6

P65

K2:

5

P66

K2:

4

P213

P213

P223

D2

P147

A7

P152

A6

P178

A5

P184

A4

P185

A3

P203

A2

P111

A1

P110

A0

P78

B7

P93

B6

P99

B5

P107

B4

P108

B3

P19

B2

P124

B1

P125

B0

利用表2.3中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1及K2控制数据输入,同时观察数码显示管和发光二极管显示结果,得到如图3.1及表3.2所示的硬件测试结果。

图3.1硬件测试结果图

 

表3.2硬件测试结果

输入信号

输出信号

S

CK

CLR

S0-S16

X0-X8

1

1

Y0-Y8

0

1

对表3.2与表2.3和图2.1的内容进行对比。

可以看出硬件测试结果是正确的,说明电路设计完全正确。

输入数据序列及控制脉冲信号同表2.3相同。

由此可知,定点原码一位乘法器的设计中,每当给一个高电平,寄存器就运行一次,由S来控制乘数和被乘数的并入以及乘数的右移。

X0-X8=+0.11010110,Y0-Y8=+0.10010111,S0-S16=+0.0111111000111010,由此可知结果验证正确,定点原码一位乘法器设计成功。

参考文献

[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设计软件的使用及相关知识。

能独立的制作和生成所需要的逻辑部件。

在加深理论知识的同时,个人实践能力及动手能力得到提高。

指导教师评语:

 

指导教师(签字):

      年月日

课程设计成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2