明德扬FPGA项目实践1位闪烁灯设计

明德扬FPGA项目实践1位闪烁灯设计,第1张

LED(Light EmitTIng Diode),发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的芯片,芯片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个芯片被环氧树脂封装起来。

半导体芯片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个芯片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED灯发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。

LED可以直接发出红、黄、蓝、绿、青、橙、紫、白色的光。

最初LED用作仪器仪表的指示光源,后来各种光色的LED在交通信号灯和大面积显示屏中得到了广泛应用,产生了很好的经济效益和社会效益。以12英寸的红色交通信号灯为例,在美国本来是采用长寿命,低光视效能的140瓦白炽灯作为光源,它产生2000流明的白光。经红色滤光片后,光损失90%,只剩下200流明的红光。而在新设计的灯中,Lumileds公司采用了18个红色LED光源,包括电路损失在内,共耗电14瓦,即可产生同样的光效。汽车信号灯也是LED光源应用的重要领域。

对于一般照明而言,人们更需要白色的光源。1998年发白光的LED开发成功。这种LED是将GaN芯片和钇铝石榴石(YAG)封装在一起做成。GaN芯片发蓝光(λp=465nm,Wd=30nm),高温烧结制成的含Ce3+的YAG荧光粉受此蓝光激发后发出黄色光射,峰值550nLED灯m。蓝光LED基片安装在碗形反射腔中,覆盖以混有YAG的树脂薄层,约200-500nm。 LED基片发出的蓝光部分被荧光粉吸收,另一部分蓝光与荧光粉发出的黄光混合,可以得到白光。

对于InGaN/YAG白色LED,通过改变YAG荧光粉的化学组成和调节荧光粉层的厚度,可以获得色温3500-10000K的各色白光。这种通过蓝光LED得到白光的方法,构造简单、成本低廉、技术成熟度高,因此运用最多。

 

明德的教学板一共有8个可发绿光的LED灯。下面是LED灯的原理图。


 

左边的LED1~LED8是板子上LED灯的丝印。右边的LED1~LED8_NET是信号线名,读者在板子上是看不到这些信号线的。

LED灯一端连着高电平3.3V,另一端是信号线LED1~LED8_NET。如果LED1~LED8_NET是高电平,则电流不导通,那么LED灯则不会发光。如果LED1~LED8_NET是低电平,则电流会导通,那么LED灯就发光。所以LED灯发光与否,取决于信号LED1~LED8_NET处于什么电平。

 

信号线LED1~LED8_NET又连到哪里呢?搜索下原理图文档,可以发现这些信号是连到FPGA的管脚上的。


 

下面信号线和FPGA管脚的连接图,例如信号线LED1是连接到FPGA的AA4管脚上。


 

LED1~LED8_NET分别与FPGA的8个管脚相连,所以LED1~LED8_NET处于什么电平,即LED灯是否要发光,就取决于FPGA管脚的输出了。

例如FPGA管脚AB14连到LED7上。要控制这个灯的亮灭,FPGA只需要将管脚AB14输出为低高就可以了。当输出为高电平时,LED7灯为灭,当输出为低电平时,LED7灯为暗。8个LED灯都可由FPGA独立控制。

2设计目标

本工程使用1个LED灯---LED1,实现一个闪烁灯的功能。工程的工作时钟是50M,也就是时钟周期为20ns。当管脚AA4输出低电平时,LED1灯亮,输出高电平时,LED1灯灭。具体功能要求是:隔1秒,亮N秒。N的变化是:1,2,3,---,9秒,然后再次循环。下面是波形图:


 

上板效果图如下图所示:



3设计实现3.1 顶层信号

新建目录:D:\mdy_book\my_led。在该目录中,新建一个名为my_led.v的文件,并用GVIM打开,开始编写代码。

我们先分析一下板子上的LED灯。要控制1个LED灯亮和灭,那就FPGA需要产生一个信号,假定为led,这个信号连接到led灯上。要让LED灯灭,FPGA将信号led输出为1;要让LED灯亮,FPGA将信号led输出为0。下面表格表示了硬件电路图的连接关系。

 

综上所述,我们这个工程需要三个信号,时钟clk,复位rst_n和输出信号led。将module的名称定义为my_led,为此,代码如下:


 

综上所述,我们这个工程需要三个信号,时钟clk,复位rst_n和输出信号led。将module的名称定义为my_led,为此,代码如下:


 


 

其中clk、rst_n是输入信号,led是输出信号,并且三个信号都是1比特的,根据这些信息,我们补充输入输出端口定义。代码如下:



3.2  信号设计

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2587551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-08
下一篇 2022-08-08

发表评论

登录后才能评论

评论列表(0条)

保存