⭐本专栏针对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的集成度分类

FPGA:硬件描述语言简介

四种SPLD器材的区别

器 件 与 阵 列 或 阵 列 输出电路
PROM 固定 可编程 固定
PLA 可编程 可编程 固定
PAL 可编程 固定 固定
GAL 可编程 固定 可组态

复杂PLD(CPLD与FPGA)

  • 1985年,美国Xilinx公司推出了现场可编程门阵列(FPGA,Field Programmable Gate Array)
  • CPLD(Complex Programmable Logic Device),即复杂可编程逻辑器材,是从Altera 的 EPLD 改善而来的。

PLD的基本原理与结构

FPGA:硬件描述语言简介

CPLD的原理与结构

CPLD器材的结构

FPGA:硬件描述语言简介

CPLD器材宏单元内部结构示意图

FPGA:硬件描述语言简介

MAX 7000S器材的内部结构

FPGA:硬件描述语言简介

MAX 7000S器材的宏单元结构

FPGA:硬件描述语言简介

FPGA的原理与结构

2输入或门真值表

A B F
0 0 0
0 1 1
1 0 1
1 1 1

用2输入查找表完成或门功用

FPGA:硬件描述语言简介

3人表决电路的真值表

A B C F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

FPGA:硬件描述语言简介

用3输入的查找表完成3人表决电路

查找表原理

FPGA:硬件描述语言简介

FPGA:硬件描述语言简介

4输入LUT及结构

FPGA器材的内部结构示意图

FPGA:硬件描述语言简介

典型FPGA的结构

XC4000器材的CLB结构

FPGA:硬件描述语言简介

Altera的Cyclone IV器材结构

Cyclone IV器材的LE结构

FPGA:硬件描述语言简介

按编程特点分类

PLD器材依照能够编程的次数能够分为两类:

  • 一次性编程器材(OTP,One Time Programmable )

    OTP类器材的特点是:只答应对器材编程一次,不能修正;

  • 可屡次编程器材

    可屡次编程器材答应对器材屡次编程,适合于科研开发中运用。

按编程元件和编程工艺分类

非易失性器材

  • 熔丝(Fuse)
  • 反熔丝(Antifuse)编程元件
  • 紫外线擦除、电可编程,如EPROM。
  • 电擦除、电可编程方式,(EEPROM、快闪存储器(Flash Memory ) ) ,如多数CPLD。

易失性器材

  • 静态存储器(SRAM)结构,如多数FPGA。

欢迎重视个人大众号【AIShareLab】,一起沟通更多相关知识,前沿算法,Paper解读,项目源码,面经总结。