掌握VHDL:FPGA和ASIC设计综合介绍
教程 - VHDL 简介
VHDL 是一个可怕的缩写。它代表V HSIC H 硬件D 描述L 语言。首字母缩略词里面有首字母缩略词,太棒了! VHSIC 代表 V 非常H 哎呀S 撒尿I 集成C 电路。因此,VHDL扩展为V 超高速集成电路H 硬件D 描述L 语言。唷,这真是太拗口了。 VHDL 是教育和企业用来设计 FPGA 和 ASIC 的两种语言之一。如果您不熟悉这些迷人的电路,您可能首先会从 FPGA 和 ASIC 简介中受益。 VHDL 和 Verilog 是数字设计人员用来描述电路的两种语言,它们在设计上与 C 和 Java 等传统软件语言不同。
对于下面的示例,我们将创建一个 VHDL 文件,描述 与门。作为复习,简单的与门有两个输入和一个输出。仅当两个输入都等于 1 时,输出才等于 1。下面是我们将用 VHDL 描述的与门的图片。
与门
让我们开始吧! VHDL 的基本单位称为信号 。现在我们假设信号可以是 0 或 1(实际上还有其他可能性,但我们会讨论这一点)。以下是一些基本的 VHDL 逻辑:
<前>07前>第一行代码定义了一个 std_logic 类型的信号,称为 and_gate。 Std_logic 是最常用于定义信号的类型,但您还需要了解其他类型。此代码将生成一个具有单个输出 (and_gate) 和 2 个输入(input_1 和 input_2)的 AND 门。关键字“and”在VHDL中是保留的。 <=运算符称为赋值运算符。当您口头解析上面的代码时,您可以大声说:“信号 and_gate GETS input_1 and-ed with input_2。”
现在您可能会问自己 input_1 和 input_2 来自哪里。顾名思义,它们是该文件的输入,因此您需要告诉工具有关它们的信息。文件的输入和输出在实体中定义 。实体包含定义文件的所有输入和输出的端口。让我们创建一个简单的实体:
<前>17前>这是你的基本实体。它定义了一个名为 example_and 的实体和 3 个信号、2 个输入和 1 个输出,所有这些都是 std_logic 类型。需要另一个 VHDL 关键字来完成此操作,即架构 。架构用于描述特定实体的功能。将其视为一篇论文:实体是目录,架构是内容。让我们为这个实体创建一个架构:
<前>24前>上面的代码定义了实体example_and的一个名为rtl的架构。架构使用的所有信号都必须在“is”和“begin”关键字之间定义。实际的架构逻辑位于“begin”和“end”关键字之间。您即将完成此文件。您需要告诉工具的最后一件事是使用哪个库。库定义某些关键字在文件中的行为方式。现在,请想当然地认为您需要在文件顶部添加以下两行:
<前>38前>恭喜!您已经创建了第一个 VHDL 文件。您可以在此处查看已完成的文件:
<前>46前>看起来您是否必须编写大量代码才能创建一个愚蠢的“与”门?首先,大门并不愚蠢。其次,你是对的; VHDL 是一种非常冗长的语言。要习惯这样一个事实:在软件中做一些非常简单的事情在 HDL(例如 Verilog 或 VHDL)中会花费更长的时间。但只要请一些软件人员尝试在 VGA 显示器上生成显示康威生命游戏的图像,就会看到他们惊讶地头晕!顺便说一下,该视频是使用 VHDL 和 FPGA 创建的。您很快就能做到这一点!
接下来我们将讨论另一个基本的VHDL关键字:process。
VHDL