电子科技大学成都学院
实验报告册
课程名称:FPGA实验
姓名:
学号:
院系:微电子技术系
专业:集成电路设计与集成系统
教师:
2014 年12 月20日
实验一:奇数分频
一、实验目的:
1、熟悉QuartusII的VHDL的文本设计流程全过程,学习计数器的设计与仿真。
2、掌握简单逻辑电路的设计方法与功能仿真技巧。
3、学习并掌握VHDL语言、语法规则。
4、学习使用VHDL语言进行奇数分频器的设计。
二、实验原理和内容:
要实现占空比为50%的N倍奇数分频,首先上升沿触发进行模N计数,计数到某一个值n时输出时钟进行翻转,然后再计数(N-1)/2次,再进行翻转得到一个占空比非50%奇数n分频时钟。同时进行下降沿触发的模N计数,等计数到n 时,输出时钟进行翻转,同样再计数(N-1)/2次,输出时钟再次翻转生成占空比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟进行或运算,即得到占空比为50%的奇数N分频时钟。
三、实验步骤:
1、启动QuartusII软件,建立工程。点击fiel→new project Wizard...进入命名窗口,如图1.1
图1.1
2、点击右下角next→next,选择参数如图1.2
图1.2
点击finish。
3、建立源文件:点击file→new→Verilog HDL File 如图1.3
图1.3
点击OK,进入程序编写页面。
4、程序写完后点击编译按钮,如图1.4
图1.4
左边第一个紫色三角符号为编译按钮。
5、查看电路图:确定编译无误后,点击tools→Netlist Viewers→Technology Map Viewer.
6、建立波形仿真文件:点击fiel→new→Vector Waveform File,如图1.5
图1.5
7、再一次仿真后,点击processing→simulator Tool 如图1.6
图1.6
点击start开始波形仿真。
四、实验数据和结果:
1、程序代码:
2、电路图:
3、波形仿真图:
五、实验总结:
1、通过该实验基本熟悉了Verilog HDL的设计流程。
2、在程序编程中出现了许多问题,比如阻塞和非阻塞语句的混合使
用。
3、保存程序代码时要加后缀.v
4、波形仿真中如果想要看到中间变量的波形变化,则需要手动添加。
实验二:按键控制LED
一、实验目的:
1、通过实验逐步了解、熟悉和掌握FPGA开发软件QuartusII的
使用方法及Verilog HDL的编程方法。
2、了解LED工作的基本原理。
二、实验内容和原理:
通过实验箱上的key0~key7来控制LED0~LED7的点亮,比如当按下key0时LED0点亮,按下key3时LED3点亮。
三、实验步骤:
1、创建工程,取名为led。
2、建立源文件led.v。
3、编写程序,编译。
4、编译无误后设置引脚。
5、编译,下载。观察数码管显示情况。
四、实验数据和结果:
1、程序代码:
2、实验电路图:
五、实验总结:
本实验只是LED灯的入门实验,实验步骤比较简单。通过本实验了解了Verilog HDL的编程方法,以及熟悉了case语句的用法。
实验三:花样流水灯
一、实验目的:
1、进一步熟悉Verilog HDL设计流程。
FPGA开发软件的使用方法及Verilog HDL 的编程方法。
二、实验原理和内容:
在LED1~LED8引脚上周期性的输出流水数据,如原来输出的流水数据是11111100则表示点亮LED1、LED2。流水一次后输出的数据应该为11111000,而此时应该点亮LED1、LED2、LED3,这样就可以实现LED流水灯。
本实验的内容是建立可以用于控制LED流水灯的简单硬件电路,要求在SmartSOPC实验箱上实现LED1~LED8发光二极管流水灯显示。
三、实验步骤:
1、启动QuartusII建立一个空白工程,然后命名为led_water.qpf。
2、新建Verilog HDL缘程序文件ledwater.v,输入程序代码并保存,然后综合编译。若再编译过程中发现错误,则找出并更正错误,直到编译成功为止。
3、设置引脚。Assignments→pins
将跳线短接帽接到SmartSOPC实验箱上的JP6的LED0~LED7,使LED1~LED8分别与FPGA的引脚50、53~55、176和47~49相连。然后打开电源,执行下载命令。
4、编译无误后点击下载
右边第三个键
点击start开始下载,完成后观看LED灯的闪烁情况。
5、更改分频系数,重新编译下载,观看流水灯的变化。
四、实验结果和数据:
1、程序代码:
2、电路图:
3、实验图片采样:
五、实验总结:
1、在保存文件名时不能以数字开头,文件名要和程序中的模块名一
致,不然编译的时候会报错。当编译的警告超过20个后,程序不能在目标板上正常执行。
QuartusII新建工程与下载程序的方法。
实验四:静态数码管显示
一、实验目的:
1、学习7段数码管显示译码器的设计。
2、进一步了解、熟悉和掌握FPGA开发软件QuartusII的使用方法及
Verilog HDL的编程方法。
二、实验原理和内容:
本实验通过分频模块的到1Hz的频率信号,加载于4位奇数的时钟输入端,计数循环输出0~9、A~F共16个数。最后通过7段译码模块译码后在数码管上显示出来。
本实验的内容是建立7段译码显示模块,用于控制LED数码管的静态显示。要求在SmartSOCP实验箱上的数码管依次显示0~9、A~F 16个字符。
三、实验步骤:
1、启动QuartusII建立一个空白工程,然后命名为decl7s。
2、建立源文件,取名为deci7s.v。
3、编写程序代码,编译。如果编译有错误,则需要改正错误后继续
编译。
4、设置引脚。Assignments→pins
5、编译、下载,观察数码管显示情况。
四、实验结果和数据:
1、程序代码:
2、电路图:
3、实验图片采样:
五、实验总结:
1、本实验连续运用三个always模块,所以要明白每个always模
块之间的关系。
2、本实验只运用了数码管的段选,没有用位选,所以得到的结果
每个数码管显示的数都是相同的。
实验五:数码管显示学号后8位
一、实验目的:
1、进一步学习7段数码管显示译码器的设计。