Verilog HDL报告.docxVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Verilog HDL报告

《嵌入式系统概论》报告姓名: 学号: 班级: 专业: 系别: 指导教师: 项目名称: 二零一六年六月目 录目 录I1. 课程设计目的12. 设计任务13. 软件设计14. 系统调试45. 感想与体会4参考文献7附录91. 课程设计目的设计一个简易的交通灯控制器,实现一个具有两个方向共8个灯并具有时间倒计时功能的交通灯功能。2. 设计任务(1) 设计一个系统,完成交通灯控制器功能。(2) 设计网格仿真原理图。(3) 编写程序。3. 软件设计交通灯两个方向灯状态对应表方向A方向B红灯亮黄灯亮或绿灯亮直行绿灯亮红灯亮黄灯亮红灯亮左转灯红灯亮在实际的交通灯系统中,直行绿灯、左转绿灯和红灯的变化之间都应该有黄灯作为缓冲,以保证交通安全。设计方向A的黄灯亮的时间持续5s,直行绿灯亮的时间持续到40s,左转灯灯亮时间持续15s,则方向A的红灯亮的时间持续为(直行绿灯+黄灯+左转绿灯+黄灯)所消耗的时间,一共为65s。同样设计方向B的黄灯亮的时间持续5s,直行绿灯亮的时间持续到30s,左转灯灯亮时间持续15s,则方向B的红灯亮的时间持续为(直行绿灯+黄灯+左转绿灯+黄灯)所消耗的时间,一共为55s。代码分析·CLK:同步时钟。·EN:使能信号,为高电平时,控制器开始工作。·LAMPA:控制A方向的4盏灯的状态;其中LAMPA0-LAMPA3分别控制A方向的左转灯、绿灯、黄灯和红灯。·LAMPB:控制B方向的4盏灯的状态;其中LAMPB0-LAMPB3分别控制B方向的左转灯、绿灯、黄灯和红灯。·ACOUNT:用于A方向灯的时间显示,8位,可驱动两个数码管。·BCOUNT:用于B方向灯的时间显示,8位,可驱动两个数码管。module traffic(clk,en,lampa,lampb,acount,bcount);output[7:0]acount,bcount;output[3:0]lampa,lampb;input clk,en;reg[7:0]numa,numb;reg tempa,tempb;reg[2:0]counta,countb;reg[7:0]ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;reg[3:0]lampa,lampb;always@(posedge clk)begin if(!en) begin ared=8d55;ayellow=8d5;agreen=8d30;aleft=8d15; bred=8d55;byellow=8d5;bgreen=8d30;bleft=8d15; endendassign acount=numa;assign bcount=numb;always@(posedge clk)begin if(en) begin if(!tempa) begin tempa=1; case(counta) 0:begin numa=agreen;lampa=2;counta=1;end 1:begin numa=ayellow;lampa=4;counta=2;end 2:begin numa=aleft;lampa=1;counta=3;end 3:begin numa=ayellow;lampa=4;counta=4;end 4:begin numa=ared;lampa=8;counta=0;end default:lampa=8; endcase end else begin if(numa1) if(numa[3:0]==0) begin if(numa[7:4]===4b1000 || 4b0100 || 4b0010 || 4b0001)numa[3:0]=4b1111; else numa[3:0]=4b1001; numa[7:4]=numa[7:4]-4b1; end else numa[3:0]=numa[3:0]-4b1; if(numa==2) tempa=0; end end else begin lampa=4b1000;counta=0;tempa=0;endendalways@(posedge clk)begin if(en) begin if(!tempb) begin tempb=1; case(countb) 0:begin numb=bred;lampb=8;countb=1;end 1:begin numb=bgreen;lampb=2;countb=2;end 2:begin numb=byellow;lampb=4;countb=3;end 3:begin numb=bleft;lampb=1;countb=4;end 4:begin numb=byellow;lampb=4;count

您可能关注的文档

文档评论(0)

有一二三 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档