没有合适的资源?快使用搜索试试~ 我知道了~
用verilog HDL设计交通灯
3星 · 超过75%的资源 需积分: 11 47 下载量 41 浏览量
2012-10-14
13:26:47
上传
评论 6
收藏 3KB TXT 举报
温馨提示
试读
3页
用VERILOG HDL语言设计频率为1HZ的交通灯,分为主干道、辅干道,分别有红、绿、黄、左转灯、黄灯循环显示,各灯显示时间不同。
资源推荐
资源详情
资源评论
module JTD(clk, en, lampa, lampb, numa, numb);
input clk, en;//时钟和复位输入
output[7:0] numa,numb;//BCD码计数值输出
output[3:0] lampa, lampb;// 不同颜色交通灯的亮灭控制信号输出
reg[2:0] statea, stateb;//电路当前状态
reg[7:0] numa, numb;
reg[3:0] lampa, lampb;
reg[25:0]count; wire clk1hz;
reg tempa, tempb;// 计数器的计数结束标志
parameter ared =8'h55,ayellow=8'h5,agreen=8'h40,aleft=8'h15,bred=8'h65,byellow=8'h5,
bgreen=8'h30,bleft =8'h15; // 不同颜色灯的点亮秒数
always @(posedge clk)
begin if(count==50000000) count<=0;
else count<=count+1;
end
assign clk1hz=count[25];
always @ (posedge clk1hz)
begin
if (!en)
begin numa<=ared; lampa<= 4'b1000; statea<=0; tempa<=0; end
else
begin if (!tempa) // 计数已结束
begin
case(statea)
0 : begin numa<=agreen; lampa<=2; statea<=1; end
1 : begin numa<=ayellow; lampa<=4; statea<=2; end
2 : begin numa<=aleft; lampa<=1; statea<=3; end
input clk, en;//时钟和复位输入
output[7:0] numa,numb;//BCD码计数值输出
output[3:0] lampa, lampb;// 不同颜色交通灯的亮灭控制信号输出
reg[2:0] statea, stateb;//电路当前状态
reg[7:0] numa, numb;
reg[3:0] lampa, lampb;
reg[25:0]count; wire clk1hz;
reg tempa, tempb;// 计数器的计数结束标志
parameter ared =8'h55,ayellow=8'h5,agreen=8'h40,aleft=8'h15,bred=8'h65,byellow=8'h5,
bgreen=8'h30,bleft =8'h15; // 不同颜色灯的点亮秒数
always @(posedge clk)
begin if(count==50000000) count<=0;
else count<=count+1;
end
assign clk1hz=count[25];
always @ (posedge clk1hz)
begin
if (!en)
begin numa<=ared; lampa<= 4'b1000; statea<=0; tempa<=0; end
else
begin if (!tempa) // 计数已结束
begin
case(statea)
0 : begin numa<=agreen; lampa<=2; statea<=1; end
1 : begin numa<=ayellow; lampa<=4; statea<=2; end
2 : begin numa<=aleft; lampa<=1; statea<=3; end
资源评论
- huicpc02072012-12-13编译成功,具体效果正在验证中
ssssffff5848
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功