电子技术实验报告
——交通控制器的分析与设计
班级:
姓名:
学号:
日期: 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 IEEE.STD_LOGIC_1164.ALL;
ENTITY 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
V ARIABLE S:INTEGER RANGE 0 TO 45;
V ARIABLE 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
BR
IF(SB AND SM)='1' THEN
IF S=45 THEN
STATE
ELSE
STATE
END IF;
ELSIF(SB AND (NOT SM))='1' THEN
STATE
ELSE
STATE
END IF;
WHEN B=>MR
BR
IF S=5 THEN
STATE
ELSE
STATE
END IF;
WHEN C=>MR
BR
IF(SM AND SB)='1' THEN
IF S=25 THEN
STATE
ELSE
STATE
END IF;
ELSIF SB='0' THEN
STATE
ELSE
STATE
END IF;
WHEN D=>MR
BR
IF S=5 THEN
STATE
ELSE
STATE
END IF;
END CASE;
END IF;
END PROCESS CNT;
END ARCHITECTURE ART;
(2)定时单元电路:
当符合题设条件中的时间要求时,相应的定时单元电路开始工作,左后可以达成输出合适的BCD 码的要求。
源代码:
--CNT45S.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY 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
ELSIF(CLK'EVENT AND CLK= '1')THEN
IF EN45='1'THEN CNT6B
ELSIF EN45='0'THEN CNT6B
END IF;
END IF;
END PROCESS;
PROCESS(CNT6B) IS
BEGIN
CASE CNT6B IS
WHEN "000000"=>DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M
WHEN "001011"=>DOUT45M
WHEN "001100"=>DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M
WHEN "011000"=>DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M
WHEN "100010"=>DOUT45M
WHEN "100011"=>DOUT45M
WHEN "100100"=>DOUT45MDOUT45M
WHEN "100110"=>DOUT45M
WHEN "100111"=>DOUT45M
WHEN "101000"=>DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M
END PROCESS;
END ARCHITECTURE ART;
(3)译码器电路:
完成BCD 码转换为相应数字的要求,使得在七段译码器中得到合适的显示。 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY YMQ IS
PORT(AIN4:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END ENTITY YMQ;
ARCHITECTURE ART OF YMQ IS
BEGIN
PROCESS(AIN4) IS
BEGIN
CASE AIN4 IS
WHEN "0000"=>DOUT7
WHEN "0001"=>DOUT7
WHEN "0010"=>DOUT7
WHEN "0011"=>DOUT7
WHEN "0100"=>DOUT7
WHEN "0101"=>DOUT7
WHEN "0110"=>DOUT7
WHEN "0111"=>DOUT7
WHEN "1000"=>DOUT7
WHEN "1001"=>DOUT7
WHEN OTHERS=>DOUT7
END CASE;
END PROCESS;
END ARCHITECTURE ART;
电路图:
四.测试结果及分析
1. 模拟仿真测试方案:
通过建立仿真图,将电路进行波形仿真测试。
2. 模拟仿真测试波形图
从波形图中可以看出,忽略适当的延迟,此电路已经完成了几个状态的切换。
五.项目总结
设计过程比较顺利,并完成了预期的设计任务,达到了对于题目所列出的三个要求。在实验中很好地采用了变量这个很好的媒介来完成对于总控制电路的计数特点,这点能使得所有的功能都可以很简单地用if 语句完成。
计数器在电路中也得到了很好的使用,用计数器得到显示的特点。在电路中需要一个倒计时,达到在每次ABCD 的状态中对于时间的倒计时。
六.结束语
数字逻辑专题实验对我们进一步理解所学理论知识、深化对数字逻辑电路的认识有着不可替代的重要作用。通过计算机对于器件的编写,不仅仅可以锻炼编程能力,同时也可以对于数字逻辑的器件和知识点有很好地理解。
七.参考书
《数字逻辑与数学系统》
电子技术实验报告
——交通控制器的分析与设计
班级:
姓名:
学号:
日期: 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 IEEE.STD_LOGIC_1164.ALL;
ENTITY 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
V ARIABLE S:INTEGER RANGE 0 TO 45;
V ARIABLE 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
BR
IF(SB AND SM)='1' THEN
IF S=45 THEN
STATE
ELSE
STATE
END IF;
ELSIF(SB AND (NOT SM))='1' THEN
STATE
ELSE
STATE
END IF;
WHEN B=>MR
BR
IF S=5 THEN
STATE
ELSE
STATE
END IF;
WHEN C=>MR
BR
IF(SM AND SB)='1' THEN
IF S=25 THEN
STATE
ELSE
STATE
END IF;
ELSIF SB='0' THEN
STATE
ELSE
STATE
END IF;
WHEN D=>MR
BR
IF S=5 THEN
STATE
ELSE
STATE
END IF;
END CASE;
END IF;
END PROCESS CNT;
END ARCHITECTURE ART;
(2)定时单元电路:
当符合题设条件中的时间要求时,相应的定时单元电路开始工作,左后可以达成输出合适的BCD 码的要求。
源代码:
--CNT45S.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY 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
ELSIF(CLK'EVENT AND CLK= '1')THEN
IF EN45='1'THEN CNT6B
ELSIF EN45='0'THEN CNT6B
END IF;
END IF;
END PROCESS;
PROCESS(CNT6B) IS
BEGIN
CASE CNT6B IS
WHEN "000000"=>DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M
WHEN "001011"=>DOUT45M
WHEN "001100"=>DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M
WHEN "011000"=>DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M
WHEN "100010"=>DOUT45M
WHEN "100011"=>DOUT45M
WHEN "100100"=>DOUT45MDOUT45M
WHEN "100110"=>DOUT45M
WHEN "100111"=>DOUT45M
WHEN "101000"=>DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M
END PROCESS;
END ARCHITECTURE ART;
(3)译码器电路:
完成BCD 码转换为相应数字的要求,使得在七段译码器中得到合适的显示。 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY YMQ IS
PORT(AIN4:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END ENTITY YMQ;
ARCHITECTURE ART OF YMQ IS
BEGIN
PROCESS(AIN4) IS
BEGIN
CASE AIN4 IS
WHEN "0000"=>DOUT7
WHEN "0001"=>DOUT7
WHEN "0010"=>DOUT7
WHEN "0011"=>DOUT7
WHEN "0100"=>DOUT7
WHEN "0101"=>DOUT7
WHEN "0110"=>DOUT7
WHEN "0111"=>DOUT7
WHEN "1000"=>DOUT7
WHEN "1001"=>DOUT7
WHEN OTHERS=>DOUT7
END CASE;
END PROCESS;
END ARCHITECTURE ART;
电路图:
四.测试结果及分析
1. 模拟仿真测试方案:
通过建立仿真图,将电路进行波形仿真测试。
2. 模拟仿真测试波形图
从波形图中可以看出,忽略适当的延迟,此电路已经完成了几个状态的切换。
五.项目总结
设计过程比较顺利,并完成了预期的设计任务,达到了对于题目所列出的三个要求。在实验中很好地采用了变量这个很好的媒介来完成对于总控制电路的计数特点,这点能使得所有的功能都可以很简单地用if 语句完成。
计数器在电路中也得到了很好的使用,用计数器得到显示的特点。在电路中需要一个倒计时,达到在每次ABCD 的状态中对于时间的倒计时。
六.结束语
数字逻辑专题实验对我们进一步理解所学理论知识、深化对数字逻辑电路的认识有着不可替代的重要作用。通过计算机对于器件的编写,不仅仅可以锻炼编程能力,同时也可以对于数字逻辑的器件和知识点有很好地理解。
七.参考书
《数字逻辑与数学系统》