VHDL入门基础——语法规则(4)

VHDL基础语法(4)——语句篇

并行语句:
在VHDL中有六种并行语句:块语句(内部语句同样并行)、并行信号赋值语句、并行过程调用语句、元件例化、生成语句、进程语句(内部语句顺序执行)
^

1.并行信号赋值语句
包括简单信号赋值语句、条件信号赋值语句、选择信号赋值语句
简单赋值语句:
信号<=表达式;
例:A<=1;

选择赋值:对单一信号进行判断然后选择赋值
with 选择表达式 select
目标信号<=表达式1 when 选择值1,
表达式2 when 选择值2,

表达式n when others;
例:多路选择器
tip:类似于Verilog和VHDL中的case语句

条件赋值:对多信号进行判断然后选择赋值
目标信号<=表达式1 when 选择值1 else
表达式2 when 选择值2 else

表达式n when 选择值n else
表达式n+1;
例:优先级编码器
tips:
1.选择赋值与条件赋值类似,但注意书写格式,选择赋值后是逗号,而条件则是else。
2.选择赋值与条件赋值均需要判断条件集完备:选择赋值中的others,条件赋值中的表达式n+1;

2.进程语句(Process)
本身是并行语句,但其内部语句为顺序执行。类似Verilog中的always。同样是敏感信号改变后触发,always @()
语法:
位于Architecture内部
Process(敏感信号)
[声明区]
begin

end process [name];

两种VHDL描述时钟的语句:
1.上升沿:clock’event and clock=‘1’;
rising_egde(clock);
2.下降沿:clock’event and clock=‘0’;
falling_egde(clock);

tips:
1.声明区只能是局部变量
2.不同进程不可对同一变量赋值
3.同一一个进程中不能既对时钟上升沿敏感又对时钟下降沿敏感

顺序语句
只能存在于进程(process)和子程序中
包括6种:赋值语句、流程控制语句、空操作语句、等待语句、子程序调用语句、返回语句。

赋值语句:
对信号申明在Architecture内部,Process之前,对局部变量申明在Process内部。所以信号可以在Process外部使用,但变量不行。
信号声明是Signal,变量申明是Variable。信号赋值用<= , 变量赋值用:=
在进程中,变量Variable赋值语句一旦被执行,立即改变变量值,并且新值即可有效。信号Signal赋值语句被执行后,新值并非立即有效,下一指令若与其有关且被执行时,仍使用原值(信号是在进程挂起时才发生代入的)

流程控制语句:
**1.IF语句:**3种基本格式
a.
if 判断条件 then
顺序语句;
end if;

b.
if 判断条件 then
顺序语句;
else
顺序语句;
end if;

c.
if 判断条件1 then
顺序语句;
elsif 判断条件2 then
顺序语句;
else
顺序语句;
end if;
tips:
1.if语句可以嵌套但不宜过多。
2.if语句与when_else语句一样判断条件是有优先级的,因此条件式中的条件是可以重叠的,但是如果没有重叠最好是使用case语句。

2.CASE语句
case 作判断的表达式 is
when 选择值1|选择值2 =>顺序语句;
when 选择值1|选择值2 =>顺序语句;

when others =>顺序语句;
end case;
tips:
1.类似于with_select语句
2.必须覆盖所有可能的情况,未知情况均用others

3.LOOP语句
3种方式:LOOP_EXIT,FOR_LOOP,WHILE_LOOP
For i in x to(downto) y LOOP
顺序语句;
end LOOP;
tips:
1.i是循环体参数,可以无需事先申明,但不可于Process中的任何参量相同
2.in 后面接循环次数范围,每次执行后i+1,直到范围终值
3.循环次数范围必须用具体数字,不可用宏定义常量(不同于c语言),否则不可综合

4.NULL语句
一般用于case语句中,表示某些情况下对输出不作任何改变,隐含锁存信号的意思,因此纯组合逻辑电路切记避免用NULL

  • 1
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值