60
Что такое 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 полное описание

Embed Size (px)

Citation preview

Page 1: VHDL полное  описание

䉰䐠䏠 䐠䌀䎠䏠䍐 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

Page 2: VHDL полное  описание

䈐䌠䏠䎐䐐䐠䌠䌀 VHDL- 䏰䐀䏠䍐䎠䐠䏠䌠

¡ 䇰䐀䏠䍐䎠䐠䎀䐀䏠䌠䌀䏐䎀䍐 䐐䎰䏠䍠䏐䒰䑐䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓀䏐䒰䑐 䐰䐐䐠䐀䏠䎐䐐䐠䌠 (䄠䈰)

¡ 䇠䌐䒠䍐䍀䎀䏐䍐䏐䎀䍐 䐐䐠䐀䐰䎠䐠䐰䐀䒰 䄠䈰 䎀 䌀䎰䌰䏠䐀䎀䐠䏀䌀䍐䌰䏠 䑀䐰䏐䎠䑠䎀䏠䏐䎀䐀䏠䌠䌀䏐䎀䓰.

¡ 䇰䐀䏠䍐䎠䐠 䏐䌀 VHDL –䐐䌀䏀䏠䍀䏠䎠䐰䏀䍐䏐䐠䎀䐀䏠䌠䌀䏐䏐䒰䎐.

¡ 䄠䒰䐐䏠䎠䌀䓰 䏐䌀䍀䍐䍠䏐䏠䐐䐠䓀 䏰䐀䏠䍐䎠䐠䌀.

Wireless Lab 2004/07/15 2

Page 3: VHDL полное  описание

䈐䌠䏠䎐䐐䐠䌠䌀 VHDL- 䏰䐀䏠䍐䎠䐠䏠䌠 (䏰䐀䏠䍀䏠䎰䍠.)

¡ 䇰䐀䏠䍐䎠䐠 䏐䌀 VHDL - 䐰䏐䎀䌠䍐䐀䐐䌀䎰䓀䏐䒰䎐䏰䐀䏠䍐䎠䐠.

¡ 䇰䐀䏠䍐䎠䐠 䏐䌀 VHDL - 䏰䏠䐀䐠䌀䐠䎀䌠䏐䒰䎐䏰䐀䏠䍐䎠䐠.

¡ 䇰䐀䏠䍐䎠䐠 䏐䌀 VHDL - 䍀䏠䎰䌰䏠䍠䎀䌠䐰䒐䎀䎐䏰䐀䏠䍐䎠䐠.

¡ VHDL - 䐰䏐䎀䌠䍐䐀䐐䌀䎰䓀䏐䏠䍐 䐐䐀䍐䍀䐐䐠䌠䏠䏠䏰䎀䐐䌀䏐䎀䓰 䄠䈰 䏐䌀 䐀䌀䍰䎰䎀䑰䏐䒰䑐 䐰䐀䏠䌠䏐䓰䑐䍀䍐䐠䌀䎰䎀䍰䌀䑠䎀䎀.

Wireless Lab 2004/07/15 3

Page 4: VHDL полное  описание

䈰䐀䏠䌠䏐䎀 䏠䏰䎀䐐䌀䏐䎀䓰 䌀䏰䏰䌀䐀䌀䐠䐰䐀䒰 䏐䌀 VHDL

¡ 䌀䎰䌰䏠䐀䎀䐠䏀䎀䑰䍐䐐䎠䎀䎐, ¡ 䐐䐠䐀䐰䎠䐠䐰䐀䏐䒰䎐, ¡ 䐀䍐䌰䎀䐐䐠䐀䏠䌠䒰䑐 䏰䍐䐀䍐䍀䌀䑰 (RTL) 䎀

䏰䏠䐠䏠䎠䏠䌠 䍀䌀䏐䏐䒰䑐 (dataflow), ¡ 䎰䏠䌰䎀䑰䍐䐐䎠䎀䎐, ¡ 䌀䏐䌀䎰䏠䌰䏠䌠䒰䍐 䐐䑐䍐䏀䒰.

Wireless Lab 2004/07/15 4

Page 5: VHDL полное  описание

䇰䐀䏠䑠䍐䐐䐐 䏰䐀䏠䍐䎠䐠䎀䐀䏠䌠䌀䏐䎀䓰 䏐䌀 VHDLWireless Lab 2004/07/15 5

Page 6: VHDL полное  описание

䆠䌀䑰䍐䐐䐠䌠䌀 VHDL 䎠䌀䎠 䓰䍰䒰䎠䌀 䈐䄀䇰䈀 䄠䈰

¡ 䄰䎀䌐䎠䏠䐐䐠䓀.¡ 䈰䏐䎀䌠䍐䐀䐐䌀䎰䓀䏐䏠䐐䐠䓀.¡ 䇀䏠䍀䍐䎰䎀䐀䏠䌠䌀䏐䎀䍐 䐐 䐰䑰䍐䐠䏠䏀 䍰䌀䍀䍐䐀䍠䍐䎠.¡ 䈐䐠䌀䏐䍀䌀䐀䐠䏐䏠䍐 䏰䏠䍀䎠䎰䓠䑰䍐䏐䎀䍐 䌐䎰䏠䎠䏠䌠.¡ 䈐䐠䌀䏐䍀䌀䐀䐠䏐䏠䍐 䐠䍐䐐䐠䎀䐀䏠䌠䌀䏐䎀䍐.¡ VHDL – 䏰䍐䐀䐐䏰䍐䎠䐠䎀䌠䏐䒰䎐 䐐䐠䌀䏐䍀䌀䐀䐠.

Wireless Lab 2004/07/15 6

Page 7: VHDL полное  описание

䇰䐀䏠䌰䐀䌀䏀䏀䎀䐐䐠䐐䎠䌀䓰 䏀䏠䍀䍐䎰䓀䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓰 VHDL

Wireless Lab 2004/07/15 7

Page 8: VHDL полное  описание

䈰䏰䐀䏠䒐䍐䏐䏐䌀䓰 䏀䏠䍀䍐䎰䓀 䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓰VHDL

Wireless Lab 2004/07/15 8

Page 9: VHDL полное  описание

䄠䍐䐀䑐䏐䎀䎐 䐰䐀䏠䌠䍐䏐䓀 䏰䐀䏠䌰䐀䌀䏀䏀䎀䐐䐠䐐䎠䏠䎐䏀䏠䍀䍐䎰䎀 VHDL

Wireless Lab 2004/07/15 9

Page 10: VHDL полное  описание

䇠䐐䏠䌐䍐䏐䏐䏠䐐䐠䎀 VHDL 䐐 䐠䏠䑰䎠䎀 䍰䐀䍐䏐䎀䓰䏰䐀䏠䌰䐀䌀䏀䏀䎀䐐䐠䌀

¡ 䄠䐐䍐 䏰䐀䏠䑠䍐䐐䐐䒰 䎀䐐䏰䏠䎰䏐䓰䓠䐠䐐䓰 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠. ¡ " 䇠䍀䏐䏠䌠䐀䍐䏀䍐䏐䏐䏠 䎀䐐䏰䏠䎰䏐䓰䍐䏀䒰䍐 䏰䐀䏠䑠䍐䐐䐐䒰 䏠䌐䐀䌀䍰䐰䓠䐠 䑀䐀䏠䏐䐠 䌠䏠䎰䏐䒰

䍰䌀䏰䐰䐐䎠䏠䌠 䏰䐀䏠-䑠䍐䐐-䐐䏠䌠. 䋐䐠䏠䐠 䑀䐀䏠䏐䐠 䏰䍐䐀䍐䍀䌠䎀䌰䌀䍐䐠䐐䓰 䐐 䌠䐀䍐䏀䍐䏐䏐䒰䏀䒀䌀䌰䏠䏀, 䐀䌀䌠䏐䒰䏀 䍀䍐䎰䓀䐠䌀-䍰䌀䍀䍐䐀䍠䎠䍐.

¡ " 䄠䐐䍐 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 䓰䍰䒰䎠䌀 VHDL 䏰䐀䍐䏠䌐䐀䌀䍰䐰䓠䐠䐐䓰 䌠䑀䐰䏐䎠䑠䎀䏠䏐䌀䎰䓀䏐䏠 䓐䎠䌠䎀䌠䌀䎰䍐䏐䐠䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 䏰䐀䏠䑠䍐䐐䐐䏠䌠, 䏰䏠䓐䐠䏠䏀䐰䍀䌀䏐䏐䌀䓰 䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓀䏐䌀䓰 䏀䏠䍀䍐䎰䓀 䌰䏠䍀䎀䐠䐐䓰 䍀䎰䓰 䏰䐀䏠䎀䍰䌠䏠䎰䓀䏐䏠䎐 VHDL-䏰䐀䏠䌰䐀䌀䏀䏀䒰.

¡ 䈐䐠䐀䐰䎠䐠䐰䐀䌀 䌠䒰䑰䎀䐐䎰䎀䐠䍐䎰䓀䏐䏠䎐 䏀䏠䍀䍐䎰䎀 䏠䐐䐠䌀䍐䐠䐐䓰 䏐䍐䎀䍰䏀䍐䏐䏐䏠䎐 䏰䏠䐐䎰䍐䎠䏠䏀䏰䎀䎰䓰䑠䎀䎀 䏰䐀䏠䌰䐀䌀䏀䏀䒰, 䐠.䍐. 䏰䏠䐐䎰䍐 䐐䌠䏠䍐䌰䏠 䑀䏠䐀䏀䎀䐀䏠䌠䌀䏐䎀䓰. 䋐䐠䌀䐐䐠䐀䐰䎠䐠䐰䐀䌀 䏐䍐 䍰䌀䌠䎀䐐䎀䐠 䏠䐠 䐐䎀䌰䏐䌀䎰䏠䌠 䎀 䏰䍐䐀䍐䏀䍐䏐䏐䒰䑐, 䎀䍰䏀䍐䏐䓰䍐䏀䒰䑐 䌠䏰䐀䏠䑠䍐䐐䐐䍐 䌠䒰䏰䏠䎰䏐䍐䏐䎀䓰 䏰䐀䏠䌰䐀䌀䏀䏀䒰, 䐠.䍐. 䏠䏐䌀 䏐䍐 䏀䏠䍠䍐䐠䏰䍐䐀䍐䐐䐠䐀䌀䎀䌠䌀䐠䓀䐐䓰 䍀䎀䏐䌀䏀䎀䑰䍐䐐䎠䎀.

¡ 䇠䌐䎰䌀䐐䐠䓀 䍀䍐䎐䐐䐠䌠䎀䓰 䌠䐐䍐䑐 䏰䍐䐀䍐䏀䍐䏐䏐䒰䑐 (䎠䐀䏠䏀䍐 䌰䎰䏠䌐䌀䎰䓀䏐䒰䑐) 䏠䌰䐀䌀䏐䎀䑰䍐䏐䌀 䐀䌀䏀䎠䌀䏀䎀 䏠䏰䍐䐀䌀䐠䏠䐀䏠䌠 䏰䐀䏠䑠䍐䐐䐐䌀. 䄠䏐䍐 䏰䐀䏠䑠䍐䐐䐐䏠䌠䏰䍐䐀䍐䏀䍐䏐䏐䒰䍐 䏐䍐䌠䎀䍀䎀䏀䒰.

¡ 䇰䏠䐀䓰䍀䏠䎠 䍀䏠䐐䐠䐰䏰䌀 䎠 䌰䎰䏠䌐䌀䎰䓀䏐䒰䏀 䏰䍐䐀䍐䏀䍐䏐䏐䒰䏀 䏐䍐䏰䐀䍐䍀䐐䎠䌀䍰䐰䍐䏀. 䈐䎰䍐䍀䐰䍐䐠 䐐 䏠䐐䐠䏠䐀䏠䍠䏐䏠䐐䐠䓀䓠 䏰䐀䏠䌰䐀䌀䏀䏀䎀䐀䏠䌠䌀䐠䓀 䐐 䓐䐠䎀䏀䎀 䏰䍐䐀䍐䏀䍐䏐䏐䒰䏀䎀. 䅠䍐䎰䌀䐠䍐䎰䓀䏐䏠 䏠䐠䎠䌀䍰䒰䌠䌀䐠䓀䐐䓰 䏠䐠 䎀䑐 䎀䐐䏰䏠䎰䓀䍰䏠䌠䌀䏐䎀䓰 䌠 䏰䐀䏠䌰䐀䌀䏀䏀䌀䑐.

Wireless Lab 2004/07/15 10

Page 11: VHDL полное  описание

䇰䐀䏠䌰䐀䌀䏀䏀䎀䐀䏠䌠䌀䏐䎀䍐 䏐䌀 VHDL 䍀䎰䓰䐐䎀䏐䐠䍐䍰䌀 (I)

Wireless Lab 2004/07/15 11

Page 12: VHDL полное  описание

䇰䐀䏠䌰䐀䌀䏀䏀䎀䐀䏠䌠䌀䏐䎀䍐 䏐䌀 VHDL 䍀䎰䓰䐐䎀䏐䐠䍐䍰䌀 (II)

Wireless Lab 2004/07/15 12

Page 13: VHDL полное  описание

䇰䐀䏠䌰䐀䌀䏀䏀䎀䐀䏠䌠䌀䏐䎀䍐 䏐䌀 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

Page 14: VHDL полное  описание

䈐䐠䐀䐰䎠䐠䐰䐀䌀 䏰䐀䏠䌰䐀䌀䏀䏀䒰 䏐䌀 VHDL. (I)

¡ \䏠䌐䒠䍐䎠䐠 䏰䐀䏠䍐䎠䐠䌀\::=[\䏠䏰䎀䐐䌀䏐䎀䍐 library\][\䏠䏰䎀䐐䌀䏐䎀䍐 use\]\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀\\䐠䍐䎰䏠 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰\[\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀\]

¡ [\䏠䏰䎀䐐䌀䏐䎀䍐 library\]::= library \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\{, \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\};

Wireless Lab 2004/07/15 14

Page 15: VHDL полное  описание

¡ 䇠䏰䎀䐐䌀䏐䎀䍐 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

Page 16: VHDL полное  описание

䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀. (I)

¡ \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀\::= entity \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ is[generic(\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐

䎠䏠䏐䐐䐠䌀䏐䐠䒰\{; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐

䎠䏠䏐䐐䐠䌀䏐䐠䒰\});][port (\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\

{;\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\});]{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏠䌐䒠䍐䎠䐠䍐\}

[begin{\䏠䏰䍐䐀䌀䐠䏠䐀 assert\ | \䏰䌀䐐䐐䎀䌠䏐䒰䎐䌠䒰䍰䏠䌠 䏰䐀䏠䑠䍐䍀䐰䐀䒰\ | \䏰䌀䐐䐐䎀䌠䏐䒰䎐䏰䐀䏠䑠䍐䐐䐐\ }]

end [entity][\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];

Wireless Lab 2004/07/15 16

Page 17: VHDL полное  описание

¡ 䇰䏠䐀䐠.\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䏠䌠 䏠䌐䒠䍐䎠䐠䌀\::=port (\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\ {; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\});

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\::= \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\:in|out|inout|buffer|link \䐠䎀䏰\[:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐\].

¡ 䇐䌀䐐䐠䐀䏠䍐䑰䏐䌀䓰 䎠䏠䏐䐐䐠䌀䏐䐠䌀 generic.\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䒰䑐 䎠䏠䏐䐐䐠䌀䏐䐠\::=generic(\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\

{; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\});\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\::=

\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\:\䐠䎀䏰\[:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐䍰䏐䌀䑰䍐䏐䎀䍐\]

䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀. (II)

Wireless Lab 2004/07/15 17

Page 18: VHDL полное  описание

¡ 䆀䐐䏰䏠䎰䏐䓰䍐䏀䌀䓰 䑰䌀䐐䐠䓀.

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

Page 19: VHDL полное  описание

䄀䐀䑐䎀䐠䍐䎠䐠䐰䐀䌀 䏠䌐䒠䍐䎠䐠䌀 VHDL.(I)

¡ 䈐䎀䏐䐠䌀䎠䐐䎀䐐.\䐠䍐䎰䏠 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰\::=architecture \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ of \䎀䏀䓰 䏠䌐䒠䍐䎠䐠䌀\ is{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䌐䎰䏠䎠䍐\}begin

{ \䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}end [architecture][\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];

Wireless Lab 2004/07/15 19

Page 20: VHDL полное  описание

¡ 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

Page 21: VHDL полное  описание

䇰䌀䎠䍐䐠䒰.

¡ 䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䌀䎠䍐䐠䌀.

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䌀䎠䍐䐠䌀\::= package\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ is {䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏰䌀䎠䍐䐠䍐}end[package][\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];

䇰䐀䎀䏀䍐䐀:signal my_bit: IEEE.std_logic_1164.X01Z;

¡ 䈠䍐䎰䏠 䏰䌀䎠䍐䐠䌀.

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䐠䍐䎰䌀 䏰䌀䎠䍐䐠䌀\::= package body\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ is

{䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䐠䍐䎰䍐 䏰䌀䎠䍐䐠䌀}end [package

body][\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];

Wireless Lab 2004/07/15 21

Page 22: VHDL полное  описание

䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀.(I) ¡ \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀\::=

configuration \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ of \䎀䏀䓰 䏠䌐䒠䍐䎠䐠䌀\ is for \䎀䏀䓰 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰\

{for \䐰䎠䌀䍰䌀䐠䍐䎰䎀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\: \䎀䏀䓰䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\

\䐰䎠䌀䍰䌀䐠䍐䎰䓀 䐐䌠䓰䍰䒰䌠䌀䏐䎀䓰\;end for;}

end for;end [configuration] [\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\];

\ 䐰䎠䌀䍰䌀䐠䍐䎰䎀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀 \::=\䏀䍐䐠䎠䌀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\

{,\䏀䍐䐠䎠䌀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\} | others |all

\䐰䎠䌀䍰䌀䐠䍐䎰䓀 䐐䌠䓰䍰䒰䌠䌀䏐䎀䓰\::= use entity\䎀䏀䓰 䏠䌐䒠䍐䎠䐠䌀\[(\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰\)]

Wireless Lab 2004/07/15 22

Page 23: VHDL полное  описание

¡ 䇰䐀䎀䏀䍐䐀 :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

Page 24: VHDL полное  описание

䇰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 (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

Page 25: VHDL полное  описание

¡ 䇠䏰䍐䐀䌀䐠䏠䐀 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

Page 26: VHDL полное  описание

¡ 䇠䏰䍐䐀䌀䐠䏠䐀 䑠䎀䎠䎰䌀.䐐䎀䏐䐠䌀䎠䐐䎀䐐:

\䏠䏰䍐䐀䌀䐠䏠䐀 䑠䎀䎠䎰䌀\::=[\䏀䍐䐠䎠䌀\:][\䐐䑐䍐䏀䌀 䎀䐠䍐䐀䌀䑠䎀䎀\]

loop{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}{next[\䏀䍐䐠䎠䌀\][when \䐰䐐䎰䏠䌠䎀䍐\];}{exit[\䏀䍐䐠䎠䌀\][when \䐰䐐䎰䏠䌠䎀䍐\];}

end loop [\䏀䍐䐠䎠䌀\];

\䐐䑐䍐䏀䌀 䎀䐠䍐䐀䌀䑠䎀䎀\::=while \䐰䐐䎰䏠䌠䎀䍐\ | for \䏰䍐䐀䍐䏀䍐䏐䏐䌀䓰

䑠䎀䎠䎰䌀 \ in \䍀䎀䌀䏰䌀䍰䏠䏐\

䇰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰 (III)

Wireless Lab 2004/07/15 26

Page 27: VHDL полное  описание

¡ 䄠䒰䍰䏠䌠 䏰䐀䏠䑠䍐䍀䐰䐀䒰.䐰䏰䐀䏠䒐䍐䏐䏐䒰䎐 䐐䎀䏐䐠䌀䎠䐐䎀䐐:\䌠䒰䍰䏠䌠 䏰䐀䏠䑠䍐䍀䐰䐀䒰\::=\䎀䏀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰\[([\䎀䏀䓰䏰䌀䐀䌀䏀䍐䐠䐀䌀 =>\] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\{,[\䎀䏀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ => ] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\})];

䇰䐀䎀䏀䍐䐀 :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

Page 28: VHDL полное  описание

䇰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰.(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

Page 29: VHDL полное  описание

¡ 䇠䏰䍐䐀䌀䐠䏠䐀 䐐䍐䎰䍐䎠䐠䎀䌠䏐䏠䌰䏠 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠䌰䏠䏰䐀䎀䐐䌠䌀䎀䌠䌀䏐䎀䓰.\䐐䍐䎰䍐䎠䐠䎀䌠䏐䏠䍐 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䏠䍐 䏰䐀䎀䐐䌠䌀䎀䌠䌀䏐䎀䍐\::=with \䌠䒰䐀䌀䍠䍐䏐䎀䍐\ select

{\䎀䏀䓰\<= [\䐐䏰䏠䐐䏠䌐 䍰䌀䍀䍐䐀䍠䎠䎀\]{\䌰䐀䌀䑀䎀䎠\when \䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\,}

\䌰䐀䌀䑀䎀䎠\[when others ];

¡ 䇰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䌠䒰䍰䏠䌠 䏰䐀䏠䑠䍐䍀䐰䐀䒰.¡ 䇠䐠䎰䏠䍠䍐䏐䏐䒰䍐 䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰.

䇰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䍐 䏠䏰䍐䐀䌀䐠䏠䐀䒰.(II)

Wireless Lab 2004/07/15 29

Page 30: VHDL полное  описание

䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (I)

¡ 䈐䏰䍐䑠䎀䑀䎀䎠䌀䑠䎀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰.

\䐐䏰䍐䑠䎀䑀䎀䎠䌀䑠䎀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰\::=procedure \䎀䏀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰\[(\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\)] is {\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏰䏠䍀䏰䐀䏠䌰䐀䌀䏀䍐\}begin

{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}end [procedure][\䎀䏀䓰 䏰䐀䏠䑠䍐䍀䐰䐀䒰\];\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\::=(\䓐䎰䍐䏀䍐䏐䐠 䐐䏰䎀䐐䎠䌀\{; \䓐䎰䍐䏀䍐䏐䐠 䐐䏰䎀䐐䎠䌀\})

\䓐䎰䍐䏀䍐䏐䐠 䐐䏰䎀䐐䎠䌀\::=[constant | variable | signal ]

\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\{,\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\}:[in | out | inout] \䐠䎀䏰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\

[ := \䐐䐠䌀䐠䎀䑰䍐䐐䎠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\]

Wireless Lab 2004/07/15 30

Page 31: VHDL полное  описание

¡ 䈐䏰䍐䑠䎀䑀䎀䎠䌀䑠䎀䓰 䑀䐰䏐䎠䑠䎀䎀.䐐䎀䏐䐠䌀䎠䐐䎀䐐:\䐐䏰䍐䑠䎀䑀䎀䎠䌀䑠䎀䓰 䑀䐰䏐䎠䑠䎀䎀\::=[pure | impure]function \䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\ |\䍰䏐䌀䎠 䑀䐰䏐䎠䑠䎀䎀\

[(\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\)] return \䐠䎀䏰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ is

{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏰䏠䍀䏰䐀䏠䌰䐀䌀䏀䍐\}begin

{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}return \䌠䒰䐀䌀䍠䍐䏐䎀䍐\;

end [function][\䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\];

䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (II)

Wireless Lab 2004/07/15 31

Page 32: VHDL полное  описание

¡ 䇠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䐀䏠䑠䍐䍀䐰䐀 䎀 䑀䐰䏐䎠䑠䎀䎐.

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䐀䏠䑠䍐䍀䐰䐀䒰\::= procedure \䎀䏀䓰䏰䐀䏠䑠䍐䍀䐰䐀䒰\[(\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\)];

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䑀䐰䏐䎠䑠䎀䎀\::=[pure | impure]function \䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\ |\䍰䏐䌀䎠 䑀䐰䏐䎠䑠䎀䎀\

[(\䐐䏰䎀䐐䏠䎠 䏰䌀䐀䌀䏀䍐䐠䐀䏠䌠\)] return \䐠䎀䏰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\;

䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (III)

Wireless Lab 2004/07/15 32

Page 33: VHDL полное  описание

¡ 䄠䒰䍰䏠䌠 䑀䐰䏐䎠䑠䎀䎀.

\䌠䒰䍰䏠䌠 䑀䐰䏐䎠䑠䎀䎀\::=

\䎀䏀䓰 䑀䐰䏐䎠䑠䎀䎀\ ([\䎀䏀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ =>] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\

{,[\䎀䏀䓰 䏰䌀䐀䌀䏀䍐䐠䐀䌀\ => ] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\});

䇰䐀䏠䑠䍐䍀䐰䐀䒰 䎀 䑀䐰䏐䎠䑠䎀䎀. (IV)

Wireless Lab 2004/07/15 33

Page 34: VHDL полное  описание

¡ 䇰䍐䐀䍐䍰䌀䌰䐀䐰䍰䎠䌀 䏰䐀䏠䑠䍐䍀䐰䐀 䎀 䑀䐰䏐䎠䑠䎀䎐.

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

Page 35: VHDL полное  описание

䇠䏰䍐䐀䌀䐠䏠䐀 䏰䐀䏠䑠䍐䐐䐐䌀. (I)

¡ \䏠䏰䍐䐀䌀䐠䏠䐀 䏰䐀䏠䑠䍐䐐䐐䌀\ ::=[postponed] process [(\䎀䏀䓰 䐐䎀䌰䏐䌀䎰䌀\ {,\䎀䏀䓰䐐䎀䌰䏐䌀䎰䌀\})] [is]{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䏰䐀䏠䑠䍐䐐䐐䍐\}begin

{\䏰䏠䐐䎰䍐䍀䏠䌠䌀䐠䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}end process;

Wireless Lab 2004/07/15 35

Page 36: VHDL полное  описание

¡ 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

Page 37: VHDL полное  описание

䇠䏰䍐䐀䌀䐠䏠䐀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀.

¡ 䈐䎀䏐䐠䌀䎠䐐䎀䐐 :\䏠䏰䍐䐀䌀䐠䏠䐀 䌠䐐䐠䌀䌠䎠䎀 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\::=

\䏀䍐䐠䎠䌀 䓐䎠䍰䍐䏀䏰䎰䓰䐀䌀 䓐䎰䍐䏀䍐䏐䐠䌀\ :\䌠䐐䐠䌀䌠䎰䓰䍐䏀䒰䎐 䓐䎰䍐䏀䍐䏐䐠\

[generic map(\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\

{, \䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐䎠䏠䏐䐐䐠䌀䏐䐠䒰\});]

[port map (\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏰䏠䐀䐠䌀\{,\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏰䏠䐀䐠䌀\})];

\䌠䐐䐠䌀䌠䎰䓰䍐䏀䒰䎐 䓐䎰䍐䏀䍐䏐䐠\ ::= [component] \䎀䏀䓰 䎠䏠䏀䏰䏠䏐䍐䏐䐠䌀\| entity \䎀䏀䓰 䏠䌐䒠䍐䎠䐠䌀\

[䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀 䌀䐀䑐䎀䐠䍐䎠䐠䐰䐀䒰] | configuration \䎀䏀䓰 䎠䏠䏐䑀䎀䌰䐰䐀䌀䑠䎀䎀\

Wireless Lab 2004/07/15 37

Page 38: VHDL полное  описание

¡ 䇰䐀䎀䏀䍐䐀 :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

Page 39: VHDL полное  описание

䇠䏰䍐䐀䌀䐠䏠䐀 generate.

¡ 䈐䎀䏐䐠䌀䎠䐐䎀䐐 :

\䏠䏰䍐䐀䌀䐠䏠䐀 generate\::=\䏀䍐䐠䎠䌀\: for \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\ in \䍀䎀䌀䏰䌀䍰䏠䏐\

generate[{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䌐䎰䏠䎠䍐\}begin]

{ \䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}end generate [\䏀䍐䐠䎠䌀\];

Wireless Lab 2004/07/15 39

Page 40: VHDL полное  описание

¡ 䇰䐀䎀䏀䍐䐀 :

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

Page 41: VHDL полное  описание

¡ 䐐䎀䏐䐠䌀䎠䐐䎀䐐:\䐰䐐䎰䏠䌠䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀 generate\::=

\䏀䍐䐠䎠䌀\: if \䌐䐰䎰䍐䌠䐐䎠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\ generate[ {\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䌐䎰䏠䎠䍐\}

begin]{ \䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\}

end generate [\䏀䍐䐠䎠䌀\];

䈰䐐䎰䏠䌠䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀 generate.(I)

Wireless Lab 2004/07/15 41

Page 42: VHDL полное  описание

¡ 䇰䐀䎀䏀䍐䐀 :

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

Page 43: VHDL полное  описание

䇠䏰䍐䐀䌀䐠䏠䐀 block.(I)¡ 䈐䎀䏐䐠䌀䎠䐐䎀䐐 :

\䏠䏰䍐䐀䌀䐠䏠䐀 block\::=[\䏀䍐䐠䎠䌀\]: block [\䌠䒰䐀䌀䍠䍐䏐䎀䍐 䐐䍀䍐䐀䍠䎀䌠䌀䏐䎀䓰\] [is]

[generic(\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\{; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\});]

[generic map(\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\{, \䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\});]

[port (\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\ {;\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\});][port map (\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏰䏠䐀䐠䌀\

{,\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䏰䏠䐀䐠䌀\})];{\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䌠 䌐䎰䏠䎠䍐\}

begin{\䏰䌀䐀䌀䎰䎰䍐䎰䓀䏐䒰䎐 䏠䏰䍐䐀䌀䐠䏠䐀\ }

end block [\䏀䍐䐠䎠䌀\];

Wireless Lab 2004/07/15 43

Page 44: VHDL полное  описание

¡ 䇰䐀䎀䏀䍐䐀:

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

Page 45: VHDL полное  описание

䆰䎀䐠䍐䐀䌀䎰䒰 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

Page 46: VHDL полное  описание

¡ 䇰䍐䐀䍐䑰䎀䐐䎰䓰䍐䏀䒰䎐 䎰䎀䐠䍐䐀䌀䎰 -䐐䎀䏀䌠䏠䎰䓀䏐䒰䎐䎰䎀䐠䍐䐀䌀䎰 䎀 䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀.

¡ 䈐䐠䐀䏠䑰䏐䒰䎐 䎰䎀䐠䍐䐀䌀䎰 - 䏐䌀䏰䐀䎀䏀䍐䐀, "䄀䄐䄠䄰" , "01111010", 䄠"01111010", 䉐"7䄀“

¡ 䉐"䄀䄠_CD", "1101_0111", 1_024, 0FF_ABBA

䆰䎀䐠䍐䐀䌀䎰䒰 VHDL

Wireless Lab 2004/07/15 46

Page 47: VHDL полное  описание

䈠䎀䏰䒰 䏠䌐䒠䍐䎠䐠䏠䌠 VHDL

¡ 䇰䍐䐀䍐䑰䎀䐐䎰䓰䍐䏀䒰䎐 䐠䎀䏰type \䎀䏀䓰 䐠䎀䏰䌀\ is (\䏰䍐䐀䍐䑰䎀䐐䎰䓰䍐䏀䒰䎐 䎰䎀䐠䍐䐀䌀䎰\{,\ 䏰䍐䐀䍐䑰䎀䐐䎰䓰䍐䏀䒰䎐 䎰䎀䐠䍐䐀䌀䎰\});

¡ 䉠䍐䎰䒰䎐 䐠䎀䏰type \䎀䏀䓰 䐠䎀䏰䌀\ is range \䍀䎀䌀䏰䌀䍰䏠䏐 䑠䍐䎰䒰䑐\;䌰䍀䍐 \䍀䎀䌀䏰䌀䍰䏠䏐 䑠䍐䎰䒰䑐\::=

\䌠䒰䐀䌀䍠䍐䏐䎀䍐\to\䌠䒰䐀䌀䍠䍐䏐䎀䍐\|\䌠䒰䐀䌀䍠䍐䏐䎀䍐\downto\䌠䒰䐀䌀䍠䍐䏐䎀䍐\

䇀䌀䎠䐐䎀䏀䌀䎰䓀䏐䒰䎐 䍀䎀䌀䏰䌀䍰䏠䏐 䑠䍐䎰䒰䑐 :-2147483647 to 2147483647.

¡ 䈠䎀䏰 䐐 䏰䎰䌀䌠䌀䓠䒐䍐䎐 䍰䌀䏰䓰䐠䏠䎐

Wireless Lab 2004/07/15 47

Page 48: VHDL полное  описание

¡ 䈀䍐䌰䐰䎰䓰䐀䏐䒰䎐 䐠䎀䏰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

Page 49: VHDL полное  описание

¡ 䆠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䒰䎐 䐠䎀䏰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

Page 50: VHDL полное  описание

¡ 䇰䏠䍀䐠䎀䏰. \䏰䏠䍀䐠䎀䏰\::=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

Page 51: VHDL полное  описание

O䌐䒠䍐䎠䐠䒰 䓰䍰䒰䎠䌀 VHDL (I)¡ 䈐䎀䌰䏐䌀䎰.

signal : \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\{,\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\}:=[\䏐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐\];

¡ 䆠䏠䏐䐐䐠䌀䏐䐠䌀.䇰䐀䎀䏀䍐䐀 : 䐐onstant thousand: integer:=1000;

¡ 䇰䍐䐀䍐䏀䍐䏐䏐䌀䓰.\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䍐䐀䍐䏀䍐䏐䏐䏠䎐\::=[shared] variable\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\{,\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\}:\䐠䎀䏰\[:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐\];䇰䐀䎀䏀䍐䐀 :variable tmp: integer range -128 to 127:=0;

Wireless Lab 2004/07/15 51

Page 52: VHDL полное  описание

¡ 䇰䏠䐀䐠.

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䏠䌠\::=port (\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\ {; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\});

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏰䏠䐀䐠䌀\::= \䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\: in|out|inout|buffer|link \䐠䎀䏰\ [:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐䍰䏐䌀䑰䍐䏐䎀䍐\]

¡ 䇐䌀䐐䐠䐀䏠䍐䑰䏐䌀䓰 䎠䏠䏐䐐䐠䌀䏐䐠䌀 generic.

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䒰䑐 䎠䏠䏐䐐䐠䌀䏐䐠\::= generic( \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\ {; \䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\});

\䏠䌐䒠䓰䌠䎰䍐䏐䎀䍐 䏐䌀䐐䐠䐀䏠䍐䑰䏐䏠䎐 䎠䏠䏐䐐䐠䌀䏐䐠䒰\::=\䎀䍀䍐䏐䐠䎀䑀䎀䎠䌀䐠䏠䐀\:\䐠䎀䏰\[:=\䏐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐\]

O䌐䒠䍐䎠䐠䒰 䓰䍰䒰䎠䌀 VHDL (II)

Wireless Lab 2004/07/15 52

Page 53: VHDL полное  описание

¡ 䇰䍐䐀䍐䏀䍐䏐䏐䌀䓰 䑠䎀䎠䎰䌀. (䏠䏰䍐䐀䌀䐠䏠䐀䌀 䑠䎀䎠䎰䌀 loop.)

¡ 䇐䌀䑰䌀䎰䓀䏐䏠䍐 䍰䏐䌀䑰䍐䏐䎀䍐 䏠䌐䒠䍐䎠䐠䌀.

signal bb:bit:=aa;

signal aa:bit :='1';

O䌐䒠䍐䎠䐠䒰 䓰䍰䒰䎠䌀 VHDL (III)

Wireless Lab 2004/07/15 53

Page 54: VHDL полное  описание

䇠䏰䍐䐀䌀䑠䎀䎀 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 VHDL

䈠䎀䏰 䏠䏰䍐䐀䌀䑠䎀䎀 䈐䎀䏀䌠䏠䎰 䎀䎰䎀 䎠䎰䓠䑰䍐䌠䏠䍐 䐐䎰䏠䌠䏠

¡ 䆰䏠䌰䎀䑰䍐䐐䎠䎀䍐 and, or, nand, nor, xor, xnor¡ 䈐䐀䌀䌠䏐䍐䏐䎀䓰 =, /=, <, <=, >, >= ¡ 䈐䍀䌠䎀䌰䌀 sll, srl, sla, sra, rol, ror¡ 䈐䎰䏠䍠䍐䏐䎀䓰 +, -, & (䎠䏠䏐䎠䌀䐠䍐䏐䌀䑠䎀䓰)¡ 䈰䏐䌀䐀䏐䒰䍐 (䍰䏐䌀䎠) +, -¡ 䈰䏀䏐䏠䍠䍐䏐䎀䓰 *, /, mod, rem¡ 䈀䌀䍰䎰䎀䑰䏐䒰䍐 **, abs, not

Wireless Lab 2004/07/15 54

Page 55: VHDL полное  описание

䇠䏰䍐䐀䌀䏐䍀䒰 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 VHDL (I)¡ 䇰䐀䏠䐐䐠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐¡ 䄀䌰䐀䍐䌰䌀䐠

\䌀䌰䐀䍐䌰䌀䐠\::=(\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䓐䎰䍐䏀䍐䏐䐠䏠䌠\{,\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䓐䎰䍐䏀䍐䏐䐠䏠䌠\})

\䐐䌠䓰䍰䒰䌠䌀䏐䎀䍐 䓐䎰䍐䏀䍐䏐䐠䏠䌠\::=[\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\ =>] \䌠䒰䐀䌀䍠䍐䏐䎀䍐\

\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䒰\::=\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䌀\ {,\ 䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䌀\}

\䌀䎰䓀䐠䍐䐀䏐䌀䐠䎀䌠䌀\::=\䏰䐀䏠䐐䐠䏠䍐 䌠䒰䐀䌀䍠䍐䏐䎀䍐\|\䍀䎀䌀䏰䌀䍰䏠䏐\|\䎀䏀䓰䓐䎰䍐䏀䍐䏐䐠䌀\| others

Wireless Lab 2004/07/15 55

Page 56: VHDL полное  описание

¡ 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

Page 57: VHDL полное  описание

䇠䏰䍐䐀䌀䏐䍀䒰 䌠 䌠䒰䐀䌀䍠䍐䏐䎀䓰䑐 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

Page 58: VHDL полное  описание

¡ 䆀䏀䓰 䐐 䎀䏐䍀䍐䎠䐐䏠䏀 : 䏐䌀䏰䐀䎀䏀䍐䐀, 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

Page 59: VHDL полное  описание

¡ 䇰䏠䎰䍐 䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䏠䌰䏠 䐠䎀䏰䌀.\䏰䏠䎰䍐 䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䏠䌰䏠 䐠䎀䏰䌀\::=\䎀䏀䓰䎠䏠䏀䌐䎀䏐䎀䐀䏠䌠䌀䏐䏐䏠䌰䏠 䐠䎀䏰䌀\.\䎀䏀䓰 䏰䏠䎰䓰\

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

Page 60: VHDL полное  описание

䈀䍐䌀䎰䎀䍰䌀䑠䎀䓰 䌠䒰䐀䌀䍠䍐䏐䎀䓰 䌠䌀䏰䏰䌀䐀䌀䐠䏐䏠䎐 䏀䏠䍀䍐䎰䎀 VHDL

a+b+c+d (a+b)+(c+d).

Wireless Lab 2004/07/15 60