EDA技术实验报告七人表决器完美版.docx
《EDA技术实验报告七人表决器完美版.docx》由会员分享,可在线阅读,更多相关《EDA技术实验报告七人表决器完美版.docx(10页珍藏版)》请在冰点文库上搜索。
EDA技术实验报告七人表决器完美版
广东工业大学课程设计任务书
题目名称
硬件描述语言与EDA技术实践
学生学院
专业班级
姓名
学号
一、课程设计的内容
1.系统功能分析;
2.实现系统功能的方案设计;
3.编写各功能模块VHDL语言程序;
4.对各功能模块进行编译、综合、仿真和验证;
5.顶层文件设计;
6.整个系统进行编译、综合、仿真和验证;
二、课程设计的要求与数据
1.按所布置的题目要求,每一位学生独立完成全过程;
2.分模块层次化设计;
3.各功能模块的底层文件必须用VHDL语言设计,顶层文件可用VHDL语言设计,也可以用原理图设计。
三、课程设计应完成的工作
1.所要求设计内容的全部工作;
2.按设计指导书要求提交一份报告书;
3.提交电子版的设计全部内容:
工程目录文件夹中的全部内容,报告书
四、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
布置设计题目和要求;收集相关资料。
工3-317或宿舍
12.5
2
方案分析与确定;编写VHDL源程序。
工3-317或宿舍
12.6
3
编写VHDL源程序;编译、综合、仿真、定时分析、适配。
工3-317或宿舍
12.7
4
下载和硬件验证;验收。
工3-317
12.8
5
下载和硬件验证;验收;撰写报告
工3-317
12.9
6
7
8
五、应收集的资料及主要参考文献
1.陈先朝,硬件描述语言与EDA技术实践指导书,2011年11月
2.曹昕燕等编著,EDA技术实验与课程设计,清华大学出版社,2006年5月
3.刘欲晓等编著,EDA技术与VHDL电路开发应用实践,电子工业出版社,2009年4月
4.刘昌华等编著,数字逻辑EDA设计与实践:
MAX+plusⅡ与QuartusⅡ双剑合璧,国防工业出版社,2009年
5.刘江海主编,EDA技术课程设计,华中科技大学出版社,2009年1月
发出任务书日期:
2011年12月5日 指导教师签名:
计划完成日期:
2011年12月9日 基层教学单位责任人签章:
主管院长签章:
七人表决器设计
一、设计目的
1.熟悉QuartusII软件的使用。
2.熟悉七人表决器的工作原理
3.熟悉EDA开发的基本流程。
二、设计要求
表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器由七个人来投票,当同意的票数大于或者等于4人时,则认为同意;反之,当否决的票数大于或者等于4人时,则认为不同意。
实验中用7个拨挡开关来表示七个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮,;否则,如果表决的结果为反对,则LED不会被点亮。
同时用七段显示数码管来显示赞成的人数和反对的人数。
三、电路及连线设计
管脚分配:
实验符号
对应附录符号
管脚
K1
K1
PIN_28
K2
K2
PIN_29
K3
K3
PIN_30
K4
K4
PIN_31
K5
K5
PIN_38
K6
K6
PIN_39
K7
K7
PIN_40
A
A
PIN_141
B
B
PIN_142
C
C
PIN_143
D
D
PIN_144
E
E
PIN_147
F
F
PIN_148
G
G
PIN_149
m_Result
SEG5
PIN_190
A
A
PIN_157
B
B
PIN_158
C
C
PIN_159
D
D
PIN_160
E
E
PIN_170
F
F
PIN_172
G
G
PIN_173
四、使用说明
本设计就是利用芯片ACEX1K系列的EP1K30QC208-3,拨挡开关模块和LED模块来实现一个简单的七人表决器的功能。
拨挡开关模块中的sw1~sw7表示七个人,当拨挡开关输入为‘1’时,表示对应的人投同意票,否则当拨挡开关输入为‘0’时,表示对应的人投反对票;LED模块中SEG5表示七人表决的结果,当SEG5点亮时,表示一致同意,否则当SEG5熄灭时,表示一致反对。
然后数码管SEG1和SEG2分别显示赞成,反对的人数。
五、流程图设计
六、程序设计如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYUGIS
PORT(clk:
INSTD_LOGIC;
am:
INSTD_LOGIC_VECTOR(6DOWNTO0);
y:
OUTSTD_LOGIC;
y1,y2:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDENTITYUG;
ARCHITECTUREoneOFUGIS
SIGNALq:
STD_LOGIC;
SIGNALq1,q2:
STD_LOGIC_VECTOR(6DOWNTO0);
BEGIN
PROCESS(am)
VARIABLEshu:
INTEGER;
BEGIN
shu:
=0;
IFclk'EVENTANDclk='1'THEN
IFam(0)='1'THENshu:
=shu+1;ENDIF;
IFam
(1)='1'THENshu:
=shu+1;ENDIF;
IFam
(2)='1'THENshu:
=shu+1;ENDIF;
IFam(3)='1'THENshu:
=shu+1;ENDIF;
IFam(4)='1'THENshu:
=shu+1;ENDIF;
IFam(5)='1'THENshu:
=shu+1;ENDIF;
IFam(6)='1'THENshu:
=shu+1;ENDIF;
CASEshuIS
WHEN0=>q<='0';q1<="1111110";q2<="1110000";
WHEN1=>q<='0';q1<="0110000";q2<="1011111";
WHEN2=>q<='0';q1<="1101101";q2<="1011011";
WHEN3=>q<='0';q1<="1111001";q2<="0110011";
WHEN4=>q<='1';q1<="0110011";q2<="1111001";
WHEN5=>q<='1';q1<="1011011";q2<="1101101";
WHEN6=>q<='1';q1<="1011111";q2<="0110000";
WHEN7=>q<='1';q1<="1110000";q2<="1111110";
WHENOTHERS=>q<='Z';q1<="ZZZZZZZ";q2<="ZZZZZZZ";
ENDCASE;
y<=q;
y1<=q1;
y2<=q2;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
七、波形时序仿真
八、波形分析
当七个人am(6)、am(5)、am(4)、am(3)、am
(2)、am
(1)、am(0)投票结果为“1101111“,则数码管SEG1的结果是“1011111”
即显示数字“6”,数码管SEG2结果是“0110000”,显示数字“1”,此时LED灯亮,投票通过;当七个人投票结果是“0111000”,SEG1显示“3”,SEG2显示“4”,LED灯不亮,投票不通过。
以此类推。
九、管脚分配
十、设计问题与解决方法
在本程序中因为是多路输出,输出存在时序差,产生竞争冒险现象,导致在时序仿真的时候输出波形中产生“毛刺”,为了去除这些“毛刺”,加入一个时钟信号CLK,其周期设置为20ns.
十一、设计总结:
通过这段时间的EDA课程设计,我更加熟练的掌握了EDA开发的基本流程,熟练的使用QuartusII软件进行编程,在大家的努力之下,我们完成了七人表决器的相关设计,在此我要感谢我的组员和在EDA设计中给于我们很多帮助的老师们。
同时,我发现了自己的编程思路还不是很清晰,需要在以后的学习中加强锻炼。
十二、参考文献:
[1]延明,张亦化.数字电路EDA技术入门.北京:
邮电大学出版社,2006
[2]徐惠民,安德宁.数字逻辑设计与VHDL描述.北京:
机械工程出版社,2002
[3]潘松,王国栋.VHDL实用教程.成都:
电子科技大学出版社,2001