您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 实验八 交通灯控制电路的设计
1可编程逻辑设计——实验八报告学院:物理与信息工程学院专业:通信工程年级:2007级班级:二班学号:110700221姓名:林明明指导老师:杨秀芝2实验八交通灯控制电路的设计一、实验目的:进一步学习复杂数字电路的设计方法,提高利用硬件描述语言进行电路设计的技巧和熟练程度。二、实验要求及原理:1、满足图1顺序工作流程。图中设南北方向的红、黄、绿灯分别为NSR、NSY、NSG,东西方向的红、黄、绿灯分别为EWR、EWY、EWG。它们的工作方式有些必须是并行进行的,即南北方向绿灯亮,东西方向红灯亮;南北方向黄灯亮,东西方向红灯亮;南北方向红灯亮,东西方向绿灯亮;南北方向红灯亮,东西方向黄红灯亮。图1交通灯顺序工作流程图2、应满足两个方向的工作时序:即东西方向亮红灯时间应等于南北方向亮黄、绿灯时间之和,南北方向亮红灯时间应等于东西方向亮黄、绿灯时间之和。时序流程图2所示。图2中,假设每个单位时间为3秒,则南北、东西方向绿、黄、红灯亮时间分别15秒、3秒、18秒,一次循环为36秒。其中红灯亮的时间为绿灯、黄灯亮的时间之和。图2交通灯时序工作流程图3、十字路口要有数字显示,作为时间提示,以便人们更直观地把握时间。具体为:当某方向红灯亮时,置显示器为某值,然后以每秒减1计数方式方式工作,直至减到数为“0”,十字路口红、绿灯交换,一次工作循环结束,进入下一步某方向地工作循环。例如:当南北方向从黄灯转换成红灯时,置南北方向数字显示为24,并使数显计数器开南北方向绿灯亮,东西方向红灯亮(5t)南北方向黄灯亮,东西方向红灯亮(1t)南北方向红灯亮,东西方向绿灯亮(5t)南北方向红灯亮,东西方向黄灯亮(1t)123456789101112123456NSGNSYNSREWREWGEWYt5t6tt3始减“1”计数,当减到“0”,时,此时红灯灭,而南北方向的绿灯亮;同时,东西方向的红灯亮,并置东西方向的数显为24。三、实验内容:1、根据实验要求及原理1、2画出交通指示灯控制电路原理框图。提示:两个方向的控制电路可以共用一个24进制计数器实现。2、用VHDL硬件描述语言层次化设计方法进行顶层文件和各模块电路的设计。3、用QuartusII对设计进行编译、综合、仿真,给出仿真波形和时序分析数据(不包括数码显示部分)。4、通过QuartusII集成环境,将设计下载到实验电路上进行硬件测试。管脚锁定:clk:clk143clk1start:PIO2330SW1NSGPIO1929LED12NSYPIO2028LED11NSRPIO2127LED10EWGPIO22LED3EWYPIO12LED2EWRLED15、画出完整的交通灯控制电路原理框图(含数码显示部分)。6、修改上述内容2的设计,增加数码显示部分。注意:两方向的计数要求分别显示在数码管1、2和数码管7、8上。7、用MAX_plusⅡ对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。8、再次将设计下载到实验电路上进行硬件测试。新增管脚锁定:A(6):PIO611SEGgA(5):PIO510SEGfA(4):PIO49SEGeA(3):PIO38SEGdA(2):PIO27SEGcA(1):PIO16SEGbA(0):PIO05SEGa*S(2):80*S(1):79*S(0):78四、思考题:1、控制电路除用有限状态机实现外,还可以采用什么方法实现?2、如果增加夜间显示(即全部黄灯闪烁),电路该怎样设计?实验结果:4交通灯控制电路原理框图:顶层电路的VHDL描述:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytrafficisport(clk,start:instd_logic;NSG,NSY,NSR,EWG,EWY,EWR:outstd_logic;ledNS,ledEW:outstd_logic_vector(7downto0));end;architecturebehavoftrafficiscomponentNSEWport(clk,start:instd_logic;NSG,NSY,NSR,EWG,EWY,EWR:outstd_logic);endcomponent;componentled7sport(clock,start:instd_logic;ledns,ledew:outstd_logic_vector(7downto0));endcomponent;signalclk0,clk1,clk2,clknsr,clkewr:std_logic;beginu1:NSEWportmap(clk=clk,start=start,NSG=NSG,NSY=NSY,NSR=NSR,EWG=EWG,EWY=EWY,EWR=EWR);u2:led7sportmap(clock=clk,start=start,ledns=ledNS,ledew=ledEW);5end;各模块电路的VHDL描述:模块clock的VHDL描述——libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityclockisport(clk,start:instd_logic;clk0,clk1,clk2:outstd_logic);endclock;architecturebehavofclockisbeginprocess(clk,start)variablecql:std_logic_vector(6downto0);beginifclk'eventandclk='1'thenifstart='1'thenifcql48thencql:=cql+1;elsecql:=(others='0');endif;ifcql24thenclk1='1';elseclk1='0';endif;ifcql23andcql48thenclk2='1';elseclk2='0';endif;endif;endif;endprocess;end;模块cnt10的VHDL描述——LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,EN,LD:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);D:INSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREBEHAVOFCNT10IS6BEGINPROCESS(CLK,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFLD='1'THENCQI:=D;IFEN='1'THENIFCQI0THENCQI:=CQI-1;ELSECQI:=1001;ENDIF;ENDIF;ENDIF;ENDIF;IFCQI=0THENCOUT='1';ELSECOUT='0';ENDIF;CQ=CQI;ENDPROCESS;ENDBEHAV;模块NSG的VHDL描述——libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityNSGisport(clk,start:instd_logic;cq:outstd_logic_vector(3downto0);oout:outstd_logic);end;architectureoneofNSGisbeginprocess(clk,start)variablecqi:std_logic_vector(3downto0);beginifclk'eventandclk='1'thenifstart='1'thenifcqi11thencqi:=cqi+1;elsecqi:=(others='0');endif;endif;ifcqi5thenoout='1';elseoout='0';endif;endif;7cq=cqi;endprocess;endone;模块NSR的VHDL描述——libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityNSRisport(clk,start:instd_logic;cq:outstd_logic_vector(3downto0);oout:outstd_logic);end;architectureoneofNSRisbeginprocess(clk,start)variablecqi:std_logic_vector(3downto0);beginifclk'eventandclk='1'thenifstart='1'thenifcqi11thencqi:=cqi+1;elsecqi:=(others='0');endif;endif;ifcqi6thenoout='0';elseoout='1';endif;endif;cq=cqi;endprocess;endone;模块NSEW的VHDL描述——libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityNSEWisport(clk,start:instd_logic;NSG,NSY,NSR,EWG,EWY,EWR:outstd_logic);end;architectureoneofNSEWisbeginprocess(clk,start)variablecqi:std_logic_vector(5downto0);8beginifclk'eventandclk='1'andstart='1'thenifcqi47thencqi:=cqi+1;elsecqi:=(others='0');endif;ifcqi21thenNSG='1';elseNSG='0';endif;ifcqi20andcqi25thenNSY='1';elseNSY='0';endif;ifcqi25thenEWR='1';elseEWR='0';endif;ifcqi24andcqi49thenNSR='1';elseNSR='0';endif;ifcqi24ANDcqi45thenEWG='1';elseEWG='0';endif;ifcqi44ANDCQI49thenEWY='1';elseEWY='0';endif;endif;endprocess;endone;模块led7s的VHDL描述:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityled7sisport(clock,start:instd_logic;ledns,ledew:outstd_logic_vector(7downto0));end;architecturebehavofled7sissignalcqi:std_logic_vector(7downto0);signalcql:std_logic_vector(7downto0);signalcnt6:std_logic_vector(7downto0);signalclk:std_logic;beginclk=clock;process(clk)begin9ifclk'eventandclk='1'thenifstart=
本文标题:实验八 交通灯控制电路的设计
链接地址:https://www.777doc.com/doc-2531480 .html