FPGA笔记:VHDL语言总结 您所在的位置:网站首页 vhdl生成原理图 FPGA笔记:VHDL语言总结

FPGA笔记:VHDL语言总结

2024-07-04 06:24| 来源: 网络整理| 查看: 265

VHDL语言总结 前言一、 VHDL是什么?1. 缩写2. 作用3. VHDL与原理图描述的比较4. VHDL语言特点5. 与其他语言比较 二、VHDL程序架构VHDL基本结构1. 实体 Entity2.结构体 Architecture4.库 Libraty 程序包 Package 三、VHDL语言要素1.四类语言要素:数据对象(Data Object)数据类型(Data Type)操作数(Operands)操作符(Operator) 四、VHDL顺序语句五、VHDL并发语句总结

前言

FPGA作为提升处理性能的黑马,这些年越来越火热,不论对于未来是否从事这个方向的人来说,了解FPGA都是很有必要的,抱着学习的心态我学习了FPGA,这篇博文做记录

一、 VHDL是什么? 1. 缩写

VHDL:Very High Speed Integrated Circuit Hardware Description Language

2. 作用 传统的数字系统设计分为硬件设计、软件设计,VHDL打破了传统的软、硬件设计界限类似C、C++代替汇编等语言一样,VHDL代替了原理图、逻辑状态图电子系统设计者和EDA工具之间的桥梁EDA工具及 HDL的流行,促使电子系统向集成化、大规模和高速度等方向发展 3. VHDL与原理图描述的比较 VHDL具有较强的抽象描述能力,可进行系统行为级别的描述。描述更简洁,效率更高;原理图描述必须给出完整的、具体的电路结构图,不能进行描象描述。描述繁杂,效率低;VHDL描述与实现工艺无关;原理图描述与实现工艺有关 4. VHDL语言特点 VHDL具有强大的语言结构,系统硬件抽象描述能力强、设计效率高;VHDL语言可读性强,易于修改和发现错误;VHDL具有丰富的仿真语句和库函数,可进行早期行为仿真,利于大系统的设计与验证;VHDL设计与硬件电路关系不大;VHDL设计不依赖于器件,与工艺无关移植性好;VHDL体系符合TOP-DOWN和CE设计思想;VHDL设计效率高,产品上市时间快,成本低;易于ASIC实现 5. 与其他语言比较

常用硬件描述语言有VHDL、Verilog和ABEL语言。VHDL起源于美国国防部的VHSIC,Verilog起源于集成电路的设计,ABEL则来源于可编程逻辑器件的设计。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。

二、VHDL程序架构 VHDL基本结构 实体(Entity)结构体(Architecture)配置(Configuration)库(Library)、程序包(Package) 在这里插入图片描述 1. 实体 Entity 作用:定义系统的输入输出接口用法格式: ENTITY IS Generic Declarations Port Declarations END ; (1076-1987 version) END ENTITY ; (1076-1993 version) Generic:确定实体或组件中定义的局部常数。模块化设计时多用于不同层次模块之间信息的传递,可从外部改变内部电路和规模,必须放在端口说明之前 Generic ( 常数名称:类型 [:= 缺省值] {常数名称:类型 [:= 缺省值]} );

使用:

entity and2 is generic(risewidth: time:= 1 ns;fallwidth: time:= 1 ns); port(a1: in std_logic;a0: in std_logic;z0: out std_loigc); end entity and2; 端口声明:确定输入输出端口的数目和类型 Port ( 端口名称{,端口名称}:端口模式 数据类型; … 端口名称{,端口名称}:端口模式 数据类型 );

eg:

port(a1: in std_logic; a0: in std_logic; z0: out std_loigc); 补充

1.端口模式的分类: in 输入型,此端口为只读型。 out 输出型,此端口只能在实体内部对其赋值 inout 输入输出型,既可读也可赋值 buffer 缓冲型,与 out 相似,但可读

2.buffer、inout对比: inout,输入输出双向端口,可读可写 buffer,为缓冲端口,可读可写,但要读入数据时,只允许内部回读内部产生的输出信号,即反馈 buffer,驱动只有一个源,不允许多重驱动,驱动源可以是其它实体的缓冲端口,也可以是设计实体的内部信号源,但不与其它实体的输出端口、双向端口相连 buffer,仅仅是一个数据缓存器,不能用于IO输出

3.数据类型: 指端口上流动数据的表达格式,为预先定义好的数据类型,如:bit、bit_vector、integer、real、std_logic、std_logic_vector 等

2.结构体 Architecture 作用: 定义系统(或模块)的行为、元件及内部的连接关系,即描述其逻辑功能。组成部分: -. 说明部分:对数据类型、常数、信号、子程序、元件等元素的说明 -. 逻辑功能描述部分:以各种不同的描述风格描述系统的逻辑功能。常见的有行为描述/数据流描述以及结构化描述 一个设计实体可有多个结构体,代表实体的多种实现方式。各个结构体的地位相同

在这里插入图片描述 3. 语法:

architecture 结构体名称 of 实体名称 is [说明语句]内部信号、常数、 数据类型、子程序(函数、过程)、 元件等的说明; begin [并行处理(功能描述)语句]; end [architecture] 结构体名称;

注:同一实体的结构体不能同名。定义语句中的常数、信号不能与实体中的端口同名。

使用方式:

entity test1 is port(sig,count:in bit; out1,out2:out bit); end test1; architecture Behavioral of test1 is signal sig:bit; constant const:bit:='1'; begin end Behavioral;

eg:

architecture art2 of nand is begin c


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有