




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 FPGA入门系列实验教程一一点亮 LED 1. 实验任务 点亮发光二极管。通过这个实验,熟悉并掌握 CPLD/FPGA开发软件Quartus II的使用方法和开发流程以及 Verilog HDL的编程方法。 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C5T144开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 FPGA器件同单片机一样,为用户提供了许多灵活的独立的输入 /输出I/O 口 单元。FPGA 每个I/O 口可以配置为输入、输出、双向、集电极开路和三态 门等各种组态。作为输出口时, FPGA的I/O 口可以吸收最大为 24mA的电流,
2、可以直接驱动发光二极管 LED等器件。图1. 1为8个发光二极管硬件原理图, 本原理图对应艾米电子工作室型号为 EP2C5T144 FPGA开发板及接口板。通过 原理图可知如果要点亮这八个 LED,所以只要正确分配并锁定引脚后,在相应 的引脚上输出相应高电平“ 1,就可实现点亮该发光二极管的功能。本工作室开 发板均采用输出“ 1点亮LED的模式,以后就不再另作说明。 图1. 1发光二极管LED硬件原理图 艾米电子工作室一让开发变得更简单 :/ amy-studio FPGA入门系列实验教程一一LED闪烁灯 1. 实验任务 让实验板上的8个LED周期性的闪烁。通过这个实验,熟悉并掌握采用计数 与
3、判断的方式来实现分频的 Verilog HDL的编程方法以及 Quartus II软件的使 用方法和开发流程。 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C8Q208增强版开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 艾米电子工作室开发套件板载 50MHz的时钟源,假设我们直接把它输入 到发光二极管 LED ,由于人眼的延退性,我们将无法看到 LED 闪烁,认为 它一直亮着。如果我们期望看到闪烁灯,就需要将时钟源的频率降低后再输 出。本实验采用计数与判段的方式来实现降低时钟源的频率。计数电路可用 艾米电子工作室一让开发变得更简单 :/ amy
4、-studio 计数器实现,每来一个时钟脉冲 CLK,计数器就加1,而每当判断出计数器 到达某个数值时,把输出状态求反,就使得 8个LED的亮灭反转一次,即: 周期性的输出高电平“ 1和低电平“ 0。这样设计相当于把 50MHz的时钟 源分频后输出。如果最终要使得 LED 1S闪烁一次,即输出1Hz的时钟脉冲, 让计数器计到 25000000便可以让LED亮0.5秒、灭0.5秒。 4.实验程序 module led1 (clk ,led); / 模块名及端 口参数 input clk; output 7:0led; reg 7:0led; reg 25:0 buffer; /输入端口定义 /输
5、出端口定义 /输出端口定义为存放器型 /中间变量buffer定义为存放器型 always(posedge clk) begin /顺序语句,到end止 buffer=buffer+1; / 计数器 buffer 按位加 1 if(buffer=26d25000000)/ 判别 buffer 中的数值为 25000000 时, 做输出处理 begin led=led; /led0-led7反转一次。 buffer=0; end 艾米电子工作室一让开发变得更简单 :/ amy-studio FPGA入门系列实验教程一一LED流水灯 1. 实验任务 让实验板上的8个LED实现流水灯的功能。通过这个实
6、验,进一步掌握采用 计数与判断的方式来实现分频的 Verilog HDL 的编程方法以及移位运算符的 使用。 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C8Q208C8增强版开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 流水灯,顾名思义就是让 LED象水一样的点亮。如果把流水做慢动作播放, 可以想象到其实就是移动,即:把水块不断地向同一方向移动,而原来的水块保 持不动,就形成了流水。同样,如果使得最左边的灯先亮;然后,通过移位,在 其右侧的灯,由左向右依次点亮,而已经亮的灯又不灭,便形成了向右的流水灯。 初始状态时,8个灯都不亮。每来一个时钟
7、脉冲 CLK,计数器就加1。每当判断 出计数器中的数值到达 25000000时,就会点亮一个灯,并进行移位。 FPGA输出 的数据就应该首先是 10000000,隔1 秒钟变成11000000, 一直变化 到 11111111,这样,依次点亮所有的灯,就形成了流水灯。而当 8个灯都点亮时, 需要一个操作使得所有的灯恢复为初始状态,即:灯都不亮。然后,再一次流水 即可。如果是右移位,就出现向右流水的现象;反之,向左流水。 4. 实验程序 module ledwater(clk,led); / 模块名及端 口参数 output 7:0 led; input clk; reg8:0 led_out;
8、 reg8:0 led_out1; reg25:0buffer; always(posedge clk) begin buffer=buffer+1; if (buffer=26d25000000)/ 判别 buffer 数值为 25000000 时,做输出处理 begin led_out=led_out1; / led 向左移位,空闲位自动添 0补位 if(led_out=9b000000000) led_out=9b111111111; 艾米电子工作室一让开发变得更简单 :/ amy-studio 1. 实验任务 让实验板上的8个LED实现跑马灯的功能。通过这个实验,进一步掌握采用 计数与
9、判断的方式来实现分频的 Verilog HDL 的编程方法以及移位运算符的 使用。 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C8Q208C8增强版开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 从LED0到LED7依次点亮,第二个灯点亮时第一个熄灭,每个灯交换的 时间为0.5S;看上去的效果就象一个亮点从 LED0 跑向LED7, 然后重复此循 环,故命名跑马灯。初始状态时, LED0亮,其余熄灭。每来一个时钟脉冲 CLK, 计数器就加1。每当判断出计数器中的数值到达 25000000时,就会点亮LED1, 同时LED0熄灭,并进行移位。这样
10、,依次点亮所有的灯,就形成了跑马灯。而 当LED7点亮时,需要一个操作使得恢复为初始状态,即: LED0亮,其余熄 灭。然后,再进行一次跑输出端口定义 /输入端口定义,50M时钟 /变量led_out定义为存放器型 /变量led_out1定义为存放器型 /中间变量buffer定义为存放器型 FPGA入门系列实验教程 LED跑马灯 马灯,重复此循环。如果是右移位,就出现向右跑马的 现象;反之,向左跑马。 4.实验程序 module ledwalk(led,clk); input clk; output 7:0 led; reg7:0led_out; reg25:0buffer; always(p
11、osedge clk) begin buffer=buffer+1b1; if(buffer=26d25000000) begin led_out=led_out1; if(led_out=8b00000000) led_out=8b00000001; end end assign led=led_out; endmodule 艾米电子工作室一让开发变得更简单 :/ amy-studio FPGA入门系列实验教程一一LED把戏彩灯 1. 实验任务 让实验板上的8个LED实现把戏彩灯的功能。通过这个实验,进一步掌握采 用计数器实现分频的 Verilog HDL的编程方法以及 case语句的使用。
12、 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C8Q208C8增强版开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 本次试验是对前几个实验的总结,让 LED逐步实现闪烁一流水灯一闪烁一跑 马灯一闪烁一对灯流水一闪烁,重复此循环即可实现彩灯显示功能。本次实验程 序采用case语句编写,程序比拟通俗易懂,具体实现原理在前面实验都已详细讲 述,本次试验将不再重复。 4.实验程序 module led_run(sys_clk,led); input sys_clk; output 7:0 led; reg 7:0 led; reg 24:0 count;
13、 reg 4:0 state; wire clk; always (posedge sys_clk) count=count+1b1; assign clk=count23; always (posedge clk) begin case(state) 5b00000: led=8b11111111; 5b00001: led=8b00000000; 5b00010: led=8b10000000; 5b00011: led=8b11000000; 5b00100: led=8b11100000; 5b00101: led=8b11110000; 艾米电子工作室一让开发变得更简单 :/ amy
14、-studio FPGA入门系列实验教程一一读取按键信号 1. 实验任务 通过开发板上的8个按键控制发光二极管 led1led8显示。通过这个实验,进 一步掌握case语句的编程方法及 FPGA I/O 口的输出控制。 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C8Q208C8增强版开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 FPGA的所有I/O控制块允许每个I/O引脚单独配置为输入口,不过这种 配置是系统自动完成的。当该 I/O 口被设置为输入口使用时,该 I/O控制模 块将直接使三态缓冲区的控制端接地,使得该 I/O对外呈高阻态,这样该
15、 I/O 引脚即可用作输入引脚使用。正确分配并锁定引脚后,一旦 key1key8中有 键输入,即可在检测到按键输入的情况下,继续判断其键值并作出相应的处 理。如key4按下,那么发光二极管 led1led4亮。 4.实验程序 module key_led(key_in,led); / 模块名 key_led input7:0key_in; 定义按键输入 output7:0led; /定义 led 输出 reg7:0led; /定义存放器 reg7:0buffer; always(key_in) begin buffer=key_in; case(buffer) 8b11111110:led=8
16、b00000001; / 是 key1,那么 led1 亮 8b11111101:led=8b00000011; / 是 key2,那么 led1 led2 亮 8b11111011:led=8b00000111; 8b11110111:led=8b00001111; 8b11101111:led=8b00011111;艾米电子工作室一让开发变得更简单 :/ amy-studio FPGA入门系列实验教程一一按键控制 LED亮灭 1. 实验任务 实现按键控制LED亮灭。通过这个实验,掌握采用 Verilog HDL语言编程实 现按键控制LED亮灭方法。 2. 实验环境 硬件实验环境为艾米电子工
17、作室型号 EP2C8Q208C8增强版开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 当独立按键key1按下后,相应的LED被点亮;再次按下后,LED做翻转输 出,即LED熄灭,从而实现按键控制 LED亮灭。本实验没有对按键做消抖 处理。 4. 实验程序 module key(rst_n,clk, key, led ); inp ut rst_n; inp ut clk; inp ut key; output led; reg led; always ( posedge clk or negedge rst_n ) if ( !rst_n ) led= 1b
18、0; else if ( !key) led= led; endmodule艾米电子工作室一让开发变得更简单 :/ amy-studio FPGA入门系列实验教程一一按键消抖控制 LED亮灭 1. 实验任务 实现按键控制LED亮灭。通过这个实验,掌握采用 Verilog HDL语言编程实 现按键控制LED亮灭及按键消抖方法。 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C8Q208C8增强版开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 当独立按键key1按下后,相应的LED被点亮;再次按下后, LED做翻 转输出,即LED熄灭,从而实现按键控制
19、 LED亮灭。本实验对按键进行了 消抖处理。 作为机械开关的按键,操作时,机械触点的弹性及电压突跳等原因,在 触点闭合或开启的瞬间会出现电压抖动,实际应用中如果不进行处理将会造 成误触发。按键去抖动的关键在于提取稳定的低电平状态,滤除前沿、后沿 抖动毛刺。按键消抖处理一般有硬件和软件两种方法。软件消抖是检测到有 触发后,延时一段时间后再检测触发状态,如果与之前检测到的状态相同, 那么认为有按键按下;如果没有那么认为是误触发。硬件就是加去抖电路。 艾米电子工作室 FPGA入门系列实验教程 FPGA入门系列实验教程 V1.0 前言 目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没
20、有 详尽的文档和教程提供应初学者。经验说明,很多学生在学习 FPGA设计技术的 过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会的却寥寥无 几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少 配套的说明文档和手把手系列的入门教程。原本 FPGA的学习门槛相对于单片机 来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习 添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习 兴趣和信心。 作者从接著到系统学习 FPGA有两年多的时间了,学习 FPGA的时间不长, 期间因为没有专业的老师指导,自己摸索学习 FPGA走了很多的弯路。有过问题 迎刃而解
21、的快乐,也有过苦苦寻求结果和答案的痛苦历程,回想起自己学习 FPGA的历程,从开始的茫然,到后来的疯狂看书,购置开发板,在开发板上练 习各种FPGA 实例,到最后能独立完成工程,一路走来,感受颇多。觉察学习 FPGA只要选择正确的方法是有捷径可走的,有很多人学习 FPGA很长时间, 因为没有找到正确的方法还是停留在入门阶段。 针对现状,作者从初学者的角度出发,结合作者学习 FPGA的经验和亲身体 会,遵循“宁可啰嗦一点,也不放过细节的原那么编写了详尽的实验教程作为艾 米电子工作室开发套件的配套教程使用,主要面向 FPGA初学者。FPGA的学习 只有通过大量的操作与实践才能很好并快速的掌握。为此
22、本实验教程从点亮 LED 灯写起,深入浅出,以图文并茂的方式由易到难地列举了很多实例,采用手把手、 Step by Step的方式让初学者以最快的方式掌握 FPGA 技术 的开发流程以及 Quartus II软件的使用,从而激起初学者学习 FPGA的兴趣。在教程中作者采用 “授人以渔的方式,努力做到不仅讲述怎样进行试验,而且分析为什么这样做, 以便初学者深刻理解并快速掌握 FPGA的学习方法。 本实验教程的所有实例均在艾米电子工作室开发套件上验证通过,本教程虽 然简单但编写也花费了作者大量的时间和精力,对于转载需要注明出处: :/ amy-studio 艾 米电子工作室 静水流深 ,并未经艾米
23、电子 工作室同意不得用于其他商业用途。 FPGA技术是不断开展变化的,要掌握 FPGA技术的精髓,需要设计者在实 践中不懈地摸索与积累,逐步提高自己的设计水平,本实验教程试图对初学者起 到快速入门的作用。但由于作者学习 FPGA时间不长,水平有限,错漏和不严谨 之处在所难免,欢送大家批评指正。并请您将阅读中发现的错误或建议发送到作 者Email:zhoujie9220163 ,以使本教程不断地完善。 艾米电子工作室一让开发变得更简单 :/ amy-studio FPGA入门系列实验教程一一数码管静态显示 1. 实验任务 实现开发板上的数码管静态循环显示 0F。通过这个实验,掌握采用 Veril
24、og HDL语言编程实现7段数码管显示译码器的方法。 2. 实验环境 FPGA 增 FPGA 的 硬件实验环境为艾米电子工作室型号 EP2C8Q208C8增强版开发套件。 软件实验环境为 Quartus II 8.1开发软件。 3. 实验原理 数码管LED显示是工程工程中使用较广的一种输出显示器。常见的数码管有 共阴和共阳两种。艾米电子工作室开发套件上采用的是共阳极数码管,共阳 数码管就是8个发光二极管的阳极连接在一起作为公共端。公共端常称为位 码,而将其他八位称为段码。本实验先将板载 50M时钟源进行24次分频, 然后将分频后的频率作为四位计数器的时钟脉冲信号,使其计数循环输出 0F,最后经Verilog HDL编写的译码模块译码后显示于数码管上。 4. 实验程序 module led_display(sm_seg,sm_bit,clk,); input clk; output 7:0 sm_seg; /数码管段码输出 output 7:0 sm_bit; /数码管位码输出 reg 7:0 sm_seg; /数码管段码输出存放器 reg 7:0 sm_bit; /数码管位码输出存放器 reg 3:0 disp_dat; /显示数据存放器 reg 36:0 count; 定义计数存放器 always (posedge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国益生元纤维行业产业运行态势及投资规划深度研究报告
- 2025至2030中国白酒原料行业产业运行态势及投资规划深度研究报告
- 2025至2030中国电子书阅读器行业深度研究及发展前景投资评估分析
- 2025至2030中国特殊标志信标浮标行业市场占有率及投资前景评估规划报告
- 支付宝的交易流程
- 施工管理培训计划
- 医疗领域中心理干预对患者康复的影响
- 教育行业大数据未来的增长机会与挑战
- 教育信息化进程中的智能教学平台探讨
- 教育技术领域的新成果探讨
- 基于AI的物联网设备远程升级智能算法研究-洞察阐释
- T/CACEM 25-2023高速公路限速标志设置规范
- 《北宋东京城市场调研》课件
- 2025-2030中国硝酸银(CAS 7761-88-8)行业市场发展趋势与前景展望战略研究报告
- 2025轮轴装修工(技师)重点考试题库及答案(浓缩300题)
- 针刺伤试题及答案
- 电脑硬件及产品供应计划策略
- 《数字贸易》课程教学大纲
- 会展策划考试试题及答案
- 广西现代物流集团招聘笔试冲刺题2025
- 中职班主任班级管理经验分享
评论
0/150
提交评论