VHDL编程入门:设计自己的硬件

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


VHDL是一种硬件描述语言(HDL)。 HDL看起来有点像编程语言,但是用途不同。 HDL不是用来设计软件,而是用来定义计算机芯片。 VHDL可用于描述任何类型的电路,并经常用于处理器,CPU,母板,FPGA,ASIC和许多其他类型的数字电路的设计,仿真和测试中.

VHDL历史

VHDL名称是嵌套的缩写。它代表VHSIC硬件描述语言。 VHSIC代表超高速集成电路。除了描述快速处理器外,它还是1980年代美国政府计划的名称,其任务是在超高速集成电路(快速计算机芯片)领域进行研究和开发。.

随着材料科学,算法,芯片设计,光刻和其他十几个相关领域的重大进步,VHSIC开发了VHDL.

该语言的第一个正式标准来自1987年的IEEE,即IEEE1076。此后已经有多个版本,最新版本是2008年。除了1076中指定的“核心”语言外,还有一个版本。其他规范中编入的扩展数:

  • IEEE 1076.1 VHDL模拟和混合信号(VHDL-AMS)
  • IEEE 1076.1.1 VHDL-AMS标准软件包(stdpkgs)
  • IEEE 1076.2 VHDL数学软件包
  • IEEE 1076.3 VHDL综合包(vhdlsynth)
  • IEEE 1076.3 VHDL综合包–浮点(fphdl)
  • IEEE 1076.4时序(面向ASIC库的VHDL计划:至关重要)
  • IEEE 1076.6 VHDL综合互操作性
  • IEEE 1164 VHDL多值逻辑(std_logic_1164)软件包

VHDL设计和语法

VHDL基于Ada,并在语法和概念上广泛地借鉴了它。然后用硬件特定的概念(例如多值逻辑,物理并行性和扩展的布尔运算符)进行补充。 VHDL还可以按升序和降序对数组进行索引,而Ada(以及大多数其他编程语言)仅按升序进行索引.

从本质上讲,大多数编程语言都是过程性的-计算机按顺序执行一个命令。 VHDL是不同的。它是一种硬件语言,描述(真实或模拟的)物理结构。该结构由大量模块组成,每个模块与每个其他模块同时作用.

因此,在每个模块中都有一个过程指令流,看起来像一个小型独立的软件程序,其中包含变量,控制流,条件,循环。每个模块具有一个或多个输入以及一个或多个输出。输入在称为实体的结构中指定,并且自包含逻辑在体系结构中定义.

考虑“与门”的概念,其中我们有两个输入和一个输出。如果两个输入均为“ on”(true,1),则输出为“ on”;否则,输出为“ off”。因此,使用VHDL,我们将定义两个输入和一个输出。这些输入和输出的可接受值将在std_logic模块中定义,该模块像使用常规编程语言的库一样导入。然后,该架构将定义“与门”的内部工作方式,以便它可以像我们刚才讨论的那样工作.

std_logic模块是有趣的硬件特定类型的值。它类似于编程语言中存在的BOOLEAN值(一位:true或false),但是它可以具有一定范围的值,因为它表示物理系统中的实际电脉冲:

  • U:未初始化。该信号尚未设置.
  • X:未知。无法确定该值/结果.
  • 0:逻辑0
  • 1:逻辑1
  • Z:高阻抗
  • W:信号微弱,无法判断是0还是1.
  • L:微弱的信号可能应该变为0
  • H:微弱的信号可能应该变为1
  • -:不在乎.

从微观上讲,这是构建完整的VHDL设计的方式。 I / O活动的非常简单,逻辑上独立的模块被构建并彼此连接,以形成能够执行不同类型任务的计算机。 VHDL设计可以描述功能全面的通用计算机,也可以编码单个算法,例如用于比特币挖掘的蛮力工作量证明.

重要的是要意识到VHDL设计不是程序-它不能运行或执行。就像一个蓝图,它定义了一个体系结构。设计完成后,通常会在软件测试台中对其进行仿真以进行测试,然后进行合成,这意味着将其转换为可以在实际芯片或电路板上实现的物理设计。.

学习VHDL的资源

有很多学习VHDL的资源。我们汇集了一些最好的.

在线资源

  • VHDL入门:宾夕法尼亚大学的VHDL教程.
  • Wikipedia上的VHDL:Wikipedia对VHDL的深入而清晰的介绍令人惊讶,它对整个语言进行了很好的介绍.
  • VHDL Cookbook:免费的在线书籍,一本大学课程教科书的长度和格式.
  • VHDL教程:通过示例学习:这个古老的教程看起来并不好看,但是信息非常棒,组织得很好.
  • VHDL语言指南:这是一个PDF,其中涵盖了大量语言(400页),并带有文档内链接,可轻松导航。这是一个极佳的参考.
  • VHDL设计者指南:资源,教程和链接的集合。包括视频和在线认证课程.
  • 可编程逻辑/ VHDL模块结构
  • VHDL基础知识—在线课程
  • VHDL手册
  • VHDL入门指南

图书

所有这些书着重于VHDL:

  • VHDL设计者指南,第三版
  • VHDL的电路设计与仿真
  • Vhdl的例子
  • VHDL:编程基础
  • 工程师VHDL
  • VHDL示例:数字设计基础
  • VHDL的电路设计
  • 使用VHDL的数字设计:一种系统方法

甚高密度脂蛋白 & Verilog书籍

VHDL的主要“竞争”是Verilog。两种语言都用于硬件设计,因此有许多书籍着重于基础设计和工程概念,并同时使用了VHDL和Verilog.

  • 具有RTL设计,VHDL和Verilog的数字设计
  • Hdl芯片设计:设计,合成的实用指南 & 模拟Asics & 使用Vhdl或Verilog的Fpgas
  • FPGA设计食谱,第二版:使用Verilog和VHDL
  • HDL编程基础知识:VHDL和Verilog

其他重要的VHDL链接

实现和模拟器

  • 免费/开源
    • 生长激素
    • 雷士
    • 免费的HDL项目
  • 商业/专有
    • VHDL Simili
    • 主动式高密度脂蛋白
    • 敏锐的企业模拟器
    • 模型模拟

工具类

  • EDA Utils:与VHDL以及Verilog和其他HDL一起使用的大量实用程序.
  • EDA Playground:用于测试VHDL设计的在线沙箱.
  • 编辑器套件
    • Emacs VHDL模式
    • VHD的VHDL插件
    • 出色文本的VHDL软件包
    • VHDL for Atom
    • 记事本的VHDL++

您还应该知道…

VHDL是两种主要的硬件描述语言之一。另一个是Verilog。大多数硬件设计人员都熟悉这两种语言以及Cand C等底层操作系统语言++.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map