A0=B0
A0=B0
A0=B0
A0=B0
A0=B0
X
X
X
X
X
X
X
X
1
0
X
1
L0
X
X
X
X
X
X
X
X
0
1
X
1
0
X
X
X
X
X
X
X
X
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
函数表达式:
逻辑电路图:
2)详细设计
从功能表可以看出,该比较器的比较原理和两位比较器的比较原理相同。
两个4位数的比较是从A的最高位A3和B的最高位B3进行比较,如果它们不相等,则该位的比较结果可以作为两数的比较结果。
若最高位A3=B3,则再比较次高位A2和B2,余类推。
显然,如果两数相等,那么,比较步骤必须进行到最低位才能得到结果。
真值表中的输入变量包括A3与B3、A2与B2、A1与B1、A0与B0和A与B的比较结果。
其中A和B是另外两个低位数,IA>B、IA
设置低位数比较结果输入端是为了能与其他数值比较器连接,以便组成位数更多的数值比较器。
根据1位数值比较器逻辑表达式可知:
上式与逻辑图一致。
由上式可以看出,仅对4位数进行比较时,应对IA>B、IA<B和IA=B进行适当处理,即IA>B=IA<B=0,IA=B=1。
3)调试分析以及设计体会
a.仿真或程序下载调试截图
1.新建工程:
1.File/NewProjectWizard
2.出现一对话框,点next,之后出现的对话框输入保存路径和工程名,点next.
3.如果是一个全新的工程,就点Next
4.下图对话框是选择器件。
根据目标板的处理器而定
5.例如我们选择了CycloneII家簇
6.点next
7.点next,再点finish新建工程完成
8.新建一个文档File/New
根据你的输入方式选择,例如我们这里选择Vhdl
9.输入你要编写的程序
10.确认没问题了就保存一下,保存名和实体名要一样。
11.编译Processing/StartCompilation点“确定”
12.准备好网表(netlist)文件
Processing⏐GenerateFunctionalSimulationNetlist;
13.用波形编辑器即测试向量
选择命令File/New执行以下操作打开波形编辑器窗口
14.波形编辑器窗口:
15.选择命令Edit/EndTime在对话框中操作(本例为300ns)
16.选择命令Edit/InsertNodeorBus;或直接键入结点名;或点击NodeFinder出现结点查找器窗口搜索结点名
17.在结点查找器窗口中查找结点
18.编辑输入激励信号波形
执行模拟
19.使用命令Processing︱SimulatorTool,出现模拟器窗口
20.模拟结果
21.执行模拟(1.选择Timming2.点击start3.点击Report观察)
22.模拟结果:
23.分配管脚结果:
24.再次编译运行
b.设计过程中遇到的问题以及解决问题的方法。
运行出现的问题,还有仿真,还有配置管脚,程序都出现了警告和错误,最后那到解决方案的时候还是老师和同学给的,原来是我忘记一些分号了,还有一些死循环,根本跳不出来,必须注意细节,注意控制开关,那就好了。
4)课程设计过程经验教训、心得体会。
这次的课程设计让我意识到电子技术应用的广大,程序设计过程中,在许多问题上没有理解,直到请教同学之后才解决的,设计过程操作是挺简单的,就比如仿真过程中出现的问题,那几有点难了……
通过这次设计,我对数字电路设计中的逻辑关系等有了一定的认识,对以前学的数字电路又有了一定的新认识,温习了以前学的知识,但在设计的过程中,遇到了很多的问题,有一些知识都已经不太清楚了,但是通过一些资料又重新的温习了一下数字电路部分的内容。
在这次设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。
在此要感谢我的指导老师,感谢老师给我这样的机会锻炼。
在整个设计过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。
虽然这个项目还不是很完善,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。
还得好好加油啊……
5)书写格式
课程设计报告装订顺序:
封面、任务书、目录、正文、评分、附件(程序清单)。
正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:
一、课题的主要功能;二、详细设计;三、程序调试;四、总结;五、附件(所有程序的原代码,要求对程序写出必要的注释)。
正文总字数要求在5000字以上(不含程序原代码)。
6)附录
a.参考书目
1
EDA技术与VHDL程序开发基础教程
雷伏容,李俊,尹霞
清华大学出版社
978-7-302-22416-7
2010
TP312VH/36
2
VHDL电路设计技术
王道宪贺名臣_刘伟
国防工业出版社
7-118-03352-9
2004
TN702/62
3
VHDL实用技术
潘松,王国栋
7-81065
7-81065-290-7
2000
TP312VH/1
4
VHDL语言100例详解
北京理工大学ASIC研究所
7-900625
7-900625-02-X
1999
TP312VH/3
5
VHDL编程与仿真
王毅平等
人民邮电出版社
7-115-08641-9
2000
73.9621/W38V
6
VHDL程序设计教程
邢建平_曾繁泰
清华大学出版社
7-302-11652-0
2005
TP312VH/27/3
7
VHDL电路设计
雷伏容
清华大学出版社
7-302-14226-2
2006
TN702/185
7)源程序清单(带注释)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYqinyuxingIS--表示4位数值比较器
PORT(dataA,dataB:
INSTD_LOGIC_VECTOR(3DOWNTO0);
greater_bit:
OUTSTD_LOGIC;--A大于B的标志输出信号
equal_bit:
OUTSTD_LOGIC;--A等于B的标志输出信号
less_bit:
OUTSTD_LOGIC);--A小于B的标志输出信号
ENDENTITYqinyuxing;
ARCHITECTUREbehavioralOFqinyuxingIS
BEGIN
inst_comparator:
PROCESS(dataA,dataB)
BEGIN
FORiIN3DOWNTO0LOOP
IF(dataA(i)='1'ANDdataB(i)='0')THEN
greater_bit<='1';
equal_bit<='0';
less_bit<='0';
EXIT;--已经判断出dataA>dataB,则跳出循环
ELSIF(dataA(i)='0'ANDdataB(i)='1')THEN
greater_bit<='0';
equal_bit<='0';
less_bit<='1';
EXIT;--已经判断出dataAELSE
greater_bit<='0';
equal_bit<='1';
less_bit<='0';--此时判断出dataA=dataB
ENDIF;
ENDLOOP;
ENDPROCESSinst_comparator;
ENDARCHITECTUREbehavioral;
计算机与通信学院课程设计评分表
课题名称:
4位数值比较器
项目
评价
设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
答辩陈述与回答问题情况
课程设计周表现情况
综合成绩
教师签名:
日期: