《数字系统仿真与VHDL设计》课程设计报告交通灯
《《数字系统仿真与VHDL设计》课程设计报告交通灯》由会员分享,可在线阅读,更多相关《《数字系统仿真与VHDL设计》课程设计报告交通灯(17页珍藏版)》请在装配图网上搜索。
1、湖南科技大学信息与电气工程学院数字系统仿真与VHDL设计课程设计报告题 目: VHDL语言课程设 专 业: 通信工程 班 级: 二班 姓 名: 学 号: 7 课程设计任务书题 目设 计 时 间设 计 目 的:设 计 要 求:总体方案实现:指导教师评语:目 录1、课程设计的目的。2、设计方案的论证。3、设计仿真及结果分析。4、设计及仿真中的体会。5、对本次课程设计的体会和建议。6、参考文献(包括电路图和元器件清单)1、课程设计的目的选题一:循环彩灯控制器设计一个循环彩灯控制器,该控制器控制红,绿,黄三个发光管循环点亮。要求红发光管亮3秒,绿发光管亮2秒,黄发光管亮1秒。选题二:交通灯控制器的程序
2、设计用于十字路口的交通灯控制器。要求:东西方向各有一组红,黄,绿灯用于指挥交通,红,黄,绿的持续时间分别为25s,5s,20s 。当有紧急情况(如消防车)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复初始状态,正常工作。选题三:多功能电子表设计一个含有数字钟的多功能电子表。数字钟以“秒”作为基准信号,可显示时、分、秒。2、设计方案的论证选题一:循环彩灯控制器要实现彩灯的循环控制需设计一个六进制计数器count,该计数器以时钟脉冲clk为输入信号,上升沿触发有效,采用VHDL硬件描述语言中的CASE语句实现控制彩灯的亮灭,设置一个输出三位逻辑值output以表示彩灯亮灭的总体情况
3、,顺序为红、绿、黄,逻辑1表示灯亮,逻辑0表示灯不亮。其真值表如下:countoutput彩灯000100红灯亮001100红灯亮010100红灯亮011010绿灯亮100010绿灯亮101001黄灯亮设置输入时钟脉冲以1s为周期即可实现题设要求红发光管亮3秒,绿发光管亮2秒,黄发光管亮1秒。为实现对彩灯的控制,设置一个清零端clr和置位端reset,均为高电平有效。当清零端clr为高电平时,彩灯均不亮,当置位端reset为高电平时,彩灯从初始状态开始重新循环,直到清零端clr的下一个高电平脉冲使其清零。输入端口为:clk(时钟脉冲信号)、clr(清零端)、reset(置位端)输出端口为:ou
4、tput(2 downto 0)选题二:交通灯控制器的程序设计要实现对交通灯的控制,原理和选题一大同小异,设计一个十进制计数器count,该计数器以时钟信号clk为输入信号,上升沿触发有效,采用VHDL硬件描述语言中的CASE语句实现控制彩灯的亮灭,东西两个方向分别设置一个输出三位逻辑值output1,output2以表示彩灯亮灭的总体情况,顺序为红、绿、黄,逻辑1表示灯亮,逻辑0表示灯不亮。为操作方便,将output1,output2合并为一个六位逻辑值output表示,其真值表如下:countoutput东西0000100010红灯亮绿灯亮0001100010红灯亮绿灯亮001010001
5、0红灯亮绿灯亮0011100010红灯亮绿灯亮0100100001红灯亮黄灯亮0101010100绿灯亮红灯亮0110010100绿灯亮红灯亮0111010100绿灯亮红灯亮1000010100绿灯亮红灯亮1001001100黄灯亮红灯亮设置一个置位端set,高电平有效,当有特殊情况发生时,使set为高电平,此时两个方向均为红灯亮,当set还原为低电平时,即当特殊情况结束后,控制器恢复初始状态,正常工作。输入端口:clk(时钟脉冲信号)、set(特殊情况控制信号)输出端口:r_east,g_east,y_east,r_west,g_west,y_west(东西方向红绿灯)选题三:多功能电子表设
6、置一个输入端clk时钟脉冲输入信号,以hout,mout2,mout1,sout2,sout1分别表示时间的时、分、秒,从最低位s1(即秒的个位)开始计数,s2,s1构成一个六十进制计数器,当s1受时钟脉冲触发控制,当s1计数至9时,s2加1,s1从零开始重新计数,以此类推,m2,m1构成一个六十进制计数器,以s2,s1一个计数周期为触发。其中h,m2,m1,s2,s1均用四位二进制数表示,当完成一个整周期后从零开始重新循环。这样就实现了电子表的计时功能。要利用六个七段数码管实现电子表的显示功能,用h2,h1,m2,m1,s2,s1分别表示实现显示功能的数码管,它们在程序中都是以七位二进制逻辑
7、值表示,其表示方法与对应的十进制数值关系如下:十进制数值二进制数值七段数码管表示000000111111100010000110200101011011300111001111401001100110501011101101601101111101701110000111810001111111910011101111输入端口:clk(时钟脉冲信号)输出端口hout,mout2,mout1,sout2,sout1,h2,h1,m2,m1,s2,s13、设计仿真及结果分析选题一仿真波形如下:选题二仿真波形如下:选题三仿真波形如下:4、设计及仿真中的体会设计过程中调试的时候发现不能进行调试,后来经
8、过学习和查阅资料发现程序文件名的后缀应为“.vhd”,并且文件名应该与程序中命名 的实体名一致,否则都会造成程序段不能编译调试成功,后来,把这些都改正之后发现程序还是调试不了,在确认程序设计思想及逻辑都没有问题之后,更加百思不得其解,也没有出什么明显的语法错误,慢慢琢磨了很久之后还是不清楚,后来突然发现原来自己少些了一个库文件的调用“USE IEEE.STD_LOGIC_UNSIGNED.ALL;”,添加之后便能正常运行了, 5、对本次课程设计的体会和建议对于自己所犯的这个“小错误”我自己都觉得很好笑,不过我也因此更加明白细心对于编程的重要性,真可谓“一着不慎,全盘皆输”啊,此后一定要随时提醒
9、自己要细心。不过总的来说,这次课程设计让我收获了不少,让我对maxplux软件进一步了解,对vhdl语言的编程思想也更加了解,增加了操作的熟练程度。6、参考文献(包括电路图和元器件清单)1 作者:侯伯亨,刘凯,顾新书名:VHDL硬件描述语言与数字逻辑电路设计出版社:西安电子科技大学出版社出版时间:2009.082 作者:蒋清明书名:语言程序设计出版社:人民邮电出版社出版时间:2008.043 作者:田红丽,张涛书名:基于VHDL微处理器模拟实验系统的设计与实现出版社:河北省科学院 附录一 选题一源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IE
10、EE.STD_LOGIC_UNSIGNED.ALL;ENTITY light ISPORT(clk,clr:IN STD_LOGIC; output:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END ENTITY light;ARCHITECTURE example OF light ISSIGNAL count:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(clk,clr)ISBEGINIF(clr=1)THENcount=000;ELSIF(clkEVENT AND clk=1)THEN IF(count=101)THEN co
11、unt=000; ELSE countoutputoutputoutputoutputoutputoutputoutput=000;END CASE;END IF;END PROCESS;END ARCHITECTURE example;附录二 选题二源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY trafficlight ISPORT(clk,set:IN STD_LOGIC; r_east,g_east,y_east,r_west,g_west,y_west:OUT STD
12、_LOGIC);END ENTITY trafficlight;ARCHITECTURE example OF trafficlight ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL output:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINPROCESS(clk,set)ISBEGINIF(set=1)THEN count=1010; ELSIF(clkEVENT AND clk=1)THEN IF(count=1001OR count=1010)THEN count=0000; ELSE countoutput
13、outputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutput=100100;END CASE;r_east=output(5);g_east=output(4);y_east=output(3);r_west=output(2);g_west=output(1);y_west=output(0);END PROCESS;END ARCHITECTURE example;附录三 选题三源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned
14、.all;entity a2 isport(clk:in std_logic; hdout:out std_logic_vector(3 downto 0); mdout2:out std_logic_vector(3 downto 0);mdout1:out std_logic_vector(3 downto 0);sdout2:out std_logic_vector(3 downto 0);sdout1:out std_logic_vector(3 downto 0);m2,m1,s2,s1:out std_logic_vector(6 downto 0); end entity a2;
15、architecture e1 of a2 issignal out5:std_logic_vector(3 downto 0);signal out4:std_logic_vector(3 downto 0);signal out3:std_logic_vector(3 downto 0);signal out2:std_logic_vector(3 downto 0);signal out1:std_logic_vector(3 downto 0); begin hdout=out5; mdout2=out4;mdout1=out3;sdout2=out2;sdout1=out1;proc
16、ess(clk) isbeginif(clk event and clk=1) thenif(out1=1001) thenout1=0000; elseout1=out1+1; end if;end if;end process;process(clk) isbeginif(clkevent and clk=1) then if(out1=1001) thenif(out2=0101) thenout2=0000;elseout2=out2+1;end if;end if;end if;end process;process(clk) isbeginif(clkevent and clk=1
17、)thenif(out1=1001) then if(out2=0101) thenif(out3=1001) thenout3=0000;elseout3=out3+1;end if;end if;end if;end if; end process;process(clk) isbeginif(clkevent and clk=1)thenif(out1=1001) then if(out2=0101) thenif(out3=1001) thenif(out4=0101) thenout4=0000;elseout4=out4+1; end if;end if;end if;end if
18、;end if;end process; process(clk) isbeginif(clkevent and clk=1)thenif(out1=1001) then if(out2=0101) thenif(out3=1001) thenif(out4=0101) thenif(out5=1011) thenout5=0000;elseout5s1s1s1s1s1s1s1s1s1s1s1s2s2s2s2s2s2s2m1m1m1m1m1m1m1m1m1m1m1m2m2m2m2m2m2m2=0000000; end case; end process;end architecture e1;
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。