文章目录
1.4.5 return 语句
return语句只能用于子程序中,并用来终止一个子程序的执行。
格式:return [表达式];
分为:1)return;用于过程,只是结束过程,不返回任何值。
2)return 表达式;用于函数,并且必须返回一个值。
例:用于过程的return语句
procedure rs(s,r: in std_logic;
q,nq: inout std_logic) is
begin
if s='1' and r='1' then
report "forbidden state:s and r are equal to '1' ";
return;
else
q<=s and nq after 5 ns;
nq<=r and q after 5 ns;
end if;
end procedure rs;
例:用于函数的return语句
function opt(a,b,sel:std_logic)
return std_logic is
begin
if sel='1' then
return(a and b);
else
return(a or b);
end if;
end function opt;
1.4.6 null语句
null为空语句,不作任何操作。格式:null;
entity ex15 is
port (control: in integer range 0 to 7;
a: in bit;
z:out bit);
end ex15;
architecture behav of ex15 is
begin
process(control, a)
begin
z<=a;
case control is
when 0|7 => z <= not a;
when others => null;
end case;
end process;
end behav;
1.4.7 其它语句和说明
属性(attribute)描述:属性是某一对象的特征表示,是一个内部预定义函数。格式为:对象名’属性标识符
综合器支持的属性有:left、right、high、low、range、rverse_range、length、event、stable
属性’event:
对在当前的一个极小的时间段Δ内发生的事件的情况进行检测。
如发生事件,则返回true,否则返回false。
发生事件:信号电平发生变化。
时钟信号的上升沿描述:clock‘event and clock=‘1’
时钟信号的下降沿描述:clock’event and clock=‘0’
上升沿触发器描述:
process(clock)
begin
if clock'event and clock = '1' then
q<=data;
end if;
end proess;
属性’stable
属性’stable的测试功能与event刚好相反,信号在Δ时间段内无事件发生,则返回true,否则返回false。
以下两语句的功能相同:
clock’event and clock=‘1’
not(clock’stable)and clock=‘1’
1.5 VHDL并发语句(Concurrent)
结构体中所有的语句都是并发的。
20集
参考资料:
【考研】EDA技术(vhdl技术)