通过Verilog实现交通灯设计实验报告_第1页
通过Verilog实现交通灯设计实验报告_第2页
通过Verilog实现交通灯设计实验报告_第3页
通过Verilog实现交通灯设计实验报告_第4页
通过Verilog实现交通灯设计实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、建筑电子科技大学实验报生口一、实验室名称:虚拟仪器实验室二、实验项目名称:交通灯设计实验三、实验学时:4学时四、实验原理假设交通灯处于南北和东西两条大街的“十”字路口,如图 1所示。用fpga开发板的led灯来模拟红、黄、绿3种颜色信号,并按一定顺序、 时延来点亮led,如图2所示。图3给出了交通灯的状态转移图。设计使 用频率为1hz的时钟来驱动电路(注1:仿真时采用1mhz的时钟来驱动 电路),则停留1个时钟可得到1s的延时,类似停留3个时钟可得到3s的 延时,停留15个时钟可得到15s的延时(注2:开发板工作时钟为50mhz)。图1.六个彩色led可以表示一组交通信号灯状态机的状态南北大街

2、东四大街开发板延时(单位:s)仿真延时(单位:us)s0红绿1515s1红黄33s2红红33s3绿红1515s4r黄红33s5红红33图2.交通灯状态南北东西红黄绿红黄绿s0100001s1100010s2100100s3001100s4010100s5100100顶层模块时钟分频模块状态机跳转模块图4.交通灯的原理框图五、实验目的本实验是有限状态机的典型综合实验,掌握如何使用状态转移图来定义 mealy状态机和moore状态机,熟悉利用hdl代码输入方式进行电路的设 计和仿真的流程,掌握 verilog语言的基本语法。并通过一个交通灯的设计 掌握利用eda软件(xilinx ise 13.2

3、)进行hdl代码输入方式的电子线 路设计与仿真的详细流程。六、实验内容在xilinx ise 13.2上完成交通灯设计,输入设计文件,生成二进制码流文件 下载到fpga开发板上进行验证。七、实验器材(设备、元器件)1、计算机(安装xilinx ise 13.2软件平台);2、basys2 fpga 开发板一套(带 usb-miniusb 下载线)八、实验步骤(1) 新建工程,设置器件属性:在xilinx ise 13.2平台中,新建一个工程 (注意命名规范),输入工程名称以及工程所在的目录,设置芯片的具 体型号(spartan 3e xc3s100e)、封装类型(cp132)以及编码使用的 语

4、言(verilog)。(详见实验指导书)(2) verilog源码文件创建与编辑:选中器件名字,点击鼠标右键,选中 new source,选择verilog module以及输入文件名称(详见实验指导(3) 语法检查,对设计文件进行综合:代码编写完成后,在 ise的主界 面的处理子窗口的synthesis的工具检查代码语法(check syntax),同时 在此窗口可以查看 rtl原理图(view rtl schematic)、查看技术原理图(view technology schematic)以及产生综合后仿真模型( generate post-synthesis simulation mo

5、del)。(4) 对设计进行行为仿真:1)产生测试文件模板;2)完成测试脚本创 建与编辑;3)调出仿真窗口对设计进行仿真;4)通过波形查看仿真结 果。(详见实验指导书)(5) 添加实现约束文件。(详见实验指导书)(6) ucf文件导入。(详见实验指导书)(7) fpga在线下载配置:1)连接开发板并给开发板供电;2)边界扫描, 初始化链;3)下载比特流文件;4)对fpga进行编程;5)生成prom 文件;6)将生成的prom文件烧到prom芯片中。(详见实验指导书)(8) 关闭配置界面,不保存任何信息。(一定不要保存任何信息)(9) 关闭电源重新上电,程序从 prom自动引导到fpga芯片中。

6、(10) 给开发板断电,清理器件,实验结束。九、实验数据及结果分析9.1 状态机转移代码module traffic(input clk,input rst,output reg5:0 lights); reg2:0 state;reg3:0 count;parameter s0=3b000,s1=3b001,s2=3b010,s3=3b011,s4=3b100,s5=3b101;always(posedge clk or posedge rst)begin if(rst)beginstate=s0;count=0;endelse begincase(state)s0:if(count15)b

7、eginstate=s0;count=count+1;endelse beginstate=s1;count=0;ends1:if(count3)beginstate=s1;count=count+1;endelse beginstate=s2;count=0;ends2:if(count3)beginstate=s2;count=count+1;endelse begin state=s3; count=0;ends3:if(count15)begin state=s3; count=count+1;endelse begin state=s4; count=0;ends4:if(count

8、3)begin state=s4; count=count+1;endelse begin state=s5; count=0;ends5:if(count3)begin state=s5; count=count+1;endelse begin state=s0; count=0;enddefault state=s0; endcaseendendalways(*)begincase(state)s0:lights=6b100_001;s1:lights=6b100_010;s2:lights=6b100_100;s3:lights=6b001_100;s4:lights=6b010_100

9、;s5:lights=6b100_100;default lights=6b100_001;endcaseendendmodule9.2 时钟分频代码module clk_div(input clk,input rst,output reg clk_1hz );parameter cnt_width=5;regcnt_width-1:0 cnt;always(posedge clk or posedge rst)beginif(rst)begincnt=0;endelse begincnt=cnt+1;endendalways(posedge clk or posedge rst)if(rst

10、)clk_1hz=0;else if(cnt=25)begin clk_1hz=clk_1hz; cnt=0;endendmodule9.3 顶层代码module top(input mclk,input wire3:3 btn, output wire7:2 led);wire clk_1hz;wire rst;assign rst=btn3;clk_div clk_div_inst( .clk(mclk), .rst(rst), .clk_1hz(clk_1hz) );traffic traffic_inst( .clk(clk_1hz), .rst(rst), .lights(led)

11、);endmodule9.4 测试代码module text;/ inputs reg mclk;reg 3:3 btn;/ outputs wire 7:2 led;/instantiate the unit under test (uut)top uut (.mclk(mclk),.btn(btn), .led(led);initial begin/ initialize inputsmclk = 0;btn = 1;/ wait 100 ns for global reset to finish#100;btn = 0;/ add stimulus hereendparameter period =20;always begin#(period/2) mclk =0;#(period/2) mclk =1;endendmodule9.5 仿真波形代码(对波形进行相关的文字说明,所截取的波形要覆盖所有 状态转移)由图中可以看出,lights显示100001 (s0),经过15us后变为100010 (s1), 接着 3us 变为 100100( s2),再 3us 变为 001100( s3),然后 15us 变为 010100(s4), 之后3us变为1001

温馨提示

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

评论

0/150

提交评论