欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    eda交通灯设计和实现(共15页).doc

    • 资源ID:19321758       资源大小:6.84MB        全文页数:15页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    eda交通灯设计和实现(共15页).doc

    精选优质文档-倾情为你奉上 EDA交通灯课程设计 班级:电气技术1031交通灯控制器 1.实验目的 学习交通灯控制器的设计,学习简单状态机的设计和硬件测试。 2.实验内容 本实验的内容是设计一个建议的交通灯控制,要求能实现三种灯的控制并通过数码管显示倒计时的时间。整个设计在MagicSOPC试验箱上实现。 3.实验原理 本实验设计的交通灯控制器要求实现对A、B两个方向的红、绿、黄三种灯的控制,并能实现时间显示的倒计时。因此每个方向的灯可以用一个状态机实现,状态的跳转顺序为灯-绿灯-黄灯-红灯(另一个的状态应为绿-黄-红绿),同时设计一个计时器,来记录每种灯的倒计时时间。最后将交通灯的状态信息输出,至数码管显示模块和交通灯显示模块。注意一个方向的红灯时间应和另一个方向的绿黄灯时间总和相等。 4.实验步骤 1)启动QuartusII建立一个空白工程,然后命名为traffic-top.qpf。 2)新建Verilog HDL源程序文件traffic.v、traffic-test、traffic-top.v,输入程序代码并保存(完整的Verilog HDL程序参考程序清单3.17),对各个HDL文件进行综合编译,若在编译过程中发现错误,则找出并更改错误,直至编译成功为止。 3)选择目标器件并对相应的引脚进行锁定,在这里所选择的器件为Altera公司CycloneII系列的EP2C35F672C8芯片,引脚锁定方法如表3.16所列。将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)。设置方法见3.1节。Lampa,lampb 表3.16 引脚锁定方法 4)设置traffic-top.v为顶层文件,对该工程文件进行全程编译处理,若在编译处理过程中发现错误,则找出更正错误,直至编译成功为止。 5)把程序下载到FPGA器件中。按一下复位键SYS-RST,然后观察交通灯及数码管的显示状态。 5.实验参考程序 程序清单3.17 交通灯程序 1) 交通灯控制器,文件traffic.v 本模块实现交通灯控制器的逻辑功能。 /* /* 交通灯控制器 /* module traffic(clock,rst_n,clken,lampa,lampb,acount,bcount); input clock; /系统时钟50MHz input rst_n; /同步复位信号,低电平有效 input clken; /时钟使能信号:1Hz。 output 2:0 lampa; /控制A方向三盏灯的亮灭;其中lampa2:0分 /别控制A方向的绿灯、黄灯、红灯(低电平灯亮) output 2:0 lampb; /控制B方向三盏灯的亮灭;其中lampb2:0分 /别控制B方向的绿灯、黄灯、红灯(低电平灯亮) output 7:0 acount; /用于A方向灯的时间显示,8位BCD码输出 output 7:0 bcount; /用于B方向灯的时间显示,8位BCD码输出 reg2:0 lampa,lampb; reg7:0 numa,numb; /时间计数器 reg tempa,tempb; /防重进入标志 reg2:0 StateA,StateB; /A、B方向灯控制状态机的状态 /设置各种灯的计数器的预置数 parameter ared =8'h30, /30秒 ayellow =8'h5, /5秒 agreen =8'h15, /15秒 bred =8'h20, /20秒 byellow =8'h5, /5秒 bgreen =8'h25; /25秒 assign acount=numa; assign bcount=numb; /控制A方向的三种灯 always (posedge clock or negedge rst_n) begin if(!rst_n) begin StateA <= 3'h0; lampa <= 3'b011; tempa <= 1'b0; end else if(clken) begin if(!tempa) begin tempa <= 1'b1; /防重进入标志 case(StateA) /控制亮灯的顺序 0: begin numa <= agreen; lampa <= 3'b011; StateA <= 1; end 1: begin numa <= ayellow; lampa <= 3'b101; StateA <= 2; end 2: begin numa <= ared; lampa <= 3'b110; StateA <= 0; end default: lampa <= 3'b110; endcase end else begin /倒计时 if(numa>1) if(numa3:0=0) begin numa3:0<=4'h9; numa7:4<=numa7:4-4'h1; end else numa3:0<=numa3:0-4'h1; 专心-专注-专业if (numa=2) tempa<=1'b0; end end end /控制A方向的三种灯 always (posedge clock or negedge rst_n) begin if(!rst_n) begin lampb<=3'b110; StateB<=3'h0; tempb<=1'b0; end else if (clken) begin if(!tempb) begin tempb<=1'b1; /防重进入标志 case (StateB) /控制亮灯的顺序 0: begin numb<=bred; lampb<=3'b110; StateB<=1; end 1: begin numb<=bgreen; lampb<=3'b011; StateB<=2; end 2: begin numb<=byellow; lampb<=3'b101; StateB<=0; end default: lampb<=3'b110; endcase end else begin /倒计时 if(numb>1) if(numb3:0=0) begin numb3:0<=4'h9; numb7:4<=numb7:4-4'h1; end else numb3:0<=numb3:0-4'h1; if(numb=2) tempb <= 1'b0; end end end endmodule 2)显示控制程序,文件名为traffic.v 本模块实现交通灯倒计时的显示并产生1HZ的时钟使能信号。 /* /* 交通灯控制器显示模块 /*功能:显示交通灯时间,并产生1Hz时钟使能信号, /* module traffic_test(clock,clken,rst_n,acount,bcount,seg,dig); input clock; /系统时钟(50MHz) input rst_n; output clken; input 7:0 acount; input 7:0 bcount; output 7:0 seg; /数码管段码输出 output 7:0 dig; /数码管位码输出 /I/O寄存器 reg7:0seg; reg7:0dig; /内部寄存器 reg25:0clk_cnt; reg16:0count; /时钟分频计数器 reg1:0 cnt; /数码管扫描计数器 reg3:0disp_dat; /数码管扫描显存 wire div_clk; /分频时钟 /产生1Hz时钟使能信号 always (posedge clock) begin if(clken) clk_cnt <= 26'h0; else clk_cnt <= clk_cnt + 26'h1; end assign clken = (clk_cnt >= 26'd); /时钟分频进程,用于数码管扫描显示 always (posedge clock) begin count <= count + 1'b1; end assign div_clk = &count; /数码管扫描显示部分 always (posedge clock) begin if(div_clk) cnt <= cnt + 1'b1; end always (posedge clock) begin if(div_clk) begin case(cnt) /选择扫描显示数据 2'd0:disp_dat <= acount7:4; /第一个数码管 2'd1:disp_dat <= acount3:0; /第二个数码管 2'd2:disp_dat <= bcount7:4; /第五个数码管 2'd3:disp_dat <= bcount3:0; /第六个数码管 endcase case(cnt) /选择数码管显示位 2'd0:dig <= 8'b; /选择第一个数码管显示 2'd1:dig <= 8'b; /选择第二个数码管显示 2'd2:dig <= 8'b; /选择第五个数码管显示 2'd3:dig <= 8'b; /选择第六个数码管显示 endcase end end always (disp_dat) begin case(disp_dat) /七段译码 4'h0:seg = 8'hc0; /显示0 4'h1:seg = 8'hf9; /显示1 4'h2:seg = 8'ha4; /显示2 4'h3:seg = 8'hb0; /显示3 4'h4:seg = 8'h99; /显示4 4'h5:seg = 8'h92; /显示5 4'h6:seg = 8'h82; /显示6 4'h7:seg = 8'hf8; /显示7 4'h8:seg = 8'h80; /显示8 4'h9:seg = 8'h90; /显示9 4'ha:seg = 8'h88; /显示a 4'hb:seg = 8'h83; /显示b 4'hc:seg = 8'hc6; /显示c 4'hd:seg = 8'ha1; /显示d 4'he:seg = 8'h86; /显示e 4'hf:seg = 8'h8e; /显示f endcase end endmodule 2) 顶层模块,文件名为traffic-top.v 本模块将traffic.v及traffic-test.v进行封装。 /* /* 交通灯控制器顶层程序 /* module traffic_top(clock,rst_n,seg,dig,lampa,lampb); input clock; /系统时钟(48MHz) input rst_n; /复位信号,低电平有效 output 2:0 lampa; /A方向红绿灯 output 2:0 lampb; /B文向红绿灯 output 7:0 seg; /数码管段码输出 output 7:0 dig; /数码管位码输出 /内部线网 wire clken; wire 7:0 acount; wire 7:0 bcount; /交通灯控制模块 traffic traffic( .clock(clock), .rst_n(rst_n), .clken(clken), .lampa(lampa), .lampb(lampb), .acount(acount), .bcount(bcount) ); /显示模块 traffic_test traffic_test( .clock(clock), .clken(clken), .rst_n(rst_n), .acount(acount), .bcount(bcount), .seg(seg), .dig(dig) ); Endmodule二 仿真波形三 照片等文件四 方框图五 参考资料

    注意事项

    本文(eda交通灯设计和实现(共15页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开