欢迎来到天天文库
浏览记录
ID:59253155
大小:115.88 KB
页数:5页
时间:2020-09-08
《pld交通灯实验报告含源程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、实验目的1.设计一个简易交通灯控制器,并在实验装置上验证所设计的电路;2.学习层次化设计方法。二、实验要求位于十字路口的交通灯,在A方向和B方向各有红、黄、绿三盏灯,亮灭顺序如表所示,1表示亮,0表示灭,假设灯亮灭时间均为1S。本实验设计输入方法、验证器件不限,最终需建立一个元件符号。A方向B方向红灯黄灯绿灯红灯黄灯绿灯100001100010010010010100001100010100010010100010思考题:如何实现各灯亮灭时间可调?三、模块电路设计拟采用层次化设计方法完成各个模块的设计,即底层电路用VHDL语句实现功能,顶层电路把各个模块连
2、接起来,构成整个交通灯控制。1、分频器1.1、10M的分频器底层电路VHDL程序如下:libraryieee;--库useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;--程序包entitydiv_10Mis--实体port(clk:instd_logic;--输入频率端口clkdivout:outstd_logic);end;architecturef1ofdiv_10Mis--结构体signalcnt:std_logic_vector(23downto0);signalclk_temp:std
3、_logic;constantm:integer:=;beginprocess(clk)--进程的敏感信号为输入频率clkbeginifclk'eventandclk='1'then--如果检测到clk的上升沿嵌套if语句ifcnt=mthenclk_temp<=notclk_temp;--如果cnt=m,则cnt归零cnt<=(others=>'0');elsecnt<=cnt+1;--否则cnt=cnt+1endif;endif;divout<=clk_temp;endprocess;endf1;1.2、10M的分频器顶层模块如下:2、计数器2.1、设计一
4、个8进制计数器底层VHDL语句如下:LIBRARYieee;--库USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;--程序包ENTITYcount_8IS--实体PORT(clk:INstd_logic;q:OUTstd_logic_vector(2DOWNTO0));END;ARCHITECTUREoneOFcount_8IS--定义此实体count_8的结构体名是onesignalq1:std_logic_vector(2DOWNTO0);BEGINPROCESS(clk)BEGINifc
5、lk'eventandclk='1'thenq1<=q1+1;ENDIF;ENDPROCESS;q<=q1;END;2.2、8进制计数器顶层模块:2.3、计数器仿真结果如下:增计数器从0计数到7然后循环输出3个二进制数从000到110。3、译码器3.1、3-6译码器底层VHDL语句如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitygate3_6isport(a:instd_logic_vector(2downto0);y:outstd_logic_vec
6、tor(5downto0));endgate3_6;architectureg1ofgate3_6isbeginwithaselecty<=""when"000",——a=000时将赋给y,以下各条语义雷同""when"001",""when"010",""when"011",""when"100",""when"101",""when"110",""when"111";endg1;3.2、3-6译码器顶层模块:3.3、3-6译码器仿真结果如下:三、顶层整体电路:四、管脚分配五、实验现象A方向红灯亮时,B方向绿灯亮;间隔1sB方向绿灯灭黄灯亮;再间隔1SA方向
7、的黄灯亮,B分方向黄灯亮,1S之后B方向红灯亮;1S后A方向绿灯亮,B方向黄灯亮;1S后A方向黄灯亮,B方向红灯亮,之后1S黄灯亮;1S后A方向红灯亮,B方向黄灯亮。循环闪烁,形成十字路口的交通灯闪烁。
此文档下载收益归作者所有