ENTITY mux IS GENERIC( m:TIME := 1ns); PORT( d0,d1,sel: IN BIT; q:OUT BIT );
ARCHITECTURE connect OF mux IS SIGNAL tmp: BIT; BEGIN cale:PROCESS(d0,d1,sel) VARIABLE tmp1,tmp2,tmp3:BIT; BEGIN tmp1:= d0 and sel; tmp2:= d1 and (not sel); tmp3:= tmp1 or tmp2; tmp <= tmp3; q<= tmp AFTER m; END PROCESS; END connect;
知识点: 1)关于GENERIC GENERIC必须放在端口说明之前,用于指定参数。上面的例子中的语句指定了Architecture内的m的值为1ns。举个例子:tmp1:=d0 and sel AFTER m; 表示d0和sel两个输入信号相and之后,经过1ns延迟才送到tmp1。
5)整数(integer) integer 表示所有正的和负的整数。硬件实现时,利用32位的位矢量来表示。可实现的整数范围为: -(231-1) to (231-1) VHDL综合器要求对具体的整数作出范围限定,否则无法综合成硬件电路。 如:signal s : integer range 0 to 15; 信号 s 的取值范围是0-15,可用4位二进制数表示,因此 s 将被综合成由四条信号线构成的信号。