verilogHDL交通灯设计21完整版.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

交通灯设计

第一模块分频模块

把50MHz分成1Hz

moduledivider(clk_50MHz,clk_1Hz);

inputclk_50MHz;

outputclk_1Hz;

regclk_1Hz;

reg[30:0]count;

parameterN=

always@(posedgeclk_50MHz)

begin

if(count==N/2-1)

begin

clk_1Hz=clk_1Hz+1b1;

count=0;

end

else

count=count+1b1;

end

endmodule

第二模块60进制计数器程序:

modulecounter60(clkin,reset,countnum);

inputclkin,reset;//reset复位

output[5:0]countnum;

reg[5:0]countnum;

always@(posedgeclkin)

begin

if(!reset)

countnum=0;

else

begin

if(countnum==59)//六十进制计数

countnum=0;

else

countnum=countnum+1;

end

end

endmodule

第三模块控制器

程序:

modulecontrol(clk,countin,start_sn,start_ew,redn,reds,rede,redw,greenn,greens,greene,greenw);

inputclk;

input[5:0]countin;//60进制计数器

outputstart_sn,start_ew; //控制东西、南北方向倒计时控制开关

outputredn,reds,rede,redw; //东西南北红灯开关

outputgreenn,greens,greene,greenw; //东西南北绿灯开关

regstart_sn,start_ew;

regredn,reds,rede,redw;

reggreenn,greens,greene,greenw;

always@(posedgeclk)

begin

if(countin==0)

begin

start_sn=1;

start_ew=0;

end

elseif(countin=1countin=24)

begin

start_sn=0;

start_ew=0;

greenn=0;

greens=0;

greene=1;

greenw=1;

redn=1;

reds=1;

rede=0;

redw=0;

end

elseif(countin24countin30)

begin

start_sn=0;

start_ew=0;

greenn=0;

greens=0;

greene=0;

greenw=0;

redn=1;

reds

您可能关注的文档

文档评论(0)

南江月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档