VHDL教程2025年5月18日 | 阅读13分钟 VHDL教程提供了VHDL的基础和高级概念。我们的VHDL教程是为初学者和专业人士设计的。
什么是HDL?HDL是硬件描述语言的缩写。它是一种编程语言,用于描述、模拟和创建数字电路(集成电路)等硬件。HDL主要用于在硬件实现之前发现设计中的错误。 HDL的主要优点在于它提供了灵活的建模能力,并且可以表达大型复杂的设计(>107门)。 如今,市面上有许多HDL可用,但VHDL和Verilog是最流行的HDL。 什么是VHDL?VHDL代表“超高速集成电路硬件描述语言”(Very High-Speed Integration Circuit HDL)。它是一种IEEE(电气和电子工程师协会)标准的硬件描述语言,用于描述和模拟复杂数字电路的行为。 VHDL最流行的示例包括奇偶校验发生器、脉冲发生器、优先级编码器、16字、8位RAM的行为模型等。 VHDL支持以下特性
什么是Verilog?Verilog也是一种HDL(硬件描述语言),用于描述电子电路和系统。它用于硬件模拟和综合。 Verilog最流行的示例包括网络交换机、微处理器、内存、简单的触发器等。 VHDL与Verilog的区别
VHDL的历史VHDL由美国国防部(DOD)于1980年开发。
为什么选择VHDL?VHDL用于以下目的
VHDL的优点VHDL的优点列表如下
VHDL的缺点VHDL的缺点列表如下
VHDL的基本元素VHDL有以下三个基本元素 1. 实体Entity用于指定电路的输入和输出端口。Entity通常有一个或多个端口,可以是输入(in)、输出(out)、输入-输出(inout)或缓冲器(buffer)。 Entity还可以包含一组泛型值,用于声明电路的属性。 Entity声明 您可以使用以下语法声明一个Entity:
示例
如果一个Entity是泛型的,那么它必须在端口之前声明。泛型没有模式,因此只能将信息传递到Entity内部。 语法 示例 书写端口名称的规则 - 端口名称由字母、数字和下划线组成。 端口模式 in 输入端口 2. ArchitectureArchitecture是设计的实际描述,用于描述电路如何工作。它可以包含并发语句和顺序语句。 Architecture声明 可以使用以下语法声明一个Architecture: 示例 3. ConfigurationConfiguration定义了设计层次结构如何链接在一起。它也用于将Architecture与Entity关联。 Configuration声明 示例 VHDL建模风格的类型VHDL有4种建模风格 1. 数据流建模(设计方程) 数据流建模可以基于布尔表达式进行描述。它显示数据如何从输入流向输出。它基于并发执行。 2. 行为建模(解释行为) 行为建模用于顺序执行语句。它显示系统如何根据当前语句执行。 行为建模可能包含Process语句、顺序语句、信号赋值语句和wait语句。 3. 结构建模(子模块的连接) 结构建模用于指定电路的功能和结构。 结构建模包含信号声明、组件实例和组件实例中的端口映射。 VHDL对象VHDL使用以下三种对象 1. 常量(Constants) 常量是一个只能保持一个值且在整个代码中无法更改的对象。 示例: constant number_of_bytes integer:=8; 2. 变量(Variables) 变量也保存给定类型的一个值。变量的值可以在仿真期间使用变量赋值运算符来更改。 变量用于进程和子程序。 变量使用赋值运算符“:=”进行赋值。 示例 variable index: integer :=0; 3. 信号(Signals) 信号可以在Architecture中声明,并在Architecture内的任何位置使用。信号使用赋值运算符“<=”进行赋值。 示例 Signal sig1: std_logic; VHDL数据类型数据类型是存储数据的抽象表示。 VHDL中有以下数据类型: 1. 标量类型(Scalar Types)
2. 组合类型(Composite Types)
VHDL运算符VHDL运算符用于构造表达式。 VHDL有以下类型的运算符: 1. 逻辑运算符(Logical Operators) 逻辑运算符用于控制程序流程。当逻辑运算符与信号或变量结合使用时,用于创建组合逻辑。 VHDL支持以下逻辑运算符:
2. 关系运算符 在VHDL中,关系运算符用于比较相同数据类型的两个操作数,结果始终为布尔类型。 VHDL支持以下关系运算符:
3. 算术运算符(Arithmetic Operators) 算术运算符用于执行算术运算。这些运算符适用于数值类型,如整数和实数。 VHDL使用以下算术运算符:
4. 移位运算符(Shift Operators) 在VHDL中,移位运算符用于通过向右或向左移位或旋转其第一个操作数来对数据执行位操作。 VHDL支持以下杂项运算符:
注意:运算符的计算顺序按其优先级进行。(即从高到低)
具有相同优先级的运算符从左到右进行计算。 安装Xilinx ISE工具安装Xilinx ISE工具的步骤如下: 步骤1:点击下面的链接下载Xilinx ISE工具。 https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools/v2012_4---14_7.html 步骤2:然后转到ISE Design suite - 14.7 Full Product Installation,选择Full Installer for Windows 7/XP server (TAR/GRIP - 6.18 GB),如下图所示。 ![]() 步骤3:点击“Full Installer for windows 7/XP/Server”后,您会看到一个Xilinx登录页面。如果您没有Xilinx账户,请点击创建您的账户。 ![]() 步骤4:填写注册页面的信息,然后点击创建账户。 ![]() 步骤5:点击创建账户后,将出现以下窗口。 ![]() 步骤6:然后,您将在注册的电子邮件地址收到一封包含激活链接的邮件。点击该链接激活您的账户。 步骤7:点击链接后,窗口中会出现一个登录以激活账户的窗口,在此输入您的用户名和密码,然后点击登录。 ![]() 步骤8:现在点击下面的链接进行姓名和地址验证。 https://www.xilinx.com/member/forms/download/xef.html?filename=Xilinx_ISE_DS_Win_14.7_1015_1.tar 步骤9:完成验证表单后,点击下一步。 ![]() 步骤10:现在,您可以看到Xilinx_ISE tar文件开始下载。 ![]() 步骤11:双击下载的文件并解压,然后运行xsetup.exe。 步骤12:运行应用程序后,屏幕上会出现以下欢迎窗口。 ![]() 步骤13:勾选我接受并同意以上条款和条件,并勾选我也接受并同意以下条款和条件,然后点击下一步。 ![]() ![]() 步骤14:现在,选择要安装的产品。对于VHDL,选择ISE WebPACK,这是该软件的免费版本。选择ISE WebPACK后,点击下一步。 ![]() 步骤15:出现“安装选项”窗口。在此窗口中,点击下一步。 ![]() 步骤16:选择目标目录,然后点击下一步。 ![]() 步骤17:您可以在下面的屏幕截图中看到安装摘要。点击安装以安装Xilinx。 ![]() 步骤18:您可以看到安装正在进行中。 ![]() 步骤19:安装完成后,点击完成。 ![]() 步骤20:修复Project Navigator、iMPACT和License Manager 修复Project Navigator、iMPACT和License Manager的步骤如下:
完成以上步骤后,您可以关闭该目录。 步骤21:现在,您可以看到IDE Design Suite出现在屏幕上。双击IDE Design Suite,您会看到以下弹出窗口。 ![]() 步骤22:现在,将出现带有弹出窗口的以下窗口,点击弹出窗口中的OK。 ![]() 步骤23:当您点击“许可证”时,将打开以下窗口,在此选择获取我购买的许可证(s),然后点击下一步。 ![]() 步骤24:要连接到默认浏览器,请点击立即连接。 ![]() 步骤25:它会在浏览器中打开一个新的XILINX页面。在此页面输入用户名和密码,然后点击登录。 ![]() 步骤26:点击登录后,将出现以下窗口。 ![]() 步骤27:选择文件后,您将在注册的电子邮件地址收到一封包含Xilinx.lic文件的电子邮件。您需要下载此文件。 点击加载许可证以下载许可证文件,然后点击关闭。 ![]() 步骤28:文件上传后,将出现一条消息许可证安装成功的弹出窗口,点击弹出窗口中的OK,然后点击关闭。 下图显示了已上传的许可证。 ![]() 步骤29:现在,您可以在Xilinx工具中创建项目了。 ![]() 使用Xilinx IDE工具在VHDL中创建项目在Xilinx中创建项目的步骤如下: 步骤1:创建新项目 要创建新项目,请选择文件 -> 新建项目。这将在桌面上打开一个新项目窗口。 ![]() 在“新建项目”窗口中,输入您要创建的项目名称,并指定要保存项目的目录路径,然后点击下一步。 ![]() 注意:确保“顶层源类型”选择为HDL,而不是Schematic、EDIF或其他。点击下一步按钮后,将出现以下窗口,显示项目属性。根据您的要求填写属性,然后点击下一步。 ![]() 点击下一步按钮后,将出现以下窗口,显示项目摘要。如果项目摘要符合您的要求,则点击完成。否则,点击返回并根据您的要求填写属性。 ![]() 步骤2:创建VHDL源文件 要在VHDL中添加VHDL源文件,请点击项目向导中的新建源文件,或点击项目 -> 新建源文件。 ![]() 键入文件名,指定位置,然后选择VHDL模块作为源类型。确保选中添加到项目复选框,然后点击下一步。 ![]() 步骤3:为VHDL源文件分配端口 要设计半加器,您可以将端口名称指定为a、b、sum和cout。其中a和b被视为输入端口,因此从下拉菜单中选择“in”。sum和cout被视为输出端口,因此从下拉菜单中选择“out”。 ![]() 下图显示了项目摘要。 ![]() 步骤4:输入和编辑VHDL代码 下图显示了自动生成的Half_Adder代码。 ![]() 要设计Half_Adder,请在工作区域输入以下代码。 ![]() 步骤5:综合代码 当源文件完成时,您需要检查设计的语法。要检查语法,请单击“综合-XST”过程以展开层次结构。然后双击检查语法。 您可以看到ISE编译过程已开始。如果ISE过程成功完成,将出现一个绿色的勾号。否则,将出现一个红色的X,表示存在错误且过程失败。 ![]() 要查看半加器的基本设计,请双击查看RTL原理图。 ![]() 现在,您将在以下弹出窗口中单击OK。 ![]() 在“创建RTL原理图”中,从可用列表中选择项目,然后点击添加按钮将选定的项目移动到选定元素,然后点击创建原理图。 ![]() 现在,您将在屏幕上看到半加器的外部设计。 ![]() 双击上面的矩形,您可以看到使用逻辑门绘制的内部图。 ![]() ![]() 步骤6:模拟行为模型(ISE模拟器) 要检查行为模型,请选择“实现”->“Half_Adder”-“行为”(Half_Adder.vhd),然后双击“模拟行为模型”。 如果模拟成功,将打开以下窗口。 ![]() 要分配值,请右键单击给定的值(U),然后选择强制常量。请参考下图 ![]() 将出现以下弹出窗口,您可以在其中为a分配值,然后单击“应用”和“确定”。 ![]() 情况1:如果输入为 a = 0 输出 sum = 0 ![]() 情况2:如果输入为- a = 0 输出 sum = 1 ![]() 情况3:输入为- a = 1 输出 sum = 1 ![]() 情况4:输入为- a = 1 输出 sum = 0 ![]() VHDL与C语言对比
前提条件在学习VHDL之前,您必须具备电子电路的基本知识。 目标受众我们的VHDL教程旨在帮助初学者和专业人士。 问题我们向您保证,您在本VHDL教程中不会遇到任何问题。但是,如果您发现任何错误或失误,请在联系表中报告。 |
我们请求您订阅我们的新闻通讯以获取最新更新。