开启你的第一课,让LED亮起来! 话说学技术的时候不知从和入手,都知道由简单入手,但对于新手来讲,什么是简单的,他们无从知道,在他们看来所有的都是难点,从未接触到。 然而FPGA入门也是如此,就光听说FPGA,你就觉得它很难,可能被吓到,觉得自己不会,很难入门。如果打算学FPGA,你就放下这恐惧的心里,just do it! 学过电子的都知道LED,发光二极管。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。 图1 发光二极管 图2 实际电路图 如图2所示,当给LED正端加上正电压,另外一端接电源负端(0),在实际设计电路中,需要考虑到LED的最大工作电流,需要串接一个电阻限流,阻值请参考LED指标。板子上面的电路如下图3所示, 图3 LED灯电路 上图可知,LED正向端接3.3V,当另外一端接0(0V),则发光二极管亮,由此可知,当我们用FPGA的I/O接到二极管的负端,并将此端口电平设置为低电平,二极管则亮起来了,这似乎回到学单片机的时候了,刚开始可以这么想,学I/O控制,但是怎么控制FPGA的I/O电平能,如下程序 module turn_on_led( output [8:1] LED // LED[1] ~ LED[8] 端口声明,输入还是输出端口 ); // 开发板上LED[1]在左,LED[8]在右 // 送1灭,送0亮 assign LED = 8'b10101010;// 点亮LED[1]、LED[3]、LED[5]、LED[7] endmodule 这就是怎么点亮板子上面的LED灯,试试吧,下次一起让灯跑起来,并上传你的设计code吧! |