西电EDA实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
交通灯控制器设计报告
交通控制器
一.选题目的
尝试用所学eda和vhdl编程知识,解决生活中常见的问题。做到学而时习之。
二.设计目标(课题内容)
设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否
允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的
持续时间分别是40、5和45秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,
警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条
道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态
结束后,管理系统恢复原来的状态,继续正常运行。
三.实现方案(包括原理框图和hdl设计流程图)
1原理框图
从题目中计数值与交通灯的亮灭的关系如图(1)所示
1.交通灯的显示状况:
东西南北
图(1)计数值与交通灯亮灭的关系
2.交通等的原理示意图如图(2)
图(2)交通灯的示意图
3.hdl设计流程图如图(3):
四.设计过程(包括关键模块的仿真结果)
1.总体思路
第一部分:clk时钟秒脉冲发生电路
在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。
因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运
作。模块说明:系统输入信号:
clk: 由外接信号发生器提供10hz的时钟信号;系统输出信号: clk_out:产生每
秒一个脉冲的信号;
第二部分:计数秒数选择电路
计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信
号。模块说明:
系统输入:clk_out: 接收由clk电路的提供的1hz的时钟脉冲信号;系统输出信号:
countnum:倒计数值;
第三部分:红绿灯状态转换电路本电路负责红绿灯的转换。模块说明:
系统输入信号:clock,hold,countnum;
系统输出信号:numa,numb: 接收计数秒数选择电路状态转换信号;
reda,greena,yellowa,redb,greenb,yellowb :负责红绿灯的状态显示。
第四部分:时间显示电路
本电路负责红绿灯的计数时间的显示。bcd_data 模块说明:
系统输入信号:clock,hold,numin(即接收numa,numb的值):倒计数值秒数位变化控制
信号;
系统输出信号:numa,numb: 负责红绿灯的显示秒数位。
2.单元电路设计
(1)分频器的设计
分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数篇二:
西安电子科技大学eda实验报告
eda大作业及实验报告
实验一:quartus ⅱ软件使用及组合电路设计仿真
实验目的:
学习 quartus ⅱ软件的使用,掌握软件工程的建立,vhdl源文件的设计和波形仿真等
基本内容;实验内容:
1. 四选一多路选择器的设计
首先利用quartusⅱ完成4选1多路选择器的文本编辑输入(mux41a.vhd)和仿真测试等
步骤,给出仿真波形。
步骤:
(1)建立工作库文件夹和编辑设计文件;(2)创建工程;(3)编译前设置;(4)
全程编译;(5)时序仿真;
(6)应用rtl电路图观测器(可选择)
实验程序如下:
library ieee;
use ieee.std_logic_1164.all; entity mux41 is port( s10:in std_logic_vector(1 downto 0); a,b,c,d:in std_logic; q:out
std_logic );
end entity mux41;
architecture bhv of mux41 is begin process(a,b,c,d,s10) begin if s10=00 then q<=a;
elsif s10=01 then q<=b; elsif s10=10 then q<=c; else q<=d; end if; end process;
end bhv;
波形仿真如图:
其中,分别设置a,b,c,d四个输入都为10.0ns的方波,其占空比分别为25%,50%,75%,
90%以作为四种输入的区分,使能端s10以此输入00(即[0]),01(即[1]),10(即[2]),11(即
[3]),可以观察到输出端q依次输出分别为a,b,c,d。试验成功。
其rtl电路图为:
2.七段译码器程序设计仿真
2.1 原理:7段数码是纯组合电路,通常的小规模专用ic,如74或4000系列的器件只
能作十进
制bcd码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16
进制的,为了满足16进制数的译码显示,最方便的方法就是利用vhdl译码程序在fpga或
cpld中实现。本项实验很容易实现这一目的。例1作为7段bcd码译码器的设计,输出信号
led7s的7位分别接如实验图1数码管的7个段,高位在左,低位在右。例如当led7s输出
为 0010010 时,数码管的7个段:g、f、e、d、c、b、a分别接0、0、1、0、0、1、0,实
验中的数码管为共阳极的,接有低电平的段发亮,于是数码管显示“5”。
实验图1 数码管及其电路
2.2 实验内容:参考后面的七段译码器程序,在quartus ii 上对以下程序进行编辑、编译、综
合、适配、仿真,给出其所有信号的时序仿真波形。