-- VHDL code position: p273_ex9_15_sequence_statement_PROCEDURE_sort4
-- Note : This is code for explaing sequence_statement of VHDL
-- See Also: example 9_14, 9_15.
-- Debug : no debug
---------------------------------------------------------------------------------
ENTITY sort4 IS
GENERIC ( top : INTEGER := 3 );
PORT ( a, b, c, d : IN BIT_VECTOR ( 0 TO top );
ra, rb, rc, rd : OUT BIT_VECTOR ( 0 TO top )
);
END ENTITY sort4;
ARCHITECTURE muxes OF sort4 IS
PROCEDURE sort2 ( x, y : INOUT BIT_VECTOR ( 0 TO top )
) IS
VARIABLE temp : data_element;
BEGIN
IF x > y THEN
tmp := x;
x := y;
y := tmp;
END IF;
END PROCEDURE sort2
BEGIN
PROCESS ( a, b, c, d )
VARIABLE va, vb, vc, vd : BIT_VECTOR ( 0 TO top );
BEGIN
va := a;
vb := b;
vc := c;
vd := d;
sort2 ( va, vc );
sort2 ( vb, vd );
sort2 ( va, vb );
sort2 ( vc, vd );
sort2 ( vd, vc );
ra <= va;
rb <= vb;
rc <= vc;
rd <= vd;
END PROCESS;
END ARCHITECTURE muxes;