亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> VHDL

教程 - VHDL 简介

VHDL 是一个可怕的首字母缩略词。它代表 V 恒生H 硬件D 说明 L 语言。首字母缩略词中的首字母缩略词,太棒了! VHSIC 代表 V 埃里 HS 撒尿 综合C 电路。因此,VHDL扩展为V ery 高速集成电路 H 硬件D 说明 L 语言。 PHEW 那是一口。 VHDL 是教育和商业用于设计 FPGA 和 ASIC 的两种语言之一。如果您不熟悉这些引人入胜的电路,您可能首先会从对 FPGA 和 ASIC 的介绍中受益。 VHDL 和 Verilog 是数字设计师用来描述其电路的两种语言,它们在设计上不同于 C 和 Java 等传统软件语言。

对于下面的示例,我们将创建一个 描述 的 VHDL 文件 和门。作为复习,一个简单的 And Gate 有两个输入和一个输出。只有当两个输入都等于1时,输出才等于1。下面是我们将用VHDL描述的与门的图片。

安与门

让我们开始吧! VHDL的基本单元称为信号 .现在让我们假设一个信号可以是 0 或 1(实际上还有其他可能性,但我们会谈到)。下面是一些基本的 VHDL 逻辑:

signal and_gate : std_logic;
and_gate <= input_1 and input_2;

第一行代码定义了一个 std_logic 类型的信号,它被称为 and_gate。 Std_logic 是最常用于定义信号的类型,但您将了解其他类型。此代码将生成具有单个输出(and_gate)和 2 个输入(input_1 和 input_2)的 AND 门。关键字“and”在 VHDL 中是保留的。 <=运算符称为赋值运算符。当你口头解析上面的代码时,你可以大声说:“信号和门GETS input_1 and-ed with input_2。”

现在您可能会问自己 input_1 和 input_2 来自哪里。正如他们的名字所暗示的,他们是这个文件的输入,所以你需要告诉工具他们。文件的输入和输出在 entity 中定义 .实体包含一个端口,该端口定义文件的所有输入和输出。让我们创建一个简单的实体:

entity example_and is
  port (
    input_1    : in  std_logic;
    input_2    : in  std_logic;
    and_result : out std_logic
  );
end example_and;

这是你的基本实体。它定义了一个名为 example_and 的实体和 3 个信号、2 个输入和 1 个输出,所有这些都是 std_logic 类型。需要另一个 VHDL 关键字来完成此操作,即 architecture .架构用于描述特定实体的功能。将其视为论文:实体是目录,架构是内容。让我们为这个实体创建一个架构:

architecture rtl of example_and is 
  signal and_gate : std_logic;
begin
  and_gate <= input_1 and input_2;
  and_result <= and_gate;
end rtl;

上面的代码定义了一个名为 rtl 的实体 example_and 的架构。架构使用的所有信号都必须在“is”和“begin”关键字之间定义。实际的架构逻辑位于“开始”和“结束”关键字之间。你几乎完成了这个文件。您需要告诉工具的最后一件事是使用哪个库。库定义了某些关键字在文件中的行为方式。现在,理所当然地认为你需要在文件的顶部有这两行:

library ieee;
use ieee.std_logic_1164.all;

恭喜!您已经创建了第一个 VHDL 文件。你可以在这里看到完成的文件:

library ieee;
use ieee.std_logic_1164.all;

entity example_and is
  port (
    input_1    : in  std_logic;
    input_2    : in  std_logic;
    and_result : out std_logic
    );
end example_and;

architecture rtl of example_and is
  signal and_gate : std_logic;
begin
  and_gate   <= input_1 and input_2;
  and_result <= and_gate;
end rtl;

似乎您必须编写大量代码才能创建一个愚蠢的门?首先,盖茨并不愚蠢。其次,你是对的; VHDL 是一种非常冗长的语言。习惯这样一个事实,即在软件中做一些非常容易的事情会花费你在 HDL 中显着更长的时间,例如 Verilog 或 VHDL。但只要请一些软件人员尝试在 VGA 显示器上生成一个图像,以显示康威的生命游戏,然后看着他们惊奇地头晕目眩!顺便说一句,该视频是使用 VHDL 和 FPGA 创建的。你很快就能做到这一点!


VHDL

  1. 记录 - VHDL 示例
  2. 变量 - VHDL 示例
  3. Verilog 简介
  4. 立体光刻 (SLA) 简介
  5. 钛合金简介
  6. 直流电路简介
  7. 交流电路简介
  8. SPICE 简介
  9. C 教程
  10. Verilog 教程
  11. 谐波简介:第 1 部分
  12. SINUMERIK 808D 简介 – 车削视频教程第 1 部分