EDA实验(Quartus Ⅱ+fpga) (四)---交通灯设计

这篇具有很好参考价值的文章主要介绍了EDA实验(Quartus Ⅱ+fpga) (四)---交通灯设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
本文主要介绍了EDA原理与应用这门课程的相关实验及代码。使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cycloneⅤ 5CSEMA5F31C6。
(一)实验目的
(1)熟悉交通灯控制器的工作原理;
(2)了解设计中的优化方案;
(3)进一步掌握状态机的设计;
(4)学习较复杂数字系统设计。
(二)设计要求
实现一个由一条主干道和一条乡间公路形成的十字路口的交通灯控制器功能:
(1)有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;
(2)交通灯由绿转红前有4秒亮黄灯的间隔时间,由红转绿没有间隔时间;
(3)乡间公路右侧各埋有一个串连传感器,当有车辆准备通过乡间公路时,发出请求信号S=1,其余时间S=0;
(4)平时系统停留在主干道通行(MGCR)状态,一旦S信号有效,经主道黄灯4秒(MYCR)状态后转入乡间公路通行(MRCG)状态,但要保证主干60s后才能转换;
(5)一旦S信号消失,系统脱离MRCG状态,即经乡道黄灯4秒(MRCY)状态进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于20秒钟;
(三)实验代码

module jiaotongdeng(clk,s,rst,MG,CR,MY,MR,CG,CY,SG0,SG1,sw,gw,clk1,c);
   input clk,rst,s;
	output reg MG,CR,MY,MR,CG,CY;		//主绿黄红,乡绿黄红
	output gw,sw,clk1;
	output reg [6:0] SG0,SG1;
	output reg [5:0] c;
	parameter s0=0,s1=1,s2=2,s3=3;
	reg clk1;
	reg [7:0] timCG,timMG,timY;
	reg [7:0] tim;
	reg [1:0] cs;
	reg [1:0] next_state;
	reg [30:0] cnt;
	reg [7:0] a;
   reg [3:0]gw,sw;
	
//分频器
	//仿真
	always @(posedge clk)
       begin 
		   cnt=cnt+1;
         if(cnt>1) begin clk1=1'b1;  cnt=0;  end
         else clk1=1'b0;  
		        gw<=tim[3:0];
		        sw<=tim[7:4];
				  c[0]<=CY;c[1]<=CG;c[2]<=CR;
				  c[3]<=MY;c[4]<=MG;c[5]<=MR;			  
         end
	//跑板子,50MHZ-49999999
/*
		always @(posedge clk)
       begin 
		   cnt=cnt+1;
         if(cnt>49999999) begin clk1=1'b1;  cnt=0;  end
         else clk1=1'b0;  
		        gw<=tim[3:0];
		        sw<=tim[7:4];
				  c[0]<=CY;c[1]<=CG;c[2]<=CR;
				  c[3]<=MY;c[4]<=MG;c[5]<=MR;			  
         end
*/	
	//CS状态选择
	always@(cs)
	    case(cs)
	      s0:if(tim=='b0&&s=='b1) next_state<=s1; else next_state<=s0;
	      s1:if(tim=='b0) next_state <=s2; else next_state<=s1;
	      s2:if(tim=='b0||s==0) next_state<=s3; else next_state<=s2;
	      s3:if(tim=='b0) next_state<=s0; else next_state<=s3;
	      default: next_state<=s0;
	    endcase
	//复位	 
	 always@(posedge clk1 or negedge rst)
	    begin
		   if(!rst)
			  cs<=s0;
			else 
			  cs<=next_state;
		 end
	//cs-->此时状态	 
	 always@(negedge clk1)
	    case(cs)
		   s0:begin MY<='b0;MG<='b1;MR<='b0;CG<='b0;CY<='b0;CR<='b1;end		//主绿乡红
			s1:begin MY<='b1;MG<='b0;MR<='b0;CG<='b1;CY<='b0;CR<='b0;end		//主黄乡绿
			s2:begin MY<='b0;MG<='b0;MR<='b1;CG<='b1;CY<='b0;CR<='b0;end		//主红乡绿
			s3:begin MY<='b0;MG<='b0;MR<='b1;CG<='b0;CY<='b1;CR<='b0;end		//主红乡黄
			default:begin MY<='b0;MG<='b1;MR<='b1;CG<='b0;CY<='b0;CR<='b0;end
	    endcase
	//判断	 
    always@(negedge clk1,negedge rst)
        if(!rst)
	       begin timMG<=8'b01011001;timCG<=8'b00011001;timY<=8'b00000011; end	//89,25,3
		  else 
		    begin 
		      case(cs)
		        'b00:begin
				         if(timMG>0)
							  begin 
							    begin if(timMG[3:0]==0) timMG<=timMG-7;
								       else timMG<=timMG-1;
								 end 
								 tim<=timMG;
							  end 
							 else begin tim<=0;timMG<=8'b01011001;
						 end 
						 end 
				  'b01:begin
				         if(timY>0)
							  begin 
							    begin if(timY[3:0]==0) timY<=timY-7;
								       else timY<=timY-1;
								 end 
								 tim<=timY;
							  end 
							 else begin tim<=0;timY<=8'b00000011;
						 end 
						 end 
			     'b10:begin
				         if(timCG>0)
							  begin 
							    begin if(timCG[3:0]==0) timCG<=timCG-7;
								       else timCG<=timCG-1;
								 end 
								 tim<=timCG;
							  end 
							 else begin tim<=0;timCG<=8'b00011001;
						 end 
						 end 
			  	  'b11:begin
				         if(timY>0)
							  begin 
							    begin if(timY[3:0]==0) timY<=timY-7;
								       else timY<=timY-1;
								 end 
								 tim<=timY;;
							  end 
							 else begin tim<=0;timY<=8'b00000011;
						 end 
						 end 
					default:begin 
					          timMG<=8'b01011001;timCG<=8'b00011001;
								 timY<=8'b00000011;tim<=0;
							  end
					endcase 
				end 
 	//数码管显示
    always@(posedge clk1)
       begin 
			case(gw)
			   0:SG0<=7'b1000000; 1:SG0<=7'b1111001;
            2:SG0<=7'b0100100; 3:SG0<=7'b0110000;
            4:SG0<=7'b0011001; 5:SG0<=7'b0010010;
            6:SG0<=7'b0000010; 7:SG0<=7'b1111000;
            8:SG0<=7'b0000000; 9:SG0<=7'b0010000; //7段译码值
			endcase
			case(sw)
			   0:SG1<=7'b1000000; 1:SG1<=7'b1111001;
            2:SG1<=7'b0100100; 3:SG1<=7'b0110000;
            4:SG1<=7'b0011001; 5:SG1<=7'b0010010;
            6:SG1<=7'b0000010; 7:SG1<=7'b1111000;
            8:SG1<=7'b0000000; 9:SG1<=7'b0010000; //7段译码值
			endcase 	
		 end 
endmodule

(四)管脚分配
Input
Clk AF14 S AC12
Rst AB12
Output
MG,CR,MY,MR,CG,CY led9-led4
SG0,SG1; 数码管1-0文章来源地址https://www.toymoban.com/news/detail-433960.html

到了这里,关于EDA实验(Quartus Ⅱ+fpga) (四)---交通灯设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA智能交通灯控制器系统系统设计

    把由5OM的有源晶振产生的现场可编程逻辑器件FPGA 的系统时钟输入到分频模块,经分频模块分频产生频率为1Hz的时钟脉冲,作为控制定时模块、控制模块、紧急模块、计数模块的时钟信号,然后再由定时模块来控制紧急模块和控制模块,按照交通管理规则控制交通工作状态的

    2024年02月04日
    浏览(49)
  • 基于FPGA的交通灯电路设计(含程序)

    目录 题目要求 设计方法 部分程序设计 (1) 以车为主体,绿灯、黄灯、红灯、绿灯依次点亮; (2)十字路口,具有两组红绿灯; (3)采用倒计时显示剩余时间,数码管动态显示; (4)红绿灯时间按键可调。 用六位数码管显示,靠左和靠右两位数码管分别显示东西和南北

    2024年02月11日
    浏览(40)
  • 基于FPGA的交通灯设计(加强版,涵盖倒计时)

    ##一、实验任务要求   1)实现一交通十字路口处红绿灯的基本定时控制功能,要求东西方向灯色循环为绿灯45秒,黄灯5秒,左拐灯15秒,黄灯5秒,红灯40秒,黄灯5秒;南北方向灯色循环为红灯65秒,黄灯5秒,绿灯20秒,黄灯5秒,左拐灯15秒,黄灯5秒。 2)实现东西方向和南北方

    2024年02月04日
    浏览(42)
  • 实验(八):交通灯控制

            1. 学习模拟交通灯控制的实现方法;         2. 掌握Proteus硬件仿真与调试。         1.根据要求编写程序,并写出原理性注释;         2. 将检查程序运行的结果,分析一下是否正确;         3. 完成所建工程的仿真及调试。 按照电路要求在Protu

    2024年02月03日
    浏览(53)
  • FPGA学习心得分享——交通灯(EGO1)

      学期快结束了,学了一个学期FPGA课程,通过自己思索加上老师的指导我完成了自己第一份交通灯的作业,我希望把经验分享给学习Verilog遇到困难的同学,更希望大家都能顺利完成自己的作业。   灯能左右改变方向,作品能够模拟红、黄、绿、左右转弯灯等形式,按键可以

    2024年02月07日
    浏览(49)
  • 基于高云FPGA开发板的十字路口交通灯

    结合高云MiniStar_Nano EDA开发板,完成设计十字路口交通信号灯控制系统。 1.要求该交通灯为三色灯控制器,红灯亮表示禁止通行,绿灯亮表示允许通行,黄灯亮表示要求压线车辆快速穿越。主干道和次干道灯的亮灭时序按照交通规则设置。 2.可以调整主干道和次干道绿灯和红

    2024年01月19日
    浏览(81)
  • 单片机交通灯设计实例

    目录 一、初步设计 二、实现过程 三、实现效果 一、初步设计 在Profession中设计一个交通灯的仿真图,结合Keil编写c语言代码实现十字路口的交通灯变化。设计的交通灯主要变化有如下五种情况:(可根据自身的交通灯变化情况进行相应的代码修改) 第一种情况:东西红灯,南

    2024年02月07日
    浏览(46)
  • 单片机8051设计交通灯

    目录 一、功能要求 要求实现的功能 二、设计方案 1.系统时钟 2. 红绿灯时长及夜间模式时间段的存储 3.紧急情况设计 4.夜间模式设计 5.夜间行人过路设计 6.系统时钟及系统参数设置显示 7.数码管显示倒计时 8.LED显示红绿灯 三、系统硬件设计 1.数码管显示 2.矩阵键盘 3.蜂鸣器

    2024年01月17日
    浏览(46)
  • 基于单片机的交通灯设计

    本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。随着社会经济的发

    2024年02月06日
    浏览(86)
  • 电子技术课程设计—交通灯控制系统设计

    目录 摘要 1 设计目的及要求 1.1设计目的 1.2 题目与要求 2 总体方案设计 2.1 提出原理方案 方案(1):基于同步模型的电路设计 方案(2):基于异步模型的加法计数电路设计 方案(3):基于异步模型的减法计数电路设计 2.2 原理方案的确定 3 单元电路设计及仿真 3.1 秒脉冲电

    2024年02月03日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包