福大EDA交通灯控制电路的设计(新实验箱).doc
文本预览下载声明
可编程逻辑设计实验
学号:111201006
姓名:方毓韬
2014.11.11
实验五 交通灯控制电路的设计
一、实验目的:
进一步学习复杂数字电路的设计方法,提高利用硬件描述语言进行电路设计的技巧和熟练程度。
二、实验要求及原理:
满足图1顺序工作流程。图中设南北方向的红、黄、绿灯分别为NSR、NSY、NSG,东西方向的红、黄、绿灯分别为EWR、EWY、EWG。它们的工作方式有些必须是并行进行的,即南北方向绿灯亮,东西方向红灯亮;南北方向黄灯亮,东西方向红灯亮;南北方向红灯亮,东西方向绿灯亮;南北方向红灯亮,东西方向黄红灯亮。
图1 交通灯顺序工作流程图
应满足两个方向的工作时序:即东西方向亮红灯时间应等于南北方向亮黄、绿灯时间之和,南北方向亮红灯时间应等于东西方向亮黄、绿灯时间之和。时序流程图2所示。
图2中,假设每个单位时间为3秒,则南北、东西方向绿、黄、红灯亮时间分别15秒、3秒、18秒,一次循环为36秒。其中红灯亮的时间为绿灯、黄灯亮的时间之和。
图2 交通灯时序工作流程图
十字路口要有数字显示,作为时间提示,以便人们更直观地把握时间。具体为:当某方向红灯亮时,置显示器为某值,然后以每秒减1计数方式方式工作,直至减到数为“0”,十字路口红、绿灯交换,一次工作循环结束,进入下一步某方向地工作循环。
例如:当南北方向从黄灯转换成红灯时,置南北方向数字显示为24,并使数显计数器开始减“1”计数,当减到“0”,时,此时红灯灭,而南北方向的绿灯亮;同时,东西方向的红灯亮,并置东西方向的数显为24。
三、实验内容
1、根据实验要求及原理1、2画出交通指示灯控制电路原理框图。
提示:两个方向的控制电路可以共用一个24进制计数器实现。
2、用VHDL硬件描述语言层次化设计方法进行顶层文件和各模块电路的设计。
3、用QuartusII对设计进行编译、综合、仿真,给出仿真波形和时序分析数据(不包括数码显示部分)。
4、通过QuartusII集成环境,将设计下载到实验电路上进行硬件测试。
管脚锁定:
信号 旧试验箱 新试验箱NO.5 管脚号 连接的器件 管脚号 连接的器件 Clk1 43 Clk1(1HZ) 153 CLK2(1Hz) start 30 SW1 233 SW1 NSG 29 LED12 12 LED8 NSY 28 LED11 8 LED7 NSR 27 LED10 7 LED6 EWG 18 LED3 3 LED3 EWY 17 LED2 2 LED2 EWR 16 LED1 1 LED1 数字显示所需管脚参考实验六。
5、画出完整的交通灯控制电路原理框图(含数码显示部分)。
6、修改上述内容2的设计,增加数码显示部分。
注意:两方向的计数要求分别显示在数码管1、2和数码管7、8上。
7、用QuartusII对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。
8、再次将设计下载到实验电路上进行硬件测试。
四、思考题:
1、控制电路除用有限状态机实现外,还可以采用什么方法实现?
答: 还可以用进程语句实现,用一个十二进制的计数器作为控制模块,则EWR、EWG、EWY、NSR、NSG、NSY在计数器不同输出的时候有相应的输出。
2、如果增加夜间显示(即全部黄灯闪烁),电路该怎样设计?
答: 把黄灯输出信号EWY、NSY作为使能端,接到一个锁存器上,锁存器的输入时一个频率较高的信号,输出接黄色LED。当EWY、NSY=1时,黄灯闪烁。
五、实验总结:
这个实验呢,总体来说是最难的一个。在学习EDA时间上较短而上的问题也造成了不少麻烦造就了困难。推敲中得以完成。总而言之这次试验程度上了我的能力受益:程序
module traffic (clk,EN,ACOUNT1,ACOUNT2,BCOUNT1,BCOUNT2,LAMPA,LAMPB);
input EN,clk;
output[3:0] ACOUNT1,ACOUNT2,BCOUNT1,BCOUNT2;
output[2:0] LAMPA,LAMPB;
reg[3:0] ar1,ar2,ag1,ag2,ay1,ay2,br1,br2,bg1,bg2,by1,by2;
reg[3:0] numa1,numa2,numb1,numb2;
reg tempa,tempb;
reg[1:0] counta,countb;
reg[2:0] LAMPA,LAMPB;
always @ (EN)
if(!EN)
begin//预置数部分
ar1=4d8;
ar2=4d1;
ag1=4d5;
ag2=4d1;
ay1=4d3;
ay2=
显示全部