EDA技术实验报告七人表决器完美版

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

广东工业大学课程设计任务书

题目名称硬件描述语言与EDA技术实践

学生学院

专业班级

姓名

学号

一、课程设计的内容

1.系统功能分析;

2.实现系统功能的方案设计;

3.编写各功能模块VHDL语言程序;

4.对各功能模块进行编译、综合、仿真和验证;

5.顶层文件设计;

6.整个系统进行编译、综合、仿真和验证;

二、课程设计的要求与数据

1.按所布置的题目要求,每一位学生独立完成全过程;

2.分模块层次化设计;

3.各功能模块的底层文件必须用VHDL语言设计,顶层文件可用VHDL

语言设计,也可以用原理图设计。

三、课程设计应完成的工作

1.所要求设计内容的全部工作;

2.按设计指导书要求提交一份报告书;

3.提交电子版的设计全部内容:工程目录文件夹中的全部内容,报告书

四、课程设计进程安排

五、应收集的资料及主要参考文献

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.熟悉Quartus II软件的使用。

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分别显示赞成,反对的人数。

五、流程图设计

六、程序设计如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY UG IS

PORT(clk:IN STD_LOGIC;

am:IN STD_LOGIC_VECTOR(6 DOWNTO 0);

y:OUT STD_LOGIC;

y1,y2:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END ENTITY UG;

ARCHITECTURE one OF UG IS

SIGNAL q:STD_LOGIC;

SIGNAL q1,q2:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN

PROCESS(am)

VARIABLE shu:INTEGER;

BEGIN

shu:=0;

IF clk'EVENT AND clk='1' THEN

IF am(0)='1' THEN shu:=shu+1;END IF;

IF am(1)='1' THEN shu:=shu+1;END IF;

IF am(2)='1' THEN shu:=shu+1;END IF;

IF am(3)='1' THEN shu:=shu+1;END IF;

IF am(4)='1' THEN shu:=shu+1;END IF;

IF am(5)='1' THEN shu:=shu+1;END IF;

IF am(6)='1' THEN shu:=shu+1;END IF;

CASE shu IS

WHEN 0 => q<='0';q1<="1111110";q2<="1110000";

WHEN 1 => q<='0';q1<="0110000";q2<="1011111";

WHEN 2 => q<='0';q1<="1101101";q2<="1011011";

WHEN 3 => q<='0';q1<="1111001";q2<="0110011";

WHEN 4 => q<='1';q1<="0110011";q2<="1111001";

WHEN 5 => q<='1';q1<="1011011";q2<="1101101";

WHEN 6 => q<='1';q1<="1011111";q2<="0110000";

WHEN 7 => q<='1';q1<="1110000";q2<="1111110";

WHEN OTHERS => q<='Z';q1<="ZZZZZZZ";q2<="ZZZZZZZ"; END CASE;

y<=q;

y1<=q1;

y2<=q2;

END IF;

END PROCESS;

END ARCHITECTURE one;

相关文档
最新文档