VHDL与可编程逻辑器件设计详解
- 格式:doc
- 大小:2.38 MB
- 文档页数:20
VHDL与可编程逻辑器件设计
山西师范大学物理与电子信息工程学院
李 竹
Email:sxlizhu@
目录
第一章 可编程逻辑器件和VHDL简介 .................................................................................. 2
1.1 可编程逻辑器件 ......................................................................................................... 2
1.2 VHDL简介 ................................................................................................................. 5
1.3 VHDL设计过程 ......................................................................................................... 6
第二章 VHDL程序基本结构 ................................................................................... 7
2.1 库(Library) ............................................................................................................. 7
2.1.1库的种类 .................................................................................................................. 8
2.1.2库的使用 .................................................................................................................. 9
2.2 程序包(Package) ................................................................................................. 10
2.3 实体(Entity) ......................................................................................................... 12
2.3.1类属和端口说明 .................................................................................................... 12
2.3.2端口模式 ................................................................................................................ 13
2.3.3数据类型(TYPES) ............................................................................................ 13
2.4 结构体(Architecture) ........................................................................................... 15
2.4.1结构体命名 ............................................................................................................ 16
2.4.2定义语句 ................................................................................................................ 16
附录A 词汇索引 ............................................................................................................. 19
参考文献及相关网站 ......................................................................................................... 20
第一章 可编程逻辑器件和VHDL简介
本章主要介绍可编程逻辑器件和EDA发展,可编程逻辑器件的设计流程,最后简要介绍VHDL在可编程逻辑器件设计中的应用。
1.1 可编程逻辑器件
在20世纪中期之后,数字集成电路经历了小规模集成电路(SSI,Small Seale Integrated
Circuit )、中规模集成电路(MSI,Middle Seale Integrated Circuit)、大规模集成电路(LSI,Large Seale Integrated Circuit)、超大规模集成电路(VLSI,Very Large Seale Integrated Circuit)以及许多具有特定功能的专用集成电路(ASIC,Application Specific Integrated Circuit)的演变历程。随着微电子技术的发展,设计集成电路的任务已经不能也没有必要全部由器件生产商来独自承担,而许多研发单位和科研机构的工程师都可参与设计,因此出现了可编程逻辑器件(PLD, Programmable Logic Device)。同时,随着世界电子产业的快速发展,电子设计自动化(EDA,Electronic Design Automation)也得到了充分的促进。
可编程逻辑器件PLD是20世纪80年代发展起来的器件,是一种由用户根据自己的需求来设计逻辑功能并可对此器件进行编程的器件。目前我们常用的可编程逻辑器件具有体系结构和逻辑单元灵活、集成度高以及实用范围宽等特点。它们又具有研发周期短、电路成本低、开发便利等优点。这些器件的出现使得我们的电子电路系统的设计有了很大的方便。具体它有如下优点:
(1) 电子系统的器件使用大大减小。
目前器件的生产成本中最大部分是封装和测试,利用一片集成度高的可编程逻辑器件可以代替许多个TTL逻辑器件,这样带来的好处是:实现同样的逻辑功能可编程逻辑器件所花费的成本较低,而且随着目前系统的逐渐扩大化,利用可编程逻辑器件也可以使得电路系统的面积减小,电路板的布局和布线简单、电源功耗降低、调试方便。
(2) 设计灵活
如果用分立的TTL元件来设计电路,一旦做好了印刷电路板(PCB,Printed Circuit
Board),要想更改其功能,必须通过跳线。而且作为一个成品,为了系统的稳定安全,一般不允许跳线。而用可编程逻辑器件代替分立元件,即使有部分功能需要更改,也不需要对器件的外部管脚进行处理,而是通过对器件的内部功能进行重新编程即可。
(3) 高性能和高可靠性
可编程逻辑器件采用了最新的生产工艺和技术,性能优于一般的器件,速度比一般器件甚至高2个数量级。采用可编程逻辑器件,可以使得电路板上的器件大大减少,自然稳定性也有很高的提高。
下面介绍目前常用的可编程逻辑器件,且简要介绍它们的结构。
1. 复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)
CPLD允许具有许多的输入输出信号、乘积项和宏单元,内含多个逻辑块。这些逻辑块可以利用可编程内连线的布线来实现相互间的连接,它有效节约了硅片使用面积,提高性能,降低成本。CPLD的结构如图1-1
I/OLogic Block(逻辑块)Logic Block(逻辑块)Logic Block(逻辑块)Logic Block(逻辑块)Programmable Interconnect(可编程内连线)图 1-1 CPLD结构I/OLogic Block(逻辑块)Logic Block(逻辑块)Logic Block(逻辑块)Logic Block(逻辑块)
由CPLD的结构图可知,其内部主要包含:可编程内连线(Programmable Interconnect)、逻辑块(Logic Block)和输入/输出单元(I/O cells)三部分。
(1)可编程内连线
可编程内连线用于I/O到逻辑块输入、逻辑块的输出到自身输入、逻辑块的输出到其它逻辑块的输入的信号连线。有的逻辑块有自身的内部反馈,不需要把输出反馈到可编程内连线上。
(2)逻辑块
CPLD中的一个逻辑块就类似于一个PLD,它包含乘积项阵列(Product-Term Array)、乘积项分配机构(Product-Term Distribution Scheme)、宏单元(Macro-cell)。
乘积项阵列说明的是可编程与门(乘积项)。其阵列的容量大小是一个重要的指标,它定义了每个宏单元乘积项的平均数量和每个逻辑块乘积项的最大数量。
乘积项分配机构是分配乘积项到各个宏单元的规定和机构。乘积项分配机构允许一个扩展乘积项(Expander Product Terms)可以单独地分配给某一个宏单元或者多个宏单元。这就给设计者的设计但来很好的灵活性,而且这些机构对那些用于如何利用逻辑资源的软件算法也带来灵活性。
宏单元通常包含一个寄存器(触发器)和具有极性控制的组合通路,以及一个和多个反馈通路。所谓的极性控制就是指能够实现一个表达式的“原函数”或它的“反函数”,以便采用最少的乘积项来实现逻辑功能。通常CPLD还包含I/O宏单元、隐埋宏单元和输入宏单元。
逻辑块的主要指标是逻辑块的大小,逻辑块的大小是指逻辑块的逻辑容量,就是在其中能够实现多少逻辑。用宏单元的数目典型的表示逻辑块的大小,一般一个逻辑块包含4~20个宏单元,当逻辑块中所包含的宏单元高于16个时,意味着16位的函数就可以在单个逻辑块中实现。
(3)输入输出单元
输入输出单元是用来描述I/O缓冲器结构和输出使能控制的灵活性的。大多数的输入/输出单元仅仅用来根据其输出使能状态来驱动信号从器件输出,以及为输入的外来信号提供一个输入数据通路。
2. 现场可编程门阵列(FPGA,Field Programmable Gate Array)
如图1-2所示,FPGA是由一系列逻辑模块的阵列构成,通过可编程连线阵列可以将逻辑模块与逻辑模块、逻辑模块与可编程I/O模块进行互连。FPGA利用密布的可编程开关来实现布线的连接。
水平通路垂直通路逻辑模块图1-2 FPGA结构
它主要由三个基本部分组成:可配置逻辑模块CLB(Configurable Logic Block)、输入/输出模块I/OB(Input/Output Block)、可编程内连线PI(Programmable Interconnect)以及由它组成的编程开关矩阵PSM(Programmable Switch Matrix)。可配置逻辑模块以方阵的形式布置在器件的中央,它包含多种逻辑功能部件,使它既能实现组合逻辑电路和时序逻辑电路,又能实现包括静态随机存储器的各种运算电路。输入/输出模块分布在芯片的四周,它是提供外部封装引脚和内部信息的接口电路。可编程内连线分布在可配置逻辑模块的周围和可配置逻辑模块与输入/输出模块之间,它们的主要作用是完成可配置逻辑模块之间的逻辑连接以及将信息传递到输入/输出模块。
目前,主要有两类主流技术可供在FPGA的开发中选择,一种是基于静态随机存储器(SRAM, Static Random Access Memory)工艺技术的FPGA,另一种是基于反熔丝工艺技术的FPGA。市场上相对而言,基于SRAM工艺技术的FPGA器件所占份额相对较多。