




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标:1.了解大规模集成电路的分类。2.了解半导体存贮器的基本结构及工作原理。3.掌握半导体存储器的应用。4.了解可编程逻辑器件的基本结构及分类。5.掌握QuartusⅡ的基本功能及其使用。6.能在QuartusⅡ平台上基于CPLD/FPGA设计多功能数字钟芯片。80年代初:Lattice公司推出GAL_GenericArrayLogic(第二代);可编程逻辑器件概述一、PLD的发展进程70年代初:PROM、PLA_ProgrammableLogicArray(第一代);70年代末:AMD公司推出PAL_ProgrammableArrayLogic90年代初:Lattice公司提出ISP_InSystemProgramming概念,推出ispLSI。80年代中:Xilinx公司推出FPGA_FieldProgrammableGatesArray;
Altera公司推出EPLD_ErasableProgrammableLogicDevice;近年PLD的发展:密度:单片已达1000万系统门速度:达420MHz以上线宽:已达90nm,属甚深亚微米技术(VDSM—VeryDeepSubMicrometer)高集成度;高速度;高可靠;在系统编程(ISP_InSystemProgramming)PLD已占整个IC产值的40%以上。PLD的产量、集成度每年增加35%,成本降低40%。二、PLD产品的特点:PLD的生产厂家众多,产品名称各异,分类方法多样。常见的PLD产品:PROM、EPROM、EEPROM、PLA、FPLA、PAL、GAL、CPLD、EPLD、EEPLD、HDPLD、FPGA、pLSI、ispLSI、ispGAL、ispGDS等。三、PLD的种类及分类方法FPGA:FieldProgrammableGatesArrayCPLD:ComplexProgrammableLogicDevice主流公司:Xilinx、Altera、LatticeFPGA/CPLD显著优点:开发周期短、投资风险小、产品上市速度快、市场适应能力强、硬件修改升级方便。四、大规模可编程逻辑器件低密度PLD:高密度PLD(HDPLD):超过500门PLD低密度的PLD,如PLA、PROM、PAL、GAL高密度的PLD(HDPLD)1、根据器件密度分为:FPGA(FieldProgrammableGatesArray)CPLD(ComplexProgrammableLogicDevice)FPGA:内部互连结构由多种长度不同的连线资源组成,每次布线的延迟可不同,属统计型结构。逻辑单元主体为由静态存储器(SRAM)构成的函数发生器,即查找表。通过查找表可实现逻辑函数功能。采用SRAM工艺。2、根据器件互连结构、逻辑单元结构分为:含查找表的逻辑单元:(FPGA)CPLD:内部互连结构由固定长度的连线资源组成,布线的延迟确定,属确定型结构。逻辑单元主要由“与或阵列”构成。该结构来自于典型的PAL、GAL器件的结构。采用EEPROM工艺。任意一个组合逻辑都可以用“与—或”表达式来描述,所以该“与—或阵列”结构能实现大量的组合逻辑功能。简单的“与或”阵列:(PAL、GAL、CPLD)CPLD和FPGA的主要区别:1)结构上的不同2)集成度的不同CPLD:500-50000门;FPGA:1K–100M门3)应用范围的不同CPLD逻辑能力强而寄存器少(1K左右),适用于控制密集型系统;FPGA逻辑能力较弱但寄存器多(100多K),适于数据密集型系统。4)使用方法的不同一次性编程:PROM、PAL重复可编程:紫外线擦除:数十次;E2CMOS工艺:上千次;SRAM结构:上万次3、从可编程特性分为4、从编程元件分为熔丝型开关;可编程低阻电路元件;EPROM;EEPROM;SRAM;FPGA和CPLD的选用1、器件的资源三家主流公司产品:Altera、Xilinx:数千门~数百万门Lattice:数万门以下资源占用以仿真系统给出的报告为准,并应留有适当的余量(20%)。2、芯片速度芯片速度越高,其对微小毛刺信号的反映越灵敏,系统工作的稳定性越差。芯片的速度等级与其价格的关系。3、器件功耗CPLD:5V、3.3VFPGA:5V、3.3V、2.5V、1.8V、1.5V4、FPGA/CPLD的选择CPLD选用:(1)逻辑密集型;(2)中小规模(1000~50000);(3)免费软件支持;(4)编程数据不丢失,电路简单;(5)ISP特性,编程加密;(6)布线延迟固定,时序特性稳定;FPGA选用:(1)数据密集型;(2)大规模设计(5000~数百万门);(3)SOC设计;(4)ASIC的设计仿真;(5)布线灵活,但时序特性不稳定;(6)需用专用的ROM进行数据配置。5、FPGA/CPLD封装常见封装:PLCC、PQFQ、TQFP、RQFP、VQFP、MQFP、PGA、BGA等。引脚数:28~1517VHDL:IEEE标准,系统级抽象描述能力较强。Verilog:IEEE标准,门级开关电路描述能力较强。ABEL:系统级抽象描述能力差,适合于门级电路描述。二、硬件描述语言
(HDL__HardwareDescriptionLanguage)80年代初由美国国防部在实施超高速集成电路(VHSIC)项目时开发的。1987年由IEEE协会批准为IEEE工业标准,称为IEEE1076-1987。各EDA公司相继推出支持VHDL的设计环境。1993年被更新为93标准,即IEEE1076-1993。进一步提高抽象描述层次,扩展系统描述能力。VHDL的历史1、VHDL打破软、硬件的界限传统的数字系统设计分为:硬件设计(硬件设计人员)软件设计(软件设计人员)
VHDL是电子系统设计者和EDA工具之间的界面。三、VHDL的作用EDA工具及HDL的流行,使电子系统向集成化、大规模和高速度等方向发展。美国硅谷约有80%的ASIC和FPGA/CPLD已采用HDL进行设计。2、VHDL与C、C++的比较:C、C++代替汇编等语言VHDL代替原理图、逻辑状态图等3、VHDL与电原理图描述的比较:VHDL具有较强的抽象描述能力,可进行系统行为级别的描述。描述简洁,效率高。VHDL描述与实现工艺无关。电原理图描述需给出完整、具体的电路结构图,不能进行抽象描述。描述繁杂,效率低。电原理图描述与实现工艺有关。1、VHDL具有强大的语言结构,系统硬件描述能力强、设计效率高;具有较高的抽象描述能力。如:一个可置数的16位计数器的电原理图:四、VHDL语言特点用VHDL描述的可置数16位计数器:2、VHDL语言可读性强,易于修改和发现错误。3、VHDL具有丰富的仿真语句和库函数,可对VHDL源代码进行早期功能仿真,有利于大系统的设计与验证。4、VHDL设计与硬件电路关系不大。5、VHDL设计不依赖于器件,与工艺无关。6、移植性好。7、VHDL体系符合TOP-DOWN和CE(并行工程)设计思想。8、VHDL设计效率高,产品上市时间快,成本低。9、易于ASIC实现。五、VHDL与其它硬件描述语言的比较VHDL:具有较强的系统级抽象描述能力,适合行为级和RTL级的描述。设计者可不必了解电路细节,所作工作较少,效率高。但对综合器的要求高,不易控制底层电路的生成。IEEE标准,支持广泛。行为级RTL级门电路级RTL:RegisterTranslateLevelVerilogHDL:系统级抽象描述能力比VHDL稍差;门级开关电路描述方面比VHDL强。适合RTL级和门电路级的描述。设计者需要了解电路细节,所作工作较多。IEEE标准,支持广泛。ABEL、PALASM、AHDL(AlteraHDL):系统级抽象描述能力差,一般作门级电路描述。要求设计者对电路细节有详细的了解。对综合器的性能要求低,易于控制电路资源。支持少。VHDL主要用于描述数字系统的结构、行为、功能和接口。VHDL将一个设计(元件、电路、系统)分为:外部(可视部分、端口)内部(不可视部分、内部功能、算法)六、VHDL设计简述2选1选择器的VHDL描述:
VHDL语言由保留关键字组成;
一般,VHDL语言对字母大小写不敏感;例外:‘’、“”所括的字符、字符串;每条VHDL语句由一个分号(;)结束;VHDL语言对空格不敏感,增加可读性;在“--”之后的是VHDL的注释语句;VHDL有以下描述风格:行为描述;数据流(寄存器传输RTL)描述;结构化描述;VHDL语言的一些基本特点:基本结构包括:
实体(Entity)
结构体(Architecture)
配置(Configuration)
库(Library)、程序包(Package)VHDL程序基本结构库、程序包实体(Entity)结构体(Architecture)进程或其它并行结构配置(Configuration)一、实体(说明)实体(说明):定义系统的输入输出端口语法:ENTITY<entity_name>ISGenericDeclarationsPortDeclarationsEND<entity_name>;(1076-1987version)1、类属说明类属说明:确定实体或组件中定义的局部常数。模块化设计时多用于不同层次模块之间信息的传递。可从外部改变内部电路结构和规模。类属说明必须放在端口说明之前。Generic(常数名称:类型[:=缺省值]{常数名称:类型[:=缺省值]});类属常用于定义:实体端口的大小、设计实体的物理特性、总线宽度、元件例化的数量等。例:entitymckisgeneric(width:integer:=16);port(add_bus:outstd_logic_vector(width-1downto0));…例:2输入与门的实体描述entityand2isgeneric(risewidth:time:=1ns;fallwidth:time:=1ns);port(a1:instd_logic;a0:instd_logic;z0:outstd_loigc);endand2;注:数据类型time用于仿真模块的设计。综合器仅支持数据类型为整数的类属值。其中,端口模式:in:输入型,此端口为只读型。out:输出型,只能在实体内部对其赋值。inout:输入输出型,既可读也可赋值。buffer:缓冲型,与out相似,但可读。Port(端口名称{,端口名称}:端口模式数据类型;…端口名称{,端口名称}:端口模式数据类型);2、端口声明端口声明:确定输入、输出端口的数目和类型。out和buffer的区别:inout和buffer的区别:指端口上流动的数据的表达格式。为预先定义好的数据类型。如:bit、bit_vector、integer、std_logic、std_logic_vector等。例:entitynand2isentitym81isport(port(a,b:inbit;a:inbit_vector(7downto0);z:outbitsel:inbit_vector(2downto0););b:outbit);endnand2;endm81;3、数据类型:作用:定义系统(或模块)的行为、元件及内部的连接关系,即描述其逻辑功能。两个组成部分:
对数据类型、常数、信号、子程序、元件等元素的说明部分。
以各种不同的描述风格描述的系统的逻辑功能实现的部分。常用的描述风格有:行为描述、数据流描述、结构化描述。二、结构体结构体结构体说明结构体功能描述常数说明数据类型说明信号说明例化元件说明子程序说明块语句进程语句信号赋值语句子程序调用语句元件例化语句实体与结构体的关系:设计实体结构体1结构体2结构体3结构体n。。。一个设计实体可有多个结构体,代表实体的多种实现方式。各个结构体的地位相同。注:同一实体的结构体不能同名。定义语句中的常数、信号不能与实体中的端口同名。architecture结构体名称of实体名称is[说明语句]内部信号、常数、数据类型、子程序(函数、过程)、元件等的说明;begin[并行处理(功能描述)语句];end[architecture]结构体名称;结构体的语法:三、配置设计实体结构体1结构体2结构体3结构体n。。。一个设计实体的多种实现方式配置:从某个实体的多种结构体描述方式中选择特定的一个。configuration配置名of实体名isfor选配结构体名endfor;end配置名;简单配置的语法:libraryieee;useieee.std_logic_1164.all;entitynandisport(a:instd_logic;b:instd_logic;c:outstd_logic);endnand;architectureart1ofnandisbeginc<=not(aandb);endart1;例:一个与非门不同实现方式的配置如下:architectureart2ofnandisbeginc<=‘1’when(a=‘0’)and(b=‘0’)else‘1’when(a=‘0’)and(b=‘1’)else‘1’when(a=‘1’)and(b=‘0’)else‘0’when(a=‘1’)and(b=‘1’)else‘0’;endart2;configurationfirstofnandisforart1;endfor;endfirst;configurationsecondofnandisforart2endfor;endsecond;程序包:
已定义的常数、数据类型、元件调用说明、子程序的一个集合。目的:方便公共信息、资源的访问和共享。库:
多个程序包构成库。
四、程序包、库程序包说明的内容:常量说明;VHDL数据类型说明;元件说明;子程序说明;程序包的结构包括:程序包说明(包首)程序包主体(包体)包声明项可由以下语句组成:use语句(用来包括其它程序包);类型说明;子类型说明;常量说明;信号说明;子程序说明;元件说明。
package程序包名is{包说明项}end程序包名;1、程序包说明(包首)语法:EDA开发工具分为:集成化的开发系统:特定功能的开发软件:综合软件仿真软件三、软件开发工具Altera公司:QuartusⅡ、MaxplusⅡ系列Xilinx公司:ISE、Foundation、Aillance系列Lattice公司:ispDesignEXPERT系列集成化的开发系统综合类:Synplicity公司的Synplify/SynplifyProSynopsys公司的FPGAexpress、FPGAcompilerⅡMentor公司的LeonardoSpectrum仿真类:ModelTech公司的ModelsimAldec公司的ActiveHDLCadence公司的NC-Verilog、NC-VHDL、NC-SIM特定功能的开发软件多功能数字钟VHDL程序--Title:多功能数字钟-- --Author:Panhongtao----Data:2006-10-1---------------------------------------libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;--------------------------------------------------------------------entityexp19isport(Clk:instd_logic;--时钟输入Rst:instd_logic;--复位输入S1,S2:instd_logic;--时间调节输入led:outstd_logic_vector(3downto0);--整点输报时输出Display:outstd_logic_vector(6downto0);--七段码管显示输出SEG_SEL:bufferstd_logic_vector(2downto0)--七段码管扫描驱动);endexp19;--------------------------------------------------------------------architecturebehaveofexp19issignalDisp_Temp:integerrange0to15;signalDisp_Decode:std_logic_vector(6downto0);signalSEC1,SEC10:integerrange0to9;signalMIN1,MIN10:integerrange0to9;signalHOUR1,HOUR10:integerrange0to9;signalClk_Count1:std_logic_vector(13downto0);--产生1Hz时钟的分频计数器signalClk1Hz:std_logic;signalled_count:std_logic_vector(2downto0);signalled_display:std_logic_vector(3downto0);
beginprocess(Clk)beginif(Clk'eventandClk='1')thenif(Clk_Count1<10000)thenClk_Count1<=Clk_Count1+1;elseClk_Count1<="00000000000001";endif;endif;endprocess;Clk1Hz<=Clk_Count1(13);
process(Clk1Hz,Rst)beginif(Rst='0')then--系统复位SEC1<=0;SEC10<=0;MIN1<=0;MIN10<=0;HOUR1<=0;HOUR10<=0;elsif(Clk1Hz'eventandClk1Hz='1')then--正常运行if(S1='0')then--调节小时if(HOUR1=9)thenHOUR1<=0;HOUR10<=HOUR10+1;elsif(HOUR10=2andHOUR1=3)thenHOUR1<=0;HOUR10<=0;elseHOUR1<=HOUR1+1;endif;elsif(S2='0')then--调节分钟if(MIN1=9)thenMIN1<=0;if(MIN10=5)thenMIN10<=0;elseMIN10<=MIN10+1;endif;elseMIN1<=MIN1+1;endif;
elsif(SEC1=9)thenSEC1<=0;if(SEC10=5)thenSEC10<=0;if(MIN1=9)thenMIN1<=0;if(MIN10=5)thenMIN10<=0;if(HOUR1=9)thenHOUR1<=0;HOUR10<=HOUR10+1;elsif(HOUR10=2andHOUR1=3)thenHOUR1<=0;HOUR10<=0;elseHOUR1<=HOUR1+1;endif;elseMIN10<=MIN10+1;endif;elseMIN1<=MIN1+1;endif;elseSEC10<=SEC10+1;endif;elseSEC1<=SEC1+1;endif;endif;endprocess;
process(Clk)beginif(Clk1hz'eventandClk1hz='1')then
if(MIN10=5andMIN1=9andSEC10=5andsec1>3)then--在59分55秒开始提示led_Count<=led_Count+1;elseled_count<="000";endif;endif;endprocess;process(led_count)begincase(led_count)iswhen"000"=>led_display<="0000";when"001"=>led_display<="1111";when"010"=>led_display<="0111";when"011"=>led_display<="0011";when"100"=>led_display<="0001";when"101
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《掌握选杯技巧》课件
- 2025年租赁合同范本简约版
- 《2025年城市、街区前期物业服务合同》
- 2025年丽江货运从业资格证考试题目库存答案
- 2025年马鞍山货运从业资格证考试技巧
- 2025合作伙伴解除合同通知书模板
- 2025年宝鸡道路货运从业资格证考试
- 2025年武威货运从业资格证考试模拟考试题库
- 2025年桂林货运从业资格证模拟考试下载安装
- 2023-2024学年河北省示范性高中高二下学期期中生物试题及答案
- 大学英语泛读教程第2册课件Unit-6-Fath
- 复旦棒垒球专项课教学大纲
- 房产中介法律知识及案例分享811课件
- 安全用电-触电与急救课件
- 初三任务型阅读公开课一等奖省优质课大赛获奖课件
- 公司组织架构图(可编辑模版)
- 激光跟踪仪使用手册
- 货物采购服务方案
- 初中英语 沪教牛津版 8B U6-1 Reading Head to head 课件
- DB11-T 1322.64-2019 安全生产等级评定技术规范 第64部分:城镇供水厂
- 复变函数与积分变换第三章复变函数的积分
评论
0/150
提交评论