资源描述
北京百科融创教学仪器设备有限公司 EDA/CPLD/FPGA教学实验箱目 录 目 录 1第一部分 EDA(CPLD/FPGA)技术概述2第三部分 QUARTUSII 开发工具的基本操作16第四部分:基础实验32【实验01】 组合电路32【实验02】 扫描显示电路实验37【实验03】 七人表决器40【实验04】 格雷码变换41【实验05】 四位全加器43【实验06】 多路选择器45【实验07】 四位并行乘法器46【实验08】 设计基本触发器47【实验09】 触发器功能模拟49【实验10】 设计74LS169计数器功能模块52【实验11】 步长可变的加减计数器54【实验12】 计数器及时序电路55【实验13】 数控分频器60【实验14】 可控脉冲发生器64【实验15】 正负脉宽数控调制信号发生器66【实验16】 四位并行流水乘法器67第五部分:综合实验69【实验01】 矩阵键盘控制接口设计实验69【实验02】 电子色子游戏机设计实验72【实验03】 数字时钟设计实验74【实验04】 秒表设计实验77【实验05】 VGA显示接口设计实验(VGA彩条信号发生器)80【实验06】 PS/2键盘接口设计实验83【实验07】 1616点阵汉字显示设计实验86【实验08】 液晶显示与应用设计实验89【实验09】 串行AD数据采集与显示设计实验91【实验10】 数字电压表设计实验(并行AD数据采集与显示)93【实验11】 简易函数信号发生器设计实验(并行DA转换)96【实验12】 波形发生与扫频信号发生器设计实验(串行DA)98【实验13】 硬件电子琴电路设计实验101【实验14】 乐曲自动演奏与硬件电子琴设计实验104附录 I 核心板硬件资源连接106第一部分 EDA(CPLD/FPGA)技术概述电子设计自动化(EDA)技术是以计算机科学和微电子技术发展为先导,汇集了计算机图形学、拓扑逻辑学、微电子工艺与结构、计算数学等多种计算机应用学科的最新技术成果,在先进的计算机工作平台上开发出来的一整套电子系统设计的软件工具。EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计CAD、计算机辅助工程设计CAE和电子设计自动化EDA三个发展过程。EDA软件工具种类繁多,如:Smartork、Orcad、Tango、Protel、Workbench(multsim)、Pspice 以及各大可编程器件厂商提供的专用开发软件,如:Altera公司提供的MAX+plus/QuartusII、Lattice公司提供的ispDesignExpert /PAC-Designer、Xilinx公司提供的Foudation Series/webpack等,本书将重点介绍Altera公司的可编程器件及其开发工具。 随着电子设计自动化(EDA)技术的不断发展,其含义也不断发生变化,早期的电子设计自动化多指类似Protel电路版图的设计自动化概念,这种概念仅限于电路元器件与元器件之间即芯片外设计自动化,随着微电子技术的不断发展,当今的EDA技术更多的是指可编程逻辑器件的设计技术,即芯片内的电路设计自动化。也就是说,开发人员完全可以通过自己的电路设计来定制其芯片内部的电路功能,使之成为设计者自己的专用集成电路(即ASIC)芯片,这就是我们今天所说的的EDA技术用户可编程逻辑器件(PLD)技术。其应用也无处不在,从简单的逻辑电路、时序电路设计到复杂的数字系统设计均能得心应手,在通信领域(软件无线电)、数字信号处理(DSP)领域、嵌入式/片上系统(SOC)及各种IP内核等诸多领域早已广泛应用,如果说原来的Tango(Protel)的问世在电子设计领域是一次革命的话,那么今天的EDA(CPLD/FPGA)技术称得上是电子设计领域的第二次革命。随着可编程器件PLD技术的不断发展和崛起,其功能之卓越和先进已经令当今的电子工程师们赞叹不已,除了它设计灵活、仿真调试方便、体积小、容量大、I/O口丰富、成本低廉、易编程和加密等优点外,更突出的特点是其芯片的在系统可编程技术。也就是说它不但具有可编程和可再反复编程的能力,而且只要把器件插在用户自己设计的目标系统内或线路板上,就可以重新构造其设计逻辑而对器件进行编程或者反复编程,这种技术被称为在系统可编程技术,简称ISP技术。由于ISP技术的应用,打破了产品开发时必须先编程后装配的惯例,而可以先装配后编程,成为产品后还可以在系统内反复编程和修改,ISP技术使得系统内硬件的功能象软件一样被编程配置,使系统的升级和维护变得更容易和方便。可以说可编程器件真正做到了硬件的“软件化”自动设计,这就是当今的EDA电子设计自动化技术。可以不夸张地说由于可编程器件的出现,传统的(数字)电路设计方法和过程得到了一次革命和飞越。由于ISPPLD器件的写入、擦除控制电路和高压脉冲发生电路集成在PLD芯片内部,所以不需要编程器,直接利用器件的工作电压,在器件安装到系统板上后,不需要将器件从电路板上拔下来,可直接对器件进行编程,并可改变其内部的设计逻辑,满足其设计需要。可编程器件PLD可分为数字可编程器件和模拟可编程器件两类。前者之技术发展已经相当成熟,在大量的电子产品中早已得到了实际应用;后者相对来说发展要晚一些,其现有的芯片功能也比较单一。数字可编程逻辑器件按其密度可分为低密度PLD和高密度PLD两种,低密度PLD器件如早期的PAL、GAL等,它们的编程都需要专用的编程器,属半定制ASIC器件;高密度PLD又称复杂可编程逻辑器件,如市场上十分流行的CPLD、FPGA器件,它们属于全定制ASIC芯片,编程时仅需以JTAG方式的下载电缆与计算机并口相连即可。此书将主要以数字可编程逻辑器件(CPLD、FPGA)之设计与应用进行系统描述,有关模拟可编程器件的说明请参考本公司的其他书物。CPLD/FPGA同属于高密度用户可编逻辑程器件,其芯片门数(容量)等级从几千门几万门、几十万门到几百万门以上不等,适合于时序、组合逻辑电路应用场合,它可以替代几十甚至上百块通用IC芯片,实际上这样的CPLD/FPGA就是一个子系统部件。在很大程度上他们具有类似之处,比如其电路设计方法都一样。相比而言,CPLD适合于做各种算法和组合逻辑电路设计,而FPGA更适合完成时序比较复杂的逻辑电路。由于FPGA芯片采用RAM结构,失电以后其内部程序将丢失,在形成产品时一般都和其专用程序存储器配合使用,其芯片内部的电路文件(程序)可放置在磁盘上、ROM或E2PROM中,因而可以在FPGA芯片及其外围保持不动的情况下,换一块存储器芯片就能实现一种新的功能。电路设计人员在使用CPLD/FPGA器件进行电路设计时不需过多的考虑它们的区别,因为其电路设计和仿真方法都完全一样,不同之处在于芯片编译或适配时生成的下载文件不一样而已。 可编程器件CPLD/FPGA厂商比较众多,比较知名的如Altera、Lattice、Xilinx、Actel公司等,本公司推出的这套实验系统兼容这几家厂商的CPLD和FPGA芯片。上述几家公司推出的芯片均配有功能强大的开发软件,不仅支持多种电路设计方法,如电原理路图、硬件描述语言VHDL等,而且还支持电路仿真和时序分析等功能,为用户开发和调试产品提供了极大的方便。有关可编程器件设计软件的具体使用在实验系统例程中将详细介绍给读者。CPLD/FPGA技术发展十分迅速,不断有新技术和新产品问世,我们和广大读者一样,也处在不断地学习和运用当中。由于编者水平有限和时间仓促,本指导书中难免有错误和遗漏之处,衷心希望读者批评指正。主要术语摘要:* EDA(电子设计自动化):Electronic Design Automation* CAD(计算机辅助设计):Computer Assist Design* CAE(计算机辅助工程设计):Computer Assist Engineering* ASIC(专用集成电路):Application Specific Integrated Circuits* PLD(可编程逻辑器件):Programmable Logical Device* SOC(片上系统):System On a Chip* CPLD(复杂可编程逻辑器件):Complex Programmable Logical Device * FPGA(现场可编程门阵列):Field Programmable Gates Array* ISP(在系统可编程):In System Programmable* PAL(可编程阵列逻辑):Programmable Array Logic* GAL(通用阵列逻辑):Generic Array Logic * JTAG(边界扫描测试技术):Join Test Action Group*VHDL(硬件描述语言):Very high speed IC Hardware Description Language第二部分 实验开发系统简介一、实验系统概述:RC-EDA系列实验箱主要是为可编程逻辑器件CPLD/FPGA和数字电路、现代电子学等相关课程的实验教学而开发设计的。RC-EDA系列实验系统不仅适合于高校相关电子课程的实验教学、课程设计、毕业设计和大学生电子设计竞赛等,同时也是从事教学及科研的广大教师和电子工程师的理想开发工具。RC-EDA系列实验系统功能齐全,可选型号比较多,其中EDAII、EDAIII型均为数字电路设计实验开发系统,EDAIV型为数、模混合可编程器件实验开发系统。这些系列设备均能不同程度地满足高校的现代电子技术EDA教学和数字电路及其它相关实验课程的要求。由于可编程器件的设计灵活性,其丰富的功能单元和全开放式设计,完全可以使学生做出超过大纲要求的具有复杂性和创造性的综合实验及复杂的数字系统设计。学校可根据教学及科研要求,选用不同型号的EDA实验系统。系统丰富的外围扩展模块及灵活的主芯片配置,使它可以完成近乎所有的数字电路的实验及设计:从简单的逻辑门到时序电路,状态机的设计,再到存储器的设计,各种总线控制器(如UART、I2C、SCI等),存储器控制器(如SDRAM等)的设计,以及CPU的设计等等。二、实验系统硬件组成及资源介绍:一)、可编程器件核心板介绍为了方便用户使用,可编程器件实验系统采用核心板与主机分离的设计方法,用户可以根据自己的需要更换不同类型的核心板,来配合自己的可编程器件实验和开发活动。RC-EDA-IV型可编程器件实验系统使用的一款基于EP4CE6的FPGA核心板,该核心板外观见图1.2.1所示。 图1.2.1核心板外观图EP4CE6核心板拥有以下硬件资源:1、核心板的主控芯片:主控芯片的型号为EP4CE6E22C8N。2、串口通信接口、串口电平转换芯片、串口指示灯:这部分用来完成串口通信的实验,串口指示灯有两个,在串口发送和接收数据的时候闪烁。3、时钟信号输入接口:实验用到的时钟输入要分配到这几个引脚上(对应引脚见附录1)。4、左、上、右引脚接口:FPGA的实验引脚接口,其中右边引脚中的101引脚是一个复用引脚,在实验时需要进行设计才能作为普通IO引脚用(设置方法见附录1)。5、GND测试点:用来给示波器提供接地测试点。6、电源开关和独立电源接口:独立电源接口是在单独使用核心板时用5V电源适配器给给核心板供电的接口。7、电源指示灯:核心板的主控芯片用到了三种电源:5V、3.3V和2.5V,分别有对应的LED进行指示。8、LED和独立按键:主控芯片的一些引脚没有被引出,专门分配给了LED和独立按键(具体引脚分配见附录1),用来完成一些简单的实验和测试。9、50M晶振:核心板的主控芯片配置的是50M晶振。10、程序配置芯片:用来烧写固化程序,芯片型号为EPCS64N。11、复位按键:主控芯片的一个引脚连接着该复位按键,若要使用该复位按键,也必须在程序中进行引脚分配。12、程序下载接口:JATG接口是用来下载.sof文件的,掉电丢失;AS接口是用来下载.pof文件的,掉电保存,程序保存在程序配置芯片中(两种文件的下载方法会在第三部分中详细讲解)。二)、实验箱系统资源介绍(以RC-EDA-IV型为例):实验系统主要由以下模块组成:01. 电源输出模块(12V、5V、+3.3V、+2.5V、+1.8V)02. VGA接口模块 03. EPP并行接口模块04. PS2接口模块05. RS232扩展模块06. 单片机及RS232接口模块07. ispPAC适配器接口模块08. CPLD/FPGA适配器接口模块09. 12位按键输入模块10. 18位拨码开关输入模块11. 16 x 16点阵模块12. 128 x 32字符图形液晶显示模块13. 4位米字型数码管显示模块14. 8位8字型数码管显示模块15. 蜂鸣器输出模块16. 直流电平调节模块17. 模拟信号源模块18. 话筒输入模块19. 语音输出模块20. 电阻电容扩展模块21. 面包板扩展模块22. 并行8通道8位A/D转换模块23. 串行A/D转换模块24. 并行D/A转换模块25. 串行D/A转换模块26. 并行E2PROM模块27. 串行E2PROM模块28. SRAM模块29. 可调数字时钟源模块(1Hz16.67MHz)30. 可调(高频)数字时钟源模块(25 MHz -100MHz)各模块详细说明如下:1. 4位米字型数码管显示模块数码管为共阴数码管。本模块的输入口共有21个,为17个段信号输入口和4个位信号输入口,分别为A1、A2、B、C、D1、D2、E、F、G、H、J、K、M、N、O、P、DP、SEL0、SEL1、SEL2、SEL3。其中SEL0对应最左端的数码管,SEL3对应最右端的数码管。数码管的管脚分配如图1.2.2所示。图1.2.2 米字型数码管管脚分配图2. 8位8字型数码管显示模块数码管为共阴数码管。本模块的输入口共有21个,为11个段信号输入口和3个位信号输入口,分别为A、B、C、D、E、F、G、DP、SEL0、SEL1、SEL2。其中SEL0、SEL1、SEL2位于16 x 16点阵模块区,它们经3-8译码器后送给数码管作位选信号,其对应关系如表1(注:最右边为第一位), 8位8字型数码管显示模块电路原理图如图1.2.3所示。3. 16 x 16点阵模块:接口电路原理图如图1.2.3所示。列选信号为SEL0SEL3经4-16译码器后给,最右边为第一列;行选信号为L0L15,最上方为第一行。图1.2.3 8位数码管、点阵、矩阵键盘电路原理图表1.2.1: LED数码管显示接口及对应的显示状态接口序号数码管SEL2SEL1SEL0状态111第1位亮110第2位亮101第3位亮100第4位亮011第5位亮010第6位亮001第7位亮000第8位亮表1.2.2 点阵显示接口对应关系表SEL3SEL2SEL1SEL0点亮列号1111第1列1110第2列1101第3列1100第4列1011第5列1010第6列1001第7列1000第8列0111第9列0110第10列0101第11列0100第12列0011第13列0010第14列0001第15列0000第16列4. 128x32液晶显示模块:具体介绍见中文液晶显示模块说明。 5. ispPAC适配器接口:下载该芯片时将芯片选择开关拨向PAC。6. CPLD/FPGA适配器接口:下载该芯片时将芯片选择开关拨向CPLD或PAC。7. 12位按键输入模块:开关弹起时为高电平,按下时为低电平。8. 18位拨码开关输入模块:开关拨向下方时为低电平,拨向上方时为高电平。9. 蜂鸣器输出模块:当输入口BELL_IN输入高电平时,蜂鸣器响。10、电平调节模块:调节时,输出口OUT的电平在05V内变化。11、模拟信号源模块:输出频率由数字信号源控制。模块中第一排端口为输入口,第二排端口为输出口,分别说明如下:Diff IN:需差分转换信号输入口;Mux IN1:需叠加信号1输入口;Mux IN2:需叠加信号2输入口;Diff OUT+:差分信号正极性输出端口,为Diff IN差分后的信号;Diff OUT-:差分信号负极性输出端口,为Diff IN差分后的信号;Mux OUT:叠加信号输出端口,为Mux IN1与Mux IN2相加后的信号;SIN_OUT 312KHz:正弦信号SIN_OUT输出端口;12、话筒输入模块:通过外接话筒把语音信号输入经放大滤波后从语音输出端口输出。13、语音输出模块:语音信号从语音输入端口输入,经放大后直接由内部喇叭输出。14、电阻电容扩展模块:准备了一些实验常用的电阻电容供实验过程中使用。15、自由扩展区:可作自开发实验电路的搭建使用,由一块面包板组成。16、8路并行A/D转换模块采用ADC0809,外部信号可以分别通过其8路输入端IN0IN7进入A/D转换器。通过适当设计,目标芯片可以完成对ADC0809的工作方式确定、输入端口选择、数据采集与处理等所有控制工作,并可以通过系统板提供的译码显示电路(LED&LCD)将测得的结果显示出来。I/O口如下:IN0IN7:8通道模拟信号输入口;D0D7: 8位数据总线输出端口;Vref+、Vref-:参考电压输入端口;INT:中断信号输出端口;/WR:写信号输入端口;/RD:读信号输入端口;CS:片选信号输入端口;A0A2:输入端口选择信号输入口;图1.2.4 A/D转换原理图17、并行D/A转换模块8位D/A,I/O口定义如下:D0D7:数据总线,输入口;/CE:转换允许,低电平有效;/CS:片选,低电平有效;D/A OUT:D/A直接输出口。当跳线接左边时,D/A输出的信号直接从该口输出;当跳线接右边时,D/A输出的信号经运放后输出。图1.2.5 D/A转换电路原理图18、串行A/D转换模块采用TI的TLC549芯片,I/O口定义如下:/EN:片选输入,低电平有效。SCLK:时钟输入,最高允许输入时钟1MHz。DOUT:串行数据输出。A_IN+:模拟信号输入。VREF_IN:参考电压输入,最大为VCC。J2:参考电压选择,接VREF时为输入的参考电压,接VCC时为5V。19、串行D/A转换模块采用LT公司的双D/A转换芯片:LTC1446,I/O口定义如下:SCLK:时钟输入。DIN:串行数据输入。/CS:片选输入,低电平有效。VOUTA:第一D/A转换器输出。VOUTB:第二D/A转换器输出。VOUTC:第一、第二D/A转换器相加后输出。20、串行EEPROM模块采用的芯片为串行EEPROM ATMEL548,I/O口定义如下:CS:片选输入,高电平有效。CLK:串行数据时钟输入。DI:串行数据输入。DO:串行数据输出。ORG:存储器位数选择输入:输入高电平时,选择为16位结构的存储器;输入为低电平时,选择为8位结构的存储器;未连接时,由于内部的上拉电阻,使其为16位存储器。21、RS232扩展模块采用的芯片为MAX232标准串行口接口片,通过CPLD/FPGA实现串口控制,可直接实现CPLD/FPGA与上位机的通讯。22、SRAM模块采用芯片WS6264,I/O口见板上标识。23、EEPROM模块采用AT28C64并行E2PROM,I/O口见板上标识。24、单片机及RS232接口模块本单片机为开放性设计,可自由下载程序,对整个系统无任何影响。可以实现CPLD/FPGA与单片机的接口实验,以及高级的FPGA开发,同时自身带有串行接口,可与上位机实现通讯。其对应的接口为:P0口:D0D7;P1口:P10P17;P2口:P20P27;复位信号输出:RESETP3口分别对应为:/RD、/WR、RXD、TXD、T0、T1、INT0、INT1其他接口为:ALE、PSENRESET复位端口提供一高电平脉冲。25、VGA接口模块I/O口定义如下:R:红色信号输入口。G:绿色信号输入口。B:兰色信号输入口。V_SYNC:场同步信号输入口。H_SYNC:行同步信号输入口。26、EPP并行接口模块I/O口见板上标识。27、PS2接口模块I/O口见板上标识。28、可调低频数字信号源时钟信号源可产生从1Hz16MHz之间的任意频率。该电路采用全数字化设计,提供的最高方波频率为16MHz,最低频率为1Hz,并且频率可以在这个范围内随意组合变化。整个信号源共有六个输出口(CLK0CLK5),每个输出口输出的频率各不相同,通过JP1JP11这11组跳线来完成设置的,其中:CLK0输出口的频率通过JP9(CLK0)来设置的,这样输出的时钟频率为F JP916MHzJP9。CLK1输出口的频率通过JP10及JP4来设置,输出频率对应的关系为:FCLK1=16MHzJP10JP4CLK2输出口的频率通过JP10、JP5及JP11来设置,输出频率对应的关系为:FCLK2=16MHzJP10JP11JP5CLK3输出口的频率通过JP10、JP11、JP12及JP6来设置,输出频率对应的关系为:FCLK3=16MHzIP10JP11JP12JP6CLK4输出口的频率通过JP10、JP11、JP12、JP13及JP7来设置,输出频率对应的关系为:FCLK4=16MHzIP10JP11JP12JP13JP7CLK5输出口的频率通过JP10、JP11、JP12、JP13、JP14及JP8来设置,输出频率对应的关系为:FCLK5=16MHzIP10JP11JP12JP13JP14JP829、高频数字时钟信号源输出频率为:100MHz、50MHz、25MHz。第三部分 QuartusII 开发工具的基本操作这一部分我们通过一个实例来系统介绍用Quartus软件来实现一个FPGA项目开发的基本操作,这个实例要实现的功能很简单,我们就是用QuartusII软件来实现一个“非门”的功能。3.1项目工程的新建我们双击打开QuartusII软件,单击Creat a New Project,如图3.1.1所示。(也可以关掉这个界面,选择FileNew Project Wizard)图3.1.1 安装QuartusII软件这里我们直接点击Next如图3.1.2所示;图3.1.2点击next由上到下三行依次是工程的保存目录、工程的名字、工程的实体名,其中工程的保存目录必须在非中文路径下,且没有非法字符,这里我们直接在E盘建立一个名为notgate的文件夹,并在第一行选中它,工程的名字可以和工程的实体名一样也可以以不一样,这里为保持一致性,都设置为一样为notgate,如图3.1.3所示。图3.1.3 保存工程这里是添加事先已经设计好的设计文件,我们这里没有,直接点击Next,如图3.1.4所示。图3.1.4 添加文件接下来我们选择芯片,我们实验箱核心板用的是EP4CE6E22C8N,这里上面的四个选项是选择芯片的特征,左边是芯片的的种类,我们选择Cyclone IV E,右边三项依次是封装、引脚数、速度等级,我们分别选TQFP、144、8,这样在下面就会列出符合条件的芯片型号,我们选择第一项EP4CE6E22C8,点击Next,如图3.1.5所示。图3.1.5 选择芯片下面是EDA第三方工具的设置,包括综合工具、仿真工具和时序分析工具,这里我们选择默认,直接点击Next,如图3.1.6所示。图3.1.6 设置第三方工具这里列出刚刚新建的工程的一些基本信息,包括工程目录、工程名称、顶层设计名称、FPGA芯片系列及型号等信息,如果在这个对话框发现之前的设置有错,可点击Back返还重新进行设置,这里我们点击Finish完成工程的建立,如3.1.7所示。图3.1.7 完成设置这时在左边的工程栏会出现我们新建的工程名,说明我们的工程建立成功如图3.1.8所示。图3.1.8 完成新建工程3.2设计文件的新建QuartusII软件支持的设计文件包括:VHDL文件、Verilog HDL文件、AHDL文件、Block Diagram/Schematic文件等,这节我们介绍基于Block Diagram/Schematic原理图文件的设计,选择FileNew菜单项,在弹出的对话框中选择Block Diagram/Schematic File选项,点击OK新建一个原理图文件如图3.2.1所示。图3.2.2 新建原理图文件新建原理图后的软件界面如图3.2.3所示。图3.2.3 新建原理图界面在原理图任意位置双击,会弹出元件库的对话框,我们可以在Libraries选项框中直接找我们需要的元件,也可在下面的Name选项框中直接输入我们要找的元件的名字(经常操作你就会记住元件的名字的),如图3.2.4所示。图3.2.4 寻找元器件这里我们直接在Name选项框中输入not,在右边会出现“非门”的元件符号,如果我们需要连续放置多个同样的元件的话,可以勾选Name选项框下面的Repeat-insert mode,如果只需要放一个元件的话就不需要勾选,这里我们只用一个“非门”,不勾选,直接点击OK,如图3.2.5所示。图3.2.5 寻找元器件点击OK之后,我们会看到光标上有一个“非门”的元件符号,在原理的合适位置单击鼠标,就可以把光标上的“非门”放在鼠标点击的位置,点击完后光标上就没有“非门”的元件符号了,如果刚才勾选了Repeat-insert mode,点击完后光标上仍然有“非门”的元件符号,可以继续放置,要想结束元件放置,可以直接按一下键盘上的“Esc”键。放置好“非门”的原理图如图3.2.6所示。图3.2.6 放置元器件按照上面的方法,我们在原理图中插入input模块和output模块(在元件库对话框的Name项中,分别输入input和output就可以选出相应的模块),放好模块的原理图如图3.2.7所示。(插入的元件可以直接用鼠标拖动改变元件的位置,如果想删除元件,可以在选中元件后按一下键盘上的“Delete”键)图3.2.7 配置引脚模式把光标移动至input模块的端点处,则光标会变成一个十字形,按住鼠标左键拖动到not模块的输入端,当出现一个小方框时放开左键,完成input模块和not模块输入端的连接。用同样的方法完成not模块的输出端与output模块的连接(如果连错线了想删除线,选中该线,按一下键盘上的“Delete”键),连好线的原理图如图3.2.8所示。图3.2.8 配置引脚模式双击pin_name输入模块,在弹出的对话框中的Pin name(s)文本框中输入x,点击OK如图3.2.9所示。图3.2.9 配置引脚属性用同样的办法,将output模块的名字改为y,改好后的原理图如图所示,并将原理图进行保存,名字为notgate,如图3.2.10所示。图3.2.10 配置完成3.3工程的编译和综合点击图标对工程进行编译和综合,这里通过编译可以查出设计文件中是否存在错误。我们这里编译通过,如图3.3.1所示,点击OK。图3.3.1 编译工程3.4引脚的分配与下载点击图标,弹出芯片引脚分配的对话框,如图3.4.1所示。图3.4.1 引脚分配在Location处输入我们给x、y分配的引脚,这里我们给它们分别分配100、99两个引脚(直接输入100或99后敲回车键即可),分配好引脚后如图3.4.2所示。图3.4.2 引脚分配关闭上面的界面,点击图标进行全编译,这个编译耗时较长,编译成功后会弹出如图3.4.3所示,对话框,点击OK图3.4.3 编译成功点击图标打开下载对话框,点击左上角的“Hardware Setup”,如图3.4.4所示。图3.4.4 选择下载器驱动在Hardware Setup对话框中选择USB-Blaster(前提是已经将USB-Blaster下载器与电脑相连,并且已经安装好了驱动程序),然后关闭对话框,如图3.4.5所示。图3.4.5 选择下载器驱动下载模式选择JTAG,如果已经将USB-Blaster与电脑和实验箱连接好,且实验箱已经上电,那么,点击“Start”就可完成程序的下载,如图3.4.6所示。图3.4.6 下载成功3.5基于VHDL的设计前面介绍的是基于原理图的设计,如果用户要用VHDL语言进行设计,可以在建立工程后选择FileNew菜单项,在弹出的New对话框中选择VHDL File选项,点击OK退出New对话框,如图3.5.1所示。图3.5.1 选择编程语言在VHDL编辑窗口中输入如下代码(我们这次建立的工程名为notgatvhdl):Library ieee;Use ieee.std_logic_1164.all;entity notgatevhdl is port(x: in std_logic;y: out std_logic -这儿没有分号);end notgatevhdl;architecture dataflow of notgatevhdl isbeginy = not x;end dataflow;后面的编译、引脚分配和下载与基于原理图的设计一样,这里不再赘述。3.6基于VHDL和原理图的混合设计打开我们在3.5中建立的notgatevhdl工程,打开VHDL文件,点击菜单栏的FileCreat/UpdateCreat Symbol Files for Current File 菜单项,就会为我们编写的VHDL文件生成一个原理图模块,如图3.6.1所示。图3.6.1 生成原理图模块 我们新建一个原理图文件,在原理图的任意位置双击,在弹出的元件库对话框的Libraries列表中就会多出一个Project选项,单击Project选项就会出现刚刚生成的notgatevhdl模块,单击notgatevhdl模块,再单击OK退出,如图3.6.2所示。图3.6.2 添加原理图在原理图的适当位置放置notgatevhdl模块,并添加一个输入模块和一个输出模块,把三个模块连接起来,如图3.6.3所示。图3.6.3 配置引脚保存原理图为notgate.bdf。在工程栏,切换到Files标签,在notgate.bdf上右击,选择Set as Top-Level Entity,如图3.6.4所示。(我们在建工程时是将notgatevhdl设为Top-Level Entity的,所以这里需要改一下),之后就可以对设计进行编译、引脚分配和下载了。图3.6.4 设置工程3.7固化程序的生成设置和烧写方法QuartusII软件默认设置编译后产生的是.sof文件,如果要生成.pof固化文件需要对软件进行一下设置,首先我们点击一下Assignments,选择Device,如图3.6.5所示。图3.6.5 设置固化程序接下来点击Device and Pin Options,如图3.6.6所示。图3.6.6 设置固化程序选Configuration项,勾选Use Configuration device,选择EPCS64程序配置芯片,如图3.6.7所示。图3.6.7 设置固化程序点击OK后进行全编译就可以产生.pof固化文件了(如果要产生.sof文件,别忘了设置回去)。向板子上的芯片下载该文件时,需要在下载项中进行设置,如图3.6.8所示,Mode选项改为Active Serial Programing,会弹出如图所示的对话框,选择Yes。图3.6.8 生成固化程序点击Change File,选择刚刚生成的.pof文件,同事勾选上Program/configure和Verify选项,如图3.6.9所示。图3.6.9 下载程序设置将USB-Blaster的下载口插到核心板的AS口,给实验箱上电,点击Start进行固化程序的烧写,烧写时间要比普通程序下载长一些,下载完毕后,一定要拔掉下载器,会看到固化程序的运行情况。第四部分:基础实验【实验01】 组合电路一、实验目的1、 掌握组合逻辑电路的设计方法。2、 掌握组合逻辑电路的静态测试方法。加深EDA设计的过程,并比较原理图输入和文本输入的优劣。二、实验设备3、 RC-EDA-IV型实验箱一台;4、 RC-EDA-IV型实验箱配套USB-Blaster下载器一个;5、 PC机一台。三、实验内容1、设计一个四舍五入判断电路,其输入为8421BCD码,要求当输入大于5时,判别电路输出为1,反之为0。2、设计四个开关控制一盏灯的逻辑电路,要求合任一开关,灯亮;断任一开关,灯灭。3、设计一个优先权排队电路,其排队顺序如下:A=1 最高优先级B=1 次高优先级C=1 最低优先级要求输出端最高只能有一端为“1”,即只能是优先级较高的输入端所对应的输出端为“1”。四、实验原理(供教师参考)实验内容1:(1) 原理图输入如图4.1.1所示(注意图中D0、D1、D2、D3的次序)。 图4.1.1 原理图 (2)VHDL硬件描述语言输入如下:LIBRARY ieee;USE ieee.std_logic_1164.all; ENTITY T2_1 IS port(D0 : IN STD_LOGIC;D3 : IN STD_LOGIC;D2 : IN STD_LOGIC;D1 : IN STD_LOGIC;OUT0 : OUT STD_LOGIC);END T2_1;ARCHITECTURE bdf_type OF T2_1 IS signalSYNTHESIZED_WIRE_0 : STD_LOGIC;signalSYNTHESIZED_WIRE_1 : STD_LOGIC;BEGIN SYNTHESIZED_WIRE_0 = D0 AND D2;SYNTHESIZED_WIRE_1 = D2 AND D1;OUT0 = SYNTHESIZED_WIRE_0 OR D3 OR SYNTHESIZED_WIRE_1;END;实验内容2:(1) 原理图输入如图4.1.2所示。 图4.1.2 原理图 (2)VHDL硬件描述语言输入如下:LIBRARY ieee;USE ieee.std_logic_1164.all; ENTITY t2_2 IS port(K0 : IN STD_LOGIC;K3 : IN STD_LOGIC;K2 : IN STD_LOGIC;K1 : IN STD_LOGIC;OUT1 : OUT STD_LOGIC);END t2_2;ARCHITECTURE bdf_type OF t2_2 IS signalSYNTHESIZED_WIRE_0 : STD_LOGIC;signalSYNTHESIZED_WIRE_1 : STD_LOGIC;BEGIN SYNTHESIZED_WIRE_0 = K0 XOR K1;SYNTHESIZED_WIRE_1 = K2 XOR K3;OUT1 = SYNTHESIZED_WIRE_0 XOR SYNTHESIZED_WIRE_1;END;实验内容3:(1) 原理图输入如图4.1.3所示。图4.1.3 原理图 (2)VHDL硬件描述语言输入如下:LIBRARY ieee;USE ieee.std_logic_1164.all; ENTITY t2_3 IS port(A : IN STD_LOGIC;C : IN STD_LOGIC;B : IN STD_LOGIC;A_OUT : OUT STD_LOGIC;C_OUT : OUT STD_LOGIC;B_OUT : OUT STD_LOGIC);END t2_3;ARCHITECTURE bdf_type OF t2_3 IS signalSYNTHESIZED_WIRE_3 : STD_LOGIC;signalSYNTHESIZED_WIRE_1 : STD_LOGIC;BEGIN A_OUT = A;SYNTHESIZED_WIRE_3 = NOT(A);SYNTHESIZED_WIRE_1 = NOT(B);B_OUT = SYNTHESIZED_WIRE_3 AND B;C_OUT = C AND SYNTHESIZED_WIRE_1 AND SYNTHESIZED_WIRE_3;END;五、实验连线1、输入信号D3,D2,D1,D0对应的管脚接四个拨码开关。输出信号OUT对应的管脚接LED灯。(核心板PIN103接拨码开关d1,PIN99-d2,PIN100-d3,PIN98-d4,PIN87接LED 的D0)。2、输入信号K1,K2,K3,K4对应的管脚接四个按键开关。输出信号OUT对应的管脚接LED灯。(核心板PIN103接按键开关k1,PIN99-k2,PIN100-k3,PIN98-k4,PIN87接LED 的D0)。3、输入信号A、B、C对应的管脚连三个按键开关。输出信号A-OUT,B-OUT,C-OUT对应的管脚分别连三个LED灯。(核心板PIN103接按键开关k1,PIN100-k2,PIN99-k3,PIN98接LED 的D0,PIN87-D1,PIN86-D2)。拨动拨码开关或者按下按键开关,观察LED灯,与实验内容是否相符。六、实验报告1、对于原理图设计要求有设计过程。2、详细论述实验步骤。3、写一些对于两种硬件设计输入法的优劣心得。【实验02】 扫描显示电路实验一、实验目的了解教学系统中8位七段数码管显示模块的工作原理,设计标准扫描驱动电路模块,以备后面实验调用。二、实验设备1、 RC-EDA-IV型实验箱一台;2、 RC-EDA-IV型实验箱配套USB-Blaster下载器一个;3、 PC机一台。三、实验内容1、用拨码开关产生8421BCD码,用EDA产生字形编码电路和扫描驱动电路,然后进行仿真,观察波形,正确后进行设计实现,适配化分。调节时钟频率,感受“扫描”的过程,并观察字符亮度和显示刷新的效果。2、编一个简单的从0F轮换显示十六进制的电路。四、实验原理 四位拨码开关提供8421BCD码,经译码电路后成为7段数码管的字形显示驱动信号。(AG)扫描电路通过可调时钟输出片选地址SEL2.0如图4.2.1所示。由SEL2.0和A.G决定了8位中的哪一位显示和显示什么字形.SEL2.0变化的快慢决定了扫描频率的快慢。 图4.2.1 数码管引脚图参考电路(时钟频率 a,b,c,d,e,f,g; H0 = 1,1,1,1,1,1,0; H1 = 0,1,1,0,0,0,0; H2 = 1,1,0,1,1,0,1; H3 = 1,1,1,1,0,0,1; H4 = 0,1,1,0,0,1,1; H5 = 1,0,1,1,0,1,1; H6 = 1,0,1,1,1,1,1; H7 = 1,1,1,0,0,0,0; H8 = 1,1,1,1,1,1,1; H9 = 1,1,1,1,0,1,1; HA = 1,1,1,0,1,1,1; HB = 0,0,1,1,1,1,1; HC = 1,0,0,1,1,1,0; HD = 0,1,1,1,1,0,1; HE = 1,0,0,1,1,1,1; HF = 1,0,0,0,1,1,1; END TABLE;END;106【实验03】 七人表决器一 实验目的1、 熟悉Quartus II软件的使用。2、 熟悉EDA-IV实验箱。3、 熟悉EDA开发的基本流程。二 硬件需求1、 RC-EDA-IV型实验箱一台;2、 RC-EDA-IV型实验箱配套USB-Blaster下载器一个;3、 PC机一台。三 实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4人时,则认为同意;反之,当否决的票数大于或者等于4人时,则认为不同意。实验中用7个拨挡开关来表示七个人,当对应的拨挡开关输入为1时,表示此人同意;否则若拨挡开关输入为0时,则表示此人反对。表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。四 实验内容本实验就是利用EDA-IV实验箱中的拨挡开关模块和LED模块来实现一个简单的七人表决器的功能。拨挡开关模块中的d1d7表示七个人,当拨挡开关输入为1时,表示对应的人投同意票,否则当拨挡开关输入为0时,表示对应的人投反对票;LED模块中LED中D0表示七人表决的结果,当D0点亮时,表示一致同意,否则当D0熄灭时,表示一致反对。(按键k1-103,k2-100,k3-99,k4-98,k5-87,k6-86,k7-85,数码管a-84,b-83,c-80, d-77,e-76,f-75,g-74,led灯D0-73)。【实验04】 格雷码变换一 实验目的1、 了解格雷码变换的原理。2、 进一步熟悉QuartusII软件的使用。3、 熟练掌握EDA-IV实验箱的使用。二 实验设备1、 RC-EDA-IV型实验箱一台;2、 RC-EDA-IV型实验箱配套USB-Blaster下载器一个;3、 PC机一台。三 实验原理格雷(Gray)码是一种可靠性编码,在数字系统中有着广泛的应用。其特点是任意两个相邻的代码中仅有一位二进制数不同,因而在数码的递增和递减运算过程中不易出现差错。但是格雷码是一种无权码,要想正确而简单的和二进制码进行转换,必须找出其规律。根据组合逻辑电路的分析方法,先列出其真值表再通过卡诺图化简,可以很快的找出格雷码与二进制码之间的逻辑关系。其转换规律为:高位同,从高到低看异同,异出1,同出0。也就是将二进制码转换成格雷码时,高位是完全相同的,下一位格雷码是1还是0,完全是相邻两位二进制码的“异”还是“同”来决定。下面举一个简单的例子加以说明。假如要把二进制码10110110转换成格雷码,则可以通过下面的方法来完成,方法如图4.3.1所示。图4.3.1 格雷码变换示意图因此,变换出来的格
展开阅读全文