1数字电子技术基础与FPGA实验指导书前言FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为2专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和I/O引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等,本实验平台选用了ALTERA公司CycloneII系列芯片FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为AI/IEEE的标准(IEEESTD1076-1987)。1993年更进一步修订,变得更加完备,成为AI/IEEE的AI/IEEESTD1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。VHDL的英文全写是:VHSIC(VeryHigheedIntegratedCircuit)HardwareDescriptiongLanguage.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。本实验平台可做FPGA的学习实验箱,主芯片采用了ALTERA公司的CycloneII系列EP2C5T144C8N,学习VHDL语言,为数字电路系统设计打下坚实的基础,学习ALTERA公司的开发平台QuartusII9.0,掌握FPGA系统的开发设计流程。3第一章FPGA系统41.1系统简介本FPGA系统教学开发平台采用国际著名可编程逻辑器件公司Altera的CycloneII系列芯片为核心,整个平台采用模块化设计,各种模块可以自由组合,同时提供丰富的扩展接口,非常适合于FPGA学习。开发工程师可利用VHDL语言、Verilog语言、原理图或方程式,结合Altera集成开发环境QuartusII,进行编辑、综合、仿真和布局布线,通过加载配置并进行设计验证。它可以满足绝大多数组合逻辑电路、时序逻辑电路设计需求;可以进行初级的SOPC设计,简单的NIOS初级核设计,此书安排的实验由简单到难,一步一步引导你入FPGA的世界。1.2系统功能特点板上1.2V,5V,3.3V完整电源管理50M有源晶振,及一个扩展晶振接口支持JTAG调试仿真模式和AS下载配置模式双复位系统,重新配置与软件复位主芯片采用CycloneII系列EP2C5T144C8N芯片,资源丰富8个七段数码管PS2键盘标准接口标准RS232串口蜂鸣器VGA标准接口IIC芯片,AT24C02SPI芯片,AT93C46RTC芯片,DS1302,及备用电池温度传感器,DS18B208位AD,TLC549,及电位器10位DA,TLC5615LCD1602液晶8位拨码开关4X4标准矩阵键盘大容量ALTERA配置芯片EPCS412个RGY三色LED模拟十字路口交通灯1M容量高速SRAM,IS63LV102416个I/O引出,其中包括2个ALTERA专用PLL输出1.3开发平台标准配置FPGA教学实验平台9V-2A电源适配器JTAG下载电缆(支持Altera全系列CPLD和FPGA仿真与下载)51.4部分功能模块介绍1.4.1电源FPGA教学实验开发平台采用多电源模式,输入电源为宽电源模式,支持9V到24V电源输入,FPGA芯片采用3.3V的I/O电压和1.2V的内核电压,保证了芯片的稳定工作。除AD和DA采用5V电源外,其他芯片均采用3.3V电源,保证和FPGA的I/O电压的匹配。具体请参见原理图的电源部分。1.4.2时钟本FPGA教学实验平台采用50M有晶振,以及ALTERAFPGA专用时钟输入引脚,使片内时钟分布均匀,芯片内部各个模块间的时钟同步性达到最佳状态。另外,预留一专用时钟输入引脚,方便需要时扩展。具体请参见原理图的时钟部分。1.4.2LED灯由于本实验平台外部硬件资源丰富,所以12个LED灯中有8个通过一片74LV245芯片与SRAM的8位数据总线复用,通过74LV245的片选信号来选择控制SRAM的数据总线还是控制LED灯。其余的4个LED灯通过电阻与FPGA直接相连。具体请参见原理图的LED部分1.4.3数码管显示本FPGA教学实验平台采用2个4位七段共阳极数码管。数码管的位选信号采用PNP型三极管来驱动。段选信号采用一片74LV245芯片与SRAM的部分地址总线复用。各个引脚的连接请参见原理图1.4.4RS232串口为保证与FPGAI/O电压标准匹配,本FPGA教学实验平台用MAX3232低压芯片来转换RS232电平与FPGA接口之间的电平,实现本平台与PC机之间的通信。1.4.5LCD1602液晶LCD1602液晶显示的数据总线采用两片74LV245与8位拨码开关复用,注意,此处使用了两片74LV245,当使用LCD1602时,与拨码开关相连的74LV245(图上标号为U7)的片选控制线必须被禁止。1.4.6其他模块6其他模块请参见原理图,相关内容将在后续章节详解。1.5引脚及信号映射表本FPGA教学实验平台的引脚连接与信号映射如下表:编号信号名称定义编号信号名称定义1CFG_ASD2CFG_NCS3PS2_DATA4PS2_CLK5VCC_3V36GND7BELL_CTL蜂鸣器8UART_TX串口发9UART_RX串口收10JTAG_TDO11JTAG_TMS12JTAG_TCK13JTAG_TDI14CFG_DATA015CFG_DCLK16CFG_nCE17CLK_000时钟输入18CLK_001时钟19GND20CFG_nCONFIG21CLK_002软件复位22NULL未连接23VCC_3V324VGA_VS25VGA_HS26VGA_R27VGA_G28VGA_B29VCC_3V330DS18B20温度3124C02_SCLIIC3224C02_SDAIIC33GND34GND35VCC_1V236GND37VCC_1V238GND39GND4093LC46_DOSPI4193LC46_DISPI4293LC46_CLKSPI4393LC46_CSSPI44LCD_RS液晶45LCD_RW液晶46VCC_3V347LCD_E液晶48LCD_DB049GND50VCC_1V251LCD_DB1注:液晶数据总线与拨码开关输入线通过两片74LV245复用52LCD_DB253LCD_DB354VCC_3V355LCD_DB456GND57LCD_DB558LCD_DB659LCD_DB760LCD_OE245控制线61GND62VCC_1V263KEY_OE245控制线64BUTTON0矩阵键盘65BUTTON1矩阵66VCC_3V37键盘67BUTTON2矩阵键盘68GND69BUTTON3矩阵键盘70BUTTON4矩阵键盘71BUTTON5矩阵键盘72BUTTON6矩阵键盘73BUTTON7矩阵键盘74DS1302_CLKRTC75DS1302_DATARTC76DS1302_CSRTC77VCC_3V378GND79TLC5615_CSD/A80TLC5615_CLKD/A81TLC5615_DATAD/A82CFG_nSTATUS83CFG_CONF_DONE84GND85GND86TLC549_CLKA/D87TLC549_DATAA/D88NULL未连接89NULL未连接90NULL未连接91NULL未连接92TLC549_CSA/D93LED0LED94LED1LED95VCC_3V396LED2LED97LED398GND99DATA0注:SRAM数据总线与8个LED通过一片74LV245复用100DATA1101DATA2102VCC_3V3103DATA3104DATA4105GND106GND107VCC_1V2108GND109VCC_1V2110GND111GND112DATA5113DATA6114DATA7115SRAM_CS注:RAM片选同时控制245116VCC_3V3117GND118SRAM_OE119SRAM_WE120ADDR0121ADDR1注:SRAM的地址总线通过2片74LV245与数码管的位选和段选控制122ADDR2123GND124VCC_1V2125ADDR3126ADDR4127VCC_3V3128GND129ADDR5130GND131VCC_1V2132ADDR6133ADDR7134ADDR8135ADDR9136ADDR10137ADDR11138VCC_3V38139ADDR12信号复用140GND141ADDR13142ADDR14143ADDR15144ADDR161.6QuartusII软件的安装与使用1.6.1QuartusII9.0的安装与破解A:安装QuartusII软件安装QuartusII软件的方法比较简单,直接双击安装文件,点击下一步并选择路径进行安装即可,注意安装目录路径最好不要有中文和空格符号。B:破解QuartusII软件安装完成后,需要对软件进行破解,步骤如下:1:将破解文件中的sys_cpt.dll,拷贝到安装目录下,默认安装目录是在C:\altera\90sp2\quartus\bin,将破解文件sys_cpt.dll拷贝到该目录下覆盖原文件即可。2:把license.dat里的XXXXXXXXXXXX用您的网卡号替换。您计算机网卡号可以通过下面方式得到:打开您计算机的开始-运行-输入CMD回车打开命令行窗口如下:在命令行窗口写入IPCONFIG/ALL回车,如下图描述即是你计算机的网9卡号把license.dat里HOSTID=后面的XXXXXXXXXXXX用您的网卡号替换,例如把license.dat里的HOSTID=XXXXXXXXXXXX改成HOSTID=002564618AB5,不要写成00-25-64-61-8A-B5,保存,把license.dat复制到quartus软件安装目录下。注意license.dat中有两处需要修改。3:打开quartus软件,选择ToolsLicenseSetup进入License设置界面指定你的LicenseFile(license.dat)位置,必须出现上方红色圆圈的内容才