Upload
catherine-shirokova
View
283
Download
3
Embed Size (px)
Citation preview
䉰䐠䏠 䐠䌀䎠䏠䍐 VHDL
¡ VHDL – Very high-speed integrated circuits Hardware Description Language
¡ VHDL-87 – ANSI/IEEE Std 1076-1987¡ VHDL-93 – ANSI/IEEE Std 1076-1993¡ VHDL-AMS – ANSI/IEEE Std 1076.1-1999¡ VHDL 䐐䎀䏐䐠䍐䍰䎀䐀䐰䍐䏀䏠䍐 䏰䏠䍀䏀䏐䏠䍠䍐䐐䐠䌠䏠 – IEEE
P1076.6/D1.12 Draft Standard For VHDL Register Transfer Level Synthesis,1998
Wireless Lab 2004/07/15 1
䈐䌠䏠䎐䐐䐠䌠䌀 VHDL- 䏰䐀䏠䍐䎠䐠䏠䌠
¡ 䇰䐀䏠䍐䎠䐠䎀䐀䏠䌠䌀䏐䎀䍐 䐐䎰䏠䍠䏐䒰䑐䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓀䏐䒰䑐 䐰䐐䐠䐀䏠䎐䐐䐠䌠 (䄠䈰)
¡ 䇠䌐䒠䍐䍀䎀䏐䍐䏐䎀䍐 䐐䐠䐀䐰䎠䐠䐰䐀䒰 䄠䈰 䎀 䌀䎰䌰䏠䐀䎀䐠䏀䌀䍐䌰䏠 䑀䐰䏐䎠䑠䎀䏠䏐䎀䐀䏠䌠䌀䏐䎀䓰.
¡ 䇰䐀䏠䍐䎠䐠 䏐䌀 VHDL –䐐䌀䏀䏠䍀䏠䎠䐰䏀䍐䏐䐠䎀䐀䏠䌠䌀䏐䏐䒰䎐.
¡ 䄠䒰䐐䏠䎠䌀䓰 䏐䌀䍀䍐䍠䏐䏠䐐䐠䓀 䏰䐀䏠䍐䎠䐠䌀.
Wireless Lab 2004/07/15 2
䈐䌠䏠䎐䐐䐠䌠䌀 VHDL- 䏰䐀䏠䍐䎠䐠䏠䌠 (䏰䐀䏠䍀䏠䎰䍠.)
¡ 䇰䐀䏠䍐䎠䐠 䏐䌀 VHDL - 䐰䏐䎀䌠䍐䐀䐐䌀䎰䓀䏐䒰䎐䏰䐀䏠䍐䎠䐠.
¡ 䇰䐀䏠䍐䎠䐠 䏐䌀 VHDL - 䏰䏠䐀䐠䌀䐠䎀䌠䏐䒰䎐䏰䐀䏠䍐䎠䐠.
¡ 䇰䐀䏠䍐䎠䐠 䏐䌀 VHDL - 䍀䏠䎰䌰䏠䍠䎀䌠䐰䒐䎀䎐䏰䐀䏠䍐䎠䐠.
¡ VHDL - 䐰䏐䎀䌠䍐䐀䐐䌀䎰䓀䏐䏠䍐 䐐䐀䍐䍀䐐䐠䌠䏠䏠䏰䎀䐐䌀䏐䎀䓰 䄠䈰 䏐䌀 䐀䌀䍰䎰䎀䑰䏐䒰䑐 䐰䐀䏠䌠䏐䓰䑐䍀䍐䐠䌀䎰䎀䍰䌀䑠䎀䎀.
Wireless Lab 2004/07/15 3
䈰䐀䏠䌠䏐䎀 䏠䏰䎀䐐䌀䏐䎀䓰 䌀䏰䏰䌀䐀䌀䐠䐰䐀䒰 䏐䌀 VHDL
¡ 䌀䎰䌰䏠䐀䎀䐠䏀䎀䑰䍐䐐䎠䎀䎐, ¡ 䐐䐠䐀䐰䎠䐠䐰䐀䏐䒰䎐, ¡ 䐀䍐䌰䎀䐐䐠䐀䏠䌠䒰䑐 䏰䍐䐀䍐䍀䌀䑰 (RTL) 䎀
䏰䏠䐠䏠䎠䏠䌠 䍀䌀䏐䏐䒰䑐 (dataflow), ¡ 䎰䏠䌰䎀䑰䍐䐐䎠䎀䎐, ¡ 䌀䏐䌀䎰䏠䌰䏠䌠䒰䍐 䐐䑐䍐䏀䒰.
Wireless Lab 2004/07/15 4
䇰䐀䏠䑠䍐䐐䐐 䏰䐀䏠䍐䎠䐠䎀䐀䏠䌠䌀䏐䎀䓰 䏐䌀 VHDLWireless Lab 2004/07/15 5
䆠䌀䑰䍐䐐䐠䌠䌀 VHDL 䎠䌀䎠 䓰䍰䒰䎠䌀 䈐䄀䇰䈀 䄠䈰
¡ 䄰䎀䌐䎠䏠䐐䐠䓀.¡ 䈰䏐䎀䌠䍐䐀䐐䌀䎰䓀䏐䏠䐐䐠䓀.¡ 䇀䏠䍀䍐䎰䎀䐀䏠䌠䌀䏐䎀䍐 䐐 䐰䑰䍐䐠䏠䏀 䍰䌀䍀䍐䐀䍠䍐䎠.¡ 䈐䐠䌀䏐䍀䌀䐀䐠䏐䏠䍐 䏰䏠䍀䎠䎰䓠䑰䍐䏐䎀䍐 䌐䎰䏠䎠䏠䌠.¡ 䈐䐠䌀䏐䍀䌀䐀䐠䏐䏠䍐 䐠䍐䐐䐠䎀䐀䏠䌠䌀䏐䎀䍐.¡ VHDL – 䏰䍐䐀䐐䏰䍐䎠䐠䎀䌠䏐䒰䎐 䐐䐠䌀䏐䍀䌀䐀䐠.
Wireless Lab 2004/07/15 6
䇰䐀䏠䌰䐀䌀䏀䏀䎀䐐䐠䐐䎠䌀䓰 䏀䏠䍀䍐䎰䓀䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓰 VHDL
Wireless Lab 2004/07/15 7
䈰䏰䐀䏠䒐䍐䏐䏐䌀䓰 䏀䏠䍀䍐䎰䓀 䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓰VHDL
Wireless Lab 2004/07/15 8
䄠䍐䐀䑐䏐䎀䎐 䐰䐀䏠䌠䍐䏐䓀 䏰䐀䏠䌰䐀䌀䏀䏀䎀䐐䐠䐐䎠䏠䎐䏀䏠䍀䍐䎰䎀 VHDL
Wireless Lab 2004/07/15 9
䇠䐐䏠䌐䍐䏐䏐䏠䐐䐠䎀 VHDL 䐐 䐠䏠䑰䎠䎀 䍰䐀䍐䏐䎀䓰䏰䐀䏠䌰䐀䌀䏀䏀䎀䐐䐠䌀
¡ 䄠䐐䍐 䏰䐀䏠䑠䍐䐐䐐䒰 䎀䐐䏰䏠䎰䏐䓰䓠䐠䐐䓰 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠. ¡ " 䇠䍀䏐䏠䌠䐀䍐䏀䍐䏐䏐䏠 䎀䐐䏰䏠䎰䏐䓰䍐䏀䒰䍐 䏰䐀䏠䑠䍐䐐䐐䒰 䏠䌐䐀䌀䍰䐰䓠䐠 䑀䐀䏠䏐䐠 䌠䏠䎰䏐䒰
䍰䌀䏰䐰䐐䎠䏠䌠 䏰䐀䏠-䑠䍐䐐-䐐䏠䌠. 䋐䐠䏠䐠 䑀䐀䏠䏐䐠 䏰䍐䐀䍐䍀䌠䎀䌰䌀䍐䐠䐐䓰 䐐 䌠䐀䍐䏀䍐䏐䏐䒰䏀䒀䌀䌰䏠䏀, 䐀䌀䌠䏐䒰䏀 䍀䍐䎰䓀䐠䌀-䍰䌀䍀䍐䐀䍠䎠䍐.
¡ " 䄠䐐䍐 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 䓰䍰䒰䎠䌀 VHDL 䏰䐀䍐䏠䌐䐀䌀䍰䐰䓠䐠䐐䓰 䌠䑀䐰䏐䎠䑠䎀䏠䏐䌀䎰䓀䏐䏠 䓐䎠䌠䎀䌠䌀䎰䍐䏐䐠䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 䏰䐀䏠䑠䍐䐐䐐䏠䌠, 䏰䏠䓐䐠䏠䏀䐰䍀䌀䏐䏐䌀䓰 䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓀䏐䌀䓰 䏀䏠䍀䍐䎰䓀 䌰䏠䍀䎀䐠䐐䓰 䍀䎰䓰 䏰䐀䏠䎀䍰䌠䏠䎰䓀䏐䏠䎐 VHDL-䏰䐀䏠䌰䐀䌀䏀䏀䒰.
¡ 䈐䐠䐀䐰䎠䐠䐰䐀䌀 䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓀䏐䏠䎐 䏀䏠䍀䍐䎰䎀 䏠䐐䐠䌀䍐䐠䐐䓰 䏐䍐䎀䍰䏀䍐䏐䏐䏠䎐 䏰䏠䐐䎰䍐䎠䏠䏀䏰䎀䎰䓰䑠䎀䎀 䏰䐀䏠䌰䐀䌀䏀䏀䒰, 䐠.䍐. 䏰䏠䐐䎰䍐 䐐䌠䏠䍐䌰䏠 䑀䏠䐀䏀䎀䐀䏠䌠䌀䏐䎀䓰. 䋐䐠䌀䐐䐠䐀䐰䎠䐠䐰䐀䌀 䏐䍐 䍰䌀䌠䎀䐐䎀䐠 䏠䐠 䐐䎀䌰䏐䌀䎰䏠䌠 䎀 䏰䍐䐀䍐䏀䍐䏐䏐䒰䑐, 䎀䍰䏀䍐䏐䓰䍐䏀䒰䑐 䌠䏰䐀䏠䑠䍐䐐䐐䍐 䌠䒰䏰䏠䎰䏐䍐䏐䎀䓰 䏰䐀䏠䌰䐀䌀䏀䏀䒰, 䐠.䍐. 䏠䏐䌀 䏐䍐 䏀䏠䍠䍐䐠䏰䍐䐀䍐䐐䐠䐀䌀䎀䌠䌀䐠䓀䐐䓰 䍀䎀䏐䌀䏀䎀䑰䍐䐐䎠䎀.
¡ 䇠䌐䎰䌀䐐䐠䓀 䍀䍐䎐䐐䐠䌠䎀䓰 䌠䐐䍐䑐 䏰䍐䐀䍐䏀䍐䏐䏐䒰䑐 (䎠䐀䏠䏀䍐 䌰䎰䏠䌐䌀䎰䓀䏐䒰䑐) 䏠䌰䐀䌀䏐䎀䑰䍐䏐䌀 䐀䌀䏀䎠䌀䏀䎀 䏠䏰䍐䐀䌀䐠䏠䐀䏠䌠 䏰䐀䏠䑠䍐䐐䐐䌀. 䄠䏐䍐 䏰䐀䏠䑠䍐䐐䐐䏠䌠䏰䍐䐀䍐䏀䍐䏐䏐䒰䍐 䏐䍐䌠䎀䍀䎀䏀䒰.
¡ 䇰䏠䐀䓰䍀䏠䎠 䍀䏠䐐䐠䐰䏰䌀 䎠 䌰䎰䏠䌐䌀䎰䓀䏐䒰䏀 䏰䍐䐀䍐䏀䍐䏐䏐䒰䏀 䏐䍐䏰䐀䍐䍀䐐䎠䌀䍰䐰䍐䏀. 䈐䎰䍐䍀䐰䍐䐠 䐐 䏠䐐䐠䏠䐀䏠䍠䏐䏠䐐䐠䓀䓠 䏰䐀䏠䌰䐀䌀䏀䏀䎀䐀䏠䌠䌀䐠䓀 䐐 䓐䐠䎀䏀䎀 䏰䍐䐀䍐䏀䍐䏐䏐䒰䏀䎀. 䅠䍐䎰䌀䐠䍐䎰䓀䏐䏠 䏠䐠䎠䌀䍰䒰䌠䌀䐠䓀䐐䓰 䏠䐠 䎀䑐 䎀䐐䏰䏠䎰䓀䍰䏠䌠䌀䏐䎀䓰 䌠 䏰䐀䏠䌰䐀䌀䏀䏀䌀䑐.
Wireless Lab 2004/07/15 10
䇰䐀䏠䌰䐀䌀䏀䏀䎀䐀䏠䌠䌀䏐䎀䍐 䏐䌀 VHDL 䍀䎰䓰䐐䎀䏐䐠䍐䍰䌀 (I)
Wireless Lab 2004/07/15 11
䇰䐀䏠䌰䐀䌀䏀䏀䎀䐀䏠䌠䌀䏐䎀䍐 䏐䌀 VHDL 䍀䎰䓰䐐䎀䏐䐠䍐䍰䌀 (II)
Wireless Lab 2004/07/15 12
䇰䐀䏠䌰䐀䌀䏀䏀䎀䐀䏠䌠䌀䏐䎀䍐 䏐䌀 VHDL 䍀䎰䓰䐐䎀䏐䐠䍐䍰䌀 (III)
¡ 䈐<=A+B; -- 䏠䐠䏠䌐䐀䌀䍠䌀䍐䐠䐐䓰 䌠 䐐䐰䏀䏀䌀䐠䏠䐀;
¡ process(clk) begin if rising_edge(clk) thenif ena='1'; then 䈐<=B;end if; end if;end process; -- 䏠䐠䏠䌐䐀䌀䍠䌀䍐䐠䐐䓰 䌠 䐀䍐䌰䎀䐐䐠䐀 䐐䐀䌀䍰䐀䍐䒀䍐䏐䎀䍐䏀 䍰䌀䏰䎀䐐䎀, 䌀
¡ process(clk) begin if rising_edge(clk) thenif ena='1' then 䈐<=B+䄀; end if ; end if;end process; -- 䏠䐠䏠䌐䐀䌀䍠䌀䍐䐠䐐䓰 䌠 䐠䏠䐠 䍠䍐 䐐䐰䏀䏀䌀䐠䏠䐀 䐐䐠䍐䏀 䍠䍐 䐀䍐䌰䎀䐐䐠䐀䏠䏀 䏐䌀 䌠䒰䑐䏠䍀䍐.
Wireless Lab 2004/07/15 13
䈐䐠䐀䐰䎠䐠䐰䐀䌀 䏰䐀䏠䌰䐀䌀䏀䏀䒰 䏐䌀 VHDL. (I)
¡ \䏠䌐䒠䍐䎠䐠 䏰䐀䏠䍐䎠䐠䌀\::=[\䏠䏰䎀䐐䌀䏐䎀䍐 library\][\䏠䏰䎀䐐䌀䏐䎀䍐 use\]\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀\\䐠䍐䎰䏠 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰\[\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀\]
¡ [\䏠䏰䎀䐐䌀䏐䎀䍐 library\]::= library \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\{, \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\};
Wireless Lab 2004/07/15 14
¡ 䇠䏰䎀䐐䌀䏐䎀䍐 use.\䏠䏰䎀䐐䌀䏐䎀䍐 use\::= use \䐐䍐䎰䍐䎠䐠䎀䌠䏐䏠䍐䎀䏀䓰\ {, \䐐䍐䎰䍐䎠䐠䎀䌠䏐䏠䍐 䎀䏀䓰\ };\䐐䍐䎰䍐䎠䐠䎀䌠䏐䏠䍐 䎀䏀䓰\::= \䎀䏀䓰1\. \䎀䏀䓰2\\䎀䏀䓰2\::= \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ | \䐐䎀䏀䌠䏠䎰䓀䏐䒰䎐 䎰䎀䐠䍐䐀䌀䎰\ |all
䇰䐀䎀䏀䍐䐀䒰 :use IEEE.std_logic_arith."-", IEEE.std_logic_arith."+" ;use IEEE.std_logic_arith.all;
䈐䐠䐀䐰䎠䐠䐰䐀䌀 䏰䐀䏠䌰䐀䌀䏀䏀䒰 䏐䌀 VHDL. (II)
Wireless Lab 2004/07/15 15
䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀. (I)
¡ \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀\::= entity \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ is[generic(\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐
䎠䏠䏐䐐䐠䌀䏐䐠䒰\{; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐
䎠䏠䏐䐐䐠䌀䏐䐠䒰\});][port (\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\
{;\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\});]{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏠䌐䒠䍐䎠䐠䍐\}
[begin{\䏠䏰䍐䐀䌀䐠䏠䐀 assert\ | \䏰䌀䐐䐐䎀䌠䏐䒰䎐䌠䒰䍰䏠䌠 䏰䐀䏠䑠䍐䍀䐰䐀䒰\ | \䏰䌀䐐䐐䎀䌠䏐䒰䎐䏰䐀䏠䑠䍐䐐䐐\ }]
end [entity][\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];
Wireless Lab 2004/07/15 16
¡ 䇰䏠䐀䐠.\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䏠䌠 䏠䌐䒠䍐䎠䐠䌀\::=port (\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\ {; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\});
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\::= \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\:in|out|inout|buffer|link \䐠䎀䏰\[:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐\].
¡ 䇐䌀䐐䐠䐀䏠䍐䑰䏐䌀䓰 䎠䏠䏐䐐䐠䌀䏐䐠䌀 generic.\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䒰䑐 䎠䏠䏐䐐䐠䌀䏐䐠\::=generic(\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\
{; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\});\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\::=
\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\:\䐠䎀䏰\[:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐䍰䏐䌀䑰䍐䏐䎀䍐\]
䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀. (II)
Wireless Lab 2004/07/15 17
¡ 䆀䐐䏰䏠䎰䏐䓰䍐䏀䌀䓰 䑰䌀䐐䐠䓀.
entity RS_FF isgeneric(delay:time);port (R, S: in bit;
Q: out bit:='0';nQ: out bit:='1');
beginassert (R and S) /='1' report" In RS_FF R=S=1" severity error;
end entity RS_FF;
䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀. (III)
Wireless Lab 2004/07/15 18
䄀䐀䑐䎀䐠䍐䎠䐠䐰䐀䌀 䏠䌐䒠䍐䎠䐠䌀 VHDL.(I)
¡ 䈐䎀䏐䐠䌀䎠䐐䎀䐐.\䐠䍐䎰䏠 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰\::=architecture \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ of \䎀䏀䓰 䏠䌐䒠䍐䎠䐠䌀\ is{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䌐䎰䏠䎠䍐\}begin
{ \䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}end [architecture][\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];
Wireless Lab 2004/07/15 19
¡ entity RS_FF is --䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀¡ generic(delay:time);¡ port(R, S: in bit;¡ Q: out bit:='0';¡ nQ: out bit:='1');¡ begin¡ assert (R and S) /='1' report" In RS_FF R=S=1" severity error;¡ end entity RS_FF;¡
¡ architecture BEHAV of RS_FF is --䏠䏰䎀䐐䌀䏐䎀䍐 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰 䏠䌐䒠䍐䎠䐠䌀¡ begin¡ process(S,R)¡ variable qi: bit;¡ begin¡ if S='1' then¡ qi:='1' ;¡ elsif R='1' then¡ qi:='0';¡ end if;¡ Q<=qi after delay;¡ nQ<=not qi after delay;¡ end process;¡ end architecture BEHAV;
䄀䐀䑐䎀䐠䍐䎠䐠䐰䐀䌀 䏠䌐䒠䍐䎠䐠䌀 VHDL.(II)
Wireless Lab 2004/07/15 20
䇰䌀䎠䍐䐠䒰.
¡ 䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䌀䎠䍐䐠䌀.
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䌀䎠䍐䐠䌀\::= package\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ is {䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏰䌀䎠䍐䐠䍐}end[package][\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];
䇰䐀䎀䏀䍐䐀:signal my_bit: IEEE.std_logic_1164.X01Z;
¡ 䈠䍐䎰䏠 䏰䌀䎠䍐䐠䌀.
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䐠䍐䎰䌀 䏰䌀䎠䍐䐠䌀\::= package body\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ is
{䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䐠䍐䎰䍐 䏰䌀䎠䍐䐠䌀}end [package
body][\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];
Wireless Lab 2004/07/15 21
䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀.(I) ¡ \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀\::=
configuration \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ of \䎀䏀䓰 䏠䌐䒠䍐䎠䐠䌀\ is for \䎀䏀䓰 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰\
{for \䐰䎠䌀䍰䌀䐠䍐䎰䎀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\: \䎀䏀䓰䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\
\䐰䎠䌀䍰䌀䐠䍐䎰䓀 䐐䌠䓰䍰䒰䌠䌀䏐䎀䓰\;end for;}
end for;end [configuration] [\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];
\ 䐰䎠䌀䍰䌀䐠䍐䎰䎀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀 \::=\䏀䍐䐠䎠䌀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\
{,\䏀䍐䐠䎠䌀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\} | others |all
\䐰䎠䌀䍰䌀䐠䍐䎰䓀 䐐䌠䓰䍰䒰䌠䌀䏐䎀䓰\::= use entity\䎀䏀䓰 䏠䌐䒠䍐䎠䐠䌀\[(\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰\)]
Wireless Lab 2004/07/15 22
¡ 䇰䐀䎀䏀䍐䐀 :configuration TESTBENCH_FOR_ALU of ALU_TB isfor TB_ARCH
for UUT: ALUuse entity work.ALU(RTL);
end for;end for;end TESTBENCH_FOR_ALU;
䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀.(II)
Wireless Lab 2004/07/15 23
䇰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 (I)¡ 䇠䏰䍐䐀䌀䐠䏠䐀 䏠䍠䎀䍀䌀䏐䎀䓰 䐐䏠䌐䒰䐠䎀䓰 wait.
䈐䎀䏐䐠䌀䎠䐐䎀䐐 :\䏠䏰䍐䐀䌀䐠䏠䐀 wait\::=
wait [on \䎀䏀䓰 䐐䎀䌰䏐䌀䎰䌀\ {,\䎀䏀䓰 䐐䎀䌰䏐䌀䎰䌀\}][until \䌐䐰䎰䍐䌠䐐䎠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\] [for \䌠䒰䐀䌀䍠䍐䏐䎀䍐
䌠䐀䍐䏀䍐䏐䎀\];䇰䐀䎀䏀䍐䐀 : wait on CLK, RST;
¡ 䇠䏰䍐䐀䌀䐠䏠䐀 if.䈰䏰䐀䏠䒐䍐䏐䏐䒰䎐 䐐䎀䏐䐠䌀䎠䐐䎀䐐:\䏠䏰䍐䐀䌀䐠䏠䐀 if\::=
if \䐰䐐䎰䏠䌠䎀䍐 1\ then{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀 1\} [ { elsif \䐰䐐䎰䏠䌠䎀䍐 2\ then{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀 2\}][else{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀 3\}]end if;
Wireless Lab 2004/07/15 24
¡ 䇠䏰䍐䐀䌀䐠䏠䐀 case䏠䏰䍐䐀䌀䐠䏠䐀 case\::=
case \䏰䐀䏠䐐䐠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\ iswhen \䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\ => {\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐
䏠䏰䍐䐀䌀䐠䏠䐀\} {when \䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\ => {\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}} end case ;
\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\:= \䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠a\{ | \䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䌀\}䇰䐀䎀䏀䍐䐀 䏠䏰䍐䐀䌀䐠䏠䐀䌀 case:variable sel, a: integer 0 to 9;
………….case sel iswhen 0 => a <= 0;when 123 => a <= 1;when 4 to 7 => a <= 2;when others => a <= 3;end case;
䇰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 (II)
Wireless Lab 2004/07/15 25
¡ 䇠䏰䍐䐀䌀䐠䏠䐀 䑠䎀䎠䎰䌀.䐐䎀䏐䐠䌀䎠䐐䎀䐐:
\䏠䏰䍐䐀䌀䐠䏠䐀 䑠䎀䎠䎰䌀\::=[\䏀䍐䐠䎠䌀\:][\䐐䑐䍐䏀䌀 䎀䐠䍐䐀䌀䑠䎀䎀\]
loop{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}{next[\䏀䍐䐠䎠䌀\][when \䐰䐐䎰䏠䌠䎀䍐\];}{exit[\䏀䍐䐠䎠䌀\][when \䐰䐐䎰䏠䌠䎀䍐\];}
end loop [\䏀䍐䐠䎠䌀\];
\䐐䑐䍐䏀䌀 䎀䐠䍐䐀䌀䑠䎀䎀\::=while \䐰䐐䎰䏠䌠䎀䍐\ | for \䏰䍐䐀䍐䏀䍐䏐䏐䌀䓰
䑠䎀䎠䎰䌀 \ in \䍀䎀䌀䏰䌀䍰䏠䏐\
䇰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 (III)
Wireless Lab 2004/07/15 26
¡ 䄠䒰䍰䏠䌠 䏰䐀䏠䑠䍐䍀䐰䐀䒰.䐰䏰䐀䏠䒐䍐䏐䏐䒰䎐 䐐䎀䏐䐠䌀䎠䐐䎀䐐:\䌠䒰䍰䏠䌠 䏰䐀䏠䑠䍐䍀䐰䐀䒰\::=\䎀䏀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰\[([\䎀䏀䓰䏰䌀䐀䌀䏀䍐䐠䐀䌀 =>\] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\{,[\䎀䏀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ => ] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\})];
䇰䐀䎀䏀䍐䐀 :procedure UNIFORM(variable SEED1,SEED2:inout POSITIVE; variable X:out real);-- 䐐䏠 䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐䏀 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠:variable s1,s2:natural:=12345; variable Random:real;…UNIFORM(X=> Random, SEED1=>s1,SEED2=>s2);-- 䌐䍐䍰 䐐䌠䓰䍰䒰䌠䌀䏐䎀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠:UNIFORM(s1,s2, Random);
䇰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 (IV)
Wireless Lab 2004/07/15 27
䇰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰.(I)¡ 䇠䏰䍐䐀䌀䐠䏠䐀 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠䌰䏠 䏰䐀䎀䐐䌠䌀䎀䌠䌀䏐䎀䓰.
ADDER:A<=B+C;ADDER_P:process begin
A<=B+C;wait on B,C;
end process;
¡ 䇠䏰䍐䐀䌀䐠䏠䐀 䐰䐐䎰䏠䌠䏐䏠䌰䏠 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠䌰䏠䏰䐀䎀䐐䌠䌀䎀䌠䌀䏐䎀䓰.䐰䐐䎰䏠䌠䏐䏠䍐 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠䍐 䏰䐀䎀䐐䌠䌀䎀䌠䌀䏐䎀䍐\::= \䎀䏀䓰\<= [\䐐䏰䏠䐐䏠䌐 䍰䌀䍀䍐䐀䍠䎠䎀\]
{\䌰䐀䌀䑀䎀䎠\ when \䌐䐰䎰䍐䌠䐐䎠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\ else }\䌰䐀䌀䑀䎀䎠\[when \䌐䐰䎰䍐䌠䐐䎠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\];
Wireless Lab 2004/07/15 28
¡ 䇠䏰䍐䐀䌀䐠䏠䐀 䐐䍐䎰䍐䎠䐠䎀䌠䏐䏠䌰䏠 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠䌰䏠䏰䐀䎀䐐䌠䌀䎀䌠䌀䏐䎀䓰.\䐐䍐䎰䍐䎠䐠䎀䌠䏐䏠䍐 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠䍐 䏰䐀䎀䐐䌠䌀䎀䌠䌀䏐䎀䍐\::=with \䌠䒰䐀䌀䍠䍐䏐䎀䍐\ select
{\䎀䏀䓰\<= [\䐐䏰䏠䐐䏠䌐 䍰䌀䍀䍐䐀䍠䎠䎀\]{\䌰䐀䌀䑀䎀䎠\when \䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\,}
\䌰䐀䌀䑀䎀䎠\[when others ];
¡ 䇰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䌠䒰䍰䏠䌠 䏰䐀䏠䑠䍐䍀䐰䐀䒰.¡ 䇠䐠䎰䏠䍠䍐䏐䏐䒰䍐 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰.
䇰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰.(II)
Wireless Lab 2004/07/15 29
䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (I)
¡ 䈐䏰䍐䑠䎀䑀䎀䎠䌀䑠䎀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰.
\䐐䏰䍐䑠䎀䑀䎀䎠䌀䑠䎀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰\::=procedure \䎀䏀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰\[(\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\)] is {\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏰䏠䍀䏰䐀䏠䌰䐀䌀䏀䍐\}begin
{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}end [procedure][\䎀䏀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰\];\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\::=(\䓐䎰䍐䏀䍐䏐䐠 䐐䏰䎀䐐䎠䌀\{; \䓐䎰䍐䏀䍐䏐䐠 䐐䏰䎀䐐䎠䌀\})
\䓐䎰䍐䏀䍐䏐䐠 䐐䏰䎀䐐䎠䌀\::=[constant | variable | signal ]
\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\{,\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\}:[in | out | inout] \䐠䎀䏰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\
[ := \䐐䐠䌀䐠䎀䑰䍐䐐䎠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\]
Wireless Lab 2004/07/15 30
¡ 䈐䏰䍐䑠䎀䑀䎀䎠䌀䑠䎀䓰 䑀䐰䏐䎠䑠䎀䎀.䐐䎀䏐䐠䌀䎠䐐䎀䐐:\䐐䏰䍐䑠䎀䑀䎀䎠䌀䑠䎀䓰 䑀䐰䏐䎠䑠䎀䎀\::=[pure | impure]function \䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\ |\䍰䏐䌀䎠 䑀䐰䏐䎠䑠䎀䎀\
[(\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\)] return \䐠䎀䏰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ is
{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏰䏠䍀䏰䐀䏠䌰䐀䌀䏀䍐\}begin
{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}return \䌠䒰䐀䌀䍠䍐䏐䎀䍐\;
end [function][\䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\];
䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (II)
Wireless Lab 2004/07/15 31
¡ 䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䐀䏠䑠䍐䍀䐰䐀 䎀 䑀䐰䏐䎠䑠䎀䎐.
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䐀䏠䑠䍐䍀䐰䐀䒰\::= procedure \䎀䏀䓰䏰䐀䏠䑠䍐䍀䐰䐀䒰\[(\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\)];
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䑀䐰䏐䎠䑠䎀䎀\::=[pure | impure]function \䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\ |\䍰䏐䌀䎠 䑀䐰䏐䎠䑠䎀䎀\
[(\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\)] return \䐠䎀䏰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\;
䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (III)
Wireless Lab 2004/07/15 32
¡ 䄠䒰䍰䏠䌠 䑀䐰䏐䎠䑠䎀䎀.
\䌠䒰䍰䏠䌠 䑀䐰䏐䎠䑠䎀䎀\::=
\䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\ ([\䎀䏀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ =>] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\
{,[\䎀䏀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ => ] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\});
䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (IV)
Wireless Lab 2004/07/15 33
¡ 䇰䍐䐀䍐䍰䌀䌰䐀䐰䍰䎠䌀 䏰䐀䏠䑠䍐䍀䐰䐀 䎀 䑀䐰䏐䎠䑠䎀䎐.
function "and"(x1,x2:bit) return boolean is begin
return (x1 and x2) ='1';end;
-------------------------------------variable a,b,c: bit;…if (a and b and c) then…end if;
䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (V)
Wireless Lab 2004/07/15 34
䇠䏰䍐䐀䌀䐠䏠䐀 䏰䐀䏠䑠䍐䐐䐐䌀. (I)
¡ \䏠䏰䍐䐀䌀䐠䏠䐀 䏰䐀䏠䑠䍐䐐䐐䌀\ ::=[postponed] process [(\䎀䏀䓰 䐐䎀䌰䏐䌀䎰䌀\ {,\䎀䏀䓰䐐䎀䌰䏐䌀䎰䌀\})] [is]{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏰䐀䏠䑠䍐䐐䐐䍐\}begin
{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}end process;
Wireless Lab 2004/07/15 35
¡ sin(x) = c1x+c2x**3+c3x**5+c4x**7.
process type tabl is array(0 to 3) of real;constant c:tabl:=(0.99999, -0.16666, 0.00831,
-0.00019);variable xtmp, p: real:=0.0;
beginxtmp:=x;p:=c(0)*xtmp;for i in 1 to 3 loop
p:=p+c(i)*xtmp*x*x;end loop;y<=p; wait on x;
end process;
䇠䏰䍐䐀䌀䐠䏠䐀 䏰䐀䏠䑠䍐䐐䐐䌀. (II)
Wireless Lab 2004/07/15 36
䇠䏰䍐䐀䌀䐠䏠䐀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀.
¡ 䈐䎀䏐䐠䌀䎠䐐䎀䐐 :\䏠䏰䍐䐀䌀䐠䏠䐀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\::=
\䏀䍐䐠䎠䌀 䓐䎠䍰䍐䏀䏰䎰䓰䐀䌀 䓐䎰䍐䏀䍐䏐䐠䌀\ :\䌠䐐䐠䌀䌠䎰䓰䍐䏀䒰䎐 䓐䎰䍐䏀䍐䏐䐠\
[generic map(\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\
{, \䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐䎠䏠䏐䐐䐠䌀䏐䐠䒰\});]
[port map (\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏰䏠䐀䐠䌀\{,\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏰䏠䐀䐠䌀\})];
\䌠䐐䐠䌀䌠䎰䓰䍐䏀䒰䎐 䓐䎰䍐䏀䍐䏐䐠\ ::= [component] \䎀䏀䓰 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\| entity \䎀䏀䓰 䏠䌐䒠䍐䎠䐠䌀\
[䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰] | configuration \䎀䏀䓰 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀\
Wireless Lab 2004/07/15 37
¡ 䇰䐀䎀䏀䍐䐀 :U_RG: RG16 port map (CLK => CLK,
E => \䐀䌀䍰䐀_䍰䏰_䐀䌰\,DI => D,DO(15)=> open,DO(14)=> \䍰䏐䌀䎠_D\,DO(13 downto 0)=>\䏀䌀䏐䐠䎀䐐䐐䌀_D\ );
䇠䏰䍐䐀䌀䐠䏠䐀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀.
Wireless Lab 2004/07/15 38
䇠䏰䍐䐀䌀䐠䏠䐀 generate.
¡ 䈐䎀䏐䐠䌀䎠䐐䎀䐐 :
\䏠䏰䍐䐀䌀䐠䏠䐀 generate\::=\䏀䍐䐠䎠䌀\: for \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ in \䍀䎀䌀䏰䌀䍰䏠䏐\
generate[{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䌐䎰䏠䎠䍐\}begin]
{ \䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}end generate [\䏀䍐䐠䎠䌀\];
Wireless Lab 2004/07/15 39
¡ 䇰䐀䎀䏀䍐䐀 :
signal t: std_logic_vector(1 to n+1);…t(1)<=DI;FIFO: for i in 1 to n generate
U_ TT: FD(C=>CLK, D=>t(i), Q=>t(i+1));end generate;
DO<=t(n+1);
䇠䏰䍐䐀䌀䐠䏠䐀 generate.
Wireless Lab 2004/07/15 40
¡ 䐐䎀䏐䐠䌀䎠䐐䎀䐐:\䐰䐐䎰䏠䌠䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀 generate\::=
\䏀䍐䐠䎠䌀\: if \䌐䐰䎰䍐䌠䐐䎠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\ generate[ {\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䌐䎰䏠䎠䍐\}
begin]{ \䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}
end generate [\䏀䍐䐠䎠䌀\];
䈰䐐䎰䏠䌠䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀 generate.(I)
Wireless Lab 2004/07/15 41
¡ 䇰䐀䎀䏀䍐䐀 :
RESn: if \䏰䏠䍀䎠䎰䓠䑰䎀䐠䓀_PULLUP\=1 generateRES1:for i in DATA_BUS'range generate
U_ RES: PULLUP(DATA_BUS(i));end generate;
end generate;
䈰䐐䎰䏠䌠䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀 generate.(II)
Wireless Lab 2004/07/15 42
䇠䏰䍐䐀䌀䐠䏠䐀 block.(I)¡ 䈐䎀䏐䐠䌀䎠䐐䎀䐐 :
\䏠䏰䍐䐀䌀䐠䏠䐀 block\::=[\䏀䍐䐠䎠䌀\]: block [\䌠䒰䐀䌀䍠䍐䏐䎀䍐 䐐䍀䍐䐀䍠䎀䌠䌀䏐䎀䓰\] [is]
[generic(\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\{; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\});]
[generic map(\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\{, \䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\});]
[port (\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\ {;\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\});][port map (\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏰䏠䐀䐠䌀\
{,\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏰䏠䐀䐠䌀\})];{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䌐䎰䏠䎠䍐\}
begin{\䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\ }
end block [\䏀䍐䐠䎠䌀\];
Wireless Lab 2004/07/15 43
¡ 䇰䐀䎀䏀䍐䐀:
signal A,B,C: out integer bus :=0; disconnect 䈐:integer after 2 ns;…4B1: block (sel = 1) is begin
䈐 <= guarded 䄀;end block B1;
B2: block (sel = 2) is begin䈐 <= guarded D;
end block B2;
䇠䏰䍐䐀䌀䐠䏠䐀 block.(II)
Wireless Lab 2004/07/15 44
䆰䎀䐠䍐䐀䌀䎰䒰 VHDL
¡ 䅀䍐䐐䓰䐠䎀䑰䏐䒰䎐 䎰䎀䐠䍐䐀䌀䎰 - 䓐䐠䏠 䑰䎀䐐䎰䏠䌠䏠䎐 䎰䎀䐠䍐䐀䌀䎰䌠 䐐䎀䐐䐠䍐䏀䍐 䐐䑰䎀䐐䎰䍐䏐䎀䓰 䏰䏠 䏠䐐䏐䏠䌠䌀䏐䎀䓠 (䌐䌀䍰䎀䐐䐰) 10, 䏐䌀䏰䐀䎀䏀䍐䐀, 120.
¡ 䄠䍐䒐䍐䐐䐠䌠䍐䏐䏐䒰䎐 䎰䎀䐠䍐䐀䌀䎰, 䏐䌀䏰䐀䎀䏀䍐䐀, 120.0, 1.20䍐2.
¡ 䄐䌀䍰䎀䐐䏐䒰䎐 䎰䎀䐠䍐䐀䌀䎰 -\䌐䌀䍰䎀䐐䏐䒰䎐 䎰䎀䐠䍐䐀䌀䎰\::=\䌐䌀䍰䎀䐐\#\䑰䎀䐐䎰䏠 䌠䌐䌀䍰䎀䐐䍐\#[\䓐䎠䐐䏰䏠䏐䍐䏐䐠䌀\]䇐䌀䏰䐀䎀䏀䍐䐀, 10#112# = 16#70# = 2#1110000# = 2#111#e4. 䇀䏠䍠䏐䏠 䐠䌀䎠䍠䍐 䏰䐀䎀䏀䍐䏐䓰䐠䓀 䌐䌀䍰䎀䐐 䎀3, 䎀 4, 䎀 5…
¡ 䈐䎀䏀䌠䏠䎰䓀䏐䒰䎐 䎰䎀䐠䍐䐀䌀䎰 -䏐䌀䏰䐀䎀䏀䍐䐀, '1', 'F' , '@'. ¡ 䆀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀 - 䏐䌀䏰䐀䎀䏀䍐䐀:
C, A_and_B, \䏐䌀䒀 䐐䎀䌰䏐䌀䎰\, \䌀+䌠\, \process\
Wireless Lab 2004/07/15 45
¡ 䇰䍐䐀䍐䑰䎀䐐䎰䓰䍐䏀䒰䎐 䎰䎀䐠䍐䐀䌀䎰 -䐐䎀䏀䌠䏠䎰䓀䏐䒰䎐䎰䎀䐠䍐䐀䌀䎰 䎀 䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀.
¡ 䈐䐠䐀䏠䑰䏐䒰䎐 䎰䎀䐠䍐䐀䌀䎰 - 䏐䌀䏰䐀䎀䏀䍐䐀, "䄀䄐䄠䄰" , "01111010", 䄠"01111010", 䉐"7䄀“
¡ 䉐"䄀䄠_CD", "1101_0111", 1_024, 0FF_ABBA
䆰䎀䐠䍐䐀䌀䎰䒰 VHDL
Wireless Lab 2004/07/15 46
䈠䎀䏰䒰 䏠䌐䒠䍐䎠䐠䏠䌠 VHDL
¡ 䇰䍐䐀䍐䑰䎀䐐䎰䓰䍐䏀䒰䎐 䐠䎀䏰type \䎀䏀䓰 䐠䎀䏰䌀\ is (\䏰䍐䐀䍐䑰䎀䐐䎰䓰䍐䏀䒰䎐 䎰䎀䐠䍐䐀䌀䎰\{,\ 䏰䍐䐀䍐䑰䎀䐐䎰䓰䍐䏀䒰䎐 䎰䎀䐠䍐䐀䌀䎰\});
¡ 䉠䍐䎰䒰䎐 䐠䎀䏰type \䎀䏀䓰 䐠䎀䏰䌀\ is range \䍀䎀䌀䏰䌀䍰䏠䏐 䑠䍐䎰䒰䑐\;䌰䍀䍐 \䍀䎀䌀䏰䌀䍰䏠䏐 䑠䍐䎰䒰䑐\::=
\䌠䒰䐀䌀䍠䍐䏐䎀䍐\to\䌠䒰䐀䌀䍠䍐䏐䎀䍐\|\䌠䒰䐀䌀䍠䍐䏐䎀䍐\downto\䌠䒰䐀䌀䍠䍐䏐䎀䍐\
䇀䌀䎠䐐䎀䏀䌀䎰䓀䏐䒰䎐 䍀䎀䌀䏰䌀䍰䏠䏐 䑠䍐䎰䒰䑐 :-2147483647 to 2147483647.
¡ 䈠䎀䏰 䐐 䏰䎰䌀䌠䌀䓠䒐䍐䎐 䍰䌀䏰䓰䐠䏠䎐
Wireless Lab 2004/07/15 47
¡ 䈀䍐䌰䐰䎰䓰䐀䏐䒰䎐 䐠䎀䏰type \䎀䏀䓰 䐀䍐䌰䐰䎰䓰䐀䏐䏠䌰䏠 䐠䎀䏰䌀\ is array (\䎀䏀䓰 䐠䎀䏰䌀䍀䎀䌀䏰䌀䍰䏠䏐䌀\range<>) of \䎀䏀䓰 䐠䎀䏰䌀 䓐䎰䍐䏀䍐䏐䐠䌀\; 䌰䍀䍐\䎀䏀䓰 䐠䎀䏰䌀 䍀䎀䌀䏰䌀䍰䏠䏐䌀\ - 䎀䏀䓰 䐠䎀䏰䌀 integer 䎀䎰䎀䎠䌀䎠䏠䌰䏠-䎰䎀䌐䏠 䏰䏠䍀䐠䎀䏰䌀 䏠䐠 integer.
¡ 䇠䌰䐀䌀䏐䎀䑰䍐䏐䏐䒰䎐 䐀䍐䌰䐰䎰䓰䐀䏐䒰䎐 䐠䎀䏰type \䎀䏀䓰 䐀䍐䌰䐰䎰䓰䐀䏐䏠䌰䏠 䐠䎀䏰䌀\ is array (\䍀䎀䌀䏰䌀䍰䏠䏐䑠䍐䎰䒰䑐\ of \䎀䏀䓰 䐠䎀䏰䌀 䓐䎰䍐䏀䍐䏐䐠䌀\);type matrix is array (integer range <>, integerrange <>) of integer.
䈠䎀䏰䒰 䏠䌐䒠䍐䎠䐠䏠䌠 VHDL
Wireless Lab 2004/07/15 48
¡ 䆠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䒰䎐 䐠䎀䏰type \䎀䏀䓰 䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䏠䌰䏠 䐠䎀䏰䌀\ is record \䎀䏀䓰䓐䎰䍐䏀䍐䏐䐠䌀\:\䐠䎀䏰 䓐䎰䍐䏀䍐䏐䐠䌀\; {\䎀䏀䓰 䓐䎰䍐䏀䍐䏐䐠䌀\:\䐠䎀䏰䓐䎰䍐䏀䍐䏐䐠䌀\;} end record[\䎀䏀䓰 䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䏠䌰䏠䐠䎀䏰䌀\];
¡ 䉀䎀䍰䎀䑰䍐䐐䎠䎀䎐 䐠䎀䏰type TIME is range -9 to +9
unitsfs;ps = 1000 fs;ns = 1000 ps;us = 1000 ns;ms = 1000 us;sec = 1000 ms;min = 60 sec;hr = 60 min;
end units;
䈠䎀䏰䒰 䏠䌐䒠䍐䎠䐠䏠䌠 VHDL
Wireless Lab 2004/07/15 49
¡ 䇰䏠䍀䐠䎀䏰. \䏰䏠䍀䐠䎀䏰\::=subtype \䎀䏀䓰 䏰䏠䍀䐠䎀䏰䌀\ is \䌐䌀䍰䏠䌠䒰䎐䐠䎀䏰\ [\䏠䌰䐀䌀䏐䎀䑰䍐䏐䎀䍐\];
¡ 䇰䐀䍐䍀䏠䏰䐀䍐䍀䍐䎰䍐䏐䏐䒰䍐 䐠䎀䏰䒰 䍀䌀䏐䏐䒰䑐.type boolean is (false, true);type bit is ('0', '1');type integer is range -2147483647 to2147483647;subtype natural is integer range 0 to2147483647;type bit_vector is array (natural range <>) ofbit;
䈠䎀䏰䒰 䏠䌐䒠䍐䎠䐠䏠䌠 VHDL
Wireless Lab 2004/07/15 50
O䌐䒠䍐䎠䐠䒰 䓰䍰䒰䎠䌀 VHDL (I)¡ 䈐䎀䌰䏐䌀䎰.
signal : \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\{,\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\}:=[\䏐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐\];
¡ 䆠䏠䏐䐐䐠䌀䏐䐠䌀.䇰䐀䎀䏀䍐䐀 : 䐐onstant thousand: integer:=1000;
¡ 䇰䍐䐀䍐䏀䍐䏐䏐䌀䓰.\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䍐䐀䍐䏀䍐䏐䏐䏠䎐\::=[shared] variable\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\{,\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\}:\䐠䎀䏰\[:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐\];䇰䐀䎀䏀䍐䐀 :variable tmp: integer range -128 to 127:=0;
Wireless Lab 2004/07/15 51
¡ 䇰䏠䐀䐠.
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䏠䌠\::=port (\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\ {; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\});
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\::= \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\: in|out|inout|buffer|link \䐠䎀䏰\ [:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐䍰䏐䌀䑰䍐䏐䎀䍐\]
¡ 䇐䌀䐐䐠䐀䏠䍐䑰䏐䌀䓰 䎠䏠䏐䐐䐠䌀䏐䐠䌀 generic.
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䒰䑐 䎠䏠䏐䐐䐠䌀䏐䐠\::= generic( \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\ {; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\});
\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\::=\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\:\䐠䎀䏰\[:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐\]
O䌐䒠䍐䎠䐠䒰 䓰䍰䒰䎠䌀 VHDL (II)
Wireless Lab 2004/07/15 52
¡ 䇰䍐䐀䍐䏀䍐䏐䏐䌀䓰 䑠䎀䎠䎰䌀. (䏠䏰䍐䐀䌀䐠䏠䐀䌀 䑠䎀䎠䎰䌀 loop.)
¡ 䇐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀.
signal bb:bit:=aa;
signal aa:bit :='1';
O䌐䒠䍐䎠䐠䒰 䓰䍰䒰䎠䌀 VHDL (III)
Wireless Lab 2004/07/15 53
䇠䏰䍐䐀䌀䑠䎀䎀 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 VHDL
䈠䎀䏰 䏠䏰䍐䐀䌀䑠䎀䎀 䈐䎀䏀䌠䏠䎰 䎀䎰䎀 䎠䎰䓠䑰䍐䌠䏠䍐 䐐䎰䏠䌠䏠
¡ 䆰䏠䌰䎀䑰䍐䐐䎠䎀䍐 and, or, nand, nor, xor, xnor¡ 䈐䐀䌀䌠䏐䍐䏐䎀䓰 =, /=, <, <=, >, >= ¡ 䈐䍀䌠䎀䌰䌀 sll, srl, sla, sra, rol, ror¡ 䈐䎰䏠䍠䍐䏐䎀䓰 +, -, & (䎠䏠䏐䎠䌀䐠䍐䏐䌀䑠䎀䓰)¡ 䈰䏐䌀䐀䏐䒰䍐 (䍰䏐䌀䎠) +, -¡ 䈰䏀䏐䏠䍠䍐䏐䎀䓰 *, /, mod, rem¡ 䈀䌀䍰䎰䎀䑰䏐䒰䍐 **, abs, not
Wireless Lab 2004/07/15 54
䇠䏰䍐䐀䌀䏐䍀䒰 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 VHDL (I)¡ 䇰䐀䏠䐐䐠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐¡ 䄀䌰䐀䍐䌰䌀䐠
\䌀䌰䐀䍐䌰䌀䐠\::=(\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䓐䎰䍐䏀䍐䏐䐠䏠䌠\{,\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䓐䎰䍐䏀䍐䏐䐠䏠䌠\})
\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䓐䎰䍐䏀䍐䏐䐠䏠䌠\::=[\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\ =>] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\
\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\::=\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䌀\ {,\ 䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䌀\}
\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䌀\::=\䏰䐀䏠䐐䐠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\|\䍀䎀䌀䏰䌀䍰䏠䏐\|\䎀䏀䓰䓐䎰䍐䏀䍐䏐䐠䌀\| others
Wireless Lab 2004/07/15 55
¡ variable v_5: bit_vector (0 to 4):=('0', '0', '0', '1', '1');䋐䎠䌠䎀䌠䌀䎰䍐䏐䐠䏐䒰䍐 䌀䌰䐀䍐䌰䌀䐠䒰 :
(3 |4 => '1' , others => '0'); 䎀䎰䎀(0 to 2 => '0'; 3 to 4 => '1'); 䎀䎰䎀('0', '0',3 to 4 => '1' , others => '0')
¡ 䅀䎰䓰 䐀䍐䌰䐰䎰䓰䐀䏐䒰䑐 䐠䎀䏰䏠䌠 : (i => '1', others => '0')¡ 䅀䎰䓰 䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䒰䑐 䐠䎀䏰䏠䌠 :
type complex is record( Re : integer; Im : integer );
end record;
variable X is complex:=(Re => 1000, Im => 0);
䇠䏰䍐䐀䌀䏐䍀䒰 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 VHDL (II)
Wireless Lab 2004/07/15 56
䇠䏰䍐䐀䌀䏐䍀䒰 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 VHDL (III)
¡ 䄀䐠䐀䎀䌐䐰䐠. 䇐䌀䏰䐀䎀䏀䍐䐀, object1'left¡ 䄠䒰䍰䏠䌠 䑀䐰䏐䎠䑠䎀䎀.
\䌠䒰䍰䏠䌠 䑀䐰䏐䎠䑠䎀䎀\::=\䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\ ([\䎀䏀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䌀 =>\] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\ {,[\䎀䏀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ => ] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\});
䇰䐀䎀䏀䍐䐀 (䏰䌀䎠䍐䐠 IEEE.Math_Real ):function SIN (X : in REAL ) return REAL;
䅐䍐 䌠䒰䍰䏠䌠 : SIN(X=>MATH_2_PI* angle)
䎀䎰䎀SIN(MATH_2_PI *angle) ,䌰䍀䍐 MATH_2_PI – 䎠䏠䏐䐐䐠䌀䏐䐠䌀, 䐀䌀䌠䏐䌀䓰 2㰀
Wireless Lab 2004/07/15 57
¡ 䆀䏀䓰 䐐 䎀䏐䍀䍐䎠䐐䏠䏀 : 䏐䌀䏰䐀䎀䏀䍐䐀, vect(4)¡ 䆠䌠䌀䎰䎀䑀䎀䑠䎀䐀䏠䌠䌀䏐䏐䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐 :
\䎠䌠䌀䎰䎀䑀䎀䑠䎀䐀䏠䌠䌀䏐䏐䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\::=\䎀䏀䓰 䐠䎀䏰䌀\'(\䌠䒰䐀䌀䍠䍐䏐䎀䍐\)
䇰䐀䎀䏀䍐䐀 :type vect is bit_vector(0 to 9);var X: vect;X:=vect'('1', others => '0');- 䎠䌠䌀䎰䎀䑀䎀䑠䎀䐀䏠䌠䌀䏐䏐䏠䍐
¡ 䆀䏀䓰-䌠䒰䐀䍐䍰䎠䌀 :\䎀䏀䓰-䌠䒰䐀䍐䍰䎠䌀\::=\䎀䏀䓰\(\䌠䒰䐀䌀䍠䍐䏐䎀䍐\ to | downto\䌠䒰䐀䌀䍠䍐䏐䎀䍐\)
䇰䐀䎀䏀䍐䐀:signal A: bit_vector(15 downto 0);䌰䍀䍐 A(15 downto 8) - 䐐䐠䌀䐀䒀䎀䎐 䌐䌀䎐䐠 䐐䎀䌰䏐䌀䎰䌀 䄀.
䇠䏰䍐䐀䌀䏐䍀䒰 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 VHDL (IV)
Wireless Lab 2004/07/15 58
¡ 䇰䏠䎰䍐 䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䏠䌰䏠 䐠䎀䏰䌀.\䏰䏠䎰䍐 䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䏠䌰䏠 䐠䎀䏰䌀\::=\䎀䏀䓰䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䏠䌰䏠 䐠䎀䏰䌀\.\䎀䏀䓰 䏰䏠䎰䓰\
type comp_vect is record(Re: bit_vector(0 to 15); Im:bit_vector(0 to 15)); endrecord;signal A: comp_vect;䍰䍀䍐䐐䓀 A.Re(0 to 7) - 䐐䐠䌀䐀䒀䎀䎐 䌐䌀䎐䐠 䏰䏠䎰䓰 Re 䐐䎀䌰䏐䌀䎰䌀 A 䐠䎀䏰䌀 c䏠mp_vect.
¡ 䇰䐀䍐䏠䌐䐀䌀䍰䏠䌠䌀䏐䎀䍐 䐠䎀䏰䌀.䈐:=integer (123.5); à 124.if 䉐 then Y:='1'; else Y:='0'; end if; (X-boolean, Y-bit)
䇠䏰䍐䐀䌀䏐䍀䒰 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 VHDL (V)
Wireless Lab 2004/07/15 59
䈀䍐䌀䎰䎀䍰䌀䑠䎀䓰 䌠䒰䐀䌀䍠䍐䏐䎀䓰 䌠䌀䏰䏰䌀䐀䌀䐠䏐䏠䎐 䏀䏠䍀䍐䎰䎀 VHDL
a+b+c+d (a+b)+(c+d).
Wireless Lab 2004/07/15 60