李振荣老师FPGA可编程逻辑器件上机大作业_西安电子科技大学微电子学院

上传人:n**** 文档编号:39518597 上传时间:2018-05-16 格式:DOCX 页数:24 大小:824.85KB
返回 下载 相关 举报
李振荣老师FPGA可编程逻辑器件上机大作业_西安电子科技大学微电子学院_第1页
第1页 / 共24页
李振荣老师FPGA可编程逻辑器件上机大作业_西安电子科技大学微电子学院_第2页
第2页 / 共24页
李振荣老师FPGA可编程逻辑器件上机大作业_西安电子科技大学微电子学院_第3页
第3页 / 共24页
李振荣老师FPGA可编程逻辑器件上机大作业_西安电子科技大学微电子学院_第4页
第4页 / 共24页
李振荣老师FPGA可编程逻辑器件上机大作业_西安电子科技大学微电子学院_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《李振荣老师FPGA可编程逻辑器件上机大作业_西安电子科技大学微电子学院》由会员分享,可在线阅读,更多相关《李振荣老师FPGA可编程逻辑器件上机大作业_西安电子科技大学微电子学院(24页珍藏版)》请在金锄头文库上搜索。

1、三、实验题目三、实验题目题目题目 1:多模式:多模式 LED 发光控制器(逻辑设计)发光控制器(逻辑设计)设计要求:1)采用 16 个并排 LED 实现跑马灯发光器件;2)具有异步复位功能(按钮) ,复位时,LED 全亮;3)模式选择(利用两位滑动开关):00左循环跑马灯,01右循环跑马灯,10交叉闪烁跑马灯,11全亮全灭闪烁4)速度选择(利用两位滑动开关):通过 0011 实现四个可视速度等级闪烁效果题目题目 2:多模式运动计时器(逻辑设计):多模式运动计时器(逻辑设计)设计要求:1)具有计时和倒计时功能(最低位滑动开关进行模式选择)2)数码管显示分钟和秒,格式 mm:ss ,最长时间为 5

2、9 分 59 秒3)倒计时时长可配置(15 位滑动开关控制倒计时值)4)具有启动/暂停功能,具有异步复位功能(按钮控制)题目题目 3:液晶屏显示字符(选作):液晶屏显示字符(选作) 设计要求:1)在液晶屏上显示欢迎语句2)通过滑动开关控制语句切换3)具有异步复位功能(按钮控制)4)部分开发板需外接 Pmod 液晶屏 FPGA 实验报告实验报告班 级:学 号:姓 名:一、实验目的一、实验目的1. 熟悉FPGA软件基本使用方法;2. 掌握电路的基本设计、仿真、布线方法;3. 掌握FPGA开发板的应用。二、实验器材二、实验器材1)开发板描述:本次我利用的是 Xilinx Basys3 开发平台开发平

3、台特性:FPGAXC7A35T-1CPG236CI/O InterfacesUSB-UART for programming and serial communication USB-UART Bridge 12-bit VGA output USB HID Host for mice, keyboards and memory sticksMemory32 Mbit Serial FlashDisplaysOne 4-digit 7-Segment displaysSwitches and LEDs16 Slide switches 16 LEDs5 Push-buttonsClocksOn

4、e 100 MHz crystal oscillatorExpansion portsPmod for XADC signals 3 Pmod ports2)软件工具描述:本次我利用的是 Vivado2014.4 软件开发工具、在仿真测试时利用的是 ModelSim SE-64 10.4。三、三、实验原理实验原理题目题目 1 1:多模式:多模式 LEDLED 发光控制器(逻辑设计)发光控制器(逻辑设计)设计要求:1.采用 16 个并排 LED 实现跑马灯发光器件;2.具有异步复位功能(按钮) ,复位时,LED 全亮;3.模式选择(利用两位滑动开关):00左循环跑马灯,01右循环跑马灯,10交叉

5、闪烁跑马灯,11全亮全灭闪烁4.速度选择(利用两位滑动开关):通过 0011 实现四个可视速度等级闪烁效果-设计思路:题目要求有四个跑马灯花样,所以我用了 m1 和 m2 这两个变量组成一个两位的二进制数来作为输入控制四个不同的花样。同样,题目要求有四个速度选择(利用两位滑动开关):通过 0011 实现四个可视速度等级闪烁效果,所以我用了 v1 和 v2 这两个变量组成一个两位的二进制数来作为输入控制四个不同的速度。速度控制时,考虑到开发板的频率问题,我引入了 count 变量,通过 count 的变化来依次扩大时间间隔,其中 count1 在变化到 24b1111_1111_1111_111

6、1_1111_1111 时才使 count2 变化一次,count2变化三次后 count3 变化一次,以此类推,达到了控制速度的要求。源代码中用到了两个 case 语句,用来选择花样和速度。1)代码设计:见附录2)仿真:仿真代码见附录利用ModelSim SE-64 10.4仿真测试后的截图如下:3)综合我利用了V16、V17、W16、W17这四个滑动开关来连接m1、m2、v1、v2。利用Vivado2014.4软件开发工具进行分析和约束文件综合后形成的网表截图如下:可以看到各种器件的使用情况4)布局布线利用Vivado2014.4软件开发工具进行布局布线后截图如下:局部放大之后:5)生成数

7、据文件-题目题目 2 2:多模式运动计时器(逻辑设计):多模式运动计时器(逻辑设计)设计要求:1.具有计时和倒计时功能(最低位滑动开关进行模式选择)2 数码管显示分钟和秒,格式 mm:ss ,最长时间为 59 分 59 秒3.倒计时时长可配置(15 位滑动开关控制倒计时值)4.具有启动/暂停功能,具有异步复位功能(按钮控制)-设计思路:题目要求具有计时和倒计时功能,所以我用m变量来控制(m=1b1为计时功能,m=1b0时为倒计时功能)。数码管显示分钟和秒用8位的q变量来表示,连接到开发板的数码管引脚上。且具有15位的倒计时时长输入端t和异步 功能rst。1)代码设计:见附录2)仿真:仿真代码见

8、附录利用ModelSim SE-64 10.4仿真测试后的截图如下:3)综合放大之后:4)布局布线局部放大之后:5)生成数据文件可以看到相关器件的利用率情况五、实验思考,课程认识五、实验思考,课程认识结合实验过程总结个人的实验心得,本课程及前景的认识和展望(300 字)。经过两次的上机和课外自己的研究,现在已经会用了 Vivado2014.4 软件开发工具和 ModelSim SE-64 10.4 工具,在这些过程中我又重新复习了一遍 Verilog HDL 的编写和仿真,发现了很多以前在学习硬件描述语言的时候没有注意到的相关问题,经过一遍遍的反复改正和测试,最终达到了实验的要求后感觉特别开心

9、,不仅是对自己努力后结果的一种肯定,更是一种乐趣。看到一个个步骤显示成功的时候,更是感觉非常兴奋。其中的约束文件是第一次尝试自己编写,开始看着那些例题的文件感觉很难,但只要仔细去看了,上网找相关的开发手册然后一一对应起来就很简单了。在写源代码的时候也要考虑很多问题,逻辑和语言的正确性都是要准一的问题。总之,这次的上机让我受益匪浅,也感受到了从描述到布局布线后的直观体验的兴奋,这次上机实验和大作业的完成十分有用,在未来,可编程逻辑器件用的也会越来越多,我们也要不断学习,不断去掌握,未来开发自己的东西的时候就简单一点了。六、附录六、附录1、代码、代码-题目一源程序代码:module LED (rs

10、t,clk,led,m1,m2,v1,v2);input rst,clk;input m1,m2,v1,v2;output 15:0 led;reg 15:0 led;reg 23:0 count,count1,count2,count3,count4,count5;always ( posedge clk or posedge rst ) beginif (rst=1b1)beginled15:0 1) ; end2b10:if ( count = 24b0000_0000_0000_0000_0000_0010)begin led=24b1010_1010_1010_1010_1010_1

11、010;#5 led=24b0101_0101_0101_0101_0101_0101; end2b11:if ( count = 24b0000_0000_0000_0000_0000_0010)begin led =16b1111_1111_1111_1111_1111; #5 led =16b0000_0000_0000_0000_0000; endendcaseendendalways ( posedge clk or negedge rst )beginif (rst=1b1)begincount1 = 24b0;count2 = 24b0;count3 = 24b0;count4

12、= 24b0;count5 = 24b0;endelse begincount1 = count1 + 1b1;if(count1 = 24b1111_1111_1111_1111_1111_1111)begin count2=count2+1; endif(count2 = 24b0000_0000_0000_0000_0000_0010)begin count3=count3+1; endif(count3 = 24b0000_0000_0000_0000_0000_0010)begin count4=count4+1; endif(count4 = 24b0000_0000_0000_0

13、000_0000_0010)begin count5=count5+1; endendendendmodule-题目一测试仿真代码:module LED_tb;wire15:0 led;reg rst,clk,m1,m2,v1,v2;LED U1(rst,clk,led,m1,m2,v1,v2);initial beginclk=0;rst=0;#5 rst=1b1;#5 m1=1b1;m2=1b1;#5 v1=b0;v2=1b1;#5 rst=1b0;endalways #5 clk=clk;endmodule题目二源程序代码:module timer (q,m,t,p,rst,clk );

14、input rst,clk;input m,t,p;output 7:0 q;reg 7:0 q;reg 23:0 count;wire 14:0 t;always ( posedge clk or posedge rst ) beginif (rst=1b1)beginq=8b0000_0000; endelsecase(m)1b0:beginif ( count = 24b1111_1111_1111_1111_1111_1111)begin q 1:0=(q 1:0+1b1);if(q1:0=2b11)begin q 3:2=q 3:2+1b1;if(q3:0=4b1111)begin q 5:4=q 5:4+1b1;if(q5:4=2b11)begin q 7:6=q 7:6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号