FPGA:硬件描述语言简介
⭐本专栏针对 FPGA 进行入门学习,从逻辑代数等基础知识讲起,结合 Verilog HDL 语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机 FSM 进行剖析与建模。🔥本文已收录于 FPGA 系列专栏:FPGA Tutorial 欢迎订阅,持续更新。🔥文章和代码已归档至【Github仓库】,需要的朋友们自取。或者关注公众号【AIShareLab】,回复 FPGA 也可获取。
硬件描述语言 HDL(Hardware Description Language ) 类似于高级程序设计语言. 它是一种以文本形式来描述数字系统硬件的结构和行为的语言, 用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统的逻辑功能。用 HDL 编写设计说明文档易于存储和修改,并能被计算机识别和处理.
HDL 是高层次自动化设计的起点和基础.目前, IEEE 推出两种标准:VHDL 和 Verilog HDL
(1) VHDL 的起源与发展
Very high speed integrated Hardware Description Language (VHDL)它是 70 年代末和 80 年代初,起源于美国国防部提出的超高速集成电路 VHSIC 研究计划,目的是为了把电子电路的设计意义以文字或文件的方式保存下来,以便其他人能轻易地了解电路的设计意义 。 1981 年 6 月成立了 VHDL 小组。
1983 年第三季度,由 IBM 公司、TI 公司、Intermetric 公司成立开发小组。
1986 年 3 月,IEEE 开始致力于 VHDL 的标准化工作,讨论 VHDL 语言标准。
IEEE 于 1987 年 12 月公布了 VHDL 的标准版本(IEEE STD 1076/1987);
1993 年 VHDL 修订,形成新的标准即 IEEE STD 1076-1993)。
(2) Verilog HDL 的起源与发展
1981 年 Gateway Automation 硬件描述语言公司成立;
1983~84 年间该公司发布“Verilog HDL”及其仿真器 Verilog -XL ;
1986 年 Phil Moorby 提出快速门级仿真的 XL 算法并获得成功,Verilog 语言迅速得到推广。 Verilog-XL 较快,特别在门级,能处理万门以上的设计。
1987 年 Synonsys 公司开始使用 Verilog 行为语言作为它综合工具(DC – Design Compiler)的输入;
1989 年 12 月 Cadence 公司并购了 Gateway 公司;
1990 年初 Cadence 公司把 Verilog HDL 和 Verilog-XL 分成单独产品,公开发布了 Verilog HDL,与 VHDL 竞争。并成立 Open Verilog International(OVI)组织,负责 Verilog 的发展和标准的制定。
1993 年 几乎所有 ASIC 厂商支持 Verilog HDL,认为 Verilog-XL 是最好的仿真器。OVI 推出 2.0 版本的 Verilog HDL 规范,IEEE 接受了将 OVI 的 Verilog2.0 作为 IEEE 标准的提案。
1995 年 12 月,定出 Verilog HDL 的标准 IEEE 1364。
2001 年 3 月 IEEE 正式批准了 Verilog-2001 标准(即 IEEE 1364-2001)。
Verilog-2001 标准在 Verilog-1995 的基础上有几个重要的改进。新标准有力地支持可配置的 IP 建模,大大提高了深亚微米(DSM)设计的精确性,并对设计管理作了重大改进。
(3) 两种语言的比较
能力(capability)
VHDL
结构建模
抽象能力强
系统级-算法级-RTL 级-逻辑级-门级
Verilog
结构建模
具体物理建模能力强
算法级-RTL 级-逻辑级-门级-版图级
数据类型(data type)
VHDL 是一种数据类型性极强的语言。支持用户定义的数据类型。当对象的数据类型不一样时必须用类型转换函数转换。可以使用抽象(比如枚举)类型为系统建模。能利用数据类型检查编程的错误。
Verilog 数据类型简单。只能由语言本身定义,不能由用户定义。适于硬件结构的建模,不适于抽象的硬件行为建模。
易学性(easiest to learn)
VHDL 是一种数据类型很强的语言,欠直观。加之同一种电路有多种建模方法,通常需要一定的时间和经验,才能高效的完成设计。
VHDL 根植于 ADA,有时简洁,有时冗繁,如行为描述简洁,结构描述冗繁。
Verilog:由于 Verilog 为直接仿真语言,数据类型较简单,语法很直观,故 Verilog 更易理解和好学。
Verilog 更像 C,约有 50%的结构来自 C,其余部分来自 ADA。
效 率
VHDL:由于数据类型严格,模型必须精确定义和匹配数据类型,这造成了比同等的 Verilog 效率要低。
Verilog:不同位宽的信号可以彼此赋值,较小位数的信号可以从大位数信号中自动截取自己的位号。在综合过程中可以删掉不用的位,这些特点使之简洁,效率较高。
(4)VHDL 语言的新进展
近年来,VHDL 又有了一些新的发展。例如,为了大幅度提高 EDA 工具的设计能力,出现了一系列对 HDL 语言的扩展。OO-VHDL(Object-Oriented VHDL,即面向对象的 VHDL) 模型的代码比 VHDL 模型短 30%~50%,缩短了开发时间,提高了设计效率。美国杜克大学扩展的 DE-VHDL (Duke Extended VHDL)通过增加 3 条语句,使设计者可以在 VHDL 描述中调用不可综合的子系统(包括连接该子系统和激活相应功能)。杜克大学用 DE-VHDL 进行一些多芯片系统的设计,极大地提高了设计能力。
(5)Verilog HDL 语言的新进展
OVI 组织 1999 年公布了可用于模拟和混合信号系统设计的硬件描述语言 Verilog-AMS 语言参考手册的草案,Verilog-AMS 语言是符合 IEEE 1364 标准的 Verilog HDL 子集。目前 Verilog-AMS 还在不断的发展和完善中。
结 论
HDL 主要用于数字电路与系统的建模、仿真和自动化设计。目前有两种标准的硬件描述语言:Verilog 和 VHDL。由于 Verilog 简单易学,所以建议大家学习 Verilog HDL 语言。
我国国家技术监督局于 1998 年正式将《集成电路/硬件描述语言 Verilog》列入国家标准,国家标准编号为 GB/T18349-2001,从 2001 年 10 月 1 日起实施。相信该标准的制定对我国集成电路设计技术的发展有重要的推动作用。
可编程逻辑器件及其发展趋势
可编程逻辑器件简称 PLD(Programable Logic Device),它是 EDA 技术发展的一个重要支持点,也是实现电子系统非常重要的一种方法,PLD 的发展推动了 EDA 工具的发展,也改变了电子系统的设计方法。
PLD 的集成度分类
四种 SPLD 器件的区别
复杂 PLD(CPLD 与 FPGA)
1985 年,美国 Xilinx 公司推出了现场可编程门阵列(FPGA,Field Programmable Gate Array)
CPLD(Complex Programmable Logic Device),即复杂可编程逻辑器件,是从 Altera 的 EPLD 改进而来的。
PLD 的基本原理与结构
CPLD 的原理与结构
CPLD 器件的结构
CPLD 器件宏单元内部结构示意图
MAX 7000S 器件的内部结构
MAX 7000S 器件的宏单元结构
FPGA 的原理与结构
2 输入或门真值表
用 2 输入查找表实现或门功能
3 人表决电路的真值表
用 3 输入的查找表实现 3 人表决电路
查找表原理
4 输入 LUT 及结构
FPGA 器件的内部结构示意图
典型 FPGA 的结构
XC4000 器件的 CLB 结构
Altera 的 Cyclone IV 器件结构
Cyclone IV 器件的 LE 结构
按编程特点分类
PLD 器件按照可以编程的次数可以分为两类:
一次性编程器件(OTP,One Time Programmable )
OTP 类器件的特点是:只允许对器件编程一次,不能修改;
可多次编程器件
可多次编程器件允许对器件多次编程,适合于科研开发中使用。
按编程元件和编程工艺分类
非易失性器件
熔丝(Fuse)
反熔丝(Antifuse)编程元件
紫外线擦除、电可编程,如 EPROM。
电擦除、电可编程方式,(EEPROM、快闪存储器(Flash Memory ) ) ,如多数 CPLD。
易失性器件
静态存储器(SRAM)结构,如多数 FPGA。
欢迎关注个人公众号【AIShareLab】,一起交流更多相关知识,前沿算法,Paper 解读,项目源码,面经总结。
版权声明: 本文为 InfoQ 作者【timerring】的原创文章。
原文链接:【http://xie.infoq.cn/article/16c5585c8c407eb0f9e10ffaf】。未经作者许可,禁止转载。
评论