IC:是半导体元件产品的统称,包括:集成电路、三极管、特殊电子元件。ASIC:专用IC。是指为特定的用户、某种专门或特别的用途而设计的芯片组。SOC:片上系统。随IC设计与工艺的提高,使原先由许多IC组成的电子系统可集成到一个芯片上,构成SOC。•名词解释EDA:电子设计自动化。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。SOPC:可编程的片上系统。是Altera公司提出来的一种灵活、高效的SOC解决方案。也可认为是基于FPGA解决方案的SOC。《FPGA原理及应用》课程介绍什么是FPGA?FPGA是现场可编程门阵列(FieldProgramableGateArray),是一种主流的大规模可编程逻辑器件。PLD即可编程逻辑器件(ProgramableLogicDevice),是一种能够用编程的方法设计内部硬件电路结构的集成电子器件。FPGA有什么应用?通信系统:DDS信号产生、信源编解码、信道编解码、数字调制解调、通信协议解析;信号处理:快速傅里叶变换、数字滤波、JPEG编解码、MPEG编解码、高速图像采集工业控制和测量:电机(PWM)控制、开关电源、数字频率计、误码率测试仪、相位测试仪;《FPGA原理及应用》课程介绍专用集成电路原型开发:ARM、DSP、CPU、MCU协处理器接口与外设:SDRAM控制器、PCI接口控制、I2C总线控制、USB控制、LCD&VGA控制如何进行FPGA设计?1、熟悉所选器件(内部结构、管脚分布和器件功能);2、制作最小系统和必要外设PCB板;3、选择合适设计软件:设计输入、逻辑综合、管脚约束、仿真分析、布局布线、下载配置;4、系统检测和调试;《FPGA原理及应用》课程内容可编程逻辑器件概述CPLD和FPGA的器件结构FPGA设计流程及设计工具基于FPGA的SOPC设计NIOS软核结构NIOS嵌入式系统开发课程要求和考核方式1.保证听课,做笔记,勤动脑思考。认真、独立完成课程练习和作业。2.期末闭卷考试,考试成绩占总评成绩的50%。半导体器件的发展简史晶体管:1947年12月,美国贝尔实验室的物理学家WilliamShockley、WalterBrattian和JohnBardeen制造了第一个晶体管,一个锗(Ge)制造的点接触器件1950年,出现了双极型晶体管(BJT),并用硅(Si)取代了锗作为器件材料。把BJT以特定的方式相连可以实现数字逻辑门:如晶体管---晶体管逻辑(TTL)、发射极耦合逻辑(ECL)1962年,出现了金属氧化物半导体场效应晶体管(MOSFET),FET有两种类型:NMOS和PMOS。由NMOS和PMOS以互补方式构成的逻辑门就是互补金属氧化物半导体(CMOS)逻辑门。半导体器件的发展简史集成电路(IC):1958年,美国德州仪器(TI)公司成功将包括5个元件的移相振荡器制作在了同一片半导体上同一时期,Fairchild半导体公司发明了衬底光学印刷技术(即光刻技术),这种技术现在广泛的应用于制造IC中的晶体管、绝缘层和互联线1960年代,TI公司设计制造了大量的基本功能IC,称为54XX和74XX系列,分别面向军用和民用,用TTL技术实现1968年,美国RCA公司开发了与74XX系列等效的以CMOS技术实现的4000系列IC1970年,Intel开发了第一个1024位的DRAM(型号1103),Fairchild公司开发了第一个256位的SRAM(型号4103)1971年,Intel开发了世界上第一个微处理器4004。该处理器包含大约2300个晶体管,每秒可以执行60000次操作1980年代,出现可编程逻辑器件图1:数字集成电路分类数字集成电路微处理器专用集成电路标准集成电路全定制电路半定制电路可编程逻辑器件近代可编程逻辑器件早期可编程逻辑器件CPLDFPGAPROMPLAPALGALEPROME2PROM集成电路分类1、标准集成电路标准集成电路是指那些逻辑功能固定的集成电路。它具有很强的通用性,其电路的电气指标、封装等在国内外均已标准化,并印有公开发行的用户手册,供大家选用。SSI、MSI、LSI以及VLSI中那些完成基本功能和通用功能的集成电路,如与非门、异或门、触发器、加法器、乘法器、各类存储器以及通用寄存器等,都属于标准集成电路。当我们采用标准集成电路设计逻辑电路系统时,需要进行选片、系统设计和连线等方面的工作。虽然标准集成电路品种繁多,发展也很快,但用户只能在已生产的集成电路品种中选择,所以在改进和调试系统时需要修改印制版,从而使研制周期变长、成本增加。同时,采用标准集成电路的逻辑电路系统存在集成度低,可靠性、维护性差等缺点。集成电路分类2.微处理器微处理器主要指通用的微处理芯片。如Z80、8086、MCS51、ARM、DSP等。这类器件的功能由汇编语言或高级语言编写的程序来确定,也就是说,其功能由用户自己设置,故具有一定的灵活性。但该器件应用时需要用户设计专门的接口电路,否则它很难与其他类型的器件直接配合。目前除用作CPU外,多用于实时处理系统。集成电路分类3.专用集成电路(ASIC)ASIC是指那些专门为某些用户设计的集成电路。当然,这种芯片不再具有通用性。专用集成电路又称用户定制电路,它可分成全定制电路(FullCustomCircuit)和半定制电路(SemiCustomCircuit)。全定制电路:集成电路生产厂家完全按照用户的要求,从晶体管级开始设计,充分利用设计者本人和前人的经验,力求做到管芯面积最小、工作速度最快、功耗最小和各项电气指标符合用户的要求。这种电路设计和制造方法的优点是:电路性能高,保密性好,占用体积小。其缺点是:成本高,设计和试制周期长。半定制电路:是指在设计和生产过程中的某些部分,例如门阵列法中的门阵列母片、标准单元法中的库单元、可编程逻辑器件中的全功能芯片等,可以“预先加工”和“预先设计”乃至“预先制作”好,并可为所有用户选用。而另外一些部分,如版图的布局、布线和它所形成的版图只能符合特定用户的要求,不能共享。也就是说,只有一部分设计是按用户要求定做的,故称为半定制电路。这种电路在一定程度上既可满足用户“定制”要求,又能做到设计周期短、成本低。集成电路分类可编程逻辑器件(ProgrammableLogicDevices,简称PLD)具有标准集成电路和半定制电路二者的特征。一方面,它的全功能集成电路块和标准集成电路一样,不同的生产厂家可以生产相同结构和品种的电路,并印有统一的用户手册,用户可以根据自己的需求来挑选不同的品种。另一方面,用户买到这种集成电路后不能马上使用,要根据自己的电路设计进行编程,再用专门的编程器或配置芯片将他们“烧制”成需要的电路。因此,从工厂生产、设计和销售的角度来看,它属于标准集成电路,从用户要作设计和“烧制”的角度来看,则又属于半定制电路。可编程逻辑器件的概念和范畴为什么需要可编程逻辑器件?伴随着集成电路技术的发展,将大规模电路集成到一片芯片上,不仅能减小电路的体积、重量、功耗,而且能够大大提高电路的可靠性,于是人们开始定制各种具有专门用途的专用集成电路(ASIC)。然而,设计ASIC成本高、周期长,于是就产生了很大的矛盾。为解决这个矛盾,可编程逻辑器件应运而生。可编程逻辑器件的功能可编程逻辑器件是内部构架已经由制造商确定的通用器件,但它的逻辑功能是由用户通过对器件编程来设定的。可编程逻辑器件的范畴半导体存储器(PROM)、现场可编程逻辑阵列(FPLA)、可编程阵列逻辑(PAL)、通用阵列逻辑(GAL)、可擦除的可编程逻辑器件(EPLD)、复杂的可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)可编程逻辑器件(PLD)的表示方法和基本结构典型的PLD器件一般都是由与阵列、或阵列,起缓冲驱动作用的输入逻辑和输出逻辑组成,其通用结构框图如图2所示。其中,每个输出数据都是输入的与或函数。与阵列的输入线和或阵列的输出线都排成阵列结构,每个交叉处用逻辑器件或熔丝连接起来。逻辑编程的物理实现,一般都是通过熔丝或PN结的熔断和连接,或者对浮栅的充电和放电来实现的。图2:PLD器件通用结构框图输入逻辑输入与阵列或阵列输出逻辑乘积项和项……数据输出数据输入可编程逻辑器件(PLD)的表示方法由于PLD器件的阵列连接规模十分庞大,为了便于了解PLD的逻辑关系,PLD器件的逻辑图中使用的是一种简化表示方法。PLD器件阵列交点处的几种连接方式如图3所示。连线交叉处有实点的,表示固定连接;连线交叉处有符号“×”的,表示编程连接;连线交叉处无任何符号的,表示不连接或是擦除单元。图3:PLD连接方式的表示法固定连接编程连接擦除单元可编程逻辑器件(PLD)的表示方法图4是可编程“与”阵列和“或”阵列中常用到的与门、或门、输入缓冲器、三态输出缓冲器及非门的表示方法。图4(a)表示一个3输入的与门,其中3条竖线A、B、C均为输入项,输入到与门的一条横线称为乘积项线,输入线与乘积项线的交叉点和“与”阵列中的交叉点相对应,这些交叉点都是编程点。图4:常用门电路在PLD中的表示法(a)与门;(b)或门;(c)输入缓冲器;(d)三态输出缓冲器;(e)非门(a)AAAAENAAAEN(b)ABCPY(c)(d)(e)P1P2P3可编程逻辑器件(PLD)的表示方法由图可见,输入A与乘积项线是固定连接,输入B与乘积项线不相连,输入C与乘积项线是编程连接,所以该与门的乘积项输出是:P=AC。同理,图5(b)表示一个3输入的或门,它的输出是Y=P1+P2。图4(c)表示输入缓冲器,它有两个互补输出,一个是A,另一个是。PLD的输入往往要驱动若干个乘积项,也就是说,一个输入量的输出同时要接到几个晶体管的栅极(或基极)上,为了增加其驱动能力,就必须通过一缓冲器。不但如此,在与阵列中往往还要用到输入变量的补项,这一功能也同时由驱动电路来完成,因此,在PLD中,每一个输入变量均通过一个具有互补输出的缓冲器。A可编程逻辑器件(PLD)的表示方法当I/O端作为输出端时,常常用到具有一定驱动能力的三态控制输出电路。在PLD的逻辑电路中的三态控制输出电路有如图4(d)表示的两种形式,一种是控制信号为高电平且反相输出;另一种是控制信号为低电平且反相输出。如果当所有输入的原码和反码在乘积项处都打“×”,即表示所有的连接点都是编程连接,如图5(a)所示,那么就有,此时可以简化为图5(b)的表示方式。PAABB图5:PLD的默认表示方法ABP=0(a)AB(b)ABABP=0可编程逻辑器件(PLD)的表示方法图6是一个简单的组合逻辑在SSI中的逻辑图和在PLD中的逻辑图实例。图6(a)所示的组合逻辑电路,它的PLD表示法如图6(b)所示。2112Y=II+II图6:组合逻辑在SSI中和在PLD中的逻辑图1&1&≥1I1I22121IIIII1I22121IIII(a)(b)可编程逻辑器件(PLD)的基本结构1.可编程只读存储器可编程只读存储器(ProgrammableReadOnlyMemory,简称PROM)是最早的PLD器件,它出现在20世纪70年代初。它包含一个固定的“与”阵列和一个可编程的“或”阵列,其基本结构图如图7所示。PROM一般用来存储计算机程序和数据,它的输入是计算机存储器地址,输出是存储单元的内容。由图可见,它的“与”阵列是一个“全译码阵列”,即对某一组特定的输入Ii(i=0,1,2)只能产生一个惟一的乘积项。因为是全译码,当输入变量为n个时,阵列的规模为2n,所以PROM的规模一般很大。图7:基本PROM结构可编程逻辑器件(PLD)的基本结构2.可编程逻辑阵列虽然用户能对PROM所存储的内容进行编程,但PROM还存在某些不足,如:PROM巨大阵列的开关时间限制了PRO