ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:212.04KB ,
资源ID:6184275      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6184275.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EDA报告.docx

1、EDA报告交通控制器设计实验一、实验目的 1、了解交通灯的亮灭规律。 2、了解交通灯控制器的工作原理。 3、进一步熟悉VHDL语言编程,了解实际设计中的优化方案。二、实验任务设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是40、5和45秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来

2、的状态,继续正常运行。 三、原理分析本系统主要由计数控制器和倒计时显示器电路组成。计数控制器实现总共90秒的计数,90秒也是交通控制系统的一个大循环;控制器控制系统的状态转移和红黄绿灯的信号输出;倒计时显示器电路实现45秒倒计时和显示功能。整个系统的工作时序受控制器控制,它是系统的核心。控制器的整个工作过程用状态机进行描述,其状态转移关系如下图所示。五种状态描述如下:s0:东西方向红灯亮,南北方向绿灯亮,此状态持续40秒的时间;s1:东西方向红灯亮,南北方向黄灯亮,此状态持续5秒的时间;s2:东西方向绿灯亮,南北方向红灯亮,此状态持续40秒的时间;s3:东西方向黄灯亮,南北方向红灯亮,此状态持

3、续5秒的时间;s4:紧急制动状态,东西方向红灯亮,南北方向红灯亮,当紧急制动信号有效(hold=0)时进入这种状态。当紧急制动信号无效(hold=1)时,状态机按照s0s1s2s3s0循环;当紧急制动有效(hold=0)时,状态机立即进入s4,两个方向红灯全亮,计数器停止计数;当紧急制动信号再恢复无效时,状态机会回到原来的状态继续执行。四、电路设计(1)分频器分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号。 (2)控制器设计控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输

4、出倒计时数值给七段数码管的分位译码电路。此外,当检测到特殊情况(HOLD=1)发生时,无条件点亮红灯的二极管。本控制器可以有两种设计方法,一种是利用时钟烟的下降沿读取前级计数器的计数值,然后作出反应;另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。这两种方法各有所长,必须根据所用器件的特性进行选择:比如有些FPGA有丰富的寄存器资源,而且可用与组合逻辑的资源则相对较少,那么使用第一种方法会比较节省资源;而有些CPLD的组合逻辑资源则比较多,用第二种方法可能更好。(3)计数器设计这里需要的计数器的计数范围为0-90。计到90后,下一个时钟沿回复到0,开始下一轮计数。此外,当检测到特殊情况

5、(HOLD=1)发生是,计数器暂停计数,而系统复位信号RESET则使计数器异步清零。(4)分位译码电路设计-1 因为控制器输出的到计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数,如25分为2和5,7分为0和7)。 与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。控制器中,引入了寄存器。为了让读者开拓眼界,分位电路就用组合逻辑电路实现。(5)分位译码电路设计2(6)数码管驱动设计 串行连接,即每个数码管对应的引脚都接在一起(如每个数码管的a引脚都接到一起,然后再接到CPLD/FPGA上的一个引脚上),通过控制公共

6、端为高电平控制相应数码管的亮、灭(共阴极数码管的公共端为高电平时,LED不亮;共阳极的公共端为低电平时,LED不亮)。 串行法的优点在于消耗的系统资源少,占用的I/O口少,N个数码管只需要(7+N)个引脚(如果需要小数点,则是(8+N)个引脚)。其缺点是控制起来不如并行法容易。(7)下图为交通灯控制器的顶层文件连接图五、程序设计(1)分频器的设计LIBRARY IEEE;USE IEEE.Std_Logic_1164.ALL;ENTITY FreDevider ISPORT (Clkin:IN Std_Logic; Clkout:OUT Std_Logic);END;ARCHITECTURE

7、Devider OF FreDevider ISCONSTANT N:Integer:=499;signal counter:Integer range 0 to N;signal Clk:Std_Logic;BEGIN PROCESS(Clkin) begin IF rising_edge(Clkin)THEN IF Counter=N then counter=0; Clk=not clk; else counter=counter+1; end if; end if; end process; clkout=clk;end;(2)控制设计控制器的作用是根据计数器的计数值控制发光二极管的亮

8、、灭,以及输出倒计时数值给七段译管的分译码电路。此外,当检测到特殊情况(Hold=1)发生时,无条件点亮红色的发光二极管。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY countroller IS PORT (Clock:IN STD_LOGIC; Hold:in std_logic; CountNum:in INTEGER RANGE 0 TO 89; NumA,NumB:out INTEGER RANGE 0 TO 45; RedA,GreenA,YellowA:out std_logic; RedB,GreenB,YellowB:ou

9、t std_logic); END;ARCHITECTURE behavior OF Countroller IS BEGINprocess(Clock)BEGINIF falling_edge(Clock)THENIF Hold=1 THEN RedA=1; RedB=1; GreenA=0; GreenA=0; YellowA=0; YellowB=0;ELSIF CountNum=39 THEN NumA=40-CountNum; RedA=0; GreenA=1;YellowA=0; ELSIF CountNum=44 THEN NumA=45-CountNum; RedA=0; Gr

10、eenA=0; YellowA=1;ELSE NumA=90-CountNum; RedA=1; GreenA=0;YellowA=0;END IF;IF CountNum=44 THEN NumB=45-CountNum; RedB=1; GreenB=0; YellowB=0;ELSIF CountNum=84 THEN NumB=85-CountNum; RedB=0; GreenB=1; YellowB=0;ELSe NumB=90-CountNum; RedB=0; GreenB=0; YellowB=1;END IF;END IF;END PROCESS;END;(3)计数器的设计

11、这里计数器的计数范围为045S 。计到45后,下一个时钟沿回复到0,开始下一轮计数.此外,当检测到特殊情况(Hold=1)发生时,计数器暂停计数,而系统复位号Reset则使计数器异步清0。程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY counter IS PORT (clock:IN STD_LOGIC; reset:in std_logic; Hold:in std_logic; countNum:BuFFeR INTEGER RANGE 0 TO 90);END;ARCHITECTURE behavior OF counter

12、 IS BEGINprocess(reset,Clock)BEGINIF Reset=1 THENcountNum=0;ELSIF rising_edge(Clock) THENIF Hold=1 thencountNum=countNum;ELSEIF countNum=90 THENcountNum=0;ELSEcountNum=40 THENNumA=4;NumB=30 THENNumA=3;NumB=20 THENNumA=2;NumB=10 THENNumA=1;NumB=Numin-10;ELSE NumA=0;NumB=40 THENNumC=4;NumD=30 THENNumC

13、=3;NumD=20 THENNumC=2;NumD=10 THENNumC=1;NumD=Numin-10;ELSE NumC=0;NumDsegoutsegoutsegoutsegoutsegoutsegoutsegoutsegoutsegoutsegoutnull;END CASE;END PROCESS;END;LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL; ENTITY dtsm ISPORT(clk:in STD_LOGIC; NumA,NumB,NumC,NumD: in STD

14、_LOGIC_VECTOR(3 downto 0);segout1:out STD_LOGIC_VECTOR(6 downto 0);led_sel: out STD_LOGIC_VECTOR(3 downto 0);END dtsm;architecture bhv of dtsm iscomponent bcd_data is port (bcd_data:in STD_LOGIC_VECTOR(3 downto 0); segout:out STD_LOGIC_VECTOR(6 downto 0);end component; signal x:STD_LOGIC_VECTOR(3 downto 0); signal q:STD_LOGIC_VECTOR(1 downto 0);beginp1:process(clk)beginif clkevent and clk =1 then Qled_sel=1110;xled_sel=1101;xled_sel=1011;xled_sel=0111;xnull;end case;end process;u1:bcd_data PORT map(bcd_data=x,segout=segout1);end

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1