目录
VHDL易错操作符
1."&“和"and”
(1).&的意思就是连接,比如两个一位的信号a,b通过c<=“a&b”就合成为一个2位的信号c;
(2).and的意思是逻辑关系“与”;
2."/="
表示不等于
3.此外还有移位,异或之类的操作符,到时候查表即可;
4.还需注意操作符的优先级;
VHDL语句
1.VHDL并行语句
并行信号赋值语句
总述:赋值目标可以是变量或信号。在并行语句中,通常只能向信号赋值;
1.简单信号赋值语句
格式:赋值目标信号<=表达式
2.条件信号赋值语句
格式:赋值目标信号<=表达式 when 赋值条件 else
{表达式 when 赋值条件 else}
表达式;
其中:当第一个when后面的条件不成立时,继续判断下一个条件;
3.选择信号赋值语句
with 选择表达式 select
赋值目标信号<=表达式 when 选择值,
{表达式 when 选择值,}
表达式 when 选择值;
其中,当选择表达式的值发生变化时,就启动对应的语句;
注:when后的条件经常会出错,若定义a为四位的变量,则条件书写为when “0001”,(务必用双引号),若是一位变量,则用单引号。
进程语句
1.格式
process(敏感信号表)
begin
顺序描述语句;
end process;
2.注意:敏感信号表内为"信号"列表,该表内信号的变化将引起进程的执行,所有引发进程变化和执行的信号都应包含在该表中;
块语句
后续补上
元件例化语句
参看我的另一篇博客元件例化实战
由两部分组成
一部分是元件声明部分,通常放在结构体声明部分;另一部分是元件例化部分,放在结构体描述部分。
元件声明
component 元件名 is
port(例化元件端口名表);
end component 元件名;
元件例化
例化名:元件名
port map(元件端口=>当前实体端口,...,元件端口=>当前实体端口);
上述端口映射方式称为名称关联,即根据名称将相应的端口对应起来。
注:当顶层元件的端口、信号或参数排列顺序完全一致时,可以这样写:
port map(当前实体端口1,...,当前实体端口n);
2.VHDL顺序语句
信号赋值和变量赋值语句
语法格式:
1.信号赋值语句
信号名<=表达式;
2.变量赋值语句
变量名:=表达式;
IF语句
if 条件表达式1 then
顺序语句
{elsif 条件表达式2 then
顺序语句}
[else
顺序语句]
end if;
其中[]内是可选结构;
注意:一个if对应一个end if;惨痛教训
CASE语句
case 选择表达式 is
when 选择值1 =>
顺序语句
[when others =>
顺序语句]
其中[]内是可选结构;
LOOP语句
FOR循环语句
for 循环变量 in 离散范围 loop
顺序语句;
end loop;
while语句
while 判别表达式 loop
顺序语句;
end loop;
infinite循环
loop
顺序语句;
exit when(条件表达式);
end loop;