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

下载本文档

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

文档简介

1、本文档如对你有帮助,请帮忙下载支持!电子科技大学 实 验 报 告、实验室名称:虚拟仪器实验室二、实验项目名称:交通灯设计实验三、实验学时: 4 学时四、实验原理假设交通灯处于南北和东西两条大街的“十”字路口,如图 1 所示。用 FPGA 开发板的 LED 灯来模拟红、黄、绿 3 种颜色信号,并按一定顺序、 时延来点亮 LED,如图 2所示。图 3 给出了交通灯的状态转移图。设计使 用频率为 1Hz 的时钟来驱动电路( 注 1:仿真时采用 1MHz 的时钟来驱动 电路),则停留 1 个时钟可得到 1S的延时,类似停留 3 个时钟可得到 3S的 延时,停留 15 个时钟可得到 15S 的延时(注

2、2:开发板工作时钟为 50MHz )。图 1. 六个彩色 LED 可以表示一组交通信号灯状态机的状态南北大街东西大街开发板延时(单位:s)仿真延时(单位: us)S0红绿1515S1红黄33本文档如对你有帮助,请帮忙下载支持!S2红红33S3绿红1515S4黄红33S5红红33红南北 黄绿图 2. 交通灯状态绿红东西 黄S0100001S1100010S2100100S3001100S4010100S5100100图 3. 交通灯的状态转移图图 4. 交通灯的原理框图五、实验目的本实验是有限状态机的典型综合实验, 掌握如何使用状态转移图来定义 Mealy 状态机和 Moore 状态机,熟悉利用

3、 HDL 代码输入方式进行电路的设 计和仿真的流程,掌握 Verilog 语言的基本语法。并通过一个交通灯的设计 掌握利用 EDA 软件( Xilinx ISE 13.2)进行 HDL 代码输入方式的电子线 路设计与仿真的详细流程。 。六、实验内容在 Xilinx ISE 13.2 上完成交通灯设计,输入设计文件,生成二进制码流文件 下载到 FPGA 开发板上进行验证。七、实验器材(设备、元器件)1、计算机(安装 Xilinx ISE 13.2 软件平台);2、BASYS2 FPGA 开发板一套(带 USB-MIniUSB 下载线)八、实验步骤(1)新建工程,设置器件属性:在Xilinx IS

4、E 13.2 平台中,新建一个工程 (注意命名规范) ,输入工程名称以及工程所在的目录,设置芯片的具 体型号( Spartan 3E XC3S100E)、封装类型( CP132)以及编码使用的 语言( Verilog)。(详见实验指导书)(2)Verilog 源码文件创建与编辑:选中器件名字,点击鼠标右键,选中 New Source,选择 Verilog Module 以及输入文件名称(详见实验指导本文档如对你有帮助,请帮忙下载支持!书)(3)语法检查,对设计文件进行综合:代码编写完成后,在ISE 的主界面的处理子窗口的 synthesis的工具检查代码语法 (Check Syntax),同时

5、 在此窗口可以查看 RTL 原理图(View RTL schematic)、查看技术原理图 ( View Technology Schematic)以及产生综合后仿真模型( Generate Post-Synthesis Simulation Mode)l 。(4)对设计进行行为仿真: 1)产生测试文件模板; 2)完成测试脚本创 建与编辑; 3)调出仿真窗口对设计进行仿真; 4)通过波形查看仿真结 果。(详见实验指导书)(5)添加实现约束文件。 (详见实验指导书)(6)UCF 文件导入。(详见实验指导书)(7)FPGA 在线下载配置: 1)连接开发板并给开发板供电; 2)边界扫描, 初始化链;

6、 3)下载比特流文件; 4)对FPGA 进行编程; 5)生成 PROM 文件;6)将生成的 PROM文件烧到 PROM 芯片中。(详见实验指导书)(8)关闭配置界面,不保存任何信息。 (一定不要保存任何信息)(9)关闭电源重新上电,程序从 PROM 自动引导到 FPGA 芯片中。(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=3b0

7、10, S3=3b011,S4=3b100,S5=3b101;always(posedge clk or posedge rst)beginif(rst)beginstate=S0;count=0;end else begin本文档如对你有帮助,请帮忙下载支持!case(state) S0:if(count15)begin state=S0; count=count+1;endelse begin state=S1; count=0;endS1:if(count3)begin state=S1; count=count+1;endelse beginstate=S2; count=0;end

8、S2:if(count3)begin state=S2; count=count+1;endelse beginstate=S3; count=0;end S3:if(count15)begin state=S3; count=count+1;endelse beginstate=S4; count=0;endS4:if(count3)begin本文档如对你有帮助,请帮忙下载支持!state=S4;count=count+1; end else beginstate=S5;count=0;endS5:if(count3)beginstate=S5;count=count+1; end else

9、 beginstate=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;S5:lights=6b100_100;default lights=6b100_001;endcaseendEndmodule9.2 时钟分频代码module clk_div(input clk,input rst,本文档如对你有帮助,

10、请帮忙下载支持!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)clk_1hz=0;else if(cnt=25)begin clk_1hz=clk_1hz; cnt=0; endEndmodule9.3 顶层代码module top(input mclk,i

11、nput 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) );endmodule9.4 测试代码module text;/ Inputsreg mclk;reg 3:3 btn;/ Outputswire 7:2 Led

12、;/ 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;endEndmodule本文档如对你有帮助,请帮忙下载支持!9.5 仿真波形代码(对波形进行相关的文字说明,所截取的波形要覆盖所有 状态转移)由图中可以看出, lights 显示 100001(S0),经过 15us 后变为 100010(S1), 接着 3us变为 100100(S2),再3us变为 001100(S3),然后 15us变为 010100(S4), 之后 3us 变为 10

温馨提示

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

评论

0/150

提交评论