单片机与cpld接口设计说明

上传人:沈*** 文档编号:89401550 上传时间:2022-05-13 格式:DOC 页数:74 大小:1.11MB
收藏 版权申诉 举报 下载
单片机与cpld接口设计说明_第1页
第1页 / 共74页
单片机与cpld接口设计说明_第2页
第2页 / 共74页
单片机与cpld接口设计说明_第3页
第3页 / 共74页
资源描述:

《单片机与cpld接口设计说明》由会员分享,可在线阅读,更多相关《单片机与cpld接口设计说明(74页珍藏版)》请在装配图网上搜索。

1、 . . . 70 / 74摘 要分析了基于FPGACPLD的EDA技术的特点与由其构成数字系统的优越性,并将它与单片机系统进行了比较,指出EDA技术克服了单片机本身难以克服的缺陷,将成为今后电子系统设计的主流。针对可编程ASIC和MCS51单片机的特点,对两者之间的接口方式进行了分析。用VerilogHDL给出了几个实用的接口参考程序。VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL

2、的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。8051工作频率为11.0592MHZ CPLD(EPM7128SLC15)的工作频率为16.0000MHZ(有源晶振)进行接口连接,CPLD作为高速的地址缓存口,能够将数据地址部分进行暂时存储和译码,减少了多余的器件而使得设计布局更加合理。关键词:EDA;CPLD/FPGA;单片机;VHDLABSTRACTBased on the analysis of the FPGA /

3、 CPLD of EDA technologies and the characteristics of a digital system by the superiority,And SCM system with a relatively,EDA that the SCM technology to overcome the deficiencies in itself difficult to overcome, the future will become the mainstream of electronic system design.MCS51 for programmable

4、 ASIC and the characteristics of SCM, the interface between the way the analysis.VHDL the English full name is Very-High-Speed Integrated Circuit HardwareDescription Language, was born in 1982. By the end of 1987, VHDL by the IEEE and the U.S. Department of Defense confirmed as the standard hardware

5、 description language. Since the publication of the IEEE VHDL version of the standard, IEEE-1076 (short version 87), the EDA companies have launched their own VHDL design environment, or to declare their own design tools and VHDL interface. Since then VHDL in the field of electronic design has been

6、widely accepted and gradually replace the original non-standard hardware description language.8051 operating frequency of 11.0592 MHZ CPLD (EPM7128SLC15) the operating frequency of 16.0000 MHZ (Active crystal) interface connector, CPLDs address as a high-speed cache I can address some of the data fo

7、r temporary storage and decoding, a decrease of Redundant device design and make distribution more reasonable.Keyword:EDA;SCM;CPLD/FPGA;VHDL;目 录1 选题背景11.1关于FPGACPLD和EDA技术11.2FPGACPLD与单片机11.2.1 单片机的学习效率较低11.2.2单片机本身的速度相对FPGACPLD来显得太慢12 硬件描述12.1单片机12.1.1单片机的特点12.1.2单片机的应用12.1.3单片机的基本组成12.1.4 MCS-51 的寻

8、址方式12.1.5指令12.1.6计数初值的计算12.1.8串行口工作方式与帧格式12.2 FPGA/CPLD12.2.1 CPLD/FPGA特点12.2.2 CPLD12.2.3 FPGA12.2.4 VHDL语言描述12.3单片机与复杂可编程CPLD 器件的接口设计12.3.1总线方式13.3.2 独立方式12.3.3基于总线结构的接口设计12.3.4 实际电路连接12.3.5 地址锁存,译码与统一编址12.3.6 LCD 总线接口设计12.3.7 数码管接口设计13 软件程序设计13.1 软件程序简介13.1.1 Quartus II 图形用户界面的基本设计流程13.1.2 其它 EDA

9、 工具与 Quartus II 软件配合使用时的基本设计流程13.1.3 cpld 与8051的总线接口方式设计流程图13.1.4 cpld 与8051的总线接口VHDL源码13.1.5 仿真步骤与其结果1结论1致1参考文献1附录11 选题背景目前,单片机在我国电子系统的设计中已得到广泛的应用,使我国的电子系统智能化水平在广度和深度上发生了质的飞跃。在基于单片机的数字系统设计中,用户能够通过编程方式改变器件逻辑功能只有两条途径:即对单片机的软件编程和特定器件的控制字配置。如果想任意确定器件引脚功能的硬件方式是不可能的。在数字系统中,尽管采用了单片机和存储器,但仍需大量的中、小规模的数字集成电路

10、来进行各种逻辑控制。而对于系统构成的设计过程只能对器件功能和电路板图分别进行设计和确定,通过设计板来规划系统功能,花大量时间用于组件的选配和系统结构的可行性分析上。这也暴露出基于单片机的数字系统设计上的一个不可逾越的困难。随着集成技术的发展,FPGACPLD(现场可编程逻辑器件复杂可编程逻辑器件)在EDA(电子设计自动化)基础上的广泛应用,在更高层次上包含了数字技术的优秀部分,向单片机系统进行了挑战。1.1关于FPGACPLD和EDA技术FPGACPLD是一种新兴的高密度的可编程逻辑器件,它具有门阵列的高密度和PLD器件的灵活性和易用性,目前已成为一类主要的可编程器件可编程器件的最大特点是可通

11、过软件编程对其器件的结构和工作方式进行重构,能随时进行设计调整而满足产品升级。使得硬件的设计可以如软件设计一样方便快捷,从而改变了传统数字系统与用单片机构成的数字系统的设计方法、设计过程与设计观念,使电子设计的技术操作和系统构成在整体上发生了质的飞跃。采用FPGACPLD可编程器件,可利用计算机软件的方式对目标器件进行设计,而以硬件的形式实现。既定的系统功能,在设计过程中,可根据需要随时改变器件的部逻辑功能和管脚的信号方式,借助于大规模集成的FPGACPLD和高效的设计软件,用户不仅可通过直接对芯片结构的设计实行多种数字逻辑系统功能,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的

12、工作量的难度,同时,这种基于可编程芯片的设计大大减少了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。EDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言HDL为系统逻辑描述手段,完成的设计文件自动完成逻辑编译、逻辑化简、逻辑综合与优化、逻辑仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA的仿真测试技术只需要通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,大大提高了大规模系统电子设计的自动化程度。设计者的工作仅限于利用软件方式,即利用硬件描述语言(如VHDL)来完成对系统硬件功能的描述,在EDA工具的帮助下就可

13、以得到最后的设计结果,这使得对整个硬件系统的设计和修改过程如同完成软件设计一样方便、高效。1.2FPGACPLD与单片机90年代以来,我国单片机的应用经历了一个辉煌的时代。在电子设计数字化的今天,单片机几乎应用到电子设计的各个领域。但随着应用围的推广,我们发现单片机并不是万能的,它本身还存在着一些缺陷,有些缺陷甚至是难以解决的。下面我们从两个方面来看单片机和可编程器件FPGACPLD的对比:1.2.1 单片机的学习效率较低单片机为适应实时处理的快速要求,它是直接面对硬件的,属较低级的,大多数都使用汇编语言。对每个厂家生产的单片机其汇编语言均不同。所以,使用不同型号的单片机必须学会不同的汇编语言

14、。并且,编程还与硬件连接的方式有关。而FPGACPLD可使用标准硬件描述语言VHDL,只要学会一种语言,即可对所有型号的FPGACPLD编程。同时,VHDL是一种行为描述语言,它可以不了解系统的硬件结构而编程,远离硬件,打破了软硬件之间的屏障,可做到几分钟设计出一个芯片,使学习和设计的效率大大提高。1.2.2单片机本身的速度相对FPGACPLD来显得太慢单片机是用指令排队形式来执行指令的,影响了速度的提高。特别是用于高速采样系统,单片机往往无法胜任。而FPGACPLD在实时处理时均为并行工作,速度快。另外,单片机的各引脚功能均为确定,不象FPGACPLD那样可根据需要用软件改变各引脚的功能。如

15、需要的话,也可在FPGACPLD中设计出一个或多个CPU,达到控制的目的。因此,FPGACPLD在EDA基础上的广泛应用,从某种意义上说,将是对单片机系统的一种背离。高速发展的FPGACPLD不但包括了单片机的所有能力,并兼有串、并行工作方式和高速、高可靠性与宽口径适用性等多方面的特点。目前我国FPGACPLD的应用虽还不平衡,但随着集成技术的飞跃发展;随着硬核FPGA、激光可编程门阵列(LPGA)等芯片的开发;软硬功能核库的建立,今后的电子系统设计,不分模拟还是数字电路,将总归于EDA。人们只要有一台计算机、一套EDA软件和一片FPGACPLD芯片,就能在家完成大规模集成电路合适子系统的设计

16、。由此,EDA技术的高速发展,将为我们打开一个广阔的空间。2硬件描述2.1单片机随着大规模集成电路的出现与其发展,将计算机的CPU 、RAM 、 ROM 、定时/数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机 。 2.1.1单片机的特点1 、具有优异的性能价格比 2 、集成度高、体积小、可靠性高 3 、控制功能强 4 、低电压、低功耗 2.1.2单片机的应用1 、在智能仪器仪表中的应用:在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。 2 、在机电一体化中的应用:

17、机电一体化产品是指集机械、微电子技术、计算机技术于一本,具有智能化特征的电子产品。3 、在实时过程控制中的应用:用单片机实时进行数据处理和控制,使系统保持最佳工作状态,提高系统的工作效率和产品的质量。 4 、在人类生活中的应用:目前国外各种家用电器已普通采用单片机代替传统的控制电路。5 、在其它方面的应用:单片机除以上各方面的应用,它还广泛应用于办公自动化领域、商业营销领域、汽车与通信、计算机外部设备、模糊控制等各领域中。2.1.3单片机的基本组成它由 CPU 、存储器(包括 RAM 和 ROM )、 I/O 接口、定时 / 计数器、中断控制功能等均集成在一块芯片上,片各功能通过部总线相互连接

18、起来。 输入 / 输出引脚 P0 、 P1 、 P2 、 P3 的功能 :P0.0P0 。 7 : P0 口是一个 8 位漏极开路型双向 I/O 端口。在访问片外存储器时,它分时作低 8 位地址和 8 位双向数据总线用。在EPROM 编程时,由 P0 输入指令字节,而在验证程序时,则输出指令字节。验证程序时,要求外接上拉电阻。 P0 能以吸收电流的方式驱动8个LSTTL 负载。P1. 0 P1. 7 ( 18 脚): P1 是一上带部上拉电阻的 8 位双向 I/O 口。在 EPROM 编程和验证程序时,由它输入低 8 位地址。 P1 能驱动 4 个 LSTTL 负载。 在 8032/8052

19、中, P1. 0 还相当于专用功能端 T2 ,即定时器的计数触发输入端; P1. 1 还相当于专用功能端T2EX ,即定时器 T2 的外部控制端。P2.0P2.7 ( 2128 脚): P2 也是一上带部上拉电阻的 8 位双向 I/O 口。在访问外部存储器时,由它输出高 8 位地址。在对 EPROM 编程和程序验证时,由它输入高 8 位地址。 P2 可以驱动 4 个 LSTTL 负载。P3. 0 P3. 7 ( 1017 脚): P3 也是一上带部上拉电阻的双向 I/O 口。在 MCS-51 中,这 8 个引脚还用于专门的第二功能。 P3 能驱动 4 个 LSTTL 负载。 P3. 0 RXD

20、 (串行口输入) P3. 1 TXD (串行口输出) P3. 2 INT0 (外部中断 0 输入) P3. 3 INT1 (外部中断 1 输入) P3. 4 T0 (定时器 0 的外部输入) P3. 5 T1 (定时器 1 的外部输入) P3. 6 WR (片外数据存储器写选通) P3. 7 RD (片外数据存储器读选通) 2.1.4MCS-51 的寻址方式1 、立即寻址 如: MOV A , #40H 2 、直接寻址 如: MOV A , 3AH 3 、寄存器寻址 如: MOV A , Rn 4 、寄存器间接寻址 如: MOV A , Rn 5 、基址加变址寻址 如: MOVC A , A+

21、DPTR 6 、相对寻址 如: SJMP 08H 7 、位寻址 MOV 20H , C 2.1.5指令MOV : 片 RAM 传送 MOVX : 片外 RAM 传送 MOVC : ROM 传送 XCH : 交换(和 A 交换) SWAP : A 半字节交换 ADD :不带进位加 ADDC :带进位加 SUBB :带进位减 INC :加 1 DEC :减 1 MUL :乘法 DIV :除法 DAA :调整 2.1.6计数初值的计算因为 MCS-51 的两个定时器均为加 1 计数器,当初到最大值( 00H 或 0000H )时产生溢出,将 TF 位置 1 ,可发出溢出中断,因此计数器初值 X 的计

22、算式为: X=M- 计数值式中的 M 由操作模式确定,不同的操作模式计数器的长不一样,故M值也不一样。而式中的计数值与定时器的工作方式有关。模式 0 : M=2 13 =8192 模式 1 : M=2 16 =65536 模式 2 : M=2 8 =256 模式 3 : M=256 ,定时器 T0 分成 2 个独立的 8 位计数器,所以 TH0 、 TL0 的 M 均为 256 。1 、计数工作方式时计数工作方式时,计数脉冲由外部引入,是对外部冲进行计数,因此计数值根据要求确定。其计数初值: X=M- 计数值例如:某工序要求对外部脉冲信号计 100 次, X=M-100 2 、定时工作方式时

23、定时工作方式时,因为计数脉冲由部供给,是对机器周期进行计数,故计数脉冲频率为 f cont =f osc 1/12 、计数周期 T=1/f cont =12/f osc 定时工作方式的计数初值 X 等于: X=M-计数值 =M-t/T=M-( f osc t ) /12 式中: f osc 为振荡器的振荡频率, t 为要求定时的时间。 定时器有两种工作方式 :即定时和计数工作方式。由 TMOD 的 D6 位和 D2 位选择,其中 D6 位选择 T1 的工作方式, D2 位选择 T0 的工作方式。 =0 工作在定时方式, =1 工作在计数方式。并有四种操作模式: 1 、模式 0 : 13 位计数

24、器, TLi 只用低 5 位。 2 、模式 1 : 16 位计数器。 3 、模式 2 : 8 位自动重装计数器, THi 的值在计数中不变, TLi 溢出时, THi 中的值自动装入 TLi 中。 4 、模式 3 : T0 分成 2 个独立的 8 位计数器, T1 停止计数。 MCS-51 有 5 个中断源,可分为 2 个中断优先级,即高优先级和低优先级,中断自然优先级: 外部中断 0 ;定时器 0 中断; 外部中断 1 ;定时器 1 中断 ; 串行口中断 ;定时器 2 中断 2.1.7中断响应条件 ( 1 )同级或高优先级的中断正在进行中; ( 2 )现在的机器周期还不是执行指令的最后一上机

25、器周期,即正在执行的指令还没完成前不响应任何中断; ( 3 )正在执行的是中断返回指令 RET1 或是访问专用寄存器 IE 或 IP 的指令,换而言之,在 RETI 或者读写 IE 或 IP 之后,不会马上响应中断请求,至少要在执行其它一要指令之扣才会响应。CPU 响应中断的条件有: ( 1 )有中断源发出中断请求; ( 2 )中断总允许位 EA=1 ,即 CPU 开中断; ( 3 )申请中断的中断源的中断允许位为 1 ,即没有被屏蔽。2.1.8串行口工作方式与帧格式MCS-51 单片机串行口可以通过软件设置四种工作方式: 方式 0 :这种工作方式比较特殊,与常见的微型计算机的串行口不同,它又

26、叫同步移位寄存器输出方式。在这种方式下,数据从 RXD 端串行输出或输入,同步信号从 TXD 端输出,波特率固定不变,为振荡率的 1/12 。该方式是以 8 位数据为一帧,没有起始位和停止位,先发送或接收最低位。方式 1 :为8位uart工作方式,串行口为位的异步通信接口,一信息为位,即位起始位(),位数据(低位在前)与位停止位()。Txd为发送端,rxd为接收端,波特率可变。方式 2 :采用这种方式可接收或发送 11 位数据,以 11 位为一帧,比方式 1 增加了一个数据位,其余一样。第 9 个数据即 D8 位具有特别的用途,可以通过软件搂控制它,再加特殊功能寄存器 SCON 中的 SM2

27、位的配合,可使 MCS-51 单片机串行口适用于多机通信。方式 2 的波特率固定,只有两种选择,为振荡率的 1/64 或 1/32 ,可由 PCON 的最高位选择。方式 3 :方式 3 与方式 2 完全类似,唯一的区别是方式 3 的小组特率是可变的。而帧格式与方式 2- 样为 11 位一帧。所以方式 3 也适合于多机通信。随着大规模集成电路的出现与其发展,将计算机的CPU 、RAM 、 ROM 、定时/数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机 。2.2 FPGA/CPLD2.2.1 CPLD/FPGA特点尽管FPGA和CPL

28、D都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定连电路的逻辑功能来编程,FPGA主要通过改变部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。FPGA的集成度比CPLD高,具有更复杂的

29、布线结构和逻辑实现。CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,

30、每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。CPLD性好,FPGA性差。 一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。随着复杂可编程逻辑器件(CPLD)密度的提高,数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市场。许多设计人员已经感受到CPLD容易使用、时序可预测和速度高等优点,然而,在过去由于受到CPLD密度的限制,他们只好转向FPGA和ASIC。现在,设计人员可以体会到密度高达数十万门的CPLD所带来的好处。CPLD结构在一个逻辑路径上采用1至16个乘积项,因而大

31、型复杂设计的运行速度可以预测。因此,原有设计的运行可以预测,也很可靠,而且修改设计也很容易。CPLD在本质上很灵活、时序简单、路由性能极好,用户可以改变他们的设计同时保持引脚输出不变。与FPGA相比,CPLD的I/O更多,尺寸更小。如今,通信系统使用很多标准,必须根据客户的需要配置设备以支持不同的标准。CPLD可让设备做出相应的调整以支持多种协议,并随着标准和协议的演变而改变功能。这为系统设计人员带来很大的方便,因为在标准尚未完全成熟之前他们就可以着手进行硬件设计,然后再修改代码以满足最终标准的要求。CPLD的速度和延迟特性比纯软件方案更好,它的NRE费用低于ASIC,更灵活,产品也可以更快入

32、市。CPLD可编程方案的优点如下: 逻辑和存储器资源丰富(Cypress Delta39K200的RAM超过480 Kb)带冗余路由资源的灵活时序模型 改变引脚输出很灵活 可以装在系统上后重新编程 I/O数目多 具有可保证性能的集成存储器控制逻辑 提供单片CPLD和可编程PHY方案 由于有这些优点,设计建模成本低,可在设计过程的任一阶段添加设计或改变引脚输出,可以很快上市 2.2.2 CPLDCPLD是属于粗粒结构的可编程逻辑器件。它具有丰富的逻辑资源(即逻辑门与寄存器的比例高)和高度灵活的路由资源。CPLD的路由是连接在一起的,而FPGA的路由是分割开的。FPGA可能更灵活,但包括很多跳线,

33、因此速度较CPLD慢。 CPLD以群阵列(array of clusters)的形式排列,由水平和垂直路由通道连接起来。这些路由通道把信号送到器件的引脚上或者传进来,并且把CPLD部的逻辑群连接起来。 CPLD之所以称作粗粒,是因为,与路由数量相比,逻辑群要大得到。CPLD的逻辑群比FPGA的基本单元大得多,因此FPGA是细粒的。 CPLD的功能块 CPLD最基本的单元是宏单元。一个宏单元包含一个寄存器(使用多达16个乘积项作为其输入)与其它有用特性。 因为每个宏单元用了16个乘积项,因此设计人员可部署大量的组合逻辑而不用增加额外的路径。这就是为何CPLD被认为是“逻辑丰富”型的。 宏单元以逻

34、辑模块的形式排列(LB),每个逻辑模块由16个宏单元组成。宏单元执行一个AND操作,然后一个OR操作以实现组合逻辑。 每个逻辑群有8个逻辑模块,所有逻辑群都连接到同一个可编程互联矩阵。 每个群还包含两个单端口逻辑群存储器模块和一个多端口通道存储器模块。前者每模块有8,192b存储器,后者包含4,096b专用通信存储器且可配置为单端口、多端口或带专用控制逻辑的FIFO。 CPLD有什么好处? I/O数量多 CPLD的好处之一是在给定的器件密度上可提供更多的I/O数,有时甚至高达70%。时序模型简单 CPLD优于其它可编程结构之处在于它具有简单且可预测的时序模型。这种简单的时序模型主要应归功于CP

35、LD的粗粒度特性。 CPLD可在给定的时间提供较宽的相等状态,而与路由无关。这一能力是设计成功的关键,不但可加速初始设计工作,而且可加快设计调试过程。 粗粒CPLD结构的优点 CPLD是粗粒结构,这意味着进出器件的路径经过较少的开关,相应地延迟也小。因此,与等效的FPGA相比,CPLD可工作在更高的频率,具有更好的性能。 CPLD的另一个好处是其软件编译快,因为其易于路由的结构使得布放设计任务更加容易执行。 灵活的输出引脚 CPLD的粗粒结构和时序特性可预测,因此设计人员在设计流程的后期仍可以改变输出引脚,而时序仍保持不变。 新的CPLD封装 CPLD有多种密度和封装类型,包括单芯片自引导方案

36、。自引导方案在单个封装集成了FLASH存储器和CPLD,无须外部引导单元,从而可降低设计复杂性并节省板空间。在给定的封装尺寸,有更高的器件密度共享引脚输出。这就为设计人员提供了“放大”设计的便利,而无须更改板上的引脚输出。 CPLD的功耗 与同样密度的FPGA相比,CPLD的待机功耗更低。 CPLD FPGA (待机电流(在Vcc 为1.8V时) 50K 300A 200mA 100K 600A 200mA 200K 1.25mA 300mA CPLD特别适合那些要求低功耗和低温度的电池供电应用,像手持设备。许多设计人员都熟悉传统的PLD,并喜欢这种结构所固有的灵活性和易用性。CPLD为ASI

37、C和FPGA设计人员提供了一种很好的替代方案,可让他们以更简单、方便易用的结构实现其设计。CPLD现已达到数十万门的密度,并可提供当今通信设计所需的高性能。大于50万门的设计仍需ASIC和FPGA,但对于小型设计,CPLD不失为一个高性价比的替代方案。2.2.3 FPGAFPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和部连线(Interconnect)三个部分。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路

38、,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA部有丰富的触发器和IO引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。 FPGA是由存放在片RAM中的程序来设置其工作状态的,因此,工作时需要对片的RAM进行编程。用户可以根据不同的配置模式,

39、采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为

40、微处理器的外设,由微处理器对其编程。细粒FPGA结构的优点 FPGA是细粒结构,这意味着每个单元间存在细粒延迟。如果将少量的逻辑紧密排列在一起,FPGA的速度相当快。然而,随着设计密度的增加,信号不得不通过许多开关,路由延迟也快速增加,从而削弱了整体性能。CPLD的粗粒结构却能很好地适应这一设计布局的改变。为什么CPLD和FPGA需要不同的逻辑设计技巧? FPGA是细粒器件,其基本单元和路由结构都比CPLD的小。FPGA是“寄存器丰富”型的(即其寄存器与逻辑门的比例高),而CPLD正好相反,它是“逻辑丰富”型的。 很多设计人员偏爱CPLD是因为它简单易用和高速的优点。CPLD更适合逻辑密集型应

41、用,如状态机和地址解码器逻辑等。而FPGA则更适用于CPU和DSP等寄存器密集型设计。2.2.4 VHDL语言描述VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。199

42、3年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计

43、实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,与端口)和部(或称不可视部分),既涉与实体的部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成外部分的概念是VHDL系统设计的基本点 与其他硬件描述语言相比,VHDL具有以下特点:功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持各种设计方法,既

44、支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。 支持广泛、易于修改。由于VHDL已经成为IEEE标准所规的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。 强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。V

45、HDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。独立于器件的设计、与工艺无关。设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。很强的移植能力。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。 易于共享和复用。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用

46、,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。图2-1随着VLSI、EDA( Electronic Design Automation )工具的迅速发展,用户系统的设计从单纯的ASIC(Application Specific Integrated Circuit)设计向着系统单片化SOC(System On a Chip)设计的方向发展。同时网络技术的发展,共享IP知识产权的开放式系统设计成为新模式,芯片工艺物理设计与系统设计相分离,使用户系统设计人员可直接从事芯片设计。多种技术的融合,系统的功能复合化程度越来越高;对系统设计方法学和工具的要求更高;系统设计日趋软件硬化、硬

47、件软化,并使两者得到了有机的融合,形成了更为强大的ESDA( Electronic System Design Automation )。从宏观的角度看,VHDL的语法构成了程序的各组成部分;微观上看VHDL的语法是各种语句的运用细节。本章在VHDL的特性之后,从这两个角度简要介绍VHDL的语法基础。硬件描述语言HDL(Hardware Description Language)诞生于1962年。HDL是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描述离散电子系统的结构和行为。与SDL(Software Description Language)相似,经历了从机器码(晶体管和焊

48、接)、汇编(网表)、到高级语言(HDL)的过程。20世纪80年代美国国防部开发Very High Speed Integrated CircuitVHSIC,用于描述集成电路的结构和功能。此后,硬件描述语言向标准化方向发展,1987年成为IEEE Standard 1076,称为VHDL语言。它也是美国国防部标准(MIL-STD-454L)。1993年该标准增修为IEEE1164标准。1996年,再次加入电路合成的标准程序和规格,成为IEEE1076.3标准。1995年VerilogHDL也成为IEEE 标准。VHDL与VerilogHDL一起成为业界主选的硬件描述语言。一、VHDL的特点应用

49、VHDL进行系统设计,有以下几方面的特点。(一)功能强大VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。(二)可移植性VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。(三)独立性VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的

50、目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择围,可以是各系列的CPLD、FPGA与各种门阵列器件。(四)可操作性由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(五)灵活性VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。二、VHDL的设计步骤采用VHDL的系统设计,一般有以下6个

51、步骤。1)要求的功能模块划分;2)VHDL的设计描述(设计输入);3)代码仿真模拟(前仿真);4)计综合、优化和布局布线;5)布局布线后的仿真模拟(后仿真);6)设计的实现(下载到目标器件)。三、VHDL的设计简述VHDL描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。VHDL将一个设计称为一个实体Entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和部的隐藏部分(实体算法、实现)。当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。所以,部和外部的概念对系统设计的VHDL是十分重要

52、的。外部的实体名或连接由实体声明Entity来描述。而部的实体算法或实现则由结构体Architecture来描述。结构体可以包含相连的多个进程process或者组建component等其他并行结构。需要说明的是,它们在硬件中都是并行运行的。VHDL程序设计的基本结构如下:1 库、程序包程序包是用来单纯罗列VHDL语言中所要用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义等,它是一个可编译的设计单元,也是库结构中的一个层次。要使用程序包时,可以用USE语句说明。例如:USE IEEE.STD_LOGIC_1164.ALL; 该语句表示在VHDL程序中要使用名为STD_LOGIC_

53、1164的程序包中所有定义或说明项。一个程序包由两大部分组成:(Header)和包体(Package Body),其中包体是一个可选项,也就是说,程序包可以只由构成。一般列出所有项的名称,而在包体具体给出各项的细节。程序包的结构如下所示:PACKAGE 程序包名 IS说明语句; END 程序包名;XXPACKAGE BODY 程序包名 IS 说明语句;END BODY;包体下面是一个程序包的例子:-说明 PACKAGE Logic IS TYPE Three_level_logic IS (0, L, Z); CONSTANT Unknown_Value:Three_level_logic:=

54、0; FUNCTION Invert (input:Three_level_logic) RETURN Three_level_logic; END Logic;-包体说明 PACKAGE BODY Logic IS -如下是函数的子程序体 FUNCTION Invert (input:Three_level_logic) RETURN Three_level_logic; BEGIN CASE input IS WHEN 0=RETURN 1; WHEN 1=RETURN 0; WHEN Z=RETURN Z; END CASE; END Invert; END Logic; 库(Libra

55、ry)库是专门存放预先编译好的程序包(package)的地方。在VHDL语言中,库的说明总是放在设计单元的最前面:LIBRARY库名;这样,在设计单元的语句就可以使用库中的数据。由此可见,库的好处就在于使设计者可以共享已经编译过的设计结果。在VHDL语言中可以存在多个不同的库,但是库和库之间是独立的,不能互相嵌套。实际中一个库就对应一个目录,预编译程序包的文件就放在此目录中。用户自建的库即为设计文件所在目录,库名与目录名的对应关系可在编译软件中指定。例如在上述计数器设计中开始部分有:library ieee; use ieee.std_logic_1164.all; use ieee.std_

56、logic_unsigned.all;其中ieee是ieee标准库的标志名,下面两个use语句使得以下设计可使用程序包std_logic_1164和std_logic_unsigned中预定义的容。库说明语句的作用围从一个实体说明开始到它所属的构造体、配置为止。当一个源程序中出现两个以上的实体时,两条作为使用库的说明语句应在每个实体说明语句前重复书写。例如:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY and1 IS 库使用说明END and1; ARCHTECTURE rt1 of and1 IS END rt1; CONFIGURATIO

57、N s1 of and1IS END s1; LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY and2 IS 库使用说明 END and2; ARCHTECTURE rt2 of and2 IS END rt2; CONFIGURATION s2 of and2 IS END s2; 以下是IEEE两个标准库“std”与“ieee”中所包含的程序包的简单解释。表2-1库名程序包名包中预定义容std standard VHDL类型,如bit,bit_vectorieee std_logic_1164 定义std_logic,std_logic_v

58、ector等ieee numeric_std 定义了一组基于std_logic_1164中定义的类型上的算术运算符,如“+”、“-”、SHL、SHR等ieee std_logic_arith 定义有符号与无符号类型,与基于这些类型上的算术运算ieee std_logic_signed 定义了基于std_logic与std_logic_vector类型上的有符号的算术运算ieee std_logic_unsigned 定义了基于std_logic与std_logic_vector类型上的无符号的算术运算2 实体Entity实体是VHDL设计中最基本的模块,VHDL表达的所有设计均与实体有关。设计

59、的最顶层是顶层实体。如果设计分层次,那么在顶层实体中将包含较低级别的实体。实体中定义了该设计所需的输入/输出信号,信号的输入/输出类型被称为端口模式,同时实体中还定义他们的数据类型。任何一个基本设计单元的实体说明都具有如下的结构:entity isport(信号名 ,信号名:端口模式 端口类型;信号名 ,信号名:端口模式 端口类型);end;每个端口所定义的信号名在实体中必须是唯一的,说明信号名的属性包括端口模式和端口类型,端口模式决定信号的流向,端口类型决定端口所采用的数据类型。端口模式(MODE)有以下几种类型:IN 信号进入实体但并不输出;OUT 信号离开实体但并不输入;并且不会在部反馈

60、使用;INOUT 信号是双向的(既可以进入实体,也可以离开实体);BUFFER 信号输出到实体外部,但同时也在实体部反馈。端口类型(TYPE)有以下几种类型:integer 可用作循环的指针或常数,通常不用于I/O信号;bit 可取值0或1;std_logic 工业标准的逻辑类型,取值0,1,X 和Z ;std_logic_vector std_logic的组合,工业标准的逻辑类型。由此看出,实体(ENTITY)类似于原理图中的符号,它并不描述模块的具体功能。实体的通信点是端口(PORT),它与模块的输入/输出或器件的引脚相关联。以上述的四位计数器为例,则该计数器的实体部分如下:ENTITYt

61、m16 ISPORT ( ci :in std_logic;nreset :in std_logic;clk :in std_logic;co :out std_logic;qcnt :buffer std_logic_vector(3 downto 0);ENDtm16;在该例中所有的信号类型均为std_logic,其中qcnt是一个4位的信号端口,由qcnt3,qcnt2,qcnt1,qcnt0构成。3 结构体Architecture:结构体是VHDL设计中最主要部分,它具体地指明了该基本设计单元的行为、元件与部的连接关系,也就是说它定义了设计单元具体的功能。结构体对其基本设计单元的输入输

62、出关系可以用3种方式进行描述,即行为描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)和结构描述(逻辑元件连接描述)。不同的描述方式,只体现在描述语句上,而结构体的结构是完全一样的。一个完整的、能被综合实现的VHDL设计必须有一个实体和对应的结构体,一个实体可以对应一个或多个结构体,由于结构体是对实体功能的具体描述,因此它一定要跟在实体的后面,通常先编译实体后才能对结构体进行编译。一个结构体的具体结构描述如下:architectureofis-结构体声明区域-声明结构体所用的部信号与数据类型-如果使用元件例化,则在此声明所用的元件begin -以下开始结构体用于描述设计的功能-concurrent signal assignments 并行语句信号赋值-processes 进程(顺序语句描述设计)-component instantiations 元件例化end结构体名是对本结构体的命名,它是该结构体的唯一名称,OF后面紧跟的实体名表明了该结构体所对应的是哪一个实体,用IS来结束结构体的命名,结构体的名称可以由设计人员自由命名。如上述四位计数器的结构体(Architecture):ARC

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!