1、标志符:
1)首字符必须是字母
2)末字符不能为下划线
3)不允许出现两个连续的下划线
4)不区分大小写
5)不能是关键字
6)最长只能是32个字符
7)只能有字母、数字和下划线
注释由两个连续的虚线(--)引导
2、数据类型
1)常量:constant
定义语句:
constant 常量名:数据类型:=表达式
2)变量:variable
定义语句:
variable 变量名:数据类型:=初始值
3)信号:signal
定义语句:
signal 信号名:数据类型:=初始值
4)布尔:Boolean
只有 false 和 true 两种取值
5)位:bit
只有 0/1 两种取值
6)位矢量:(bit_vector)
由多个 bit 构成的二进制串
7)字符:character
8)字符串:string
9)整数:integer
32 位有符号整数:-(2 ^ 31 - 1) ~ (2 ^ 31 - 1)
10)实数:real
仅用于仿真不可综合
11)时间:time
包含两部分:整数和单位,用至少一个空格隔开,仅用于仿真不可综合
12)错误等级:severity level
表示系统状态,仅用于仿真不可综合
13)标准逻辑位:std_logic
14)标准逻辑位矢量:std_logic_vector0
15)自定义类型:
定义位矢量:type 数据类型名 is 数据类型定义 of 基本数据类型
定义位:type 数据类型名 is 数据类型定义
定义具有约束的位:subtype 子类型名 is 基本数据类型定义 range 约束范围
3、数据类型转换:
1、类型标记法:
variable a:real;
variable b:integer;
a = real(b);
2、函数法:
conv_interger(a)
4、属性:提供的是团鱼信号、类型等的指定特性
'event:若属性有时间发生,则生成布尔值“true”,常用来检查时钟边沿是否有效
clock'event and clock = '1'
'range:生成一个限制性数组对象的范围
'range: “0 to n”
'left:生成数据类型或数据子类型的左边界值
'right/'high/'low/'length 同上一条
5、运算符:
1)逻辑运算符(两操作数类型必须相同,允许加括号提升优先级)
not、or、and、nand、nor、xor、xnor
2)算数运算符 和 符号运算符
+、-、*、/、mod、rem、sll、srl、sla、sra、rol、ror、**、abs
& 表示两个位或者位矢量的拼接(并置运算符)
sll:左移补 0 (移位运算符)
srl:右移补 0
sla:左移,右边第一位保持原始值
sra:右移,右边第一位保持原始值
rol、ror:自循环左右移位
a rem b:取余运算,符号和 a 相同
a mod b:取模运算,符号和 b 相同
3)关系操作符
=、!=、>、<、<=、>=
6、控制语句
1)赋值:
变量赋值:
:=
信号赋值:
<=
或
目标信号 <= 表达式1 when 条件1 else
表达式2 when 条件2 else
表达式 n;
或
with 选择条件表达式 select
目标信号 <= 信号表达式1 when 选择条件1,
信号表达式2 when 选择条件2,
信号表达式n when 选择条件n;
2)多选一if语句
if 条件1 then
若干语句;
elsif 条件2 then
若干语句;
else
若干语句;
end if;
7、实体:
功能:定义了硬件外部的接口
entity 实体名 is
[generic (类属参数表);]
[port(端口信号表);]
[实体说明部分;]
[begin
实体语句部分;]
end [实体名];
一般常用的格式是
entity 实体名 is
port(端口名:输入输出模式 类型);
end 实体名;
8、结构体:
功能:定义了硬件的内部组成及其功能实现,一般情况下一个实体对应一个结构体
architecture 结构体名 of 实体名 is
内部信号、常量、数据类型、函数等的定义;
begin
若干并行执行语句,具体描述结构体的功能和行为。
end 结构体名;
一般常用的格式是
architecture 结构体名 of 实体名 is
signal 信号名: 类型;
begin
process1()
begin
end process;
process2()
begin
end process;
...
end 结构体名;
9、process
相当于操作系统里面的进程,是并发执行的,当process的参数做出改变之后就
进入这个进程执行代码
一般常用的格式是
process(信号1, 信号2)
begin
放代码实体,分支、循环等
end process;
今天的文章vhdl语言基础_嵌入式和fpga哪个好前景分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68942.html