EDA实验教红绿灯_第1页
EDA实验教红绿灯_第2页
EDA实验教红绿灯_第3页
EDA实验教红绿灯_第4页
EDA实验教红绿灯_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-11-141计算机计算机eda设计设计实验教程实验教程实验五实验五 交通红绿灯控制器交通红绿灯控制器北航计算机学院北航计算机学院 艾明晶艾明晶2021-11-142内容概要v实验目的实验目的v实验要求实验要求v实验原理实验原理v实验方案实验方案v实验内容实验内容 v实验报告实验报告2021-11-143n了解交通红绿灯控制器的工作原理。了解交通红绿灯控制器的工作原理。n掌握建立状态机的逻辑模型的方法。掌握建立状态机的逻辑模型的方法。n掌握状态机的实现和多个状态机的组合使掌握状态机的实现和多个状态机的组合使用方法用方法 实验目的2021-11-144 假定十字路口马路的假定十字路口马路

2、的a方向和方向和b方向各有一方向各有一组红、黄、绿三个灯组成的交通灯,要求组红、黄、绿三个灯组成的交通灯,要求设计一个交通红绿灯控制器,实现对这两设计一个交通红绿灯控制器,实现对这两组交通灯的管理。正常时,交替放行十字组交通灯的管理。正常时,交替放行十字交叉路的两个方向,放行时间相等;交通交叉路的两个方向,放行时间相等;交通堵塞时,由交通警察人工控制某方向的放堵塞时,由交通警察人工控制某方向的放行时间,以便按照交通负荷疏导阻塞车辆。行时间,以便按照交通负荷疏导阻塞车辆。 具体功能要求如下具体功能要求如下 :实验要求2021-11-145在在正常运行正常运行状态下,两组交通灯按以下规律自动进状态

3、下,两组交通灯按以下规律自动进行转换,在不同时刻分别放行不同方向上的车辆:行转换,在不同时刻分别放行不同方向上的车辆:(绿,红)(绿,红)50s(黄绿,红)(黄绿,红)5s(黄,红)(黄,红)20s(红黄,红)(红黄,红)20s(红,黄)(红,黄)10s(红,绿)(红,绿)50s(红,黄绿)(红,黄绿)5s(红,黄)(红,黄)20s(红,红黄)(红,红黄)20s(黄,红)(黄,红)10s(绿,红)(绿,红)50s 2021-11-146人工放行人工放行:若某一方向发生交通阻塞,则交通:若某一方向发生交通阻塞,则交通警察按下该方向的放行按钮来人工控制放行该警察按下该方向的放行按钮来人工控制放行该

4、方向,则红绿灯自动将相应方向的道路放行,方向,则红绿灯自动将相应方向的道路放行,此后不会自动放行另一个方向的道路,直到疏此后不会自动放行另一个方向的道路,直到疏通后,按通后,按“恢复到正常状态恢复到正常状态”按钮,重新进入按钮,重新进入正常运行状态。正常运行状态。如果某方向处于人工放行的状态,应有指示灯如果某方向处于人工放行的状态,应有指示灯指示这一情况。指示这一情况。2021-11-147v人工控制放行遵循如下限制规则:人工控制放行遵循如下限制规则: 有黄灯亮时,不允许立刻改变放行方向,必须有黄灯亮时,不允许立刻改变放行方向,必须按正常运行到所需放行的方向时,才保持放行按正常运行到所需放行的

5、方向时,才保持放行该方向;该方向; 每个方向的放行时间不得小于某一最小值(假每个方向的放行时间不得小于某一最小值(假定为定为30秒钟),以免车辆频繁起停。秒钟),以免车辆频繁起停。 只有在(绿,红)只有在(绿,红)20s和(红,绿)和(红,绿)20s状态状态下,可以人工控制改变放行方向,即直接跳转下,可以人工控制改变放行方向,即直接跳转到下一状态。到下一状态。2021-11-148n基于状态机的设计基于状态机的设计有限状态机有限状态机 有限状态机(有限状态机(fsm,finite state machine)是时序电路设计中经常采用的一种方式,尤其适合是时序电路设计中经常采用的一种方式,尤其适

6、合于设计数字系统的控制模块。在于设计数字系统的控制模块。在verilog hdl中中采用采用case、if-else语句可以很好地描述基于状态语句可以很好地描述基于状态机的设计。机的设计。 状态机包括组合逻辑部分和寄存器部分。组合逻辑状态机包括组合逻辑部分和寄存器部分。组合逻辑部分又包括次态逻辑和输出逻辑,分别用于状态译部分又包括次态逻辑和输出逻辑,分别用于状态译码和产生输出信号;寄存器部分用于存储状态。码和产生输出信号;寄存器部分用于存储状态。实验原理2021-11-149 状态机的次态是现态及输入信号的函数,状态机的次态是现态及输入信号的函数,输出信号根据状态机的现态或输入信号而输出信号根

7、据状态机的现态或输入信号而定。定。 状态机可分为两类:摩尔(状态机可分为两类:摩尔(moore)型状)型状态机和米里(态机和米里(mealy)型状态机。)型状态机。moore型状态机,其输出只为状态机当前状态的型状态机,其输出只为状态机当前状态的函数,而与输入无关。函数,而与输入无关。mealy型状态机,型状态机,其输出不仅与状态机当前状态有关,而且其输出不仅与状态机当前状态有关,而且与输入有关。与输入有关。 2021-11-1410输出输出现态现态次态次态现态现态输入输入次态逻次态逻辑辑状态状态寄存器寄存器输出逻输出逻辑辑输出输出现态现态次态次态现态现态输入输入次态逻次态逻辑辑状态状态寄存器

8、寄存器输出逻输出逻辑辑(1)moore型状态机型状态机(2)mealy型状态机型状态机2021-11-1411状态机的状态机的3种表示方法种表示方法 状态图、状态表和流程图状态图、状态表和流程图 输入输入/输出输出现态现态次态次态输入输入现态现态输出输出次态次态输出输出mealy型状态图的表示型状态图的表示 moore型状态图的表示型状态图的表示 2021-11-1412起始状态的选择起始状态的选择 起始状态指电路复位后所处的状态,选起始状态指电路复位后所处的状态,选择一择一个合理的起始状态将使整个系统简个合理的起始状态将使整个系统简捷高效。对捷高效。对于有限状态机,必须有时钟于有限状态机,必

9、须有时钟信号和复位信号!信号和复位信号!状态编码状态编码 采用采用log2n个触发器来表示这个触发器来表示这n个状态个状态 采用采用n个触发器来表示这个触发器来表示这n个状态个状态称为一位称为一位热码状态机编码(热码状态机编码(one-hot state machine encoding)。)。 2021-11-1413 采用采用verilogverilog hdl hdl语言实现基于状态机的设语言实现基于状态机的设计,就是在时钟信号的触发下,完成两项任务:计,就是在时钟信号的触发下,完成两项任务:(1 1)用)用casecase或或if-elseif-else语句描述出状态的转移;语句描述出

10、状态的转移;(2 2)描述状态机的输出信号。)描述状态机的输出信号。 2021-11-1414n输入信号和输出信号输入信号和输出信号 输入信号输入信号 clk:时钟信号(:时钟信号(fclk = 50mhz);); f1:人工放行:人工放行a方向的控制信号(由方向的控制信号(由“放行放行a”按钮产按钮产生,高有效);生,高有效); f2:人工放行:人工放行b方向的控制信号(由方向的控制信号(由“放行放行b”按钮产按钮产生,高有效);生,高有效); reset:复位信号(由:复位信号(由“恢复到正常状态恢复到正常状态”按钮产生,按钮产生,高有效)。高有效)。 2021-11-1415输出信号输出

11、信号 f1s、f2s:人工控制时:人工控制时a方向、方向、b方向的放行方向的放行状态,驱动状态,驱动led,高电平时点亮;,高电平时点亮;s12.0、s22.0:交通灯信号输出,分:交通灯信号输出,分别用于控制别用于控制a方向和方向和b方向的红、黄、绿灯的亮方向的红、黄、绿灯的亮或灭,驱动或灭,驱动led,高电平时点亮。,高电平时点亮。 2021-11-1416n设计思路设计思路根据其功能要求(如正常运行状态下的交通灯根据其功能要求(如正常运行状态下的交通灯自动转换规律,人工放行功能及限制规则),自动转换规律,人工放行功能及限制规则),确定其输出信号,以便控制两组交通灯的亮或确定其输出信号,以

12、便控制两组交通灯的亮或灭,并在交通岗内向交通警察显示人工放行的灭,并在交通岗内向交通警察显示人工放行的状态。状态。该控制器的逻辑模型可分为三个部分:工作状该控制器的逻辑模型可分为三个部分:工作状态控制器、操作规则实现电路以及红绿灯信号态控制器、操作规则实现电路以及红绿灯信号生成器。生成器。 2021-11-1417(1)(1)工作状态控制器工作状态控制器 功能:根据输入信号(功能:根据输入信号(f1、f2和和reset)确定系统)确定系统当前的工作状态是为当前的工作状态是为“正常运行正常运行”状态或状态或“a一直一直放行放行”或或“b一直放行一直放行”状态。状态。 工 作 状 态 控 制 器

13、是 一 个 简 单 的 具 有 三 状 态工 作 状 态 控 制 器 是 一 个 简 单 的 具 有 三 状 态(normal,fr1,fr2)的有限状态机。其输入分别)的有限状态机。其输入分别为人工放行为人工放行a方向的控制信号方向的控制信号f1、人工放行、人工放行b方向的方向的控制信号控制信号f2及复位信号及复位信号reset(均为高有效),其(均为高有效),其输出为人工控制时输出为人工控制时a方向、方向、b方向的放行状态方向的放行状态 .预习时请画出其状态转移图。预习时请画出其状态转移图。想一想,工作状态控制器为想一想,工作状态控制器为mealymealy型状态机型状态机还是还是moor

14、emoore型状态机,为什么?型状态机,为什么? 2021-11-1418(2 2)操作规则实现电路)操作规则实现电路 功能:根据交通红绿灯控制器的功能要求,确定不功能:根据交通红绿灯控制器的功能要求,确定不同工作状态下计时器的计数值。可用同工作状态下计时器的计数值。可用8位计数器来位计数器来实现定时计数。实现定时计数。 正常运行时,计数器按照规定的定时要求加正常运行时,计数器按照规定的定时要求加1计数;计数;若要人工放行某方向,只要使计时器运行到该放行若要人工放行某方向,只要使计时器运行到该放行状态的最后一刻时,计时器保持此时的计数值,使状态的最后一刻时,计时器保持此时的计数值,使红绿灯信号

15、生成器暂停状态的转移即可。红绿灯信号生成器暂停状态的转移即可。 2021-11-1419设计技巧设计技巧:将放行某方向的整个时间(:将放行某方向的整个时间(50s)分为两段,前)分为两段,前30s为正常为正常运行状态下的最小放行时间,计时器正常计数;后运行状态下的最小放行时间,计时器正常计数;后20s为允许人工为允许人工放行时间,可根据工作状态控制器的状态机(放行时间,可根据工作状态控制器的状态机(f1s和和f2s)进行判断,)进行判断,是否欲人工放行另一方向,或是继续放行原方向,或是正常运行,是否欲人工放行另一方向,或是继续放行原方向,或是正常运行,然后根据判断结果来确定计时器的计数值。然后

16、根据判断结果来确定计时器的计数值。 (绿,红绿,红)正常运行正常运行正常运行正常运行可人工放行可人工放行可人工放行可人工放行30s50s135s155s210s105s0s(红,绿红,绿)(红,绿红,绿)(绿,红绿,红)正常运行正常运行限制规则示意图限制规则示意图 2021-11-1420(3 3)红绿灯信号生成器)红绿灯信号生成器 功能:根据定时计数器的计数值来确定红绿灯信号功能:根据定时计数器的计数值来确定红绿灯信号的输出。的输出。 这是一个简单的状态机,共有这是一个简单的状态机,共有10个不同状态,有个不同状态,有6个输出,为个输出,为s12.0和和s22.0,分别用于控制,分别用于控制

17、a、b两个方向的红、黄、绿灯的亮或灭。两个方向的红、黄、绿灯的亮或灭。 可以对照图可以对照图5-1“正常运行状态下两组交通灯自动正常运行状态下两组交通灯自动转换规律转换规律”,根据计时器的计数值来确定红绿灯信,根据计时器的计数值来确定红绿灯信号生成器的输出。注意计时器的一个工作循环为一号生成器的输出。注意计时器的一个工作循环为一个正常的红绿灯工作周期,即个正常的红绿灯工作周期,即210秒。秒。 预习时请画出其状态转移图。预习时请画出其状态转移图。2021-11-1421n设计方案的选择设计方案的选择 图文混合设计方法:先将电路划分为几个子模图文混合设计方法:先将电路划分为几个子模块,每个子模块

18、由块,每个子模块由verilog hdl语言描述实现,语言描述实现,然后生成逻辑符号,顶层文件采用图形文件来然后生成逻辑符号,顶层文件采用图形文件来实现。实现。 纯文本描述方法:每个子模块和顶层电路的连纯文本描述方法:每个子模块和顶层电路的连接关系都采用接关系都采用verilog hdl语言描述实现,对语言描述实现,对子模块的调用采用模块元件例化的方法。子模块的调用采用模块元件例化的方法。 2021-11-1422实验方案n方案一方案一1. 设计思路设计思路根据控制器的逻辑模型,将整个电路分为3个子模块,即工作状态控制器state_ctrl.v、操作规 则 实 现 电 路 r u l e .

19、v 和 红 绿 灯 信 号 生 成 器sig_gen.v,它们均采用verilog hdl语言实现。然后形成顶层图形设计文件trgl_top.bdf。 2021-11-1423 工作状态控制器工作状态控制器state_ctrl.v 2021-11-1424 操作规则实现电路操作规则实现电路rule.v 2021-11-1425 红绿灯信号生成器红绿灯信号生成器sig_gen.v 2021-11-1426 顶层图形设计文件顶层图形设计文件trgl_top.bdf2021-11-14272. 对对trgl_top.bdf进行时序仿真。进行时序仿真。 3. 创建创建下载用下载用顶层顶层文件文件将将

20、t r g l _ t o p . b d f 另 起 名 保 存 ( 如另 起 名 保 存 ( 如trgl_top_p.bdf),并在其时钟输入引脚后),并在其时钟输入引脚后增加时钟分频模块增加时钟分频模块clkdiv_50mhz_to_1hz,将输入时钟将输入时钟fclk = 50mhz分频为分频为f = 1hz,即即t =1s。编译,引脚锁定。编译,引脚锁定。 2021-11-1428编程下载文件编程下载文件trgl_top_p.bdf 2021-11-1429n方案二方案二1. 设计思路设计思路 将控制器的三部分电路有机地结合到一起,用将控制器的三部分电路有机地结合到一起,用一个文件采

21、用一个文件采用verilog hdl语言实现,文件名语言实现,文件名为为trgl2.v。其中用到了两个。其中用到了两个reg型中间变量:型中间变量: (1)state:工作状态控制状态机,具有:工作状态控制状态机,具有3个状个状态(态(normal, fr1, fr2)。)。 (2)8位寄存器位寄存器cnt7.0:用于红绿灯信号生:用于红绿灯信号生成器的定时计数。成器的定时计数。采用采用3个个always模块来实现这三部分电路(实模块来实现这三部分电路(实际上就是将方案一中的际上就是将方案一中的3个子模块的个子模块的verilog hdl描述放到一个文本文件中)。描述放到一个文本文件中)。20

22、21-11-14302. 在在quartus中进行时序仿真中进行时序仿真 3. 设计下载用顶层文件,编程下载设计下载用顶层文件,编程下载 采用采用verilog hdl语言设计顶层文件语言设计顶层文件 引脚锁定,编程下载引脚锁定,编程下载 .2021-11-1431n分别画出工作状态控制器和红绿灯信号生分别画出工作状态控制器和红绿灯信号生成器的状态转移图,操作规则实现电路的成器的状态转移图,操作规则实现电路的程序流程图程序流程图 n采用方案一或方案二(有余力的同学也可采用方案一或方案二(有余力的同学也可以两种方案都采用),按实验要求给出的以两种方案都采用),按实验要求给出的功能要求设计交通红绿

23、灯控制器。功能要求设计交通红绿灯控制器。 实验内容2021-11-1432n仿真仿真 使输入信号均无效,仿真至少一个循环周期的正常运行状使输入信号均无效,仿真至少一个循环周期的正常运行状态。观察状态机态。观察状态机state1.0以及输出信号以及输出信号f1s、f2s、s12.0和和s22.0的变化。将仿真结果保存为的变化。将仿真结果保存为trgl_top(normal).vwf。 正常运行时的仿真参考波形一:正常运行时的仿真参考波形一:2021-11-1433正常运行时的仿真参考波形二(正常运行时的仿真参考波形二(210秒为一周期):秒为一周期):2021-11-1434在不同的时段给定不同

24、的输入信号,在每种情况下在不同的时段给定不同的输入信号,在每种情况下观察状态机观察状态机state1.0以及输出信号以及输出信号f1s、f2s、s12.0和和s22.0的变化的变化.2021-11-1435n设计下载用顶层文件设计下载用顶层文件 仿真完全正确后,在原设计基础上增加时仿真完全正确后,在原设计基础上增加时钟分频模块,将输入时钟钟分频模块,将输入时钟fclk = 50mhz分频为分频为f = 1hz,即,即t = 1s,形成下载用,形成下载用顶层文件(可以为图形设计文件或顶层文件(可以为图形设计文件或.v文本文本设计文件)。对下载用顶层文件进行全编设计文件)。对下载用顶层文件进行全编

25、译。译。 2021-11-1436n引脚锁定引脚锁定 本实验采用模式本实验采用模式3所有按键为琴键式按键,所有按键为琴键式按键,即当按下键时,输出为高电平;当松开键时,即当按下键时,输出为高电平;当松开键时,输出为低电平。可通过按下键的时间的长短来输出为低电平。可通过按下键的时间的长短来控制正脉冲的宽度。控制正脉冲的宽度。 clk:系统时钟信号,:系统时钟信号,50mhz,接,接fpga引脚引脚pin28。注意应将下图中的。注意应将下图中的j6插到插到clock0的的位置,并将实验箱右下角位置,并将实验箱右下角“时钟频率选择时钟频率选择”区区域域clock0的时钟选择跳线接到的时钟选择跳线接到

26、50mhz的位置。的位置。 2021-11-1437n编程下载编程下载 利用利用gw48-sopc+开发系统实现设计的编程下开发系统实现设计的编程下载。编程器件为载。编程器件为ep1c12q240c8。使用开发系。使用开发系统 上 的 晶 振 提 供 的 全 局 时 钟 信 号 (统 上 的 晶 振 提 供 的 全 局 时 钟 信 号 ( f cl k = 50mhz)()(pin28),用琴键式按钮开关键),用琴键式按钮开关键1、键键2和键和键3(均为高有效)实现人工控制放行(均为高有效)实现人工控制放行a方方向和向和b方向、复位功能,用方向、复位功能,用8个发光二极管(高有个发光二极管(高

27、有效)效)d1d8,分别显示输出信号,分别显示输出信号s12.0、s22.0、f1s和和f2s。 2021-11-1438n在线校验在线校验 下载后,仔细观察:红绿灯应按设定的时间规律自动切换,下载后,仔细观察:红绿灯应按设定的时间规律自动切换,d1d8八个八个led分别对应的是:分别对应的是:a方向的红黄绿,方向的红黄绿,b方方向的红黄绿,向的红黄绿,a方向的放行状态,方向的放行状态,b方向的放行状态。方向的放行状态。 然后按下键然后按下键1,表示欲人工放行,表示欲人工放行a方向,则相应方向,则相应led有显有显示;同时两个方向的红绿灯按正常运行规律自动切换,当示;同时两个方向的红绿灯按正常运行规律自动切换,当运行到放行运行到放行a方向

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论