云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 南昌大学eda实验报告 - 图文

南昌大学eda实验报告 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 23:05:41

reg [35:0]i; reg flag1; reg flag2;

reg [7:0] cnt; initial begin

flag2='b0; flag1='b0;

COUNTER[7:0]='D60;

LED[5:0]<=6'b001100; //主干道是绿灯乡村道是红灯 end

always @(posedge clk) begin cnt=cnt+1;

if (cnt==1000) begin CPB=1'b1; cnt=0; end else CPB=1'b0; end

always @(posedge clk) begin

if (sel<1) sel=sel+1; else sel=0; end //sel为数码管选择 always @(posedge clk) begin

if(COUNTER[3:0]==4'D0 && COUNTER[7:4]==4'D0) //在数码管是60时判断

是否有信号s的出现

begin

if(S) //S为1即乡村想中断的情况下 begin

if(LED[5:0]==6'b001100) begin

LED[5:0]<=6'b010100; //表示主干道是黄灯而乡村是红

COUNTER[7:4]<=4'D0; //显示的是4秒钟 COUNTER[3:0]<=4'D4; end

else if(LED[5:0]==6'b010100) //表示4秒钟过后的乡村开始通

路了

begin

LED[5:0]<=6'b100001; //表示主干道是红灯而乡村是绿

COUNTER[7:4]<=4'D2; //显示的是20秒钟 COUNTER[3:0]<=4'D0; flag1=1'b1; end

else if(LED[5:0]=='b100001) //表示20秒过后主干道通行了

begin

LED[5:0]<='b100010; //表示主干道是红灯而

乡村是黄灯

COUNTER[7:4]<=4'D0; //显示的是4秒钟 COUNTER[3:0]<=4'D4; flag1='b0; end

else if(LED[5:0]=='b100010) begin

LED[5:0]<='b001100; //主干道是绿灯乡村道是

红灯

COUNTER[7:4]<=4'D6; //显示的是60秒钟 COUNTER[3:0]<=4'D0; end end else //S为0即乡村不想中断的情况下 begin

if(LED[5:0]=='b010100) //表示4秒钟过后的乡村开始通路了 begin

LED[5:0]<='b100001; //表示主干道是红灯而乡村是

绿灯

COUNTER[7:4]<=4'D2; //显示的是20秒钟 COUNTER[3:0]<=4'D0;

flag1=1'b1; //表示可以开始进行20秒的检查是否乡村 end

else if(LED[5:0]=='b100001) //表示20秒过后主干道可以通行

begin

LED[5:0]<='b100010; //表示主干道是红灯而乡村

是黄灯

COUNTER[7:4]<=4'D0; //显示的是4秒钟 COUNTER[3:0]<=4'D4; flag1='b0; end else if(LED[5:0]=='b100010) //表示4秒过后主干道通行了 begin

LED[5:0]<='b001100; //表示主干道是绿灯而乡村

是红灯

COUNTER[7:4]<=4'D6; //显示的是60秒钟 COUNTER[3:0]<=4'D0;end else

if(LED[5:0]=='b001100) begin

flag2='b1; //60秒过后才可以让乡村中断主干道 LED[5:0]<='b001100;//主干道是绿灯乡村道是红灯 COUNTER[7:4]<=4'D6; //再次显示60秒钟 COUNTER[3:0]<=4'D0; end end end else

begin

if(S && (flag2=='b1)) //表示乡村道路有信号并且可以让乡村道路通行

了,乡村想中断

begin

LED[5:0]<='b010100; //表示主干道是黄灯而乡村是红灯 COUNTER[7:4]<=4'D0; //显示的是4秒钟 COUNTER[3:0]<=4'D4; flag2='b0; end else begin

if(COUNTER[3:0]==4'D0) //正常计数 begin

COUNTER[7:4]=COUNTER[7:4]-4'D1; COUNTER[3:0]=4'D9; end else

COUNTER[3:0]=COUNTER[3:0]-4'D1; end end if(flag1=='b1) begin //乡村不想绿灯了,想中断其20秒的绿灯

if(!S) begin

flag2='b0; flag1='b0;

LED[5:0]<='b100010; //表示主干道是红灯而乡村是黄灯 COUNTER[7:4]<=4'D0; //显示的是4秒钟 COUNTER[3:0]<=4'D4; end end end

always @(sel) begin case (sel)

0: a=COUNTER[7:4]; //1数码管为十位

1: a=COUNTER[3:0]; default: a=0; endcase case (a)

0:LED1[7:0]='b00111111; 1:LED1[7:0]='b00000110; 2:LED1[7:0]='b01011011; 3:LED1[7:0]='b01001111; 4:LED1[7:0]='b01100110; 5:LED1[7:0]='b01101101; 6:LED1[7:0]='b01111101; 7:LED1[7:0]='b00000111; 8:LED1[7:0]='b01111111; 9:LED1[7:0]='b01101111; default: LED1[7:0]=8'b11111111; endcase end

endmodule 赋值模块 input clk;

reg CPB; //时钟 input S;

output [2:0] sel;

reg [2:0] sel; //指明乡村路口是否有汽车的通行信号 reg [3:0]a;

output [5:0] LED; //信号灯的显示 output [7:0] LED1; //显示时间的十位 output [8:0] COUNTER; //数码的显示 reg [5:0] LED;

reg [7:0] COUNTER; reg [7:0] LED1; reg [35:0]i; reg flag1; reg flag2;

reg [7:0] cnt; initial begin

flag2='b0; flag1='b0;

COUNTER[7:0]='D60;

LED[5:0]<=6'b001100;

Clk为系统时钟1KHz,可以作为扫描频率,将其分频之后的CPB作为秒的计数频率,S为乡道是否想中断主道的信号,sel为循环扫描信号,LED为信号灯的显示,LED1为显示时间的十位,COUNTER为时间数码的显示。

搜索更多关于: 南昌大学eda实验报告 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

reg [35:0]i; reg flag1; reg flag2; reg [7:0] cnt; initial begin flag2='b0; flag1='b0; COUNTER[7:0]='D60; LED[5:0]<=6'b001100; //主干道是绿灯乡村道是红灯 end always @(posedge clk) begin cnt=cnt+1; if (cnt==1000) begin CPB=1'b1; cnt=0; end else CPB=1'b0; end always @(posedge clk) begin i

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com