**这是本文档旧的修订版!**

点亮LED

恭喜你拿到我们的小脚丫开发板,在这个系列教程里你将更深入学习FPGA的设计同时更深入了解我们的小脚丫。如果你还没有开始使用小脚丫,也可以从这里一步一步开始你的可编程逻辑学习。请先到云盘准备好软硬件文档,因为FPGA的设计是和硬件息息相关,会经常用到这些文档。你还必须先安装好Quartus Prime设计工具,这是用小脚丫STEP-MAX10必须用到的。

====硬件说明====

STEP-MAX10开发板虽然很小巧,上面也集成了不少外设,在本实验里我们就看看如何用FPGA控制简单外设,如何用按键或者开关控制LED的亮和灭。

这是开发板上的8个红色LED,LED1~8信号连接到FPGA的引脚,作为FPGA输出信号控制。当FPGA输出低电平时LED变亮,当FPGA输出高电平时LED熄灭。
\\

这是开发板上4个按键和4个开关,Key1~4是按键控制信号,SW1~4是开关控制信号,都连接到FPGA的引脚,作为FPGA的输入信号。当按键断开时,FPGA输入为高电平,当按键按下时,FPGA输入为低电平;当开关断开(OFF)时,FPGA输入为低电平,当开关合上(ON)时,FPGA输入为高电平。
所以我们可以用开关或者按键来控制LED的亮灭。

====Verilog代码====

// ********************************************************************
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// ********************************************************************
// File name    : LED.v
// Module name  : LED
// Author       : STEP
// Description  : control LED
// Web          : www.stepfpga.com
// 
// --------------------------------------------------------------------
// Code Revision History : 
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2017/03/02   |Initial ver
// --------------------------------------------------------------------
// Module Function:利用按键和开关的状态来控制LED灯的亮灭。
 
module LED (key,sw,led);
 
	input [3:0] key;						//按键输入信号
	input [3:0] sw;							//开关输入信号
	output [7:0] led;						//输出信号到LED
 
	assign led = {key,sw};                                          //assign连续赋值。大括号是拼接符,表示把key和sw拼接组成一个新的8位数赋值给led
 
endmodule



引脚分配


综合(synthesize)完成之后一定要配置FPGA的引脚到相应的外设,这样下载FPGA程序后才能达到我们想要的效果。

信号名称 分配管脚 信号名称 分配管脚
LED1 N15 SW1 J12
LED2 N14 SW2 H11
LED3 M14 SW3 H12
LED4 M12 SW4 H13
LED5 L15 KEY1 J9
LED6 K12 KEY2 K14
LED7 L11 KEY3 J11
LED8 K11 KEY4 J14


====小结====

下载完程序后就可以实现按键开关控制LED灯的亮灭。了解小脚丫STEP-MAX10 V2上的外设LED、按键和开关的使用。如果你对Quartus Prime软件的使用不了解,请参考这里:Quartus的使用