FPGA实验报告_第1页
FPGA实验报告_第2页
FPGA实验报告_第3页
FPGA实验报告_第4页
FPGA实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字电路与逻辑设计用Verilog编程 用FPGA实现汽车尾灯控制系统实验报告 学院:信息与通信工程学院 专业: 电子信息工程 班级: 2015211103 组员:傅远昌 2015210077 张楷 2015210078 精品文档交流一 实验要求根据汽车行驶状态自动控制汽车尾灯1. 直行:尾灯不亮2. 右转:右侧尾灯亮而且按秒闪烁,左侧尾灯不亮3. 左转:左侧尾灯亮而且按秒闪烁,右侧尾灯不亮4. 临时停车或故障:两侧尾灯同时闪烁5. 倒车显示二 用实现方式设计. 用三色LED代表左右汽车尾灯,为了便于区分,左尾灯选择靠左的三色LED且显示为蓝色,右尾灯选择靠右的三色LED且显示为红色。两灯同时闪烁表示停车或倒车。. 用八个单色以流水灯的方式显示汽车的行驶状态,向前滚动表示汽车前行,向后滚动表示汽车到车,只有前四个LED亮表示左转,只有后四个亮表示右转。. 用四个拨码开关分别表示前行、左转、右转、故障(倒车),器输入组合1000表示前行,0100表示左转、0010表示右转、0001表示故障(倒车);三 设计思路分析. 使用不同的进程来分别处理时钟分频及各个状态下的灯光效果. 用三色LED代表左右汽车尾灯. 用拨码开关控制汽车行驶状态. 用单色LED显示汽车行驶状态. 使用状态机的思想来设计,通过过状态来决定灯光效果,通过外部输入来改变状态。四 波形仿真五 管脚分配. 输入管脚分配:. 输出管脚分配:六 实验总结体会:(1)本次实验,我们采用模块化的设计方法,将整体分成不同功能的模块,如计时模块、分频模块、显示控制模块、LED灯显示模块,然后分模块编写程序(由小组人员分工完成),之后再将模块之间用变量连接起来,从而实现汽车尾灯显示要求。(2)在实现本次设计的过程中,使我们了解了汽车尾灯的基本原理,从而让我们觉得,首次将我们的专业知识与生活联系起来,增强了我们对本课程的学习兴趣。(3)在本次实验的实现过程中,通过调用case语句、always语句,是我们进一步加深了对case、always语句的认识,并且能够将其运用到其他设计中,使我们进一步熟练了这种设计方法和verilog程序设计语言。七 实现代码. 汽车尾灯控制系统module tail_lamp(inputsys_clk,/系统时钟 inputsys_rst_n,/系统复位 input3:0state_in,/拨码开关输入 outputreg2:0led_left,/左侧尾灯 msblsb = R,G,Boutputreg2:0led_right,/右侧尾灯 msblsb = R,G,Boutputreg7:0led_out/流水灯输出 );parameterCNT_NUM = 6_000_000; /计数器实现分频的分频系数localparamSTOP= 4b0000;localparamGO= 4b0001;localparamLEFT= 4b0010;localparamRIGHT= 4b0100;localparamBACK= 4b1000;wire2:0tail_on;/尾灯点亮状态wire2:0tail_off;/尾灯熄灭状态wire2:0tail_shin;/尾灯闪烁状态wire7:0_left;/左转时单色LED的状态wire7:0_rignt;/右转时单色LED的状态wire7:0_stop;/停止时单色LED的状态reg23:0cnt;/计数器,reg3:0current_state;/当前状态reg3:0next_state;/下一个状态regclk_1hz;/1Hz分频信号reg7:0_go;/前进时单色LED的状态reg7:0_back;/倒车时单色LED的状态/*计数器实现0.5秒的周期*/always(posedge sys_clk or negedge sys_rst_n)if(!sys_rst_n) cnt = CNT_NUM-1) cnt = 1b0;else cnt = cnt + 1b1;/*根据计数器的周期实现1Hz信号分频*/always(posedge sys_clk or negedge sys_rst_n)if(!sys_rst_n) clk_1hz = 1b0;else if(cnt = CNT_NUM-1) clk_1hz = clk_1hz;else clk_1hz = clk_1hz;/*尾灯的三种状态,RGB灯只使用红色*/assigntail_on = 3b011;/msblsb = R,G,Bassigntail_off = 3b111;/msblsb = R,G,Bassigntail_shin = clk_1hz,2b11;/msblsb = R,G,B/*车辆前进时,流水灯向上流水*/always(posedge sys_clk or negedge sys_rst_n)if(!sys_rst_n) _go = 8h7f;else if(cnt = CNT_NUM-1) _go = _go0,_go7:1;else _go = _go;/*车辆倒车时,流水灯向下流水*/always(posedge sys_clk or negedge sys_rst_n)if(!sys_rst_n) _back = 8hfe;else if(cnt = CNT_NUM-1) _back = _back6:0,_back7;else _back = _back;/*车辆左转、右转、停止时,流水灯的状态*/assign_left = 8hf0;assign_rignt = 8h0f;assign_stop = 8h00;/*将次态赋值给当前状态*/always(posedge sys_clk or negedge sys_rst_n)if(!sys_rst_n) current_state = STOP;else current_state = next_state;/*车辆次态完全由人为通过拨码开关控制*/always(*) next_state = state_in;/*车辆处于不同状态时,尾灯及流水灯的输出*/always(current_state or sys_rst_n)if(!sys_rst_n) beginled_left = tail_shin; led_right = tail_shin; led_out = _stop ;endelsecase(current_state)STOP: begin led_left = tail_shin; led_right = tail_shin; led_out = _stop ; endGO: begin led_left = tail_off ; led_right = tail_off ; led_out = _go ; end LEFT: begin led_left = tail_shin; led_right = tail_off ; led_out = _left ; end RIGHT: begin led_left = tail_off ; led_right = tail_shin; led_out = _rignt; endBACK: begin led_left = tail_on ; led_right = tail_on ; led_out = _back ; enddefault: begin led_left = tail_shin; led_right = tail_shin; led_out = _stop ; endendcaseendmodule. 仿真代码timescale 1ns / 1psmodule tail_lamp_tb;parameter CNT_NUM = 10; /方便仿真,定义新的分频系数,例化时使用/*系统时钟信号的产生*/reg sys_clk;initialsys_clk = 1b0;alwayssys_clk = #10 sys_clk;/*系统复位信号的产生,低电平复位*/reg sys_rst_n;initial beginsys_rst_n = 1b0;#20;sys_rst_n = 1b1;end/*拨码开关信号的产生*/reg 3:0 state_in;initial beginstate_in = 4b0000; / 停止 #20;state_in = 4b0001; / 前进 #20;state_in = 4b0010; / 左转 #20;state_in = 4b0100; / 右转 #20;state_in = 4b0000; / 停止 #20;state_in = 4b1000; / 倒车 #20;state_in = 4b0000; / 停止 #20;$stop; / 结束仿真 endwire 2:0led_left,led_right;wire 7:0led_out;/*例化设计文件*/tail_lamp #(.CNT_NUM(CNT_NUM)u1(.sys_clk(sys_clk),/ 系统时钟 .sys_rst_n(sys_rst_n),/ 系统复位 .

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论