VHDL初探(二)

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;
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值