## 点亮LED 就像软件编程里的“Hello World”,点灯是FPGA学习的第一步,不要小瞧这么一颗小小的灯,点灯的方式可以有多种。在本节,我们通过4个点灯的程序达到以下的目标: - 体验LED的工作原理; - 了解Verilog代码的结构和基本的语法规范 - 体会HDL语言中的bit和FPGA端口电信号的关系 - 体验FPGA设计从创建工程 --》 输入代码 --》 逻辑综合 --》 分配管脚 --》 生成可下载的JED文件 --》 配置FPGA整个过程(理论知识参见[[fpga_design_tool|FPGA设计流程]]) 在本实例中,我们以Web IDE为例,同样的示例也可以通过Lattice的官方FPGA设计工具[[Diamond]]或Intel的官方设计工具[[quartus_prime]]来实现,只是要注意这些工具的使用方法和管脚的正确分配。 ### 1. 硬件说明 在这个实验中,我们主要用到小脚丫FPGA开发板上的以下几个外设: * 板上有8个LED灯,可以选用其中的任何一个做单LED的实验 \\ {{ ::stepfpgasch8leds.jpg?600 |}} 这是开发板上的8个红色LED,LED1~8信号连接到FPGA的引脚,作为FPGA输出信号控制。当FPGA输出低电平时LED变亮,当FPGA输出高电平时LED熄灭。 * 板上由2个三色LED(R-红色、G-绿色、B-蓝色),每个三色灯相当于3个独立的、不同颜色的LED组合成的,如果与三色灯保持一定的观察距离,一个三色灯里的两种以上LED点亮即可组合成其它颜色,在此只是粗略地合成,如果要精确合成不同的颜色,需要精密控制流经R、G、B上每个灯的电流(取决于灯的特性、串联的限流电阻以及控制这些管脚开关的PWM的占空比,这个以后再讲) {{ ::stepfpgaschrgbleds.jpg?600 |}} 这是开发板上的2个三色LED,(R_LED1, G_LED1, B_LED1), (R_LED2, G_LED2, B_LED2)信号连接到FPGA的引脚,作为FPGA输出信号控制。当FPGA输出低电平时,相应的LED变亮,当FPGA输出高电平时LED熄灭。 * 板上有4个按键和4个开关,用做输入控制,按键和开关的使用方式是有区别的,大家可以通过具体的使用来体会 \\ {{ ::stepfpgaschkeysw.jpg?600 |}} 这是开发板上4个按键和4个开关,Key1~4是按键控制信号,SW1~4是开关控制信号,都连接到FPGA的引脚,作为FPGA的输入信号。当按键断开时,FPGA输入为高电平,当按键按下时,FPGA输入为低电平;当开关断开(OFF)时,FPGA输入为低电平,当开关合上(ON)时,FPGA输入为高电平。 所以我们可以用开关或者按键来控制LED的亮灭。 \\