第二章VHDL基本知识

2.1.1 空白符\b,\t

2.1.2注释符

单行注释://

多行注释:/*    8/

2.1.3标识符

字母,数字,符号,下划线,区分大小写,第一个字符必须是字母或者下划线

2.1.3转移标识符

以\开头,以空白结尾,

2.1.4关键字

用来VHDL内部使用的词叫关键字,所有的关键字都是小写

2.1.5数值

0  低电平,逻辑0或者假

1  高电平,逻辑1或者真

x  不确定的逻辑状态

z  高阻态

(2)整数及其表示

二进制 b 0,1,x,X,z,Z,?,_

八进制 o 0-7,x,X,z,Z,?,_

十进制  d 0-9,_

十六进制 h 0-9,a-f,A-F,x,X,z,A,?,_

8‘b10001101  //位宽为8位的二进制数

注意;数值不能为负,有符号放在最左边

’和b之间不允许出现空格

位宽不能是表达式形式

(3)实数及其表示

十进制表示法:小数点两边必须都要有数字,

科学计数法:564.2e2,3e-3=0.003

使用下划线可提高可读性,5_4582.2158_5896

2.2 数据类型

物理数据类型:连线型,寄存器型,存储器型,

1.连线型

wire,tri  标准连线

wor,trior 多重驱动时,具有线或特性的连线型

wand,trand 多重驱动时,具有线与特性的连线型

trireg  具有电荷保持特性的连线型数据

tri 1 上拉电阻

tri 0 下拉电阻

supply1 电源线,用于对电源建模,为高电平1

supply0 电源线,用于对“地”建模,为低电平0

第二章VHDL基本知识_第1张图片

2.寄存器型

reg型状态保持作用,存储数据,触发器,锁存器

reg [3:0] b;

 reg型变量一般为无符号数,若将一个负数赋值给reg型变量,自动转化为二进制补码形式。

2.2.2连线型和reg型数据类型的声明

连线型数据变量的声明

net_declaration 包括wire,tri,tri0,tri1,wand,triand,trior,wor

range数据类型为1位的标量,超过一位为矢量

delay 仿真延迟时间

list_of_variables变量名称,一次可定义多个名称,逗号隔开

drive-strength:连线变量的驱动强度

寄存器型数据类型的声明

reg;

range为可选项,指定了reg型变量的位宽,缺省时为一位;

变量列表名称,一次可定义多个名称,逗号隔开

reg rega; //定义一个一位的寄存器型变量

reg [7:0] regb;// 8位的寄存器型变量

tri [7:0] tribus;//8位的三态总线

tri0[15:0] busa;//16位的连线型,处于三态时为上拉电阻

tri1[31:0] busb;//32位连线型,处于三态时为下拉电阻

reg scalared[1:4]b;//4位的标量型寄存器矢量

wire(pull1,strong0)c=a+b;//1和0的驱动强度不同的1位连线型变量c

trireg (large) storeline;//大强度的电荷存储功能的存储线

2.2.3存储器型

RAM\ROM\reg文件

一般声明格式为:

reg;

range 1和range2都是可选项,缺省都为1;

range1存储器当中寄存器的位宽,格式为[msb:lsb]

range2寄存器个数,[msb:lsb],有msb-lsb+1个;

变量名称列表,可定义多个名称,逗号隔开。

reg[7:0] mem1[255:0];//256个8位寄存器的存储器mem1;

reg [15:0]mem2[127:0],reg1,reg2;//128个16位寄存器的存储器mem2和两个16位 寄存器reg1,reg2;

reg[n-1:0]a;//n位寄存器a;

reg mem1[n-1:0];//n个1位寄存器构成的存储器mem1

2.2.4 抽象数据类型

整形,时间型;实型;参数型;

integer index;//32位有符号整数

integer i[31:0];//32个元素,整型数组

时间型

64位无符号数

time a,b;//两个64位时间型变量

实型

浮点型数值,对延迟时间的计算;

real  stime;//定义了一个实数型数据

参数型

常量,仿真开始之前就被赋值,仿真过程中不变,提高程序可读性和维护性

parameter  length=32,weight=16;

parameter PI=3.14,LOAD=4'b1101;

parameter DELAY = (BYTE+BIT)/2;

2.3运算符和表达式

第二章VHDL基本知识_第2张图片

2.3.1算术操作符

算术表带是的结果的长度由最长的操作数决定,再赋值语句下,算术操作数的长度由操作左端目标长度决定;

 等于==;不等于!==;全等===;非全等!==

比较的结果有三种,0,1,x

2.3.4逻辑运算符

逻辑与运算符“&&”逻辑或运算符“||”逻辑非运算符“!”

按位运算符

按位取反~按位与&按位或|按位与或^按位同或^~

按位异或

参加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。

即 0 ^ 0=0  , 0 ^ 1= 1  , 1 ^ 0= 1  , 1 ^ 1= 0 。

2.3.6归约运算符

归约运算的过程是第一步先用操作数的第一位和第二位进行位操作,然后再用第一步的结果和操作的数的下一位

进行位操作,如此重复直到最后一位。

2.3.7移位操作符

<<   >>

2.3.8条件运算符

<条件表达式>?<表达式1>:<表达式2>

一真大师

2.3.9 连接和复制运算符

连接运算符{}复制运算符{{}}

第二章VHDL基本知识_第3张图片

2.4模块的基本概念

第二章VHDL基本知识_第4张图片

模块的主要包括:模块的开始与结束,模块端口定义,模块数据类型说明,模块逻辑功能描述

(1)module开始endmodule结束,模块开始语句以分号结束 

 第二章VHDL基本知识_第5张图片

 上升沿触发器

第二章VHDL基本知识_第6张图片

2.4.2端口

1.端口的定义

输入端口输出端口双向端口

2.模块引用时端口的对应方式

第二章VHDL基本知识_第7张图片 

 

你可能感兴趣的:(fpga开发)