VHDL顺序语句(Sequential)
硬件执行:并发执行(VHDL本质)
仿真执行:顺序执行、并发执行
分为两大类:顺序(Sequential)描述语句
并发(Concurrent)描述语句
ENTITY
ARCHITECTURE
Process
Process
Sequential
Process
Sequential
Process
component
VHDL主要描述语句
并行处理语句
在结构体(ARCHITECTURE)中
执行的语句
在进程(PROCESS)
函数(FUNCTION)
过程(PROCEDURE)
中执行的语句
硬件描述的特点
高级语言的特点
(Sequential Statements)
顺序处理语句
(Concurrent Statements)
顺序描述语句:
执行(指仿真执行)顺序与书写顺序基本一致,与传统软件执行语言的特点相似。顺序语句只能用在进程与子程序中。
可描述组合逻辑、时序逻辑。
常用的顺序描述语句:
赋值语句;if语句;case语句;loop语句;
next语句;exit语句;子程序;return语
句;wait语句;null语句。
对象与赋值语句
1. VHDL中常用的5种对象:
1) 简单名称,如my_var;
2) 索引名称,如my_array_var(3);
3) 片断名称,如my_array_var(3 to 6);
4) 记录域名,;
5)集合,如(my_var1,my_var2).
所有对象均分为:变量和信号
对象:=表达式; ----变量赋值
对象<=表达式; ----信号赋值
要求:表达式的值必须与对象的类型、宽度一致。
2. 变量赋值与信号赋值
变量与信号的差异:
1)赋值方式的不同:
变量:=表达式;
信号<=表达式;
2)硬件实现的功能不同:
信号代表电路单元、功能模块间的互联,
代表实际的硬件连线;
变量代表电路单元内部的操作,代表暂存的临时数据。
3)有效范围的不用:
信号:程序包、实体、结构体;全局量。
变量:进程、子程序;局部量。
ARCHITETURE
{SIGNAL Declarations}
Label1:PROCESS
{VARIABLE Declarations}
Label2:PROCESS
{VARIABLE Declarations}
.
.
4) 赋值行为的不同:
信号赋值延迟更新数值、时序电路;
变量赋值立即更新数值、组合电路。
5)信号的多次赋值:
a. 一个进程: 最后一次赋值有效
b. 多个进程:
多源驱动
线与、线或、三态
例:信号的多次赋值
Architecture rtl of ex is
signal a : std_logic;
Begin
process(…)
begin
a<=b;
…
a<=c;
end process;
End rtl;
Architecture rtl of ex is
signal a : std_logic;
Begin
process(…)
begin
a<=b;
…
end process;
process(…)
begin
a<=c;
…
end process;
End rtl;
例:信号赋值与变量赋值的比较
信号赋值:
Architecture rt1 of sig is
signal a,b : std_logic;
Begin
process(a,b)
begin
a<=b;
b<=a;
end process;
End rt1; ----结果是a和b的值互换
变量赋值:
Architecture rt1 of var is
Begin
process
variable a,b: std_logic;
begin
a:=b;
b:=a;
end process;
End rt1; ----结果是a和b的值都等于b的初值
顺序语句 来自淘豆网m.daumloan.com转载请标明出处.