library ieee;
use ieee.std_logic_1164.all;

--******************************************************************************
--**** ENTITY MVIBOX
--**** Deskripsi: Entity ini menguraikan move immediate unit. Entity ini
--****            menggunakan sebuah 8-bit register value dan sebuah 8-bit immediate value 
--****            dan menset sebuah nilai baru yang sama untuk bit 00 yang lain dan 8-
--****            bits immediate atau menset 8-bit immediate dan  
--****            8-bits register value.
--******************************************************************************
ENTITY mvibox IS
    PORT(reg1                              : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         immed                             : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         write                             : IN STD_LOGIC;
         result                            : OUT STD_LOGIC_VECTOR(15 DOWNTO 0));
END ENTITY mvibox;

ARCHITECTURE mvi_behav OF mvibox IS
BEGIN

    name: PROCESS(reg1, immed, write) IS

    BEGIN
        IF(write='0') THEN

            result <= "00000000" & immed;
        ELSE            
            result <= immed & reg1;
        END IF;
    END PROCESS name;
END ARCHITECTURE mvi_behav;
