EDA实验教程-红绿灯.ppt

上传人:本田雅阁 文档编号:2102821 上传时间:2019-02-14 格式:PPT 页数:39 大小:163.52KB
返回 下载 相关 举报
EDA实验教程-红绿灯.ppt_第1页
第1页 / 共39页
EDA实验教程-红绿灯.ppt_第2页
第2页 / 共39页
EDA实验教程-红绿灯.ppt_第3页
第3页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《EDA实验教程-红绿灯.ppt》由会员分享,可在线阅读,更多相关《EDA实验教程-红绿灯.ppt(39页珍藏版)》请在三一文库上搜索。

1、2019/2/14,1,计算机EDA设计实验教程,实验五 交通红绿灯控制器,北航计算机学院 艾明晶,2019/2/14,2,内容概要,实验目的 实验要求 实验原理 实验方案 实验内容 实验报告,2019/2/14,3,了解交通红绿灯控制器的工作原理。 掌握建立状态机的逻辑模型的方法。 掌握状态机的实现和多个状态机的组合使用方法,实验目的,2019/2/14,4,假定十字路口马路的A方向和B方向各有一组红、黄、绿三个灯组成的交通灯,要求设计一个交通红绿灯控制器,实现对这两组交通灯的管理。正常时,交替放行十字交叉路的两个方向,放行时间相等;交通堵塞时,由交通警察人工控制某方向的放行时间,以便按照交

2、通负荷疏导阻塞车辆。 具体功能要求如下 :,实验要求,2019/2/14,5,在正常运行状态下,两组交通灯按以下规律自动进行转换,在不同时刻分别放行不同方向上的车辆: (绿,红)50s(黄绿,红)5s(黄,红)20s(红黄,红)20s(红,黄)10s (红,绿)50s(红,黄绿)5s(红,黄)20s(红,红黄)20s(黄,红)10s (绿,红)50s,2019/2/14,6,人工放行:若某一方向发生交通阻塞,则交通警察按下该方向的放行按钮来人工控制放行该方向,则红绿灯自动将相应方向的道路放行,此后不会自动放行另一个方向的道路,直到疏通后,按“恢复到正常状态”按钮,重新进入正常运行状态。 如果某

3、方向处于人工放行的状态,应有指示灯指示这一情况。,2019/2/14,7,人工控制放行遵循如下限制规则: 有黄灯亮时,不允许立刻改变放行方向,必须按正常运行到所需放行的方向时,才保持放行该方向; 每个方向的放行时间不得小于某一最小值(假定为30秒钟),以免车辆频繁起停。 只有在(绿,红)20s和(红,绿)20s状态下,可以人工控制改变放行方向,即直接跳转到下一状态。,2019/2/14,8,基于状态机的设计 有限状态机 有限状态机(FSM,Finite State machine)是时序电路设计中经常采用的一种方式,尤其适合于设计数字系统的控制模块。在Verilog HDL中采用case、if

4、-else语句可以很好地描述基于状态机的设计。 状态机包括组合逻辑部分和寄存器部分。组合逻辑部分又包括次态逻辑和输出逻辑,分别用于状态译码和产生输出信号;寄存器部分用于存储状态。,实验原理,2019/2/14,9,状态机的次态是现态及输入信号的函数,输出信号根据状态机的现态或输入信号而定。 状态机可分为两类:摩尔(Moore)型状态机和米里(Mealy)型状态机。Moore型状态机,其输出只为状态机当前状态的函数,而与输入无关。Mealy型状态机,其输出不仅与状态机当前状态有关,而且与输入有关。,2019/2/14,10,2019/2/14,11,状态机的3种表示方法 状态图、状态表和流程图,

5、Mealy型状态图的表示,Moore型状态图的表示,2019/2/14,12,起始状态的选择 起始状态指电路复位后所处的状态,选 择一个合理的起始状态将使整个系统简 捷高效。对于有限状态机,必须有时钟 信号和复位信号! 状态编码 采用log2N个触发器来表示这N个状态 采用N个触发器来表示这N个状态称为一位热码状态机编码(One-Hot State Machine Encoding)。,2019/2/14,13,采用Verilog HDL语言实现基于状态机的设计,就是在时钟信号的触发下,完成两项任务: (1)用case或if-else语句描述出状态的转移; (2)描述状态机的输出信号。,201

6、9/2/14,14,输入信号和输出信号 输入信号 clk:时钟信号(fclk = 50MHz); f1:人工放行A方向的控制信号(由“放行A”按钮产生,高有效); f2:人工放行B方向的控制信号(由“放行B”按钮产生,高有效); reset:复位信号(由“恢复到正常状态”按钮产生,高有效)。,2019/2/14,15,输出信号 f1s、f2s:人工控制时A方向、B方向的放行状态,驱动LED,高电平时点亮; s120、s220:交通灯信号输出,分别用于控制A方向和B方向的红、黄、绿灯的亮或灭,驱动LED,高电平时点亮。,2019/2/14,16,设计思路 根据其功能要求(如正常运行状态下的交通灯

7、自动转换规律,人工放行功能及限制规则),确定其输出信号,以便控制两组交通灯的亮或灭,并在交通岗内向交通警察显示人工放行的状态。 该控制器的逻辑模型可分为三个部分:工作状态控制器、操作规则实现电路以及红绿灯信号生成器。,2019/2/14,17,(1)工作状态控制器 功能:根据输入信号(f1、f2和reset)确定系统当前的工作状态是为“正常运行”状态或“A一直放行”或“B一直放行”状态。 工作状态控制器是一个简单的具有三状态(normal,fr1,fr2)的有限状态机。其输入分别为人工放行A方向的控制信号f1、人工放行B方向的控制信号f2及复位信号reset(均为高有效),其输出为人工控制时A

8、方向、B方向的放行状态 .,预习时请画出其状态转移图。 想一想,工作状态控制器为Mealy型状态机还是Moore型状态机,为什么?,2019/2/14,18,(2)操作规则实现电路 功能:根据交通红绿灯控制器的功能要求,确定不同工作状态下计时器的计数值。可用8位计数器来实现定时计数。 正常运行时,计数器按照规定的定时要求加1计数;若要人工放行某方向,只要使计时器运行到该放行状态的最后一刻时,计时器保持此时的计数值,使红绿灯信号生成器暂停状态的转移即可。,2019/2/14,19,设计技巧:将放行某方向的整个时间(50s)分为两段,前30s为正常运行状态下的最小放行时间,计时器正常计数;后20s

9、为允许人工放行时间,可根据工作状态控制器的状态机(f1s和f2s)进行判断,是否欲人工放行另一方向,或是继续放行原方向,或是正常运行,然后根据判断结果来确定计时器的计数值。,限制规则示意图,2019/2/14,20,(3)红绿灯信号生成器 功能:根据定时计数器的计数值来确定红绿灯信号的输出。 这是一个简单的状态机,共有10个不同状态,有6个输出,为s120和s220,分别用于控制A、B两个方向的红、黄、绿灯的亮或灭。 可以对照图5-1“正常运行状态下两组交通灯自动转换规律”,根据计时器的计数值来确定红绿灯信号生成器的输出。注意计时器的一个工作循环为一个正常的红绿灯工作周期,即210秒。,预习时

10、请画出其状态转移图。,2019/2/14,21,设计方案的选择 图文混合设计方法:先将电路划分为几个子模块,每个子模块由Verilog HDL语言描述实现,然后生成逻辑符号,顶层文件采用图形文件来实现。 纯文本描述方法:每个子模块和顶层电路的连接关系都采用Verilog HDL语言描述实现,对子模块的调用采用模块元件例化的方法。,2019/2/14,22,实验方案,方案一 1. 设计思路 根据控制器的逻辑模型,将整个电路分为3个子模块,即工作状态控制器state_ctrl.v、操作规则实现电路rule.v和红绿灯信号生成器sig_gen.v,它们均采用Verilog HDL语言实现。然后形成顶

11、层图形设计文件trgl_top.bdf。,2019/2/14,23,工作状态控制器state_ctrl.v,2019/2/14,24,操作规则实现电路rule.v,2019/2/14,25,红绿灯信号生成器sig_gen.v,2019/2/14,26,顶层图形设计文件trgl_top.bdf,2019/2/14,27,2. 对trgl_top.bdf进行时序仿真。 3. 创建下载用顶层文件 将trgl_top.bdf另起名保存(如trgl_top_p.bdf),并在其时钟输入引脚后增加时钟分频模块clkdiv_50MHz_to_1Hz,将输入时钟fclk = 50MHz分频为f = 1Hz,即

12、T =1s。 编译,引脚锁定。,2019/2/14,28,编程下载文件trgl_top_p.bdf,2019/2/14,29,方案二 1. 设计思路 将控制器的三部分电路有机地结合到一起,用一个文件采用Verilog HDL语言实现,文件名为trgl2.v。其中用到了两个reg型中间变量: (1)state:工作状态控制状态机,具有3个状 态(normal, fr1, fr2)。 (2)8位寄存器cnt70:用于红绿灯信号生成器的定时计数。 采用3个always模块来实现这三部分电路(实际上就是将方案一中的3个子模块的Verilog HDL描述放到一个文本文件中)。,2019/2/14,30,

13、2. 在Quartus中进行时序仿真 3. 设计下载用顶层文件,编程下载 采用Verilog HDL语言设计顶层文件 引脚锁定,编程下载 .,2019/2/14,31,分别画出工作状态控制器和红绿灯信号生成器的状态转移图,操作规则实现电路的程序流程图 采用方案一或方案二(有余力的同学也可以两种方案都采用),按实验要求给出的功能要求设计交通红绿灯控制器。,实验内容,2019/2/14,32,仿真 使输入信号均无效,仿真至少一个循环周期的正常运行状态。观察状态机state10以及输出信号f1s、f2s、s120和s220的变化。将仿真结果保存为trgl_top(normal).vwf。 正常运行时

14、的仿真参考波形一:,2019/2/14,33,正常运行时的仿真参考波形二(210秒为一周期):,2019/2/14,34,在不同的时段给定不同的输入信号,在每种情况下观察状态机state10以及输出信号f1s、f2s、s120和s220的变化.,2019/2/14,35,设计下载用顶层文件 仿真完全正确后,在原设计基础上增加时钟分频模块,将输入时钟fclk = 50MHz分频为f = 1Hz,即T = 1s,形成下载用顶层文件(可以为图形设计文件或.v文本设计文件)。对下载用顶层文件进行全编译。,2019/2/14,36,引脚锁定 本实验采用模式3所有按键为琴键式按键,即当按下键时,输出为高电

15、平;当松开键时,输出为低电平。可通过按下键的时间的长短来控制正脉冲的宽度。 clk:系统时钟信号,50MHz,接FPGA引脚Pin28。注意应将下图中的J6插到Clock0的位置,并将实验箱右下角“时钟频率选择”区域Clock0的时钟选择跳线接到50MHz的位置。,2019/2/14,37,编程下载 利用GW48-SOPC+开发系统实现设计的编程下载。编程器件为EP1C12Q240C8。使用开发系统上的晶振提供的全局时钟信号(fclk = 50MHz)(Pin28),用琴键式按钮开关键1、键2和键3(均为高有效)实现人工控制放行A方向和B方向、复位功能,用8个发光二极管(高有效)D1D8,分别

16、显示输出信号s120、s220、f1s和f2s。,2019/2/14,38,在线校验 下载后,仔细观察:红绿灯应按设定的时间规律自动切换,D1D8八个LED分别对应的是:A方向的红黄绿,B方向的红黄绿,A方向的放行状态,B方向的放行状态。 然后按下键1,表示欲人工放行A方向,则相应LED有显示;同时两个方向的红绿灯按正常运行规律自动切换,当运行到放行A方向时,则保持放行该方向。 再按下键2,表示欲人工放行B方向,则相应LED有显示;同时两个方向的红绿灯按正常运行规律自动切换,当运行到放行B方向时,则保持放行该方向。 再按下键3,表示清除人工方向的控制,则交通灯开始自动转换红黄绿灯的状态。,20

17、19/2/14,39,给出红绿灯信号生成器和工作状态控制器的状态转移图,以及操作规则实现电路的程序流程图。 给出控制器逻辑模型的仿真波形的截图,并根据仿真结果详细分析交通红绿灯控制器的工作过程。 思考:当正值A方向红灯亮,B方向红灯与黄灯均亮时,若按下A方向放行按钮,是否允许立刻变为A方向绿灯亮,B方向红灯亮?如果控制器这样设计,实际可能会发生什么情况?正确的设计应是怎样? 想一想:当正值A方向绿灯亮,B方向红灯亮时,若又按下了A方向放行按钮,为什么是当计时器计到49时,才暂停计数,使计数值保持为49;而不是使计时器计到30时,就暂停计数,使计数值保持为30?如果这样设计,会有什么缺陷? 在设计中遇到了哪些问题,是如何解决的? 想一想:本实验还可以扩展哪些功能?,实验报告,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1