Case st is
when 1 => cntrl<= one;
when 2 to 3 => cntrl<= two; when others => cntrl<= three,- end case; end process;
, case. , , \\ . , , .
assert
, . , , assert .
, . , , wait - . , .
, , , wait. , .. .
, , . , , postponed, .
. :
\ ::= \ :
\ [generic (\ \ {, \ \});] [port map ( \ { \})]; \::= [component] \
I entity \ [ ] (configuration \ \
( - ) ( - ), , . , .
- . , . , , , .
|
|
\ \ - . , (), .
- , . "=>", . , .
, , use , . . , '' - . - " " (black box), EDIF- , .
out inout . , open.
. , , , :
u_rg: RG16 port map (clk=>clk,
E => \__\,
DI => D,
D0(15)=> open,
D0(14)=> \_\,
D0(13 downto 0)=>\_\);
, :
Dl => conv_integer(D(n-l downto 0)); To_Bit(DO(14)) => \_0\,
.. DI in D, DO(14) out \_\ .
, -, , . , , , DO(15)=>openf , - , , - , D0(15).
. , , , , , , , . , .
- .
, DI CLK:
entity RGn is
|
|
generi c(n: i nteger);
port(CLK:bit; DI, DO: bit_vector(n-l downto 0)); end entity;
architecture behav of RGn is begin process(CLK) begi n
if clk='1' and CLK'event then
DO<=Dl; end process; end architecture behav;
= 8:
U_RG8: entity RGn(behav) generic map(8),
port map (CLK,DI=>DATA_IN,DO=>DATA_OUT);
generate
, generate. :
\ generate\::= \\: for \\ in \\ generate
[{\ 6\} begin]
{ \ \} end generate [\\];
generate , \\ - generate, \\ - . , loop. , .
loop, , generate , .
generate FD Xilinx, UNlslM.umsim_viTAL DI do, - clk.
signal t: std_logic_vector(l to n+1);
t(i)<=DI;
FIFO: for i in 1 to n generate
u_ tt: fd(c=>clk, D=>t(i), Q=>t(i+1)); end generate; D0<=t(n+1);
, generate. :
generate\::=\MeTKa\:if \6 \ generate
[ {\ 6\} begin]
{ \ \} end generate [\\];
, , , . , . :
RESn: if \_1_1_\=1 generate
RESl:for i in DATA^BUS1range generate
U_ RES: PULLUP(DATA_BUS(i));
end generate; end generate;
\_1_1_\ 1, DATA_BUS PULLUP unisim.
block
VHDL . :
\ block\::=[\\]: block [\ ] [is] [(\ \
{; \ \});] [generic (\ \
{, \ \});] [port (\ \ {;\ \});] [port map (\ \
{ \})]; {\ 6\} begin
{\ \ } end block [\\];
generic , generic map, , , , . , .
guard, () guard. .
, VHDL : ( ). , .. .
|
|
. -, .
, , , . , VHDL .
, -, . -, , guarded. , 1 2:
signal ,,: out integer bus:=0; disconnect c:integer after 2 ns;
Bl: block (sel = 1) is begin
<= guarded A;
end block Bl;
B2: block (sel = 2) is begin
<= guarded D;
end block B2;
, , 1 sel (.. guard<=(sel = 1) true) D . guard = false, , .. . , disconnect, . 2 .
, , , register , bus. register bus . , - . , .. guard (guards) . ,
VHDL .
-. , , , register, bus, disconnect, , . .
, . , , .
, , , , . , , .
, , , . , , . , .
|
|
, , , generate block. , .
, , . , , , . , , block , .
, .