|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/ n6 H7 Y: v: z. D5 I8 cVHDL语法简单总结 一个VHDL程序代码包含实体(entity)、结构体(architecture)、配置(configuration)、程序包(package)、库(library)等。$ R. x8 e+ G/ U
' V. j* q) [: D: P. H4 Z/ S! X Z) j9 Z: w; N
一、 数据类型- N# x' G& |5 _# h6 m/ I8 z- w
1.用户自定义数据类型- b+ J) u* a# G! r
使用关键字TYPE,例如:9 n" ?& k% n! }! ?& {, W8 n8 D6 m& ^
TYPE my_integer IS RANGE -32 TO 32;6 Q/ d6 ]$ p# S, n9 {0 K
–用户自定义的整数类型的子集) F) J! k! t' z
TYPE student_grade IS RANGE 0 TO 100;7 g; d$ M. }2 N$ k6 c
–用户自定义的自然数类型的子集1 Q2 m6 a, Y' `3 {$ k1 E) q. ^
TYPE state IS (idle, forward, backward, stop);( { S( N* w+ ^! b1 |! w
–枚举数据类型,常用于有限状态机的状态定义
I8 N! y2 i; W一般来说,枚举类型的数据自动按顺序依次编码。
1 g3 o) r" K/ ^* T0 U1 N" H2.子类型
1 e. j: Q) J. i, d6 \在原有已定义数据类型上加一些约束条件,可以定义该数据类型的子类型。VHDL不允许不同类型的数据直接进行操作运算,而某个数据类型的子类型则可以和原有类型数据直接进行操作运算。
k; \( q1 p' I子类型定义使用SUBTYPE关键字。* e& p' ]9 ~, C9 x+ {/ E& q
3.数组(ARRAY)
0 r c v! @( A: `ARRAY是将相同数据类型的数据集合在一起形成的一种新的数据类型。
9 L: ]' m6 h: m, O+ N( ~- GTYPE type_name IS ARRAY (specification) OF data_type;
, G$ ^% V- k) @–定义新的数组类型语法结构
# a4 f, q1 G6 O$ I: `SIGNAL signal_name: type_name [:= initial_value];
# s% t0 ?% B$ H( J7 z: l–使用新的数组类型对SIGNAL,CONSTANT, VARIABLE进行声明
7 v3 ~2 B) ]8 \, J例如:
9 M2 {. q5 h9 z( U7 [1 U: w% ETYPE delay_lines IS ARRAY (L-2 DOWNTO 0) OF SIGNED (W_IN-1 DOWNTO 0);9 B/ L/ y/ D( g- J9 V
–滤波器输入延迟链类型定义! }" l! V, i2 h5 @3 p6 x
TYPE coeffs IS ARRAY (L-1 DOWNTO 0) OF SIGNED (W_COEF-1 DOWNTO 0);
6 _8 T4 y) C) ~$ g9 S: C–滤波器系数类型定义
1 q2 x) x3 n* N" N$ a. {. l! O 7 @$ i0 _# p' x# u9 b
|
|