EDA报告代码完整版_第1页
EDA报告代码完整版_第2页
EDA报告代码完整版_第3页
EDA报告代码完整版_第4页
EDA报告代码完整版_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-5"\h\z\o"CurrentDocument"一、设计任务与要求1二、流程图与示意图2\o"CurrentDocument"三、设计思路及原理图3\o"CurrentDocument"1、原理图3\o"CurrentDocument"2、总体思路3\o"CurrentDocument"3、状态转移图.4\o"CurrentDocument"四、设计实现5\o"CurrentDocument"1、程序5\o"CurrentDocument"2、仿真波形103、引脚分配11\o"CurrentDocument"4、程序下载12\o"CurrentDocument"五、总结12一、设计任务与要求设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是40、5和45秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。二、流程图与示意图三、设计思路及原理图1、原理图JiqoTongDengclkPIN_51INPUT

VCCPIN_52INPUTVCCclkred1enred2yellow1yellow2green1green2OUTPUT:red1PIN_119OUTPUT!匕red2PIN_118OUTPUT!:yellow1PIN133OUTPUT[:yellow2PIN132OUTPUT!'green1PIN113OUTPUT'>green2PIN_112inst■5clknumH[3..0]ennumL[3..0]IPIN_137PIN_136PIN_135PIPp^"1OUTPUT!,high1[3..0]OUTPUT|low1[3..0]inst1^_2PIN_144PIN_143PIN_141PIN_139PIN_7PIN_8PIN_9clknumH[3..0]ennumL[3..0]-——PIN_24OUTPUThigh2[3..0]i——I>「OUTPUT|low2[3..0]—inst5PIN_25PIN_28PIN_30PIN_412、总体思路本设计主要有两种模块,一种控制红黄绿灯的变化,数目为1,即JiaoTongDeng。另一种控制各种颜色灯的倒计时计数显示,数目为2个分别m45和m45_2。时钟接入实验箱上所提供的1Hz外部时钟。其中灯的控制模块采用VHDL设计,分为计数、状态转移和输出三个进程。其中5个状态分别为:S4:1红亮1红亮(紧急)S0:1绿亮2红亮(40s)S1:1黄亮2红亮(5s)S2:1红亮2绿亮(40s)S3:1红亮2黄亮(5s)使能位为1时,灯在S0-S3之间转移;使能位为0时,即紧急状态时,状态转为S4,同时程序保存此时的状态,待紧急状态解除后,恢复进入紧急状态时的状态。M45计数器模块负责控制两个倒数计时器的工作,用VHDL实现。原理为每个方向的交通灯计时为三个状态绿(40s)—黄(5s)—红(45s)循环。所以在内部用状态的转移为计数器分别循环置数为39、4、44。实现循环计数39~0、4~0、44~0O本设计中两个M45计数器的区别仅在于一个从绿灯状态开始,一个从红灯状态开始,由于状态为循环,所以其他部分相同。进入紧急状态时,两路都为红灯闪烁,同时计数器在“00〃和〃FF”两个状态闪烁。推出紧急状态后,恢复进入紧急状态时的状态和计数。状态的恢复通过临时储存状态的两个变量tempL和tempH实现。具体实现见代码。3、状态转移图I、设计实现1、程序jiaoTongDeng.vhd用于实现红黄绿灯的控制libraryieee;useieee.std_logic_unsigned.all;useieee.std_logic_1164.all;entityJiaoTongDengisport(clk:instd_logic;en:instd_logic;red1,red2:outstd_logic;yellow1,yellow2:outstd_logic;green1,green2:outstd_logic);endJiaoTongDeng;architectureoneofJiaoTongDengistypestateis(s0,s1,s2,s3,s4);--5个状态signalstate_now:state:=s0;--当前状态,初始化为s0signalcount:integer:=0;--计数变量begin--计数进程counter:process(clk)beginif(clk'eventandclk='1')then时钟上升沿if(en='1')thenif(count<90)then--实现1-90循环模90计数count<=count+1;elsecount<=1;endif;endif;endif;endprocess;--状态转移进程state_trans:process(count)beginif(clk'eventandclk='1')thencasestate_nowis--根据当前状态按顺序进行转换,en为0时进入紧急whens0=>--s0状态下的计时if(en='1')thenif(count>39)thenstate_now<=s1;endif;elsestate_now<=s4;endif;whens1=>--s1状态下的计时if(en='1')thenif(count>44)thenstate_now<=s2;endif;elsestate_now<=s4;endif;whens2=>--s2状态下的计时if(en='1')thenif(count>84)thenstate_now<=s3;endif;elsestate_now<=s4;endif;whens3=>--s3状态下的计时if(en='1')thenif(count>89)thenstate_now<=s0;endif;elsestate_now<=s4;endif;whens4=>--s4状态下的计时if(en='1')thenif(count<39)thenstate_now<=s0;elsif(count<44)thenstate_now<=s1;elsif(count<84)thenstate_now<=s2;elsif(count<89)thenstate_now<=s3;endif;elsestate_now<=s4;endif;endcase;endif;endprocess;--output进程把对应状态的绿红黄灯输出output:process(clk)begincasestate_nowiswhens0=>--s0状态下的灯显示方式red1<='0';green1<='1';yellow1<='0';whens1=>--s1状态下的灯显示方式red1<='0';green1<='0';yellow1<='1';whens2=>--s2状态下的灯显示方式red1<='1';green1<='0';yellow1<='0';whens3=>--s3状态下的灯显示方式red1<='1';green1<='0';yellow1<='0';whens4=>--s4状态下的灯显示方式red1<='1';green1<='0';yellow1<='0';endcase;endprocess;endone;m45.vhd用于实现单方向的计数器显示控制libraryieee;useieee.std_logic_unsigned.all;useieee.std_logic_1164.all;entitym45isport(clk:instd_logic;en:instd_logic;lightH,lightL:outstd_logic_vector(3downto0));endm45;architectureoneofm45issignaltempL,tempH:std_logic_vector(3downto0);--紧急状态时储存当前状态signalnumberL:std_logic_vector(3downto0):="0000";--计时低位数字signalnumberH:std_logic_vector(3downto0):="0000";--计时高位数字signalflag:std_logic:='0';--是否为紧急状态标志signalstatus:std_logic_vector(1downto0):="00”;--用于记录状态--另一程序m45_2.vhd仅在此处的初始化不一样,为“10”,其他代码相同beginprocess(clk)beginif(clk'eventandclk='1')thenif(en='1')then--判断是否紧急,1为正常状态if(flag='1')then--若flag为1,说明刚刚恢复正常,需要从tempL和tempH恢复flag<='0';if(tempL=0andtempH=0)thenIf(status=”00”)then--00表示绿灯状态numberL<="1001";numberH<="0011";status<="01";elsif(status="01")then--01表示黄灯状态numberL<="0100";numberH<="0000";status<="10";else--表示红灯状态numberL<="0100";numberH<="0100";status<="00";endif;elsif(tempL=0)then--时间递减方式numberL<="1001";numberH<=tempH-1;elsenumberL<=numberL-1;numberH<=tempH;endif;countH<=tempH;elsif(numberL=0andnumberH=0)then--若高地位都变为0,则进行下一个状态的置数if(status="00")then—绿灯,置数39numberL<="1001";numberH<="0011";status<="01";elsif(status="01")then—黄灯,置数4numberL<="0100";numberH<="0000";status<="10";else—红灯,置数44numberL<="0100";numberH<="0100";status<="00";endif;elsif(numberL=0)then--仅低位到0,高位减1,低位置为9numberL<="1001";numberH<=numberH-1;elsenumberL<=numberL-1;endif;elsif(en='0')then--en若为0,则为紧急状态if(flag='0')then--flag为0则刚转入紧急状态,保存进入前状态flag<='1';tempL<=numberL;--把紧急状态前的低位记录tempH<=numberH;--把紧急状态前的高位记录numberL<="0000";--低位赋值0numberH<="0000";--高位赋值0elseif(numberH=0andnumberL=0)then--还原紧急状态前的值numberH<=tempH;numberL<=tempL;else--重新开始循环numberL<="0000";numberH<="0000";endif;endif;endif;endif;endprocess;lightL<=numberL;lightH<=numberH;endone;2、仿真波形正常情况下进入紧急状态与恢复正常状态3、引脚分配EP2C3T144C8即a~aa~aMgm源/w3■&/xgwo■&TopViewEP2C3T144C8WireBondCycloneII11dk3.3-VLmi(defeult)PIN_512en3.3-VLmi(defeult)PIN_523■_/green13.3-VLmi(defeult)PIN_1134■_Zgreen23.3-VLE.(defeult)PIN_1125■_/highl[3]3.3-VLEL(defeult)PIN_1376■_Zhigh1[2]3.S-VLEL(defeult)PIN_1367■_/highl[l]3.3-VLE.(defeult)PIN_1358■_Zhighl[O]3.3-VLE.(defeult)PIN_1349■_Zhigh2[3]3.S-VLET.(defeult)PIN_2410■_/high2[2]3.3-VLmi(defeult)PIN_911■_Zhigh2[l]3.3-VLE.(defeult)PIN_812■_Zhigh2[0]3.S-VLEL(defeult)PIN_713■_Zlowl[2f]3.S-VLEL(defeult)PIN_14414■_/lawl[2]3.3-VLE.(defeult)PIN_14315■_Zlawl[l]3.3-VLEL(defeult)PIN_14116■_Zlowl[0]3WLEL(defeult)PIN_13917■_/Iaw2[?]3.3-VLmi(defeult)PIN_41IS■_ZIaw2[2]3.3-VLE.(defeult)PIN_3019■_ZIow2[l]3.3-VLEL(defeult)PIN_2820■_ZIow2[0]3.3-VLEL(defeult)PIN_2521■_/redl3.3-VLE.(defeult)PIN_11922■_Zred23.3-VLEL(defeult)PIN_11S23■_Zyellowl3.3-VLEL(defeult)PIN_13324■_/yellow23.3-VLmi(defeult)PIN_132JiaoTongDengclkINPUTclkred1enred

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论