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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

EDA实验综合设计报告.docx

1、EDA实验综合设计报告EDA 实验综合设计报告十字路口交通信号控制系统设计姓名: 学号 指导老师: 年 月 日一、概述1、设计任务要求:(1)东西(用A表示)、南北(用B表示)方向均有绿灯、黄灯、红灯指示,持续时间A、B方向分别各用一个2位十进制数进行预置,预置时个位和十位数字均用4位BCD码表示。交通灯运行的切换示意图和时序图分别如图1和如图2 所示,其中aredtime、agreentime、bredtime、bgreentime、yellowtime分别以35s、40s、45s、30s、5s为例。 图2 交通控制系统时序图(2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。(3)当

2、东西或南北两路中任一路出现特殊情况时,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止计时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。2、所用软件工具和硬件平台(1)软件: Quartus II 9.0Quartus II 是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。(2)硬件平台:台湾友晶科技DE0 FPG

3、A开发板台湾友晶科技DE0 FPGA开发板是一套轻薄型的开发板,参考设计和相关配件一应俱全,简单上手,非常适合初学者用来学习FPGA逻辑设计与计算机架构。DE0 FPGA开发板搭载了 Altera Cyclone III系列的EP3C16 FPGA,可提供15408个逻辑单元(LE)以及346个用户I/O。此外,DE0开发板还搭配了丰富的外部资源,非常适合于EDA实验类教学课程,并足够开发较复杂的数字系统。二、实现原理本系统主要由分频器、时序控制器、状态转移控制器、倒计时计数器、路口红绿灯状态显示器、倒计时显示器等电路组成。分频器将晶体振送来的5MHz信号变为1Hz时钟信号;控制器控制系统的状

4、态转移和红、黄、绿灯的信号输入;倒计时显示电路实现A路40、5、35秒以及B路45、30、5秒倒计时和显示功能。整个系统的工作时序受控制器控制,它是系统的核心。三、实现方法1、本设计实现方案分析 整个系统的工作过程用状态机进行描述,其状态转移如图3所示,5种状态描述如下: s0=A方向绿灯亮,B方向红灯亮,此状态持续为agreentime(40s); s1=A方向黄灯亮,B方向红灯亮,此状态持续yellowtime(5s); s2=A方向红灯亮,B方向绿灯亮,此状态持续bgreentime(30s); s3:A方向红灯亮,B方向黄灯亮,此状态持续yellowtime(5s); s4:紧急制动状

5、态,A方向红灯亮,B方向红灯亮,当紧急制动信号有效时(hold=1)进入这种状态。 当紧急制动信号无效(hold=0)时,状态机按照s0s1s2s3s0循环;当紧急制动信号有效(hold=1)时,状态机立即转入s4两个方向红灯全亮;当紧急制动信号再次恢复无效(hold=0)时,状态机会回到初始状态s0继续执行。 状态机进入不同的状态,计数器从不同的初始值开始减法计数,当减到0时,切换到下一个状态。计数器的计数值通过七段译码器模块译码后显示。2、本设计实现转移图图3 交通控制系统状态转移图四、实现过程1、各模块具体实现(1)分频器devide.vhd文件library ieee;use ieee

6、.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity devide is generic( sys_clk_fre_value: integer:=50000000; div_clk_fre_value: integer:=1 ); port( i_sys_clk: in std_logic; clk: out std_logic ); end entity devide; architecture arcdiv of devide is signal r_div_coun

7、t: std_logic_vector(31 downto 0); signal r_div_clk:std_logic; begin process(i_sys_clk,r_div_count) beginif(i_sys_clkevent and i_sys_clk=1) then if(r_div_count=sys_clk_fre_value/div_clk_fre_value/2-1) then r_div_count = x00000000; r_div_clk = not r_div_clk; else r_div_count = r_div_count+1; end if; e

8、nd if; end process; clk = r_div_clk;end architecture arcdiv;(2)主要部分traffic_light.vhd文件library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity traffic_light isport( rst : in std_logic; clk : in std_logic; hold: in std_logic; ared,agreen,ayellow,bred,bgreen,byellow: out std_log

9、ic; aseg7_h,aseg7_l : out std_logic_vector(6 downto 0); bseg7_h,bseg7_l : out std_logic_vector(6 downto 0) );end traffic_light;architecture arc of traffic_light is constant aredtime_h : std_logic_vector(3 downto 0):=0011; constant aredtime_l : std_logic_vector(3 downto 0):=0101; -aredtime 35s consta

10、nt agreentime_h : std_logic_vector(3 downto 0):=0100; constant agreentime_l : std_logic_vector(3 downto 0):=0000; -agreentime 40s constant bredtime_h : std_logic_vector(3 downto 0):=0100; constant bredtime_l : std_logic_vector(3 downto 0):=0101; -bredtime 45s constant bgreentime_h : std_logic_vector

11、(3 downto 0):=0011; constant bgreentime_l : std_logic_vector(3 downto 0):=0000; -bgreentime 30s constant yellowtime_h : std_logic_vector(3 downto 0):=0000; constant yellowtime_l : std_logic_vector(3 downto 0):=0101; -yellowtime 5s signal acount_h,acount_l,bcount_h,bcount_l :std_logic_vector(3 downto

12、 0); type state_type is(s0,s1,s2,s3,s4); signal c_state,n_state : state_type;begin process begin wait until clkevent and clk=1; if rst=1 then c_state = s0; else c_state =n_state; end if; end process; -state change状态机的状态转移关系描述 process(hold,c_state,acount_h,acount_l,bcount_h,bcount_l) begin n_state if

13、 hold=1 then n_state =s4; elsif acount_h=0000 and acount_l=0000 then n_state if hold=1 then n_state =s4; elsif acount_h=0000 and acount_l=0000 then n_state if hold=1 then n_state =s4; elsif bcount_h=0000 and bcount_l=0000 then n_state if hold=1 then n_state =s4; elsif acount_h=0000 and acount_l=0000

14、 then n_state if hold=0 then n_state = s0; end if; end case; end process;-count 十进制倒计时计数器的描述 process begin wait until clkevent and clk=1; if c_state/=n_state or rst=1 then if n_state=s0 then acount_h = agreentime_h; acount_l = agreentime_l; bcount_h = bredtime_h; bcount_l = bredtime_l; elsif n_state

15、=s1 then acount_h = yellowtime_h; acount_l = yellowtime_l; bcount_h = bredtime_h; bcount_l = bredtime_l; elsif n_state=s2 then acount_h = aredtime_h; acount_l = aredtime_l; bcount_h = bgreentime_h; bcount_l = bgreentime_l; elsif n_state=s3 then acount_h = aredtime_h; acount_l = aredtime_l; bcount_h

16、= bgreentime_h; bcount_l = bgreentime_l; end if; else if acount_l=0000 then acount_l =1001; acount_h =acount_h-1; else acount_l=acount_l-1; end if; if bcount_l=0000 then bcount_l =1001; bcount_h =bcount_h-1; else bcount_l ared =0; agreen =1; ayellow=0; bred =1; bgreen =0; byellow ared =0; agreen =0;

17、 ayellow=1; bred =1; bgreen =0; byellow ared =1; agreen =0; ayellow=0; bred =0; bgreen =1; byellow ared =1; agreen =0; ayellow=0; bred =0; bgreen =0; byellow ared =1; agreen =0; ayellow=0; bred =1; bgreen =0; byellowaseg7_haseg7_haseg7_haseg7_haseg7_haseg7_haseg7_haseg7_haseg7_haseg7_haseg7_haseg7_h

18、aseg7_haseg7_haseg7_haseg7_hnull; end case; end process; process(acount_l) begin case acount_l is when 0000=aseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_laseg7_lnull; end case; end process; process(bcount_h) begin case bcount_h is when 0000=

19、bseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hbseg7_hnull; end case; end process; process(bcount_l) begin case bcount_l is when 0000=bseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbseg7_lbse

20、g7_lnull; end case; end process; end arc; 2、仿真波形(1)紧急制动 hold=1时,紧急制动,ared=bred=1。(2)重置 rst=1时,重置,从s0开始运行。(3)分频器验证分频器功能,改为二分频。波形为:、(4)整体运行波形五、实现结果达到预期效果,LED灯,倒计时计数器,rst、hold键工作正常。六、结论存在问题:倒计时计数的波形不正常;解决方法:发现计数器环节有小的编写错误,将“acount_h =acount_h+1;” “acount_h =acount_h+1;”两条语句中的“+”改成“-”,即“acount_h =acount

21、_h-1;”“acount_h =acount_h-1;”。收获: 第一次系统进行了数字系统设计,对Quartus II的使用有了自己的理解。虽然已有知识还是很有限,但因为有了一次完整的设计体验,我相信这对以后的帮助是无穷的。七、参考文献【1】孙万蓉、任爱锋等,数字电路与系统设计,高等教育出版社,2015年4月【2】任爱锋、袁晓光,数字电路与EDA实验,西安电子科技大学出版社,2017年3月五、实现结果达到部分预期效果,有些功能未实现。六、结论存在问题:倒计时计数的波形不正常;解决方法:发现计数器环节有小的编写错误,将“acount_h =acount_h+1;” “acount_h =aco

22、unt_h+1;”两条语句中的“+”改成“-”,即“acount_h =acount_h-1;”“acount_h =acount_h-1;”。收获: 第一次系统进行了数字系统设计,对Quartus II的使用有了自己的理解。虽然已有知识还是很有限,但因为有了一次完整的设计体验,我相信这对以后的帮助是无穷的。七、参考文献【1】孙万蓉、任爱锋等,数字电路与系统设计,高等教育出版社,2015年4月【2】任爱锋、袁晓光,数字电路与EDA实验,西安电子科技大学出版社,2017年3月附录devide.vhd文件和traffic_light.vhd文件已在正文中给出,下面给出顶层文件、原理图和管脚锁定。1、顶层文件project_traffic_light.vhd:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity project_traffic_light isport( i_sys_clk : in std_logic; rst : in std_logic; hold: in std_logic; ared,agreen,ayellow,bred,bgreen,byellow: out st

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

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