VHDL硬件描述语言学习笔记(三)

文章目录

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。
发生事件:信号电平发生变化。
VHDL硬件描述语言学习笔记(三)
时钟信号的上升沿描述: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)

VHDL硬件描述语言学习笔记(三)
结构体中所有的语句都是并发的。
20集


参考资料:
【考研】EDA技术(vhdl技术)

上一篇:VHDL与verilog中移位运算


下一篇:再谈Android应用架构——Jetpack VS 生命周期