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;
知識點(diǎn): 1)關(guān)于GENERIC GENERIC必須放在端口說(shuō)明之前,用于指定參數。上面的例子中的語(yǔ)句指定了Architecture內的m的值為1ns。舉個(gè)例子:tmp1:=d0 and sel AFTER m; 表示d0和sel兩個(gè)輸入信號相and之后,經(jīng)過(guò)1ns延遲才送到tmp1。
5)整數(integer) integer 表示所有正的和負的整數。硬件實(shí)現時(shí),利用32位的位矢量來(lái)表示??蓪?shí)現的整數范圍為: -(231-1) to (231-1) VHDL綜合器要求對具體的整數作出范圍限定,否則無(wú)法綜合成硬件電路。 如:signal s : integer range 0 to 15; 信號 s 的取值范圍是0-15,可用4位二進(jìn)制數表示,因此 s 將被綜合成由四條信號線(xiàn)構成的信號。