基于FPGA的交通灯控制器设计

合集下载

基于FPGA的交通灯控制器的设计说明书

基于FPGA的交通灯控制器的设计说明书


设计内容及要求
1、主、支干道的四个路口各设绿、黄、红、左拐、右拐、人行六个指示灯用于 指示状态,两位显示数码管用于显示倒计时时间。 2、当主、支道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次 放行40s,在每次由绿灯转换为左拐,左拐变换为红灯时,要有5s的黄灯作为 过渡。 3、每个灯亮到最后5s时,都有闪烁。 4、通行延时功能,智能交通灯控制:当某一干道遇到紧急情况时,需要一直通 行时,允许这支干道处于常通行状态,相应另一条干道处于禁行状态。 5、电子眼功能:当某一干道处于红灯时,如果有车闯过警戒线,那么就会被高 清数码照相机照下来。 6、路况显示功能:当某一干道处于通行时,可以动态的显示:车速,以及路况 信息。 7、硬件主要由FPGA构成,电路复杂,结构紧凑 ,硬件成本比较低。 8、用Verilog HDL语言设计上述功能的交通灯控制器,并用层次化设计方法该电 路。
闪烁子程序
12864显 示子程序
交通灯6个指示灯子程序流程图
状态机设计
整个程序包括五个状态机 例:十字路口左上角的交通灯对应这的9个状态: 分别是红、绿、黄、左拐、黄、右拐、黄、人行、红。
通行延时控制子程序流程图
交通灯闪烁子程序流程图
闯红灯监测子程序流程图
测车辆速度子程序流程图
MS12864R显示子程序流程图
例:主干道绿灯通行,且通行不畅的状态。
此时键8为1,从图4-24看出二极管D7(绿灯)亮,(交通处于通 行状态)数码管显示为11,MS12864R第一行显示的是车013km/h ,第二行显示的是路况:不畅。(此时有车通过,且第一辆车作为 开启MS12864R)
谢谢大家!
谢谢大家!
感谢您的观看!
欢迎批评指导!!

基于FPGA的交通灯的设计

基于FPGA的交通灯的设计

课程设计一、设计任务要求基于FPGA的交通灯控制器设计1、总体要求:实现十字路口的交通灯有序显示2、具体要求:按照开发板上的两组红、黄、绿做为南北双向指示灯红灯亮60秒,绿灯亮55秒,黄灯亮5秒要求采用状态机实现状态切换3、附加要求:采用两组两位数码管实现时间倒计时显示二、设计思路1、总体设计方案由设计任务要求可知输入部分有:CLK时钟频率输入,可由实验板上直接提供,本设计选用1kHZ时钟频率。

输出部分有:1)东西方向和南北方向各使用3个LED显示,红黄绿各代表红黄绿灯。

2)东西方向和南北方向计时均为2位数,共需要4个LED七段数码管显示。

由于为共阴极控制,输出三个SEL0,SEL1,SEL2信号控制选择数码管显示,A,B,C,D,E,F,G信号为输出显示的内容。

3)R1,G1,Y1;R2,G2,Y2信号分别为东西南北红绿灯的输出控制信号。

总体设计软件原理图如下所示设计方案原理图:图1A对应13脚; B对应30脚;C对应15脚; D对应31脚;E对应33脚; F对应32脚;G对应35脚; R1对应4脚;R2对应5脚;Y1对应3脚;Y2对应10脚;G2对应8脚;SEL0对应14脚; SEL1对应11脚;SEL2对应12脚.CLK对应24脚;交通灯系统结构图如下所示:红黄绿红黄绿图2状态切换的状态图如下图:图2、模块设计及结果在VHDL设计中,采用自顶向下的设计思路。

顶层模块中,根据硬件设计,设置如下端口:外部时钟信号:Clk东西方向状态灯控制信号:R1,G1,Y1;南北方向状态灯控制信号:R2,G2,Y2;(1)分频模块:由于外部时钟信号clk的频率为1KHz,而实际需要的内部计时时钟频率为1Hz,需要一个分频电路。

输入端口:clk外部时钟信号输出端口:clk_out分频后信号源程序代码如下:数码管显示信号:A,B,C,D,E,F,G;数码管共阴极控制:SEL0,SEL1,SEL2;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Frequency1 isport(clk:in std_logic; --外部时钟信号clk_out:out std_logic --分频后信号);end Frequency1;architecture Frequency1_arc of Frequency1 isbeginprocess(clk)variable temp:integer range 0 to 999;beginif(clk'event and clk='1')thenif(temp=999)then --分频计数temp:=0;clk_out<='0';elsetemp:=temp+1;clk_out<='1';end if;end if;end process;end;图4(2)状态选择模块:由于共需要显示4个数字,需要循环点亮7位数码管,该模块通过输入的时钟信号,循环输出4个选择信号。

基于FPGA的交通灯控制器设计21674

基于FPGA的交通灯控制器设计21674

数字系统课程设计基于FPGA的交通控制灯设计姓名:学号:班级:摘要随着社会的发展,城市规模的不断扩大,城市交通成为制约城市发展的一大因素。

人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题当然也日益重要。

因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。

有了交通灯,人们的安全出行也有了很大的保障。

自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化。

尤其是近几年来,随着电子与计算机技术的飞速发展,电子电路分析和设计方法有了很大的改进,电子设计自动化也已经成为现代电子系统中不可或缺的工具和手段,这些都为交通灯控制系统的设计提供了一定的技术基础。

本课程设计运用erilog HDL语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示,并最后进行了软件实现,达到了系统要求的功能。

设计原理设计要求设计一个交通控制器,用LED 显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s ,支干道每次放行25s 。

每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s 。

能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。

用LED 灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。

能实现特殊状态的功能显示, 设计思路和原理本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。

设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。

循环往复的直行这个过程。

基于FPGA的交通灯

基于FPGA的交通灯

《EDA技术使用教程》课程设计报告题目名称:基于FPGA的十字路口交通灯控制器设计学生姓名:学号:专业年级:指导教师:时间:2015年1月3日目录目录 (1)1 设计任务与要求 (2)2 方案设计与论证 (2)2.1系统设计思路 (2)2.2系统设计方案分析 (4)3 交通控制灯各模块电路设计 (5)3.1分位电路模块fenwei (5)3.2 控制模块 controller (6)3.3 时钟分频模块frequency10Hz和frequency (11)3.4 带闪烁功能的七段数码驱动显示模块display (14)4 交通控制灯顶层电路设计 (16)4.1 原理说明 (16)4.2 端口设计说明 (17)4.3 仿真与结果分析 (17)5 心得体会 (19)6 参考文献 (20)1设计任务与要求基于FPGA的十字路口交通灯控制器1)红、黄、绿灯分别用1bit控制;2)每一个状态分配一个时间显示(两位十进制数,倒计时);3)符合实际交通规律。

2方案设计与论证2.1系统设计思路(1)本系统设计中均采用混合设计的方法,将整体方案划分成若干个模块进行设计。

采用VHDL硬件描述语言和原理图描述相结合的方式,对多种应用电路进行设计,其中底层电路(即模块电路)采用VHDL硬件描述语言方式实现,顶层电路采用原理图描述方式实现。

(2)在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一个方向是(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。

设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间。

其中绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。

当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯,倒计时停止,且显示数字在闪烁。

当特殊运行状态结束时,控制器恢复原来状态,继续正常运行。

(3)系统设计流程提出系统设计要求需求分析模块化方案设计底层电路设计----VHDL模块电路设计顶层电路设计----原理图描述+各模块连接FPGA整体方案设计实现FPGA整体方案编译仿真功能仿真时序仿真硬件搭接和运行FPGA整体方案设计完成图1 系统设计流程2.2系统设计方案分析根据任务要求,计数器的值和交通灯亮灭关系如图2所示。

基于FPGA的交通灯控制电路设计

基于FPGA的交通灯控制电路设计

基于FPGA的交通灯控制电路设计本文介绍了一种基于FPGA的交通灯控制电路设计。

交通灯控制是城市交通管理的一个重要部分,它有助于维护交通秩序,减少交通事故,提高交通效率。

在本电路设计中,我们使用FPGA作为主控制器,并通过数码管、按钮和LED模块与外部交互。

同时,我们还采用了状态机设计方法,以实现灵活的控制逻辑和连续的动态过渡。

首先介绍了本电路设计的硬件设计。

在本设计中,我们使用了FPGA作为主控制器,数码管用于显示当前状态,按钮用于进行手动控制,LED模块用于显示当前灯颜色。

在硬件设计中,我们通过适当的寄存器和时钟模块,实现了稳定的时序控制和同步操作。

接着,我们介绍了本电路设计的软件设计。

在软件设计中,我们采用了状态机设计方法,将交通控制逻辑分为多个状态,通过状态间的转移完成交通灯的切换控制。

具体地,我们将交通灯控制状态划分为三种:绿灯、黄灯和红灯。

在每种状态下,我们通过计数器和状态转移条件来实现精确的时间控制和灯颜色的自动切换。

同时,为了提高控制的灵活性,我们设计了手动控制模式,让用户可以通过按钮手动切换交通灯状态。

最后,我们介绍了本电路设计的实现结果。

在实现过程中,我们使用了Quartus II软件进行综合、布局和验证,并将设计的电路下载到FPGA开发板上进行实验。

实验结果表明,本交通灯控制电路设计实现了稳定、灵活和精确的交通控制,能够满足不同的交通道路需求。

综上所述,本文介绍了一种基于FPGA的交通灯控制电路设计,通过硬件和软件设计,实现了稳定、灵活和精确的交通控制。

该设计可以为城市交通管理提供帮助,为交通事故和交通拥堵的缓解做出贡献。

基于FPGA的交通灯设计

基于FPGA的交通灯设计

交通信号灯控制器目录第一章系统设计1.1设计要求 (3)1.2 方案比较 (3)1.3方案论证 (3)1.3.1总体思路 (4)1.3.2设计方案 (5)第二章单元电路设计2.1 4位二进制计数器 (6)2.2 两位二进制计数器 (6)2.3定时时间到检测电路 (6)2.4红黄绿灯输出控制电路 (6)2.5计时器 (6)第三章软件设计3.1用VHDL编写程序 (6)3.2 程序流程 (7)3.3程序清单及仿真 (7)第四章系统测试 (7)第五章结论 (8)参考文献 (9)附录 (10)0 引言随着经济的飞速发展,现代化交通管理成了当今的热点问题。

一个完善的交通控制功能,可使混乱的交通变得井然有序,从而保障了人们的正常外出。

本系统通过设计一交通信号灯控制器,达到交通控制的目的。

除实现交通灯基本的控制功能外,系统还可显示该灯本次距灯灭所剩的时间,具有更完善的控制功能,使行人提前做好起、停准备,具有更强的实用性。

第1章 系统设计1.1设计要求(1) 交通灯从绿变红时,有4秒黄灯亮的间隔时间。

(2) 交通灯红变绿是直接进行的,没有间隔时间。

(3) 主干道上的绿灯时间为20秒,支干道的绿灯时间为10秒。

(4) 在任意时间,显示每个状态到该状态结束所需要的时间。

1.2方案比较要实现对交通灯的控制,有很多的方案可供选择。

方案一:由两块CMOS 集成电路完成定时和序列控制功能,三只双向晶体管完成实际的电源切换功能。

电路中采用10V 负电源(可由市电电压经降压、整流、滤波、稳压而得)、CD4049集成电路、计数器CD4017等器件。

其中双向晶闸管选用400V 、4A 的,二极管选用BY127型和1N4148型,稳压管选用10V 、1W 的。

因直接使用市电工作,故在安装和使用时安全系数较低,且硬件电路复杂,所用器件多。

方案二:运用VHDL 语言分别控制分频和状态机两个模块, 即信号源经分频器分频后得到1Hz 脉冲,输出脉冲控制状态机中预置四个状态的循环,从而达到交通控制作用.该方案电路结构简单,使用器件少,易于安装和使用.但不宜于电路扩展,适用范围小,应用不广泛.方案三:采用VHDL 语言输入的方式实现交通信号灯控制器,并灵活运用了通用元件CBU14和CBU12作为4位二进制计数器和两位二进制计数器,简化了硬件电路,同时也给调试、维护和功能的扩展、性能的提高带来了极大的方便。

基于FPGA的交通红绿灯控制器

基于FPGA的交通红绿灯控制器

基于FPGA的交通红绿灯控制器姓名:学号:专业:班级:目录1.设计思路 (3)1.1设计思想 (3)1.2 系统功能与要求 (1)1.3总体设计............................. 错误!未定义书签。

2.主要模块设计程序 (4)2.1主控制模块 (4)2.2主程序 (5)2.3定时计数器模块 153. 所实现功能说明........................... 错误!未定义书签。

3.1实现功能 (14)3.2仿真波形 (14)4. 所设计原理图及故障分析................... 错误!未定义书签。

5.心得体会.................................. 错误!未定义书签。

参考文献. (18)附录1 元件清单............................. 错误!未定义书签。

附录2 管脚. (20)1.设计思路1.1设计思想交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。

目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先设定好的,在时间和空间方面的应变性能较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。

本文利用FPGA的相关知识设计了交通灯控制系统,可以根据实际情况,交通拥堵时由交通警察人工控制某方向上的放行时间,以便按照交通负荷疏导阻塞车辆。

整个设计系统通过Max+PlusⅡ软件进行了模拟仿真,并下载到FPGA器件中进行硬件的调试,验证了设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。

1.2 系统功能与要求交通红绿灯控制器,假定十字交叉路口的两个方向各有一组红,黄,绿三个灯组成的交通灯设计一个可以由交通警察人工控制的红绿灯控制器,要求:(1)正常时,交通放行十字交叉路口的横纵两个方向,放行时间相等;(2)交通堵塞时,由交通警察人工控制某个方向的放行时间,以便按照交通负荷疏导阻塞车辆;(3)在正常运行状态下,两组交通灯按以下规律自动进行转换,在不同时刻分别放行不同方向的车辆:(绿,红)2s→(绿,黄红)0.5s→(黄,红)2s→(黄红,红)2s→(红,黄)1s→(红,绿)5s→(红,黄绿)0.5s→(红,黄)2s→(红,黄绿)2s→(黄,红)1s→(绿,红)3s(括号内以逗号分割的分别为横,纵两方向点亮的交通灯,横向红绿黄灯分别用LEDR0,LEDG0,LEDG1,表示,纵向红绿黄分别用LEDR4,LEDG4,LEDG5表示)(4)人工控制放行的方法是,在欲放行某个方向时按下该方向的“放行”按钮(控制)横向使用KEY0控制纵方向使用KEY1),则红绿灯自动将相应方向的道路方向,此后不会放行另一方向的道路,这时候若只按一次“恢复到正常状态”(KEY3),则整个系统恢复到正常运行状态。

基于FPGA的交通灯设计(课程设计)

基于FPGA的交通灯设计(课程设计)

FPGA综合设计实验报告题目基于FPGA的交通灯控制器的设计作者专业日期 2013年3月29日1.设计任务:基于FPGA的交通灯控制器的设计2.设计要求:(1)十字路口由一条东西方向的主干道和一条南北方向的支干道构成,主干道和支干道均有红、黄、绿3种信号灯;(2)保持主、支干道红、绿交替变换;(3)绿灯转红灯过程中,先由绿灯转为黄灯,5秒后再由黄灯转为红灯;同时对方由红灯转为绿灯;(4)系统需具有复位及特殊情况紧急处理功能。

(5)了解交通灯控制器的工作原理,完成控制器的硬件电路设计及软件设计。

3.总体设计方案:从题目中计数值与交通灯的亮灭的关系如图(1)所示。

当主干道绿灯55秒和5秒黄灯过渡时,支干道必须禁止通行,即支干道红灯亮55+5=60秒;当支干道由红灯转为绿灯时,支干道亮55秒绿灯和5秒黄灯过渡,此时主干道红灯应亮55+5=60秒。

图1 交通灯控制要求4.硬件电路基本原理分析:动态LED显示的设计方法是将不同LED模块的所有的LED的驱动端一对一地连接到一起,而将其公共极(阴极或阳极)分别由不同的IO口来驱动(主要针对7段码和LED点阵模块)。

动态显示方式主要是出于简化电路和产品成本考虑在大多数场合都可以达到用户要求。

动态显示虽然占用的CPU时间多,但使用的硬件少,能节省线路板空间。

另外,本设计显示需要使用的是4个七段显示数码管。

在计时结果显示电路中,七段数码管显示部分是一个不容忽视的环节,如若处理不得当,可能引起系统功率过大,产生散热问题,严重时甚至会导致系统的烧毁。

为了解决好以上问题,下面就对七段数码管显示电路做简要的分析和介绍。

通常点亮一个LED所需的电流是5~50 mA,通电的电流愈大,LED的亮度愈高,相对的也会使其寿命缩短。

一般以10 mA的导通电流来估算它所必须串联的阻值,其计算方式参考如图1所示。

图1 单个LED的串接电阻计算方式七段显示器可分为共阳极、共阴极型两种,它们都可以等效成8个LED的连接电路,其中如图2就是共阴极型七段显示器的等效电路和每节LED的定义位置图。

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

引言随着城乡的经济发展,车辆的数量在迅速的增加,交通阻塞的问题已经严重影响了人们的出行。

现在的社会是一个数字化程度相当高的社会,很多的系统设计师都愿意把自己的设计设计成集成电路芯片,芯片可以在实际中方便使用。

随着EDA技术的发展,嵌入式通用及标准FPGA器件的呼之欲出,片上系统(SOC)已经近在咫尺。

FPGA/CPLD 以其不可替代的地位及伴随而来的极具知识经济特征的IP芯片产业的崛起,正越来越受到业内人士的密切关注。

FPGA就是在这样的背景下诞生的,它在数字电路中的地位也越来越高,这样迅速的发展源于它的众多特点。

交通等是保障交通道路畅通和安全的重要工具,而控制器是交通灯控制的主要部分,它可以通过很多种方式来实现。

在这许许多多的方法之中,使用FPGA和VHDL语言设计的交通灯控制器,比起其他的方法显得更加灵活、易于改动,并且它的设计周期性更加短。

城市中的交通事故频繁发生,威胁着人们的生命健康和工作生活,交通阻塞问题在延迟出行时间的同时,还会造成更多的空气污染和噪声污染。

在这种情况下,根据每个道路的实际情况来设置交通灯,使道路更加通畅,这对构建和谐畅通的城市交通有着十分重要的意义。

第一章软件介绍1.1 QuartusⅡ介绍本次毕业设计是基于FPGA下的设计,FPGA是现场可编程门阵列,FPGA开发工具种类很多、智能化高、功能非常的强大。

可编程QuartusⅡ是一个为逻辑器件编程提供编程环境的软件,它能够支持VHDL、Verilog HDL语言的设计。

在该软件环境下,设计者可以实现程序的编写、编译、仿真、图形设计、图形的仿真等许许多多的功能。

在做交通灯控制器设计时选择的编程语言是VHDL语言。

在这里简单的介绍一下QuartusⅡ的基本部分。

图1-1-1是一幅启动界面的图片。

在设计前需要对软件进行初步的了解,在图中已经明显的标出了每一部分的名称。

图 1-1-1 启动界面开始设计前我们需要新建一个工程,首先要在启动界面上的菜单栏中找到File,单击它选择它下拉菜单中的“New Project Wizard”时会出现图1-1-2所显示的对话框,把项目名称按照需要填好后单击Next,便会进入图 1-1-3 显示的界面。

图1-1-2 创建工程框图1-1-3 芯片选择框根据自己选择的实验设备选择好相应的芯片型号点击Next,进入下一个步骤当出现图1-1-5时,点击“Finish”后这个工程就建立好了。

图 1-1-4 仿真器选择框图1-1-5 对话框建好工程后开始进行设计,首先在图1-1-6中单击file后选择new,接着会出现图1-1-7,在交通灯控制器的设计中我们选择的是VHDL File,当出现图1-1-8时就可以把编辑的程序敲入编辑器中。

图1-1-6 工程建好后的界面图1-1-7 新建文件类型选择框图1-1-8 程序编辑框在第一章中对QuartusⅡ软件的使用做一个简单介绍,设计中的编译和仿真步骤在后面的几章中会做出介绍。

第二章交通灯控制器设计的概述2.1 控制器设计描述2.1.1 设计任务要求设计交通灯控制器,分别在四个方向都安装红、黄、绿三种颜色的交通指示灯,红灯表示停止,绿灯表示通行,黄灯表示左转和直行将要禁止通行,四个方向分别还安装有倒计时的计时器。

2.1.2 设计要求东西方向和南北方向各有组指示灯,红灯亮的时间为20S,黄灯亮的时间为5S,绿灯亮的时间为25S。

三种灯亮灭的顺序为红灯、绿灯、黄灯。

第三章交通灯控制器的设计过程3.1 设计方案本设计课题用FPGA来实现智能交通灯的设计,本设计现要研究的问题主要有:智能交通灯的设计方案;各功能模块的设计与实现;如何用VHDL编写源程序以及进行系统仿真。

3.1.1 框图设计交通灯控制器设计的框图中包括控制器、分频器、显示器、指示灯、译码器、位选器。

当倒计时为零时,控制器改变交通灯的颜色,同时倒计时开始进入下一个倒计时。

当有紧急情况出现的时候,四面的交通灯都会变为红灯,紧急情况的处理在设计中是依靠HOLD键来实现的。

图 3-1-1-1 是交通灯设计的设计框图图 3-1-1-1 交通灯设计的设计框图系统的红、黄、绿灯显示的总时间为50s,具体的亮灯时间和亮灯顺序看表 3-1-1-2表3-1-1-2 交通灯亮灯顺序与亮灯时间安排3.1.2 工程流程图图3-1-2 工程流程图3.1.3 时序图的假象在时序图中,上升沿有效,即为“1”时灯亮,好比RedA为上升沿(“1”)时A 方向的红灯是亮的,相对的GreenB也为上升沿(“1”)B方向上绿灯是亮的。

具体的时序显示见图3-2 时序图。

RedAGreenAYellowARedBGreenBYeelowB图3-2 时序图3.2 模块设计3.2.1 主控制器模块在QuartusⅡ按照1-1中的方法新建一个工程并新建一个文件项目后,在图1-1-8程序编辑框中将主控制器的程序输入后保存。

接着需要对主控制器的程序进行编译,编译的步骤是点击Project→Set as Top将文件置顶,具体的参考图3-2-1-1 置顶,接着点击图3-2-1-2 的Start Compilation 进行编译。

图3-2-1-1 置顶图3-2-1-2 编译在编译的过程中,出现了一些错误,在我编译主控制器的程序时,出现的错误是没有将CLOCK放入PROCESS()中,将程序中的错误一一改正后有时还会出现些Warning,有些Warning并不会影响后面的设计步骤。

将上面的错面都改正后,就会显示图3-2-1-3 所显示的对话框。

下一步就是对程序进行时序仿真,图3-2-1-3 编译成功程序编译无措后在当前的工程下面新建一个文件,点击File出现图3-2-1-4 新建文件对话框,选择图中显示蓝色的选项就会出现我们想要的界面,把鼠标移在图3-2-1-5 时序仿真编辑框中左边的空白处,然后点击右键,选择INSERT→INSERT NODE OR BUS选项出现另一个对话框,选择对话框中的NODE FINDER后就会产生新的对话框,点击LIST是在左下角的空白处会出现很多的引脚,我们选中需要的引脚后确定后,我们需要的引脚就会出现在时序仿真编辑中左边的空白处,我们对输入信号进行设定,若想让输出信号显示为十六进制数,我们可以选中输出信号然后点击鼠标的右键选择VALUE→COUNT VALUE后出现的对话框中可以选择自己需要显示的进制类型和进制数的定时等。

对输出输入信号编辑完成后保存。

在菜单工具栏中选择PROCESSING →SIMULATOOR TOOL,出现图3-2-1-6的对话框,按照对话框显示的进行设定,点击QENERAT FUNCTIONAL…→START→REPORT,就会得出我们想要的图3-2-1-7 主控制器时序仿真图。

图3-2-1-4 新建文件对话框图3-2-1-5 仿真编辑框图3-2-1-6 仿真工具对话框图3-2-1-7 主控制器的仿真图图3-2-1-7中显示的仿真结果和设计前预计的时序仿真图的结果是相符合的。

时序图中的HOLD是保持信号,当HOLD信号为有效信号(“1”)时,则四个方向的路灯都是红灯亮,当HOLD无效时,四个方向的信号灯会正常工作。

RESET信号有效时,计数器的显示就会重新从零开始。

图中四个方向的指示灯的亮灭顺序是正确的。

图3-2-1-8 主控制器的模块主控制器的时序仿真完成后,一个程序的设计、仿真就已经暂时结束了,下一步还要进行图形的设计,在总的图形设计前,需要先将每个程序都生成模块,为之后的设计做好准备。

点击File→Create\Updade→Create Symbol Files for Current File,完成这个操作过程后便会生成主控制器的模块,具体的看图3-2-1-8 主控制器的模块。

模块中主要有CLOCK、RESET、HOLD、NUMA、NUMB和六个指示灯的输出。

3.2.2 分频器模块设计中需要用到1秒钟的脉冲,分频这个模块就是为了改变频率脉冲波,使20Mhz 的频率最终变为1hz的脉冲,这样就可以得到一个周期是1秒钟的脉冲,分频器的程序见附录。

具体的程序编译过程和仿真的过程和主控制模块中谈到的过程是相同的。

按照上面谈的步骤完成后就会得到图3-2-2-1 分频模块的时序仿真图。

图3-2-2-1 分频模块的仿真图图3-2-2-2 分频模块分频的程序经过编译和时序仿真图后生成的模块是图3-2-2-2 分频模块所显示的20mhz的脉冲通过第一模块时变为10hz,再经过第二个模块后变成1hz的脉冲。

3.2.3 提取显示值模块提取显示值的功能是在10hz的速度下提取显示值,得到的是显示时间值的十位和个位。

图3-2-3-1 提取显示值的时序仿真图中NUMIN是主控制器的输出值,NUMA和NUMB两个输出端口是要显示的值的高位和低位。

高位的最大输出值是为二的四位二进制数,低位的最大输出值是为九的四位二进制数。

图3-2-3-2 是提取显示值生成的模块。

提取显示值的程序见文章的附录。

图3-2-3-1 提取显示值的仿真图仿真图中,NUMB先从0开始计数,当计到9时NUMA计为1,NUMB重新从0开始计数,当计到9时NUMA会计为2,NUMB再次从0开始计数,当NUMA(高位)计数到2时,NUMB 的最大值输出为5。

图3-2-3-2 提取显示值的模块3.2.4 动态扫描模块LED显示的工作原理是利用人类的视觉特性。

七段LED数字显示块是由“a、b、c、d、e、f、g、dp”这几段组成的,LED的显示原理就是要看这八段中的哪几段是亮的,那几段是灭的。

每段管子不是同时被点亮的并且点亮的时间都是极短的,又因为变化的时间很短暂,亮灭的过程中留下的余光会给人一种错觉,人的眼睛觉得是一组静态的显示灯。

具体的动态扫描的程序请看正文后的附录。

图3-2-4-1 是动态扫描的时序仿真图,图3-2-4-2是动态扫描生成的模块。

图3-2-4-1 动态扫描的时序仿真图图3-2-4-2 动态扫描的模块3.2.5 位选器模块位选程序的输入和编译完成后,对程序进行仿真,仿真的步骤依然和上面谈到的一样,下面两幅图一张是位选程序的时序仿真图,另一幅是位选程序生成的模块。

见图3-2-5-1和图3-2-5-2。

图3-2-5-1 位选时序仿真图图3-2-5-2 位选模块3.2.6 译码器模块译码器是将要显示的数字转换成驱动七段数码管的信号,程序中的NUM与动态扫描模块相连,将四位二进制数转换为八位二进制数,再通过LED8输出。

译码器的程序编辑和编译步骤也和前面所说的相同。

当译码器编译成功后进行仿真,仿真的结果见图3-2-6-1 译码器的时序仿真。

像时序仿真图中显示的一样,当NUM输入“0000”时LED8便会输出“00111111”显示数字“0”,当NUM输入“0001”时LED8输出“00000110”显示数字“1”。

相关文档
最新文档