您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 本科PLD与数字系统设计第5章
第5章设计实例第5章设计实例5.1实验开发板原理5.2设计实例第5章设计实例5.1实验开发板原理5.1.1实验开发板原理CPLD-A型数字系统实验开发板的核心芯片是CPLD或FPGA,整个实验开发板由两块印刷电路板组成。一块含有CPLD或FPGA芯片,当需要使用不同型号的CPLD或FPGA芯片时,只需要更换这块印刷电路板。第5章设计实例另一块设置了以下几种电路:(1)LED数码管和显示驱动电路,可以显示6位有效数字。(2)LED点阵8×8显示电路,用于汉字或其他图案显示。(3)数/模转换电路,把输入的数字信号通过T型电阻网络转换成模拟输出。如果与比较器相结合,可以构成模/数转换电路。(4)单片机控制电路,单片机通过与CPLD或FPGA芯片连接的数据传输线与地址选通信号线对其进行控制。第5章设计实例(5)RS-232串行接口电路,实验开发板可以与计算机的串行接口进行通信。(6)标准时钟产生电路输出2MHz、2048Hz和8Hz的时钟信号。(7)蜂鸣器及其驱动电路。(8)电平测试电路,可以通过发光二极管的亮灭直接判断被测信号电平的高低。(9)5V稳压电源电路、防止外接电源极性接反的控制电路,只要能够提供7.5V和500mA电流的直流电源,均可作为该实验开发板的电源。该实验开发板的原理框图如图5-1所示。第5章设计实例图5-1实验开发板的原理框图LED数码管及其驱动电路LED发光二极管8×8LED点阵及其驱动电路按键和波动开关输入RS-232串口通信电路蜂鸣器及其驱动电路时钟产生电路CPLD(XC95108、XCS10、XC2S15、ispLSI1032或EPM7128)数/模转换电路编程接口电路电源稳压电路第5章设计实例实验开发板的具体电路见附录A。当采用Xlinx公司的Spartan-Ⅱ系列FPGA芯片时,其供电电源电压为2.5V,为了能够与其他电源为5V的芯片的管脚相连接,XC2S15芯片的I/O供电电源电压接3.3V。XC2S15芯片的电源连接如图5-2所示。第5章设计实例图5-2XC2S15芯片的电源连接5V器件Spartan-Ⅱ3.3V器件3.3V5V3.3V5V3.3V3.3V2.5VI/O电源第5章设计实例5.1.2XC2S15-5VQ100C的管脚连接1.按键的连接XC2S15-5VQ100C的10个管脚分别与10个按键相连。按下按键Ki时,Ki为低电平,否则Ki为高电平。管脚与按键的连接如表5-1所示。第5章设计实例表5-1管脚与按键的连接第5章设计实例2.LED点阵的连接XC2S15-5VQ100C的管脚与LED点阵(采用行共阳极,列共阴极的LED点阵)连接。XC2S15-5VQ100C的3个管脚分别控制3个行控制信号ROW0、ROW1和ROW2,当ROW0、ROW1和ROW2均为低电平时,选中LED点阵的第一行;XC2S15-5VQ100C的8个管脚分别控制8个列控制信号,其中COL1为低电平时,选中第一列。LED点阵的连接如表5-2所示。第5章设计实例表5-2LED点阵的连接第5章设计实例3.LED发光二极管的连接XC2S15-5VQ100C的8个管脚分别与8个红、黄、绿LED发光二极管的阳极相连,例如,当COL8为高电平时,最右边的一个发光二极管发光。LED发光二极管的连接如表5-3所示。第5章设计实例表5-3LED发光二极管的连接第5章设计实例4.LED数码管的连接LED数码管是共阴极数码管,XC2S15-5VQ100C的3个管脚分别控制3个位选择控制信号ROW0、ROW1和ROW2,决定哪一个LED数码管显示数字;XC2S15-5VQ100C的8个管脚分别控制8个LED数码管的段码a1、…、g1、dp1。例如,当需要实验开发板上的左边第一个LED数码管显示数字1时,控制信号ROW0、ROW1和ROW2都置0,段码控制信号a1和b1都置1。如果要显示多个数字时,采用动态扫描的方式,位选择控制信号和段码控制信号相配合,显示正确的数字。LED数码管的连接如表5-4所示。第5章设计实例表5-4LED数码管的连接第5章设计实例5.T形电阻网络的连接XC2S15-5VQ100C的8个管脚分别与T形电阻网络中的8个电阻相连,XC2S15输出数字信号,通过T型电阻网络转换成模拟信号,其中DA7是最高位,DA0是最低位,完成数/模转换。被测模拟信号与数/模转换后的信号相比较,产生CMP信号,XC2S15的第84管脚接收比较CMP信号,用于实现逐次比较式模/数转换器。T形电阻网络的连接如表5-5所示。第5章设计实例表5-5T形电阻网络的连接第5章设计实例6.单片机的连接XC2S15的管脚与单片机的连接如表5-6所示。7.时钟信号的连接时钟信号CLK1的输入频率为2048Hz,CLK2的输入频率为8Hz,CLK3的输入频率为2MHz。时钟信号的连接如表5-7所示。第5章设计实例表5-6单片机的连接第5章设计实例表5-7时钟信号的连接第5章设计实例8.其他BUZZER为蜂鸣器控制信号,做串行口实验时,TxD作为发送信号,RxD作为接收信号。其连接如表5-8所示。第5章设计实例表5-8其他信号的连接第5章设计实例5.1.3编程接口编译并且通过后的熔丝图(*.jed)或bit流(*.bit)文件的编程信息经过编程接口和下载电缆传送到CPLD或FPGA芯片。在CPLD-A型实验板与计算机的并行接口(DB25)之间的通信是由一个编程接口电路和一根扁平电缆来完成的,其连接方法如图5-3所示。第5章设计实例图5-3CPLD-A型实验板与计算机的连接CPLD-A型实验板编程接口电路PC机并行接口TMSTCKTDITDO第5章设计实例采用JTAG命令执行编程和校验。其中:信号TMS是模式选择控制信号;信号TCK是时钟信号;信号TDI与时钟信号相配合,将编程数据和指令送到在线可编程逻辑芯片;信号TDO是从在线可编程逻辑芯片中读出数据。下载电缆也可以自己制作,编程接口电路原理图如图5-4所示。第5章设计实例图5-4编程接口电路原理图151132435678912345678941N58170.01FVCCGNDTCKTDITMSVCCGNDCCLKD/PDINPROGFPGA编程接口U1U21471471k1N5817100VCC6100100DONEU2215.1kU1PROG231100pF1003002DIN300TMS_IN300U1564100100100pF100pFU11211135CTRL300U198103202581112CLKGNDD6BUSYPEGNDSHIELDU2564U29810U2111213300100100pFU1=74HC125U1=74HC125计算机并行接口TDO第5章设计实例5.2设计实例5.2.1汉字显示实验开发板上的FPGA型号为XC2S15-5VQ100C。1.设计要求实现在LED点阵屏上显示单个汉字、字母和数字的功能,也能够实现汉字或字母上下左右移动的显示功能。第5章设计实例图5-5汉字“电”字的点阵字型87654321D7~D0第5章设计实例LED点阵屏上有64个发光二极管,在某一时刻LED点阵屏只有一行中指定的发光二极管发光。实验开发板上LED点阵屏采用共阳极发光二极管,LED点阵屏有行信号和列信号。CPLD提供3个行控制信号为LED点阵屏的某一行提供电源电压;CPLD直接驱动LED点阵屏的列信号,如果要某一列的发光二极管亮,则该列驱动信号为低电平。例如要显示电子技术的“电”字的点阵字型,第一行的数据为11101111B,第二行的数据为00000001B,如图5-5所示。第5章设计实例实验板上有一个标准时钟发生电路(由32768Hz石英晶体和一个14位串行二进制计数/分频器MC4060组成,提供2048Hz和8Hz时钟信号)。FPGA芯片利用实验开发板上的2048Hz时钟,给实验开发板上的74LS138和行驱动电路提供2048Hz的行扫描信号;根据行扫描信号确定该行所需要的列信号,其具体设计方案如图5-6所示。其中实验开发板上的8Hz时钟信号用于控制显示每一个汉字的显示时间。第5章设计实例图5-6汉字显示原理框图74LS138行驱动8×8LED点阵屏38CPLD2048Hz8Hz列驱动883第5章设计实例2.采用VHDL语言输入的方式实现汉字显示用VHDL编写一个显示汉字“电子”的程序由三个进程组成。其中:P1进程是一个二进制计数分频器,确定一个汉字显示的时间,输入信号为实验板上的8Hz时钟信号clka;P2进程为实验开发板上的74LS138提供行扫描地址输出信号addr(0)~addr(2),进程的输入信号为实验开发板上的2048Hz时钟信号clk;P3进程输出每一行的列数据信号data(0)~data(7),该输出信号决定一行中的哪一个或几个发光二极管发光,该进程的输入信号是P2进程提供的行扫描地址输出信号。汉字“电子”的字型分别定义成常量roma和romb,这是两个由8个数组和8位矢量组成的常量。第5章设计实例具体程序和说明如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdispISPORT(clk:INSTD_LOGIC;clka:INSTD_LOGIC;addr:INOUTSTD_LOGIC_VECTOR(2DOWNTO0);data:OUTSTD_LOGIC_VECTOR(7DOWNTO0));END;第5章设计实例ARCHITECTUREdisp_archOFdispISTYPEromtableISARRAY(0TO7)OFSTD_LOGIC_VECTOR(7DOWNTO0);CONSTANTroma:romtable:=romtable′(11101111,00000001,01101101,00000001,01101101,00000001,11101111,11100001);--汉字“电”的字型第5章设计实例CONSTANTromb:romtable:=romtable′(00000000,11111101,11111011,0000000011110111,11110111,11110111,11100111);--汉字“子”的字型第5章设计实例SIGNALq:STD_LOGIC_VECTOR(3DOWNTO0);BEGINP1:PROCESS(clka)--二进制计数分频器BEGINIFrising_edge(clka)THENq=q+'1';ENDIF;ENDPROCESSP1;第5章设计实例P2:PROCESS(clk)--行扫描控制信号BEGINIFrising_edge(clk)THENaddr=addr+'1';ENDIF;ENDPROCESSP2;第5章设计实例P3:PROCESS(addr)--输出每一行的列数据信号BEGINIFq(3)='1'THENdata=roma(addr);--显示汉字“电”ELSEdata=romb(addr);--显示汉字“子”ENDIF;ENDPROCESSP3;ENDdisp_arch;第5章设计实例下面是显示汉字“电子”程序中使用到的信号及其对应的管脚。#PACE:StartofConstraintsextractedbyPACEfromtheDesignNETclkLOC=P88;NETclkaLOC=P91;NETaddr0LOC=P47;NETaddr1LOC=P46;NETaddr2LOC=P45;第5章设计实例NETdata7LOC=P44;NETdata6LOC=P43;NETdata5LOC=P41;NETdata4LOC=P40;NETdata3LOC=P34;NETdata2LOC=P32;NETdata1LOC=P31;NETdata0LOC=P30;第5章设计实例5.2.2数字频率计
本文标题:本科PLD与数字系统设计第5章
链接地址:https://www.777doc.com/doc-51066 .html