复杂可编程逻辑器件与应用设计知识点总结_第1页
复杂可编程逻辑器件与应用设计知识点总结_第2页
复杂可编程逻辑器件与应用设计知识点总结_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.构成数字电子系统的4种方法/途径:a 用普通中小规模的74系列和coms的cd4000/4500系列器件;b 用大规模集成的cpu/mcu/dsp器件;c 用专门的、大规模集成的asic器件;d 用大规模集成的cpld/fpga器件.2.eda是什么?现代eda技术是设计ic和开发cpld/fpga必不可少的工具,具有输入、存储、编译、仿真、调试、下载等重要功能。3.了解人们为何要发展出各种可编程逻辑器件?主要目的是:人们想经济的自己定义/设计大规模集成的数字电子系统,达到少花钱又开发出满足自己要求的大规模集成数字电子系统。4、cpld属于何种结构?用那些基本方法/技术研制/设计出来的?属

2、阵列型结构,可编程的与阵列,固定的或阵列,在gal的基础上发展起来,eeprom存储单元,非易失性器件。5、fpga属于何种结构?用那些基本方法/技术研制/设计出来的?属门阵列结构,利于lut实现逻辑功能,用sram存储编程数据,集成度易做的很高,但调电后功能消失,是易失性器件。6.altera max7000s系列器件的基本结构:a 与或乘积项结构,eeprom工艺,非易失性器件,芯片的集成度相对低;b 基本部件是:le;c 3个基本组成:lab/pia/iob,1个lab中包含16个le;d 了解器件型号的命名规则。altera flex 10k系列器件的基本区别。a lut,sram工艺

3、,易失性器件,芯片的集成度相对高;b 基本部件是:le;c 4个基本组成:lab/eab/pia/iob,1个lab中包含8个le,每个eab的容量是2kbit;d 了解器件型号的命名规则7.max7000s系列器件: 是阵列型的pld器件,非易失性配置(eeprom),使用方便、简单,集成度不是很高,适合实现组合型逻辑电路等。flex 10k/1k系列器件:是lut型的pld器件,易失性配置(sram),应用中需要采用外部配置元件(eprom/eeprom等),集成度可做到很高(可达数百万门),尤其易于实现时序逻辑电路,器件性价比甚高等。8.状态机就是一组触发器的输出状态随着时钟和输入信号按

4、照一定的规律发生变化的一种过程。状态机的每一个状态由一组触发器输出信号的高低电平的组合来表示。状态位代表着一些触发器,它们被用来储贮状态机的状态。2 char1 数字电子系统:可以完成某种(或多种)特定的、功能不单一的一种电子系统。一般应包含某种控制器及受控单元。数字器件:即数字ic芯片。构成数字系统的基本部件,是数字系统的元素或细胞。标准ttl或cmos数字集成电路是数字器件。二者区别:否具有控制和受控单元构建数字系统的方法以及他们的特点:1.标准化的中、小规模数字集成电路 特点:简单易用、价格低廉,应用广泛,集成度较低,功能受限。系统构成复杂、功耗高、可靠性偏低。2.基于lsi或vlsi的

5、微处理器 特点cpu、mcu、dsp依靠执行指令(软件)可以方便的实现几乎任意的数字逻辑功能,其应用灵活性极强。3.基于lsi或vlsi的专用集成电路asicasic是一种为完成某种特定的电路功能而专门设计、生产的ic器件。特点:需要专门设计/定制,大规模集成。性能强、功耗低、工作可靠性高、保密性高、大批量应用时成本也较低;功能专一且不能改变。总之,使用asic进行数字系统设计需要较高的开发费用、设计与制造周期也较长。所以asic只适合在大批量工业应用的场合中使用。4.基于lsi/vlsi的可编程逻辑器件pld特点:由用户自定义器件的功能、大规模集成。设计周期短、设计风险低、应用灵活、系统功能

6、强大、功耗低。可编程逻辑器件 what可编程逻辑器件(pld programmable logic device)是一种通用的电子器件,其功能不是固定不变的,而是可根据用户的需要而进行改变,即:可通过编程设计的方法来定义器件的逻辑功能。why(1)传统设计方法的局限(不宜设计复杂数字系统)中小规模器件:面积大,芯片多,功耗大,可靠性低微处理器系统:需要一定的数字接口器件相配合才能有效工作;工作速度相对较慢,在一些需要高速、实时工作的应用场合受到一定的限制。专用asic数字系统:开发费用高、设计与制造周期长。计算机技术的发展使eda技术得到广泛应用设计方法的发展自上而下的设计方法已得到了成熟应用

7、。用pld开发周期短,投入小,风险小。pld可以替代多至几千块通用ic芯片,极大减小电路的面积,降低功耗,提高可靠性。优点:1.pld集成度高,可以替代多至几千块通用ic芯片. 2.cad技术的发展提供了完善先进的eda开发工具. 3.可以反复地擦除、编程配置,方便进行设计修改和升级 4.灵活地定义管脚功能,简化应用 5.减轻设计工作量,缩短系统开发时间 6.保密性好。发展趋势1.向高集成度、高速度方向进一步发展 2.向sopc方向发展(可设计片内cpu、dsp及接口控制电路,构成各种嵌入式系统) 3.向低电压和低功耗方向发展4.内嵌多种功能模块(ram,rom,fifo,dsp,cpu) 5

8、.向数、模混合可编程方向发展(内含adc、dac、pwm、pll等) 6.ip内核得到不断发展(能提供更多的标准ip核) pld与mcu的区别;mcu是通过软件(指令)来实现预期的功能;pld是通过内部硬件布线、以硬件来实现预期的功能。所以pld完成逻辑功能的工作速度比mcu要快得多。eda电子设计自动化electronic design automation是以电子计算机为设计工具和设计平台、以电子线路硬件描述语言hdl为主要系统描述手段,综合现代cad(计算机辅助设计)、cat(计算机辅助测试)、cae(计算机辅助工程)技术,自动、高速的完成系统电路逻辑编译、逻辑化简、逻辑综合、逻辑仿真、

9、逻辑优化直至逻辑芯片版图实现,是一种自动化电子系统与ic设计的技术和设计工具。eda应用1、电子线路设计 (如protel中的sch设计)2、pcb设计(如protel中的pcb设计)3、ic设计(如1.普通ic设计2.专用ic设计3.pld应用设计 用eda开发pld内容 设计输入(原理图输入、hdl语言输入、波形输入、状态图输入)设计处理(优化和综合、映射、布局与布线、生成编程文件)设计验证 (功能仿真、时序仿真、在线验证char2 阵列型简单pld器件的种类及结构组成:分类名称 与阵列 或阵列 输出电路 prom可编程只读存储器 固定 可编程 固定pla可编程逻辑阵列 可编程 可编程 固

10、定pal可编程整列逻辑 可编程 固定可 组态gal通用阵列逻辑 可编程 固定 组态功能强现代pld使用的内部编程元件种类:(1) 一次性编程的熔丝(fuse)或反熔丝(antifuse)开关;(2) 基于浮栅技术的存储器。包括紫外线电擦除和电擦除的eprom、e2prom与flash memory(闪速存储器,简称为闪存);(3) 允许无限次编程使用的静态存储器sram。pal器件 结构(可编程与阵列&固定或阵列,一般采用双极性熔丝工艺otp)输出类型:专用输出基本门阵列、可控极性输出结构、可编程输入输出结构、寄存器输出结构gal器件 基本结构(可编程与阵列&固定或阵列&可编程的输出逻辑宏单元

11、olmc)特点1、通用性和应用灵活性较高2、gal器件100可编程3、gal器件100可测试4、高速度和低功耗 工作原理 gal器件为与阵列可编程、或阵列固定的可编程逻辑器件,采用了浮栅存储e2cmos工艺,具有电擦写反复编程的特性。其输出端设置了可编程的输出逻辑宏单元olmc。通过编程写入,用户可将olmc设置为不同的工作状态,这样一种型号的gal器件就能具备pal器件先前讨论过的全部四种输出模式及其派生类型,增强了器件的通用性 gal16v8的组成(1个可编程的与阵列8个输入缓冲器8个输出/反馈缓冲器8 8个输出逻辑宏单元olmc1个时钟输入clk 缓冲器1个输出使能缓冲器) gal的输出

12、逻辑宏单元olmc的几种组态和特点 1.专用输入syn/ac0/ac1(n)/xor(n)=101xx(1、11脚为数据输入,三态门不通)2.专用组合输出1000低电平有效1高电平有效(1、11脚为数据输入;三态门总是选通;所有输出都是组合型)3.反馈组合输出1110低电平有效1高电平有效(1、11脚为数据输入;三态门由第一乘积项选通;所有输出都是组合型的)4.时序电路中的组合输出0110低电平有效1高电平有效(1脚=clk,11脚=/oe;本级宏单元组合型,其余宏单元至少有一个是寄存器型)5.寄存器输出0100低电平有效1高电平有效(1脚=clk、11脚=/oe;本级宏单元寄存器型)char

13、 3 cpld(complex programablelogic device)复杂可编程逻辑器件/fpga(field programablegate array)现场可编程门阵列 特点:1.采用lsi/vlsi技术制造,高集成度2.支持各种组合逻辑和时序逻辑电路设计,甚至实现“片上系统”(soc)3.可编程改变芯片的逻辑功能,芯片可重复使用,具有isp或icr特性(isp:in system programming在系统编程)(icr:in circuit reconfigable 在电路重构)4.有很高的逻辑布线能力,可以预测信号延迟,便于使用计算机进行逻辑功能仿真与时序仿真5.有良好的

14、设计加密功能,便于保护知识产权(ip)6.有强大的eda开发工具(软件)支持, 与asic设计相比, 易学易用7.研制、开发时间较短,费用相对少8.必须借助开发系统才能设计、开发cpld/fpga系统。划分:复杂可编程逻辑器件cpld/fpga的单片集成度大于1000门, 而简单可编程逻辑器件spld 的单片集成度小于1000门。如何使用:开发、使用cpld需要掌握三部分的知识:1、熟悉、了解cpld/fpga芯片(硬件)2、掌握cpld/fpga开发系统(软件)3、能对cpld/fpga芯片进行编程配置(加载设计代码)altera器件性能特点:(1)高性能(2)高密度逻辑集成(3)较短的开发

15、周期(4)高性能价格比(6)在系统可编程(isp)(5)丰富的优化宏函数cpld组成:1逻辑块(lb) 2可编程内连线(pi)、3可编程i/o控制块(i/o b)cpld的性能特点:1)可多次编程、改写和擦除 2)采用cmos eprom、eeprom、flash memory和sram等编程技术,具有高密度、高速度、高可靠性和低功耗 3)i/o端数和内含触发器可多达数百个,集成度远远高于pal和gal 4)有灵活多样的逻辑结构,可满足各种数字电路系统设计的需要 5)内部时间延迟与器件结构及逻辑连接等无关,可预测,易消除竞争冒险 6)有多位加密位,且器件等效数千个逻辑门以上,因此可杜绝编程数据

16、的非法抄袭。可编程内连线pi特点:在各个逻辑宏单元之间以及逻辑宏单元与i/o单元之间提供可编程的信号连接网络;分为基于阵列的内连线和基于多路选择器内连线。cpld中一般采用固定长度的线段来进行连接,因此信号传输的延时是固定的,使得信号传输时间延时能够预测。fpga组成及作用:可编程逻辑块;可编程输入输出块(iob);可编程连线资源(pir)。查找表:查找表(lut)就是一个有n根,一般是4根地址线的16x1的ram存储器。(存储容量取决于输入数量,n个输入的逻辑函数,需要2n容量的sram来实现。)查找表工作原理:当用户通过原理图或hdl 语言描述了一个4输入的逻辑电路后,eda软件就会按设计

17、要求自动计算逻辑电路的所有可能的结果,并把该结果事先写入这个ram存储器。这样,当输入变量作为ram的地址信号输入时,预期的结果(输出逻辑函数)就作为ram的存储数据输出了(查找表存储组合逻辑值)fpga的性能特点:1)采用sram编程技术,具有高密度、高速度、高可靠性和低功耗 2)丰富的i/o端数和触发器,集成度远远高于pal和gal 3)结构灵活,内部的clb、iob和pi均可编程;强有力的组合逻辑函数发生器,可实现多个变量的任意逻辑。可满足各种数字电路系统设计的需要 4)某些fpga还提供片内高速ram,可用于fifo等的设计 5)每次上电时需进行数据配置;断电后,配置数据自动丢失 6)

18、内部时间延迟与器件结构及逻辑连接等有关,故信号传输时延不可预测。fpga器件可编程互连线的种类:单长线,双长线,和长线,分支信号cpld与fpga 同:1.都是大规模集成可编程器件;2.都可按用户要求编程使用,功能强大;3.都可认为是由输入/输出单元 、二维逻辑块阵列、用于连接逻辑块的互联资源组成。4.都是在计算机上使用开发设计。异:1.cpld采用与或阵列实现而fpga采用查找表实现逻辑;2.cpld的核心技术为eecoms,为非易失器件,而fpga采用采用coms sram工艺,为易失器件且需外围配置器件3.fpga体积更小,集成化程度更高;4.cpld适合组合逻辑、fpga适合时序电路;

19、5.两者编程方式不同,前者为icr后者为isp;6.芯片利用率不同 cpld利用率比fpga低;7.布线结构与延时预测性不同(fpga器件延时难以预测、cpld有固定延时的通路且延时比较小;7cpld可加密、fpga一般不能保密。char4 a ltera的产品系列:1、多阵列结构:max系列(max9000、max7000、max5000、max3000)classic系列2、柔性(可更改)逻辑单元阵列结构:flex系列(flex10k、flex8000及flex6000)3、先进的可编程单元阵列结构:apex系列(apex 20k)、acex 系列(acex 1k)。4、新一代sopc器件

20、:stratix(层云)和cyclone(飓风)altera器件性能特点:1)高性能 2)高密度逻辑集成 3)较短的开发周期 4)高性能价格比 5)丰富的优化宏函数 6)在系统可编程(isp)altera max 7000 结构:逻辑阵列块(lab)、可编程连线阵列(pia)、i/o控制块(i/o b),另外,有4个专用全局输入信号 max 7000利用什么技术实现复杂逻辑函数:对于更复杂的逻辑功能,还需要用更多的乘积项来实现,这时可以利用另外一个宏单元提供所需的逻辑资源,max 7000结构允许利用共享乘积项和并联扩展项来实现。max 7000宏单元的组成:每个宏单元由5个乘积项组成。这些乘

21、积项可作为或门、异或门的输入以实现组合逻辑函数。或者可作为触发器的辅助输入,实现置位、复位、时钟等信号。每个宏单元有一个乘积项可以反相后送回逻辑阵列,供lab中的其他宏单元共享。alera公司max7000器件扩展乘积项的种类和作用:共享扩展项 就是由每个宏单元提供一个未投入使用的乘积项,并将它们反相后反馈到逻辑阵列中,以便于集中使用。并联扩展项 是利用lab中没有使用宏单元和他们的乘积项,这些乘积项可以分配到临近的宏单元中去,以实现高速复杂的逻辑功能。利用扩展乘积项可保证在逻辑综合时,用尽可能少的逻辑资源得到尽可能快的工作速度。flex 10k组成:flex10k器件主要由1嵌入式阵列eab

22、、2逻辑阵列块lab、3快速布线互连fast track,4i/o单元等四部分组成 特点:1.属于嵌入式pld系列,具有在单个器件中的系统集成能力2.高密度3. 系统级特点(1采用先进的sram制造工艺,支持多种工作电压 2支持多电压i/o接口 3低功耗 4flex 10k和flex10ka器件遵守pci总线规定 5内置jtag边界扫描测试电路;4.时钟(时钟锁定选项有助于减小时钟延迟/变形;时钟自举选项有助于对时钟进行倍频)5.灵活的内部连接6.功能强大的i/o引脚7.多样的封装形式8.所有器件都经过100的功能测试9.flex10k器件由altera的quartus和max+plus开发系

23、统支持10.能与其他公司的多种eda工具接口11.多种配置方式嵌入式阵列eab、作用: eab : embedded array block是在pld中嵌入的一大块ram。它可提供2048个存储位,可实现16个以上的les所能完成的复杂逻辑功能;可灵活配置为不同ram;能用一种模式预先载入数据,以实现预期的逻辑功能;可单独使用,也可组合起来使用;可以将eab互连以产生大型的逻辑功能块;不妨碍其他逻辑单元的功能。作用:实现ram、rom ;实现查找表(lut);实现fifo 功能。flex 10k利用什么技术实现复杂逻辑函数:eab。eab用来实现各种复杂的逻辑功能及存储数据表格,如实现微控制器

24、、数据处理、数据传输等,lab用来实现一般的逻辑功能 flex 10k器件le的组成:每个le含有一个4输入查找表(lut)、一个带有同步使能的可编程触发器、一个进位链和一个级联链。边界扫描测试(bst boundary scan testing),是为了有效的进行大规模集成电路的在板测试而由联合测试行动组织提出来的一种新型测试技术。边界扫描测试的作用:解决了大规模集成器件密度增高及i/o引脚数量增加带来的对电路板及器件测试困难的问题,使设计人员能够有效地测试引线间隔致密的电路板上的大规模集成器件。标准的边界扫描测试用信号线jtag的全称(joint test action group)cha

25、r5 ahdl的英文全称:altera hardware description language (ahdl)max+plus的英文全称:max+plus ii alteras multiple array matrix programmable logic user system.什么是硬件描述语言:硬件描述语言简称为hdl(hardware description language)是一种用形式化方法来描述数字电路和系统的语言, 也是电子设计人员和电子设计自动化(eda)工具之间的界面。集成电路的层次化设计:1、系统级(性能指标,如数据线宽度、速度等。2、行为级(算法级)对功能的抽象描述

26、,给出控制流图或数据流图。3、寄存器传输级(rtl级)描述宏单元的互连,反映功能的真值表和状态图,用大量的触发器、寄存器、选择器、算术逻辑单元等描述。4、逻辑门级(门级)用逻辑图或布尔方程描述,用门(与门、或门、非门)和少量的触发器描述。5、电路级用晶体管、mos管、电阻、二极管、电容等描述。6、版图级(物理级)以几何图形描述晶体管、mos管、电阻、二极管、电容等。(利用计算机的强大运算功能,对hdl建模的复杂数字逻辑系统进行仿真,然后再自动综合以生成符合要求且在电路结构上可以实现的数字逻辑网表。根据网表和某种工艺的器件自动生成具体电路,然后生成该工艺条件下这种具体电路的延时模型。仿真验证无误

27、后用于制造asic芯片或写入cpld/fpga器件中。)ipintelligence property指设计、生产集成芯片的硬件和软件工具与方法“软核”(soft core)“虚拟器件”在eda技术领域中,把用hdl语言建立、功能经过验证、可以综合实现、电路集成总门数在5000门以上的hdl模型称之为“软核”,而把由软核构成的器件称为“虚拟器件”。“固核”(firm core):通常是指已在某一cpld或fpga器件上实现、经证明是正确的总门数在5000门以上电路结构编码文件。“硬核”(hard core):已在某一种专用集成电路(asic)器件上实现、经证明是正确的总门数在5000门以上的电

28、路结构版图的掩膜。用hdl设计pld数字系统的步骤:文本编辑、编译、功能仿真、时序仿真、芯片配置下载、实际工程测试与验证 用hdl进行cpld设计的优点:1.较容易进行复杂的设计设2.显著提高设计效率3.改善设计质量4.设计与器件/工艺无关5.便于设计交流和设计的再利用6.支持并行设计char6 配置和下载 :把cpld/fpga设计代码送入芯片的过程(或操作)称为对cpld/fpga器件的配置,也称为下载。分类:按使用计算机的通讯接口划分:1)串口下载(bitblaster或masterblaster)2)并口下载(byteblaster)3)usb接口下载(masterblaster或ap

29、u)等方式。若按使用的cpld/fpga器件划分:1)cpld编程(适用于片内编程元件为eprom、e2prom和闪存的器件)2)fpga下载(适用于片内编程元件为sdram的器件)按cpld/fpga器件在编程下载过程中的状态划分:1)主动配置方式在这种配置方式下,由cpld器件引导配置操作的过程并控制着外部存贮器和初始化过程2)被动配置方式在这种配置方式下,由外部cpu或控制器(如单片机)控制配置的过程。cpld/fpga器件的工作状态1、配置状态(configuration mode )指将编程数据装入cpld/fpga器件的过程,也可称之为下载状态;2、初始化状态(initializa

30、tion)此时cpld/fpga器件内部的各类寄存器复位,让io引脚为使器件正常工作作好准备。3、用户状态(user mode)即电路中cpld器件正常工作时的状态; 用byteblaster配置的两种工作模式:bitblaster配置需专用电缆和器件。byteblaster配置altera已开放配置原理,很容易由用户自制配置电缆,常用方法。fpga基本结构主要为查找表(lut)结构1可编程逻辑块(clb)2可编程输入输出块(iob)3可编程连线资源(pir)flex10k器件主要由嵌入式阵列eab、逻辑阵列块lab、快速布线互连fast track和i/o单元等四部分组成。cpld/fpga

31、器件的工作状态:1、配置状态;2初始化状态。3、用户状态;byteblaster有两种配置模式1)被动串行模式(ps)配置。2)边界扫描模式(jtag)配置。器件编程下载的分类 1、按使用计算机的通讯接口划分:(1)串口下载;(2)并口下载;(3)usb接口下载等方式。2、若按使用的cpld/fpga器件划分:1)cpld编程;2)fpga下载3、按cpld/fpga器件在编程下载过程中的状态划分:1)主动配置方式;2)被动配置方式altera的编程文件sram object格式(.sof):sof 格式文件用于flex器件的bit blaster 或byteblaster被动配置方式。pro

32、gramming object格式(.pof):pof格式文件用于对max系列器件编程配置, 也可以用于对采用eprom配置方式的flex器件进行配置。serial bittream格式(.sbf):sbf格式文件是使用bit blaster串行下载电缆, 对flex器件进行在线被动串行同步(ps)配置的数据文件。十六进制格式(.hex):hex格式文件是使用第三方编程硬件对并行eprom编程的数据文件,从而可以将并行eprom作为数据源,用微处理器对flex器件进行被动串行同步(ps)配置或被动串行异步(psa)配置。ascii码文本格式(.ttf):ttf格式文件适用于被动串行同步(ps)

33、配置和被动串行异步(psa)配置类型, 它在配置数据之间以逗号分隔。二进制格式(.rbf):rbf格式文件是包含flex器件配置数据的二进制文件, 此格式数据的存储方式为低位(lsb)在前串行存储。处理器(如计算机)可以按顺序读出此二进制数据并装入flex器件, 因此, 可以用计算机等微处理器, 以被动串行同步(ps)配置和被动串行异步(psa)方式对器件进行在线重构。对于编程元件为e2prom或闪存的cpld器件(如max系列器件等),只需简单的利用专门的编程下载电缆(名为byteblaster或bitblaster)将编程配置数据下载到芯片中去即可。特点:断电后下载数据不丢失。在max+p

34、lus中进行ahdl设计的基本操作过程如下:1、分析设计任务,将任务分解成若干功能模块, 编制好每个模块的ahdl程序。2、在max+plus中使用文本编辑器(text editor)中完成各个模块的程序输入与调试,并用create default symbol命令建立模块的符号文件(.sym文件)。3、在图形编辑器(graphic editor)中建立一个gdf文件,调入各个模块文件,连接好输入输出管脚,然后编译调试通过。4、在max+plus的仿真器(simulator)中,模拟输入初始条件,进行功能仿真以便检查设计是否符合课题要求。如果有错,则返回第二步重新进行修改,直至无误。5、在pr

35、ogrammer中将经验证无误的设计配置文件下载到设计到cpld/fpga芯片中。6、对所设计的cpld/fpga芯片进行实际电路验证。ahdl程序基本结构ahdl的规则及结构特点是:1、在adhl语言中字符不区分大小写,即大小写的含义相同。2、同一类型多个输入、输出或变量之间可以用逗号(“,”)分隔,每一个完整的语句都以分号(“;”)结束。3、用“-”可以注释一行,“%.%”可以注释一段内容。4、ahdl描述的内容可以等效为一个数字电路,在具体的逻辑描述中不是按照顺序一条一条执行,而是所有的语句都是同时并发执行的(并发特性)。即ahdl语言中的语句不依赖描述的前后顺序。5、ahdl设计文件通

36、常是由3个段和一些语句组成。在ahdl文件中按先后顺序出现的各个段和语句(推荐)1、title(可选):标题语句。2、include(可选):包含语句。指定一个包含文件(*.inc).3、constant(可选):常量定义语句。定义符号常量。4、function return(可选):函数原形声明语句。5、option(可选):设置语句。设定文件中使用的数组的高低位顺序。6、subdesign section: 子设计段。7、variable section (可选): 变量段。8、logic section: 逻辑段。子设计段和逻辑设计段是每个ahdl文件所必须包含的。其余的皆是可选段(语句

37、)。ahdl中状态机说明 在变量段中对状态机的名称、状态以及状态位加以说明之后,就能够创建一个状态机。状态机的每一个状态由一组触发器输出信号的高低电平的组合来表示。状态位代表一些触发器,它们被用来储贮状态机的状态,状态数与状态机的状态位数有如下关系:2 时序逻辑电路的一般ahdl设计方法和步骤:1、首先分析具体设计要求。划分电路为几个功能明确(独立)的模块,需要的话可将模块再细化为子模块。2、确定整个设计的输入变量、输出变量和需要的时钟信号。对于需要多个时钟信号的电路,需确定各个时钟信号之间的逻辑关系。3、对于子模块也需找出各自的输入、输出变量和时钟信号。并为各个变量命名。4、根据时钟信号间的

38、倍数关系,设计分频器,得到相应的时钟信号,并为时钟信号取合适的名字。5、对每个模块应用数字电路设计时序电路的方法,画出状态图。利用状态机、计数器和寄存器等常见设计方法进行时序电路设计。设计时注意选择统一的时钟信号上升沿或下降沿。6、为每个功能模块设计一段ahdl文件,完成模块设计。用图形法或子程序调用(包含)的方法,完成整个项目设计。最后,通过编译、调试、仿真后,下载到cpld芯片中。标识符:24个关键字:flex10k器件主要由嵌入式阵列eab、逻辑阵列块lab、快速布线互连fast track和i/o单元等四部分组成soc 和 sopc:在单一半导体芯片上设计、制造百万个以上的晶体管,这种

39、高集成度的ic芯片具备一个数字系统的全部特性与功能,即为 “单片系统”(soc system on a chip)和sopc单片系统集成度高、低功耗、功能强大、工作可靠。4位二进制计数器设计subdesign 4bcnt(inclk : input ;out3.0 : output ;)variablecount3.0 :dff ;begincount.clk=inclk ;count.d=count.q+1 ;out=count ;end ;十分频器设计(输入10个脉冲,输出1个脉冲)subdesign fp10(inclk :input;fpf :output;)variablea2.0,

40、fp: dff; begina .clk=inclk;fp.clk=inclk;ifa =4 then a =0;fp=!fp;else a =a +1;fp=fp;end if;fpf=fp;end;含进位输出的4位二进制bcd计数器设计subdesign bcdcnt( inclk : input;out3.0,cy: output;)variablecount3.0, fp:dff;begincount .clk=inclk;fp.clk=inclk;if count =9 thencount =0;fp=vcc;-进位输出elsecount =count +1;fp=gnd;end i

41、f;out =count ;cy=fp;end;8位比较器设计subdesign cmp8(a7.0,b7.0 :input;dy,xy,equ :output;)beginif(a b ) then dy=vcc;elsif a=b thenequ=vcc;elsexy=vcc;end if; end;bcd 7段译码器设计subdesign bcdymq( in3.0 :input;ot6.0 :output;)begintablein=ot6,ot5,ot4,ot3,ot2,ot1,ot0;( i3.o= 0ut6.0)0= 1, 1, 1, 1, 1, 1, 0;(h”3f”)1= 0

42、, 1, 1, 0, 0, 0, 0;(h“06”)2= 1, 1, 0, 1, 1, 0, 1;(h”5b”)3= 1, 1, 1, 1, 0, 0, 1;( h“4f”)4= 0, 1, 1, 0, 0, 1, 1;( h“66”)5= 1, 0, 1, 1, 0, 1, 1;( h“6d”)6= 1, 0, 1, 1, 1, 1, 1;( h“7d”)7= 1, 1, 1, 0, 0, 0, 0;( h“07”)8= 1, 1, 1, 1, 1, 1, 1;( h“7f”)9= 1, 1, 1, 1, 0, 1, 1;( h“6f”)end table;end;状态机 subdesign

43、 stepper(clk, reset : input;ccw, cw : input;phase3.0 : output;)variable ss: machine of bits (phase3.0)with states(s0 = b0001 ,s1 = b0010 ,s2 = b0100 ,s3 = b1000 );beginss.clk = clk;ss.reset = reset;tabless, ccw, cw = ss;s0, 1, x = s3;s0, 0, 1 = s1;s1, 1, x = s0;s1, 0, 1 = s2;s2, 1, x = s1;s2, 0, 1 =

44、 s3;s3, 1, x = s2;s3, 0, 1 = s0;end table;end;24译码器设计(case)语subdesign decoder(code1.0 :input;out3.0 :output;)bigencase codewhen 0=out=b”0001”:when 1=out=b”0010”when 2=out=b”0100”when 3=out=b”!000”end caseend3-8线译码器subdesign 3_8decoder(in2.0 :input;out7.0 :output;)begincase in iswhen 0= out=h”01”;whe

45、n 1= out=h”02”;when 2= out=h”04”;when 3= out=h”08”;when 4= out=h”10”;when 5= out=h”20”;when 6= out=h”40”;when 7= out=h”80”;end case;end;带bcd译码输出的24进制计数电路设计subdesign 23to0( inclk :input;ot13.0 :output;)variablehw1.0,lw3.0: dff;begin(hw,lw).clk=inclk;if (hw=2)and(lw=3)thenhw=0;lw=0;elsif lw=9 thenhw=h

46、w+1;lw=0;elsehw=hw;lw=lw+1;end if;tablehw= ot13,ot12,ot11,ot10,ot9,ot8,ot7;0 = 1, 1, 1, 1, 1, 1, 0;1 = 0, 1, 1, 0, 0, 0, 0;2 = 1, 1, 0, 1, 1, 0, 1;end table;tablelw=ot6,ot5,ot4,ot3,ot2,ot1,ot0;(略)end table;end; 计数译码电路用function语句调用 function4count(clk,clrn,setn,ln,cin,dnup,d,c,b,a)returns(qd,qc,qb,qa,

47、cout);function16dmux(d,c,b,a) returns(q15.0);subdesign macro2( clk :input;out15.0 :output;)variableq3.0 : node;begin(q3.0 , )=4count(clk , , , , , gnd , , , , );out15.0=16dmux(q3.0);也可写成:(out15.0)=16dmux(q3.0);end;四状态莫尔机程序设计subdesign moore(clk,reset,y :input;z :output;)variabless: machine of bits (z

48、) with states ( s0=0,s1=1,s2=1,s3=1 );beginss.clk=clk;ss.reset=reset;tabless, y = ss;s0, 0 = s0; s0, 1 = s2;s1, 0 = s0;s1, 1 = s2;s2, 0 = s2;s2, 1 = s3;s3, 0 = s3;s3, 1 = s1;end table;end;60进制计数器subdesign cout60_t(ldn,en,clrn,clk,da3.0,db2.0:input;qa3.0,qb2.0,rco:output;)variablecoua3.0,coub2.0:dff;

49、tmp:node;begincoua.clk=clk;coub.clk=clk;coua.clrn=clrn;coub.clrn=clrn;if ldn=0 thencoua.d=da;coub.d=db;elsif en thenif coua.q=9 thencoua.d=0;if coub.q=5 thencoub=0;else coub=coub+1;end if;else coua=coua+1;coub=coub;end if; end if;qa=coua;tmp=qa3&qa0&en;qb=coub;rco=qb2&qb0&tmp;end;奇数分频subdesign fp7(inclk:input;fpf:output;)variablea2.0,fp,fpo:dff;begina.clk=inclk;fp.clk=incl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论