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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(数字电路课程设计用VHDL语言设计交通灯.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数字电路课程设计用VHDL语言设计交通灯.docx

1、数字电路课程设计用VHDL语言设计交通灯 数字电路课程设计报告院系: 电气信息工程学院 班级: 08测控2班 学号: * 姓名: 董 亮 合作: 虞 波 指导教师: 翟 丽 芳 2010年12月10日引言2一 设计任务和设计要求2二 电路工作原理及方案设计3三 软件设计与调试41. 分频模块的设计及仿真图42. 控制器设计及仿真图63. 计数器的设计及仿真图74. 分位模块的设计95数码管驱动设计106 顶层文件设置14四 硬件焊接与组装调试15五 心得体会16六 参考文献16交通灯控制电路设计 引言:随着社会的发展以及人类生活水平的提高,基于CPLD的EDA技术的发展和应用领域的扩大与深入,

2、EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。如今,交通的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以,设计交通灯来完成这个需求就显的越加迫切了。为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。以下就是运用数字电子设计出的交通灯。本程序设计的是交通灯的设计。采用EDA作为开发工具,VHDL语言为硬件描述语言,quartusII作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,实现设计目标。一设计任务与设计要求1 设计任务设计一个基于FPGA的十字路口交通控制器,假设南北方向和东西方向,两个方向分别设置红灯、绿灯、黄灯三

3、盏灯,设置一组倒计时显示器,用以指挥车辆和行人有序的通行。红灯亮表示直行车辆禁行;绿灯亮表示直行车辆可以通行;黄灯亮表示直行车辆即将禁行;倒计时显示器用来显示允许通行或禁止通行的时间 。尽量采用层次化设计。2 设计要求在十字路口南北和东西两个方向各设一组红灯、黄灯、绿灯。设一组倒计时显示器。自动控制:设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,南北方向为主干道,红灯、黄灯和绿灯显示时间分别是55、5s、50s。东西方向为次干道,红灯、黄灯绿灯显示时间分别为35s、5s、30s。特殊功能:(1)紧急状态时,手动拨动紧急开关,主干道以及次干道都显示红灯,禁止通行,并由蜂鸣其报警。(

4、2)黄灯显示信号为脉冲信号,使得黄灯为“一闪一闪”的显示状态。二电路工作原理及方案设计图1总体设计框图在VHDL设计描述中,采用自顶向下的设计思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的输入输出信号:输入信号:外部时钟信号clk。LED在自顶向下的VHDL设计描述中,通常把整个设计的系统划分为几个模块,然后采用结构描述方式对整个系统进行描述。通过上面的分析,不难得知可以把交通灯控制系统划分为4个模块:时钟分频模块,计数模块,控制模块,分位译码模块。分频电路:输入较高频率脉冲用分频电路的到较第频率的时钟信号,本电路通过二次分平分别得到1Hz的时钟信号。控制器电路:根据计数器的计数

5、值控制发光二极管的亮、灭,以及输出倒计时数值给七段译码管的分位译码电路。当检测到手动控制信号(hold=1)时,执行特殊控制; 计数器电路:下一个时钟沿回复到0,开始下一轮计数。当检测到特殊情况(HOLD=1)发生是,计数器暂停计数。分位译码电路:因为控制器输出的倒计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数)。七段数码管的译码电路根据控制电路的控制信号,驱动交通灯的显示,通过输入二进制数值,输出信号点亮二极管,我们用的是共阴极数码管,因此译码电路输出逻辑数值1点亮二极管,译码电路输出逻辑数值0熄灭二极管。三软件设计与调试图2模块

6、化设计原理图1. 分频模块的设计及仿真图分频器1实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是1000分频,将50M赫兹的时钟信号分频成50000赫兹的时钟信号。LIBRARY IEEE;USE IEEE.Std_Logic_1164.ALL;ENTITY FreDevider ISPORT (Clkin:IN Std_Logic; Clkout:OUT Std_Logic);END;ARCHITECTURE Devider OF FreDevider ISCONSTANT N:Integer:=499;Signal counter:Inte

7、ger 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实现的是50000分频,将50000赫兹的时钟信号分频成1赫兹的时钟信号。LIBRARY IEEE; USE IEEE.Std_Logic_1164.ALL;ENTITY FreDevide

8、r1 ISPORT (Clkin:IN Std_Logic; Clkout:OUT Std_Logic);END;ARCHITECTURE Devider1 OF FreDevider1 ISCONSTANT N:Integer:=24999;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; en

9、d if; end if; end process; clkout=clk;end;2. 控制器设计及仿真图控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段译管的分译码电路。此外,当检测到特殊情况(Hold=1)发生时,无条件点亮红色的发光二极管。功能:控制发光二极管的亮、灭,以及输出倒计时数值给七段译码管的分位译码电路。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY countroller IS PORT (Clock:IN STD_LOGIC; Hold:in std_logic; CountNum:in

10、INTEGER RANGE 0 TO 89; NumA:out INTEGER RANGE 0 TO 90; RedA,GreenA,YellowA:out std_logic; RedB,GreenB,YellowB:out 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 Co

11、untNum=54 THEN NumA=55-CountNum; RedA=0; GreenA=1;YellowA=0; ELSIF CountNum=59 THEN NumA=60; RedA=0; GreenA=0; YellowA=1;ELSE NumA=90-CountNum; RedA=1; GreenA=0;YellowA=0;END IF;IF CountNum=54 THEN RedB=1; GreenB=0; YellowB=0;ELSIF CountNum=84 THEN RedB=0; GreenB=1; YellowB=0;ELSe RedB=0; GreenB=0;

12、YellowB=1;END IF;end if;END PROCESS;END;3. 计数器的设计及仿真图这里计数器的计数范围为090S ,下一个时钟沿回复到0,开始下一轮计数.此外,当检测到特殊情况(Hold=1)发生时,计数器暂停计数。程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY counter IS PORT (clock:IN STD_LOGIC; Hold:in std_logic; countNum:BuFFeR INTEGER RANGE 0 TO 90);END;ARCHITECTURE behavior OF c

13、ounter IS BEGINProcess(Clock)BEGINIF rising_edge(Clock) THENIF Hold=1 thencountNum=countNum;ELSEIF countNum=90 THENcountNum=0;ELSEcountNum=60 THENNumA=10;NumB=50 THENNumA=5;NumB=40 THENNumA=4;NumB=30 THENNumA=3;NumB=20 THENNumA=2;NumB=10 THENNumA=1;NumB=Numin-10;ELSE NumA=0;NumBsegoutsegoutsegoutseg

14、outsegoutsegoutsegoutsegoutsegoutsegoutsegoutnull;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_LOGIC_VECTOR(3 downto 0);segout1:out STD_LOGIC_VECTOR(6 downto 0);led_sel: out STD_LO

15、GIC_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 an

16、d 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; 6顶层文件设置library ieee;use ieee.std_logic_1164.all;entity jiaotongdeng isport(clk1:in std_logic; reset1:in std_logic; hold1:in std_logic; segout2:out std

17、_logic_vector(6 downto 0); led_sel1:out std_logic_vector(3 downto 0); reda1,yellowa1,greena1:out std_logic; redb1,yellowb1,greenb1:out std_logic);end jiaotongdeng;architecture aa11 of jiaotongdeng is component FreDevider PORT (Clkin:IN Std_Logic; Clkout:OUT Std_Logic);END component;component FreDevi

18、der1PORT (Clkin:IN Std_Logic; Clkout:OUT Std_Logic);END component;component countrollerPORT (Clock:IN STD_LOGIC; Hold:in std_logic; CountNum:in INTEGER RANGE 0 TO 89; NumA:out INTEGER RANGE 0 TO 90; RedA,GreenA,YellowA:out std_logic; RedB,GreenB,YellowB:out std_logic); END component;component counte

19、r PORT (clock:IN STD_LOGIC; reset:in std_logic; Hold:in std_logic; countNum:BuFFeR INTEGER RANGE 0 TO 90);END component;component Fenwei PORT(Numin:IN integer RANGE 0 TO 90;NumA,NumB:OUT Integer RANGE 0 to 9);END component;component dtsm PORT(clk:in STD_LOGIC; NumA,NumB: in Integer RANGE 0 to 9;sego

20、ut1:out STD_LOGIC_VECTOR(6 downto 0);led_sel: out STD_LOGIC_VECTOR(3 downto 0);END component;signal a,b:std_logic;signal c:INTEGER RANGE 0 TO 89;signal d:INTEGER RANGE 0 TO 90;signal e,f:Integer RANGE 0 to 9;beginu1: FreDevider port map(clkin=clk1,clkout=a);u2: FreDevider1 port map(clkin=a,clkout=b)

21、;u3:counter port map(clock=b,reset=reset1,hold=hold1,countnum=c);u4:countroller port map(clock=b,hold=hold1,countnum=c,numa=d,reda=reda1,greena=greena1,yellowa=yellowa1,redb=redb1,greenb=greenb1,yellowb=yellowb1);u5:fenwei port map(numin=d,numa=e,numb=f);u6:dtsm port map(clk=clk1,numa=e,numb=f,segou

22、t1=segout2,led_sel=led_sel1);end aa11;四硬件焊接与组装调试按照如下图所示的电路图,在通用电路焊接板上合理布置各个元器件,进行焊接布线。图3硬件焊接电路图安装焊接完成后,仔细检查电路,是否有误。若与电路图不符,应及时排除错误。一切就绪后,将与FPGA对应的引脚使用杜邦线连接,连接完毕后,检查电源极性,避免反接。确认无误后,接通电源,观察实验结果。首先我们完成的基本的功能,只是简单的倒计时显示,然后我们可以进一步修改我们的VHDL语言程序,重新烧入FPGA,以完善我们的设计。五心得体会通过几天的课程设计,我对EDA技术、VHDL等系列知识都有了一定的了解。使用

23、EDA技术开发页面的能力也有了很大提高。EDA设计我们感觉程序调试最重要,试验软件、硬件熟悉其次。直到没有错误。若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误。都通过可以进行管脚配对,把程序烧入芯片,在实物上看结果,从显示中得出还需改正的地方,再去改程序。必须注意每改一次都要编译,重新烧入。我们采用模块化编程,模块化接线,再编译总原理图,思路比较清楚。有的模块可以供其它任务通用。课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容,在这学期的课程设计中,在收获知识的同时

24、,还收获了阅历,收获了成熟,在此过程中,我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。另外,我还学到了一个人的力量毕竟有限,但是团队的力量势不可挡,我们不能局限,要学会合作。这次课程设计虽然结束了,相信以后我们会以更加积极的态度对待我们的学习、对待我们的生活。我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它。 六参考文献 (1)潘松,黄继业.EDA技术使用教程.科学出版社.2006. (2)潘松,黄继业.EDA技术与VHDL(第三版).清华大学出版社.2009 (3)徐志军,徐光辉.CPLD/FPGA的开发与应用.电子工业出版社.2002.(4)阎石. 数字电子技术基础(第五版).高等教育出版社.2005.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2