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

掌握 VHDL:FPGA 与 ASIC 设计的全面入门指南

教程:VHDL 简介

VHDL 是个拗口的缩写:VHSIC Hardware Description Language。其中 VHSIC 代表 Very High Speed Integrated Circuit。全称展开为:Very High Speed Integrated Circuit Hardware Description Language。VHDL 与 Verilog 是教育界与工业界设计 FPGA 与 ASIC 的两大主流语言,其硬件描述范式与 C、Java 等传统软件语言截然不同。

本例将创建一个描述与门的 VHDL 文件。与门有两个输入、一个输出,仅当两输入均为 1 时输出为 1。下图为我们要描述的与门逻辑符号。

VHDL 基础:信号与赋值

VHDL 的基本单元是信号。暂时理解为信号仅取 0 或 1(实际还有其他取值,后续介绍)。基础逻辑代码示例:

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

第一行定义名为 and_gate 的 std_logic 类型信号(最常用类型)。该代码生成一个双输入单输出的与门。and 为保留关键字,<= 为赋值运算符。读作:“信号 and_gate 取 input_1 与 input_2 的与运算结果。”

实体:定义输入输出接口

input_1、input_2 来自外部,需在实体中声明。实体包含端口,定义所有输入输出信号:

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 的实体,含两个输入、一个输出,均为 std_logic 类型。

架构:描述功能行为

架构描述实体的具体功能。打个比方:实体是论文目录,架构是正文内容。为上述实体创建架构:

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(Register Transfer Level),隶属于实体 example_and。is 与 begin 间声明内部信号,begin 与 end 间编写逻辑。

库引用

还需指定库文件,定义关键字行为。文件开头必须包含:

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 中往往耗时更长。但请让软件工程师尝试用 C 语言驱动 VGA 显示康威生命游戏,他们会大吃一惊!那个视频正是用 VHDL + FPGA 实现的,您很快也能做到。

下一节将介绍另一个核心关键字:process。

VHDL

  1. 精通 VHDL Generate 语句:轻松构建可复用去抖动器
  2. VHDL入门:构建你的第一个与门
  3. 掌握VHDL有符号与无符号类型:实战洞察
  4. 理解 VHDL 中信号与变量的区别
  5. 掌握VHDL端口映射实例化实战指南
  6. 掌握VHDL std_logic:状态、分辨函数与波形分析
  7. 什么是 VHDL?硬件描述语言实用指南
  8. 基于 Tcl 驱动的 VHDL 密码锁模块测试平台
  9. VHDL 实现 PWM 控制器:设计、仿真与 FPGA 演示
  10. VUnit 101:自动化VHDL验证实战指南
  11. 掌握 VHDL Loop 与 Exit 构造:实用指南
  12. 基于 Ready/Valid 握手在块 RAM 中实现 AXI FIFO