定点原码一位乘法器Word文件下载.docx
- 文档编号:21113864
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:19
- 大小:127.62KB
定点原码一位乘法器Word文件下载.docx
《定点原码一位乘法器Word文件下载.docx》由会员分享,可在线阅读,更多相关《定点原码一位乘法器Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
·
硬件环境:
伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;
EDA环境:
Foundationf3.1设计软件。
该设计由设计入口工具,设计实现工具,验证工具三大部分组成.入口工具包括原理图设计,有限状态编辑器,硬件描述语言编辑器等。
第2章详细设计方案
2.1顶层方案图的设计与实现
顶层方案图实现原码一位乘的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件
顶层图形文件由一个运算器模块组成,乘数X[7:
0],被乘数Y[7:
0],符号位XA,YA,脉冲CLK,清零端CLR,打入端LOAD,结果OUT[16:
0],顶层图设计如下:
图2.1原码一位乘顶层图形文件结构
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XlinxXCV200可编程逻辑芯片。
另外,在这次的设计中还有的涉及Verilog语言编程。
(2)引脚锁定
把顶层图形文件中的输入/输出信号安排到XlinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XlinxXCV200芯片引脚对应关系如表2.1所示。
表2.1信号和芯片引脚对应关系
图形文件中的输入/输出信号
XCV200芯片引脚
X[0]
P47
X[1]
P48
X[2]
P49
X[3]
P50
X[4]
P53
X[5]
P54
X[6]
P55
X[7]
P56
Y[0]
P41
Y[1]
P40
Y[2]
P39
Y[3]
P38
Y[4]
P36
Y[5]
P35
Y[6]
P34
Y[7]
P33
CLK
P98
CLRR
P94
LOAD
P97
XA
P96
YA
P95
OUT[0]
P213
OUT[1]
P215
OUT[2]
P216
OUT[3]
P217
OUT[4]
P218
OUT[5]
P220
OUT[6]
P221
OUT[7]
P222
OUT[8]
P223
OUT[9]
P224
OUT[10]
P228
OUT[11]
P229
OUT[12]
P230
OUT[13]
P231
OUT[14]
P232
OUT[15]
P234
OUT[16]
P235
2.2第二层模块的设计与实现
根据以上原理设计分析与大概框图,可得出以下的第二层模块的设计,其中各大模块实现各部分功能。
图2.2第二层模块框图
2.3功能模块的设计与实现
根据第二层模块设计可知,整体设计由乘数寄存器,被乘数寄存器,移位电路,控制器,部分积五大模块,以下介绍各个模块的具体实现。
2.3.1移位模块的设计与实现
为了简化设计,采用了Verilog语言设计,用语言实现移位功能,XX[7:
0]表示输入,CO表示加法器的进位,CE表示使能端,CLR表示清零端,YY[7:
0]表示移位后的输出,CI标记移出去的那一位,其设计过程如下。
(1)创建Verilog源文件
moduleYIWEIDIANLU(YY,XX,CE,CO,CI,CLR);
output[7:
0]YY;
reg[7:
input[7:
0]XX;
inputCE;
inputCLR;
inputCO;
outputCI;
regCI;
always@(CLR)
begin
if(CLR)YY<
=0;
else
YY[7]<
=CO;
YY[6]<
=XX[7];
YY[5]<
=XX[6];
YY[4]<
=XX[5];
YY[3]<
=XX[4];
YY[2]<
=XX[3];
YY[1]<
=XX[2];
YY[0]<
=XX[1];
CI<
=XX[0];
end
endmodule
(2)创建元件图形符号
图形符号如下:
(3)功能仿真
对创建的移位器件YIWEIDIANLU进行功能仿真,验证其功能的正确性。
可用XilinxFoundationf3.1编译器的Simulator模块实现。
功能仿真图如下:
表2.3.1移位器件功能表描述
XX[7:
0]
YY[7:
CI
CO
CE
CLR
0F
07
1
0
87
00
1
从以上表中数据可以看出,当CLR为1时,该器件清零,输出YY[7:
0]为零,为零时,有移位功能,CO为移位后高位的补充值。
CI标记移出的那一位,用来送往乘数寄存器中移位的高位补充,CE为此器件的使能端,保证该器件工作,该器件成功创建。
2.3.2乘数移位模块的设计与实现
为了标记乘数移位前的最低位,设计CHENG寄存器,输入分别用DIN[7:
0]表示,移位后结果用Q[7:
0]表示,高位补充用SIN表示,移出的一位用KIN表示,其设计过程如下。
moduleCHENG(LOAD,SIN,DIN,CLK,CLR,Q,KIN);
inputLOAD;
inputSIN;
0]DIN;
inputCLK;
0]Q;
reg[7:
outputKIN;
regKIN;
always@(posedgeCLKorposedgeCLR)
begin
if(CLR)Q<
elseif(LOAD)Q<
=DIN;
else
KIN<
=Q[0];
Q<
=Q>
>
1;
Q[7]<
=SIN;
end
元件符号如下:
对创建的乘数移位寄存器(CHENG)进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器的Simulator模块实现。
表2.3.2乘数移位寄存器功能表描述
DIN
SIN
KIN
Q7
09
上升沿
04
84
从以上表中数据可以看出,当CLR为1时,该器件清零,输出Q[7:
0]为零,CLR为零时,有移位功能,SIN为移位后高位的补充值。
KIN标记移出的那一位,用来判断下次加法加零还是被乘数,CLK上升沿有效,保证该器件工作,该器件成功创建。
2.3.3选择模块的设计与实现
选择器XUAN2的输入分别用0,B[7:
0]表示,选择后结果输出用QOUT[7:
0]表示,选择信号用SO表示,其设计过程如下。
moduleXUAN2(B,SO,QOUT);
0]B;
inputSO;
0]QOUT;
always@(SO)
if(SO)QOUT<
=B;
elseQOUT<
元件图形符号:
对创建的选择器元件(XUAN2)进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器的Simulator模块实现。
表2.3.3选择器功能表描述
B[7:
SO
QOUT[7:
0E
从以上表中数据可以看出,当选择信号为1时,该器件输出QOUT[7:
0]为输入值B[7:
0],当选择信号为0时,该器件输出00,由功能表知,该器件成功创建。
2.3.4控制模块的设计与实现
设计为6位原码一位乘,计数器为模9计数器,上升沿计数,有清零功能,其设计过程如下。
moduleJISHU(CLK,CLR,QOUT,CO);
output[3:
reg[3:
outputCO;
regCO;
always@(posedgeCLKorposedgeCLR)
if(CLR)
QOUT<
CO<
=1;
elseif(QOUT==9)
else
=QOUT+1;
元件图形符号如下:
对创建的计数器元件(JISHU)进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器的Simulator模块实现。
表2.3.4计数器功能表描述
CLK
CLR
QOUT(次数)
上升沿有效
0~8
9
从以上表中数据可以看出,当脉冲信号为上升沿时,该器件输出QOUT[7:
0]记录次数从0到9,当记满9次时,该器件CO输出1,其余CO输出都为0,由功能表知,该器件是一个模9的计数器,成功创建。
2.3.5其他模块的设计与实现
采用原有的XCV200可编程逻辑芯片加法器件ADD8实现电路中的加法,采用FD8CE8位寄存器存放部分积。
ADD8:
为8位的加法器,其中A[7:
0],B[7:
0]为两个输入端口,CO为向后一位的进位标志,CI为前一位向加法器的进位,OFL为溢出,S[7:
0]为结果输出。
FD8CE:
为8位寄存器,其中D[7:
0]为数据输入端口,CE为该器件的使能端,控制该器件工作,C为脉冲控制端,CLR为清零端,CLR为1时该器件清零,Q[7:
0]为数据输出端口,当脉冲有效,CLR无效,输出等于输入。
2.4仿真调试
仿真调试主要验证设计电路逻辑功能、时序的正确性,本次设计为原码一位乘法,设计完成主要采用功能仿真方法对设计的电路进行仿真从而验证其电路功能的正确性。
(1)建立仿真波形文件及仿真信号选择
功能仿真时,首先建立仿真波形文件,选择仿真信号CLK,CLR,LOAD,数据输入X[7:
0],Y[7:
0],符号位输入XA,YA,结果输出OUT[16:
0],对以上选定的输入信号设置参数,验证输出信号的正确性,选定仿真信号和设置的参数如表2.2所示。
表2.4仿真信号选择和参数设置
输入信号
输出
信号
X[7:
Y[7:
OUT
[16:
0
(2)功能仿真结果与分析
功能仿真波形结果如图2.2所示,仿真数据结果如表2.3所示。
对表2.3与表1.1的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确
图2.4功能仿真波形结果
表2.4仿真数据结果
3
第3章编程下载与硬件测试
3.1编程下载
功能仿真通过以后,经过编译,若成功,则编程下载功能,将得到的*.bit文件,然后下载到XCV200实验板的XCV200可编程逻辑芯片中。
由于此次设计编译有点问题,不能通过,最终没能成功下载,试验没能完美的完成,有点遗憾,分析其原因,可能是由于Verilog语言设计不太成熟,编译虽然没有什么问题,可下载时要求比较严格,没能通过。
3.2硬件测试及结果分析
XCV200实验板信号对应关系
XCV200芯片引脚信号
XCV200实验板
K0
K1
K2(0)
K2
(1)
K2
(2)
K2(3)
K2(4)
OUT[7:
D0
利用表中的参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关输入数据,观察输出OUT[16:
0]。
参考文献
[1]曹昕燕.EDA技术实验与课程设计[M].北京:
清华大学出版社,2006
[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:
北京邮电大学出版社,2006
[3]王爱英.计算机组成与结构(第4版)[M].北京:
[4]李勇.计算机原理与设计(修订本).长沙:
国防科技大学出版社,1989
[5]王尔乾.数字逻辑与数字集成电路.北京:
清华大学出版社,1996
[6]白中英.计算机组成原理.北京:
科学出版社,1994
[7]杨天行.计算机技术.北京:
国防工业出版社,1999
附录(电路原理图)
图
(一)
课程设计总结:
主要从以下几方面总结:
1.在这次组成原理设计实验中,遇到了很多问题,刚开始的设计思想有点麻烦,用了三个8位的寄存器,两个8位的移位寄存器,总体有三个不同的脉冲控制端,两个不同的LOAD打入端,一个总清零端CLR,有X,Y,两个8位的数据输入,一个17位的结果输出,但封装下载有相当大的困难,因为下载时只可以有一个脉冲控制端口,在老师的提点下,改进了原有的电路图,去掉一个8位的移位寄存器,,省掉了原有的很多不必要的麻烦。
另外又加入了计数器控制原有电路,解决了很多原有的问题。
2.这次题目为原码一位乘法器的设计,通过运用库中原有器件或运用Verilog语言编程实现所需模块的设计,最终实现原码一位乘,输入X,Y,及其符号XA,YA,即可求得并输出结果。
3.通过这次实验设计,了解了许多计算机组成原理知识,并学会了简单运用Verilog语言编程实现所需各个器件,知道了自己在设计方面的不足和所需要学习的知识,在这次设计中指导老师给予了我很大的帮助,在以后的学习和实验中会更加努力的学习,弥补自己的不足。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定点 一位 乘法器
![提示](https://static.bdocx.com/images/bang_tan.gif)