1.VHDL的基础知识

您所在的位置:网站首页 vhdl是编程语言吗 1.VHDL的基础知识

1.VHDL的基础知识

2023-08-07 12:29| 来源: 网络整理| 查看: 265

 目录

1.VHDL语言基础

1.1.标识符 (Identifiers)

关键字(保留 字):

1.2.数据对象(Date Objects)

常量 Constant

变量Variable

信号Signal

1.3.数据类型

VHDL的预定义数据类型

IEEE预定义标准逻辑位与矢量

用户自定义

1.4数据类型转换

属性

运算符

运算符的优先级

 1.VHDL语言基础

VHDL 概 概 述:

VHDL VHSIC Hardwarter Description LanguageVery High speed integrated circuit   VHDL 是美国国防部在20世 世纪 纪80 年代初 为实现 其高速集 成电路硬件VHSIC计 计 划 提 出 的描述语言;IEEE 从1986 年开始致力于 于VHDL 标准化 工 作 , 融 合 了其它ASIC 芯片制造 商开发 的 硬件 描述语言的优点,于93 年形成 了标准版 本( (IEEE.std_1164) ) 。 1995年 , 我 国国家技术监督局推荐VHDL做 做 为电 子 设计 自动化硬件 描述语言的国家标准。

VHDL的优点:

 覆盖面广,系统硬件描述能 力强 ,是一 个多层次的硬 描述语言; VHDL 语言 具 有 良好 的可 读性 , 既 可以 被 计算机 接受 , 也容易被人们所理解;VHDL 语言可以 与 工艺 无关 编程;VHDL 语言 已做 为一种IEEE 的工 业标准 , 便 于 使 用、交流 和 推广 。 1.1.标识符 (Identifiers)

标 识符用来定义常数、 变量 、 信号 、 端口 、 子程序或参数的名字,由字母 母(A~Z,a~z) 、数字(0~9)和下划线 线(_)字符组成。

要求 :

首字符必须是字母末字符不能为下 划 线不允许出现两个连续的下划线不区分大小写VHDL定义的保留字(关键字),不能用作标识符标识符字符 最长可以是可以是32个字 符 。

注意:注释由两个连续的虚线( -- )引 导

关键字(保留 字):

关键字((keyword))是 是VHDL中具有特别含义的单词 , 只能做为固定的用途 ,用户不能用其做为标识符。

 如: ABS,  ACCESS , AFTER , ALL , AND , ARCHITECTURE, ARRAY ,  ATTRIBUTE ,  BEGIN,  BODY ,  BUFFER ,  BUS ,  CASE , COMPONENT ,  CONSTANT ,  DISCONNECT ,  DOWNTO ,  ELSE, ,ELSIF ,  END ,  ENTITY ,  EXIT ,  FILE ,  FOR ,  FUNCTION, GENERIC ,  GROUP ,  IF ,  INPURE ,  IN ,INOUT ,  IS ,  LABEL, LIBRARY ,  LINKAGE ,  LOOP ,  MAP ,  MOD ,  NAND ,  NEW ,  NEXT, ,NOR  ,  NOT , NULL ,  OF ,  ON ,  OPEN  ,  OR  ,  OTHERS ,  OUT, PACKAGE , , POUT , , PROCEDURE  ,  PROCESS ,  PURE ,  RANGE , RECODE ,  REM ,  REPORT ,  RETURN ,  ROL ,  ROR  , SELECT, SHARED , SIGNAL ,  SLA ,  SLL ,  SRA ,  SUBTYPE ,  THEN, TRANSPORT ,  TO , , TYPE  ,  UNAFFECTED ,  UNITS ,  UNTIL ,  USE, VARIABLE ,  WAIT , WHEN ,  WHILE ,  WITH ,XOR  ,  XNOR。

 1.2.数据对象(Date Objects)

数据对象包括常量 、变量 、信号和文件四种类型 。

  常量 Constant

常量是对某一常量名赋予一个固定的值 ,而且只能赋值一次 。通常赋值在程序开始前进行, 该值的数据类型则在说明语句中指明。

Constant   常数名 :数 据 类 型 : =表达式

例子:

Constant Vcc :real:=5.0; -- 定义Vcc的数据类型是实数, 赋值为为5.0V

Constant bus_width: integer := 8; --定义总线宽度为常数8

注意事项:

常量所赋的值应和定义的数据类型一致 ;常量在程序包 、实体 、构造体或进程的说明性区域内必须加以说明 。 定义在程序包内的常量可供所含的任何实体 、构造体所引用, 定义在实体说明内的常量只能在该实体内可见 , 定义在进程说明性区域中的常 量只能在该进程内可见。   变量Variable

变量只能在进程语句、函数语句和过程语句结构中使用。 变量的赋值是直接的,非预设的, 分配给变量的值立即成为当前值 , 变量不能 表达“ 连线” 或 存储元件 ,不能设置传输延迟量。

变量定义语句:

Variable  变量名 : 数据类型  := 初始值 

例子:

Variable count: integer 0 to 255:=20;

解释:定义count整数变量 , 变化范围0 ~255,  初始值为20。

变量赋值语句:

目标变量名 :=  表达式;

例子:

x:=10.0; --  实数变量赋值为10.0 Y:=1.5+x; -- 运算表达式赋值 , 注意表达式必须与目标变量的数据类型相 同 A(3 to 6):=(“1101”); -- 位矢量赋值

  信号Signal

信号表示逻辑门的输入或输 出 ,类似于连接线, 也可以表达存储元件的状态。 信号通常在构造体 、程序包和实体中。

信号定义语句:

Signal  信号名: 数据类型  :=  初始值

例子:

Signal clock :bit  := ‘0 ’; -- 定义时钟信号类型 ,初始值为0

Signal count :BIT_VECTOR(3 DOWNTO 0); -- 定义count 为4位矢量

信号赋值语句:

目标信号名  ’0’); Signal a: bit; signal b: std_logic; A



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3