您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术CPLD(FPGA)的设计应用 正文
CPLD(FPGA)的设计应用

CPLD(FPGA)的设计应用

点击数:7236 次   录入时间:03-04 12:01:58   整理:http://www.55dianzi.com   DSP/FPGA技术

  通过前面的设计学习及动手实践,我们已能较熟练地使用开发软件及开发工具进行PLD的基本开发。本着由浅入深、循序渐进的手把手教学方法,接下来我们会进行一些较有趣、实用的设计实验,读者朋友从中可了解到PLD的用途及开发的乐趣。

  1.跑马灯实验

  1、实验要求眼睛能够清楚地观察到,MCU&CPLDDEMO试验板上的8个发光管LEDO—LED7以跑马灯的方式运行。

  2、实现方法我们可以设定一个时间(例如0.35秒),让LED每隔一定的时间点亮。MCU&CPLDDEMO试验板上的有源晶振频率为24MHz,要得到0.35秒的时间,需要进行223分频,时间t=223/24000000=0.35s。为了驱动8个LED,我们还需要建立一个状态变量sta-tus,让status每0.35秒加法1次,status的范围可以控制在0—7之间,这样就可根据status的值来扫描点亮LED了,看上去就像马在跑一样,故取名“跑马灯”。

  3、程序设计在D盘中先建立一个文件名为HORSE_LED的文件夹,然后建立一个HORSE_LED的新项目,输入以下的源代码并保存为HORSE_LED.v。moduleHORSE_LED(LED,CLK);//模块声明及输入输出端口列表

6

76

  块结束

  源代码输入完成后,我们将器件选择为EPM7128SLC84-15。引脚分配需要参考MCU&CPLD DEMO试验板的电路原理,这里的引脚分配见下表。

引脚名 引脚号 输入或输出 板上丝印符号 CLK  83  Input    LED7  24  Output  LED7  LED6  25  Output  LED6  LED5  27  Output  LED5  LED4  28  Output  LED4  LED3  29  Output  LED3  LED2  30  Output  LED2  LED1  31  Output  LED1  LEDO  33  Output  LEDO

器件编译通过后,可根据需要进行仿真,接下来进行*.pof至*.jed的文件转换,最后将*.jed文件下载到ATF1508AS芯片中。

  在MCU&CPLD DEMO试验板上,我们看到,LEDO—LED7这8个LED中,始终有一个点亮的LED以一定的速度在跑动,并循环不已。跑马灯的实验照片见下图。

67

  2.多位数码管的动态扫描显示

  1、实验要求眼睛能够看到,MCU&CPLDDEMO试验板上的8个数码管稳定地显示(不抖动)“76543210”。

  2、实现方法  我们可以设定一个时间(例如0.7毫秒),每隔一定的时间点亮一位数码管,循环扫描点亮。这样由于扫描的时间很快,8位数码管的扫描周期还不到6毫秒,远低于人眼视觉暂留特性的限定值,故可以看到稳定的显示。当然为了驱动8个数码管,我们也要建立一个状态变量status,让status每0.7毫秒加法1次,status的范围可以控制在0—7之间,这样就可根据status的值来扫描点亮数码管了。

  3、程序设计  在D盘中先建立一个文件名为DISPLAY_SEG的文件夹,然后建立一个DISPLAY_SEG的新项目,输入

67

65

56

87

  源代码输入完成后,我们将器件选择为EPM7128SLC84-15。引脚分配需要参考MCU&CPLDDEMO试验板的电路原理,这里的引脚分配见下表。

引脚名 引脚号 输入或输出 板上丝印符号 CLK  83  Input    SEG7  68  Output    SEG6  69  Output    SEG5  70  Output    SEG4  73  Output    SEG3  74  Output    SEG2  75  Output    SEG1  76  Output    SEGO  77  Output    COM7  67  Output    COM6  65  Output    COM5  64  Output    COM4  63  Output    COM3  61  Output    COM2  60  Output    COM1  58  Output    COMO  57  Output  

多位数码管的动态扫描显示的引脚分配

器件编译通过后,可根据需要进行仿真,接下来进行’.pof至*.jed的文件转换,最后将”.jed文件下载到ATF1508AS芯片中。

  在MCU&CPLDDEMO试验板上,我们看到8个数码管稳定地显示“76543210”。实验照片见下图。

89

  3.蜂鸣器发声实验

  1、实验要求使MCU&CPLDDE-MO试验板上的蜂鸣器发出一定频率的声音。

  2、实现方法蜂鸣器分交流与直流两种,直流蜂鸣器驱动简单,只要加入直流电压就能发出固定频率的声音。交流蜂鸣器的驱动稍复杂一些,需要加入一定频率的脉冲信号进行控制,但在使用时显得比较灵活,我们可以通过改变脉冲的频率使蜂鸣器发出不同音调的声音。MCU&CPLDDEMO试验板上使用的是交流蜂鸣器,我们设定一个500?S时间(通过计数器得到),每隔500?S后取反输出端,经三极管Q8电流放大后即以1KHz的脉冲驱动蜂鸣器,那么蜂鸣器就会发出1KHz的声响。

  3、程序设计在D盘中先建立一个文件名为BZ的文件夹,然后建立一个BZ的新项目,输入以下的源代码并保存为BZ.v。源代码输入完成后,我们将器件选择为EPM7128SLC84-15。引脚分配需要参考MCU&CPLDDEMO试验板的电路原理,这里的引脚分配见下表。

 引脚名     引脚号     输入或输出   板上丝印符号 CLK  83  Input    BZ_OUT  24  Output  LED7

蜂鸣器发声实验的引脚分配

器件编译通过后,可根据需要进行仿真,接下来进行*.pof至*.jed的文件转换,最后将*.jed文件下载到ATF1508AS芯片中。

  在MCU&CPLDDEMO试验板上,将一个短路块插到BEEP排针上(连通蜂鸣器的驱动电路),我们立刻能听到清脆的音频声。

  4.简易电子琴实验

  1、实验要求按下MCU&CPLDDE-MO试验板上的KO—K3键,蜂鸣器能发出不同频率的声音(简谱的中音1~中音4)0

  2、实现方法前面已经提到过,交流蜂鸣器只要加入不同频率的脉冲,就能发出不同音调的声音。

67

  上表为简谱中的音名与频率的关系。MCU&CPLDDEMO试验板上的有源晶振频率为24MHz。例如,为了发出中音1的音调,我们应当进行分频,分频系数为24000000÷523.3÷2=229310据此,我们可计算出简谱中不同音名的分频系数,如下表所示。

56

[1] [2]  下一页


本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术

上一篇:CPLD.FPGA设计