《通过Verilog实现交通灯设计实验报告.pdf》由会员分享,可在线阅读,更多相关《通过Verilog实现交通灯设计实验报告.pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-.电电 子子 科科 技技 大大 学学实实验验报报告告一、实验室名称:虚拟仪器实验室一、实验室名称:虚拟仪器实验室二、实验工程名称:交通灯设计实验二、实验工程名称:交通灯设计实验三、实验学时:三、实验学时:4 4 学时学时四、实验原理四、实验原理-.word.zl.-.假设交通灯处于南北和东西两条大街的“十字路口,如图1 所示。用FPGA 开发板的 LED 灯来模拟红、黄、绿 3 种颜色信号,并按一定顺序、时延来点亮 LED,如图 2 所示。图 3 给出了交通灯的状态转移图。设计使用频率为 1Hz 的时钟来驱动电路注注 1 1:仿真时采用仿真时采用 1MHz1MHz 的时钟来驱动电的时钟来驱动
2、电路路 ,那么停留 1 个时钟可得到 1S 的延时,类似停留 3 个时钟可得到 3S 的延时, 停留 15 个时钟可得到 15S 的延时 注注 2 2: 开发板工作时钟为开发板工作时钟为 50MHz50MHz 。北北西西东东南南1533153315331533图 1. 六个彩色 LED 可以表示一组交通信号灯状态机的状态状态机的状态S0S1S2S3S4S5南北大街南北大街红红红绿黄红东西大街东西大街绿黄红红红红开发板延时单位:开发板延时单位:s s 仿真延时单位:仿真延时单位:usus图 2. 交通灯状态南北东西红黄绿红黄绿S0100001S1100010S2100100S3001100-.w
3、ord.zl.-.S4010100S5100100图 3. 交通灯的状态转移图顶层模块时钟分频模块状态机跳转模块图 4. 交通灯的原理框图五、实验目的五、实验目的本实验是有限状态机的典型综合实验, 掌握如何使用状态转移图来定义Mealy 状态机和 Moore 状态机,熟悉利用 HDL 代码输入方式进展电路的设计和仿真的流程,掌握 Verilog 语言的根本语法。并通过一个交通灯的设计掌握利用 EDA 软件XilinxISE 13.2进展 HDL 代码输入方式的电子线路设计与仿真的详细流程。 。六、实验容六、实验容-.word.zl.-.在 Xilinx ISE 13.2 上完成交通灯设计,输入
4、设计文件,生成二进制码流文件下载到 FPGA 开发板上进展验证。七、实验器材设备、元器件七、实验器材设备、元器件1、计算机安装 Xilinx ISE 13.2 软件平台 ;2、BASYS2 FPGA 开发板一套带 USB-MIniUSB 下载线八、实验步骤八、实验步骤(1) 新建工程,设置器件属性:在Xilinx ISE 13.2 平台中,新建一个工程注意命名规 ,输入工程名称以及工程所在的目录,设置芯片的具体型号Spartan 3E XC3S100E 、封装类型CP132以及编码使用的语言Verilog 。 详见实验指导书(2) Verilog 源码文件创立与编辑:选中器件名字,点击鼠标右键
5、,选中New Source, 选择 Verilog Module 以及输入文件名称 详见实验指导书(3) 语法检查,对设计文件进展综合:代码编写完成后,在 ISE 的主界面的处理子窗口的 synthesis 的工具检查代码语法Check Syntax ,同时在此窗口可以查看 RTL 原理图View RTL schematic 、查看技术原理图View Technology Schematic以及产生综合后仿真模型GeneratePost-Synthesis Simulation Model 。(4) 对设计进展行为仿真:1产生测试文件模板;2完成测试脚本创立与编辑;3调出仿真窗口对设计进展仿真
6、;4通过波形查看仿真结果。 详见实验指导书(5) 添加实现约束文件。 详见实验指导书(6) UCF 文件导入。 详见实验指导书(7) FPGA 在线下载配置: 1 连接开发板并给开发板供电; 2 边界扫描,初始化链;3下载比特流文件; 4对FPGA 进展编程;5生成PROM文件;6将生成的PROM 文件烧到 PROM 芯片中。 详见实验指导书(8) 关闭配置界面,不保存任何信息。 一定不要保存任何信息(9) 关闭电源重新上电,程序从 PROM 自动引导到 FPGA 芯片中。(10) 给开发板断电,清理器件,实验完毕。九、实验数据及结果分析九、实验数据及结果分析-.word.zl.-.9.1 状
7、态机转移代码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)beginif(rst)beginstate=S0;count=0;endelse begincase(state)S0:if(count15)beginstate=S0;count=count+1;endelse begin
8、state=S1;count=0;endS1:if(count3)beginstate=S1;count=count+1;endelse beginstate=S2;count=0;-.word.zl.-.endstate=S2;count=count+1;S2:if(count3)begin-endelse beginstate=S3;count=0;endS3:if(count15)beginstate=S3;count=count+1;endelse beginstate=S4;count=0;endS4:if(count3)beginstate=S4;count=count+1;end
9、else beginstate=S5;count=0;endS5:if(count3)beginstate=S5;count=count+1;endelse beginstate=S0;count=0;end.word.zl.-.defaultstate=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 lig
10、hts=6b100_001;endcaseendEndmodule9.2 时钟分频代码module clk_div(input clk,input rst,output reg clk_1hz);parameter CNT_WIDTH=5;regCNT_WIDTH-1:0t;always(posedge clk or posedge rst)beginif(rst)begincnt=0;endelse begincnt=cnt+1;-.word.zl.-.endendalways(posedge clk or posedge rst)if(rst)clk_1hz=0;else if(cnt=2
11、5)beginclk_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);endmodule-.word.zl.-.9.4 测试代码module
12、 text;/ Inputsreg mclk;reg 3:3 btn;/ Outputswire 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#(PERI
13、OD/2) mclk =0;#(PERIOD/2) mclk =1;endEndmodule-.word.zl.-.9.5 仿真波形代码对波形进展相关的文字说明,所截取的波形要覆盖所有状态转移由图中可以看出,lights 显示 100001S0 ,经过 15us 后变为 100010S1 ,接着 3us 变为 100100 S2 ,再 3us 变为 001100 S3 , 然后 15us 变为 010100 S4 ,之后 3us 变为 100100S5 ,状态正确。由图可以看出,clk_1hz 周期为 1000ns,满足 1M hz 的要求十、实验结论十、实验结论通过实验,实现了用 XilinxISE 13.2 实现了一个交通灯的电子线路设计与仿真,更加熟练掌握 Verilog 语言的根本语法。十一、实验中遇到的问题及相应的解决方法十一、实验中遇到的问题及相应的解决方法(1) lights 状态不发生变化答:在 test 文件中,令 btn 初值为 1-.word.zl.-.报报 告告 评评分:分:指导教师签字:指导教师签字:-.word.zl.
限制150内