Verilog 简介
Verilog 是一种硬件描述语言 (HDL)。 Verilog 是教育和商业用于设计 FPGA 和 ASIC 的两种语言之一。如果您不熟悉 FPGA 和 ASIC 的工作原理,您应该阅读此页面以了解 FPGA 和 ASIC 的介绍。 Verilog 和 VHDL 是最常用的两种 HDL。与 Java 或 C 等传统软件语言相比,Verilog 的工作方式非常不同。让我们从一个简单的例子开始。
首先,我们将创建一个 描述的 Verilog 文件 和门。作为复习,一个简单的 And Gate 有两个输入和一个输出。仅当两个输入都等于 1 时,输出才等于 1。下面是我们将使用 Verilog 描述的与门的图片。
安与门让我们开始吧! Verilog 的一个基本单元称为线。现在让我们假设一条线只能是 0 或 1。这是一些基本的线逻辑:
wire and_temp; assign and_temp = input_1 & input_2;
我们在第一行代码上创建了一个名为 and_temp 的连线。在代码的第二行,我们正在使用我们创建的电线并分配 电线。为了分配它,我们使用布尔 AND 函数,在 Verilog 中是与符号 (&)。如果您要描述上面显示的代码,您可能会说:“信号和_temp gets input_1 与 input_2 进行 AND 运算。”
Input_1 和 Input_2 是这段 Verilog 代码的输入。让我们显示输入和输出的完整列表。这是在 模块 中完成的 定义。 Module 是 Verilog 中的保留关键字,它显示了创建具有已定义输入和输出的代码块。
module example_and_gate ( input_1, input_2, and_result); input input_1; input input_2; output and_result;
这是您的基本模块。它定义了我们的名为 example_and_gate 的模块和 3 个信号、2 个输入和 1 个输出。让我们把所有东西放在一起完成文件。我们唯一缺少的是输出 and_result 的分配 .另一个注释,//在 Verilog 中用于注释。
/////////////////////////////////////////////////////////////////////////////// // File Downloaded from http://www.nandland.com /////////////////////////////////////////////////////////////////////////////// module example_and_gate ( input_1, input_2, and_result); input input_1; input input_2; output and_result; wire and_temp; assign and_temp = input_1 & input_2; assign and_result = and_temp; endmodule // example_and_gate
恭喜!你已经创建了你的第一个 Verilog 文件。
似乎您必须编写大量代码才能创建一个愚蠢的门?首先,盖茨并不愚蠢。其次,您是对的,HDL 需要大量代码来完成相对简单的任务。 Verilog 至少比 VHDL 更简洁,您可以对此感到欣慰。习惯这样一个事实,即在软件中做一些非常容易的事情会花费你在 HDL 中显着更长的时间,例如 Verilog 或 VHDL。但只要请一些软件人员尝试在 VGA 显示器上生成一个图像,以显示康威的生命游戏,然后看着他们惊奇地头晕目眩!顺便说一句,该视频是使用 FPGA 创建的。你很快就能做到这一点!
Verilog