西安交通大学数字逻辑电路实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子技术实验报告——交通控制器的分析与设计
班级:
姓名:
学号:
日期: 2016年6月
联系电话:
目录
一、实验目的 (3)
二、项目设计概要 (3)
三、系统设计方案 (4)
四、测试结果及分析 (9)
五、项目总结 (10)
六、结束语 (10)
七、参考书 (10)
一.实验目的
数字逻辑电路专题实验是紧紧围绕数字逻辑这门课程进行的一个有实践性特质的课程,主要考察的是对于数字逻辑这门课程中比较重要的知识点的掌握程度和灵活运用程度,也考察了实际操作能力和对于特殊情况和意外情况的处理能力。通过对于译码器编码器等器件的实际操作和对相应变成软件的实际应用,达到对于这门课程更为深入理解这一目的。
同时,为解决实际生活中的问题有一定的指导意义,也能更好地对实际生活中的一些组合部件有更好地认识。
二.项目设计概要
1. 设计实现的目标
设计一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器,具体要求如下:
(1) 主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。
(2) 主干道处于常允许通行状态,而支干道有车来才允许通行。
(3) 当主、支道均有车时,两者交替允许通行,主干道每次放行45 s,支干道每次放行25 s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5 s的黄灯作为过渡,并进行减计时显示。
2. 整体设计概述
交通控制器拟由单片的CPLD/FPGA来实现,经分析设计要求,拟定整个系统由9个单元电路组成,如图所示。
3. 项目设计特点
我们在项目设计过程中采用模块化设计思想,同时用变量的方式来完成计数的设计,用计数器来实现显示这一特点,使得设计变得简单。
三.系统设计方案
1. 系统功能模块设计示意图:
2. 电路模块设计
输入:实验板时钟
输出:七段数码管
电路模块的设计:
(1)交通灯控制器:
将题设的要求把电路分为ABCD四个状态,A为主干道为绿灯,B为主干道为黄灯,C为主干道为红灯,D为主干道为红灯,旁道为黄灯。
用特设的一个变量S,完成电路的即使功能,使得电路可以区分45s,25s等时间点,并且通过if语句完成状态之间的改变。
源程序:
LIBRARY IEEE;
USE JTDKZ IS
PORT(CLK,SM,SB,CLD:IN STD_LOGIC;
MR,MY,MG,BR,BY,BG: OUT STD_LOGIC);
END ENTITY JTDKZ;
ARCHITECTURE ART OF JTDKZ IS
TYPE STATE_TYPE IS(A,B,C,D);
SIGNAL STATE: STATE_TYPE;
BEGIN
CNT:PROCESS(CLK) IS
VARIABLE S:INTEGER RANGE 0 TO 45;
VARIABLE CLR,EN:BIT;
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
IF CLR='0'THEN
S:=0;
ELSIF EN='0' THEN
S:=S;
ELSE
S:=S+1;
END IF;
CASE STATE IS
WHEN A=>MR<='0'; MY<='0'; MG<='1';
BR<='1'; BY<='0'; BG<='0';
IF(SB AND SM)='1' THEN
IF S=45 THEN
STATE<=B; CLR:='0'; EN:='0'; ELSE
STATE<=A; CLR:='1'; EN:='1'; END IF;
ELSIF(SB AND (NOT SM))='1' THEN STATE<=B; CLR:='0'; EN:='0'; ELSE
STATE<=A; CLR:='1'; EN:='1'; END IF;
WHEN B=>MR<='0'; MY<='1'; MG<='0';
BR<='1'; BY<='0'; BG<='0';
IF S=5 THEN
STATE<=C;CLR:='0'; EN:='0';
ELSE
STATE<=B; CLR:='1'; EN:='1'; END IF;
WHEN C=>MR<='1'; MY<='0'; MG<='0';
BR<='0'; BY<='0'; BG<='1';
IF(SM AND SB)='1' THEN
IF S=25 THEN
STATE<=D; CLR:='0'; EN:='0'; ELSE
STATE<=C; CLR:='1'; EN:='1';
END IF;
ELSIF SB='0' THEN
STATE<=D; CLR:='0'; EN:='0';
ELSE
STATE<=C; CLR:='1'; EN:='1';
END IF;
WHEN D=>MR<='1'; MY<='0'; MG<='0';
BR<='0'; BY<='1'; BG<='0';
IF S=5 THEN
STATE<=A;CLR:='0'; EN:='0';
ELSE
STATE<=D; CLR:='1'; EN:='1';
END IF;
END CASE;
END IF;
END PROCESS CNT;
END ARCHITECTURE ART;
(2)定时单元电路:
当符合题设条件中的时间要求时,相应的定时单元电路开始工作,左后可以达成输出合适的BCD码的要求。
源代码:
LIBRARY IEEE;
USE CNT45S IS
PORT(SB,CLK,EN45:IN STD_LOGIC;
DOUT45M,DOUT45B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY CNT45S;
ARCHITECTURE ART OF CNT45S IS
SIGNAL CNT6B: STD_LOGIC_VECTOR(5 DOWNTO 0);
BEGIN
PROCESS(SB,CLK,EN45) IS
BEGIN
IF SB='0'THEN CNT6B<=CNT6B-CNT6B-1;
ELSIF(CLK'EVENT AND CLK= '1')THEN
IF EN45='1'THEN CNT6B<=CNT6B+1;
ELSIF EN45='0'THEN CNT6B<=CNT6B-CNT6B-1;
END IF;
END IF;
END PROCESS;
PROCESS(CNT6B) IS
BEGIN