coriolis/documentation/examples/AM2901/coeur.vst

198 lines
4.1 KiB
Plaintext

--
-- Generated by VASY
--
ENTITY coeur IS
PORT(
a_from_pads : IN BIT_VECTOR(3 DOWNTO 0);
b_from_pads : IN BIT_VECTOR(3 DOWNTO 0);
cin_from_pads : IN BIT;
ck : IN BIT;
cout_to_pads : OUT BIT;
d_from_pads : IN BIT_VECTOR(3 DOWNTO 0);
i_from_pads : IN BIT_VECTOR(8 DOWNTO 0);
ng_to_pads : OUT BIT;
noe_from_pads : IN BIT;
np_to_pads : OUT BIT;
ovr_to_pads : OUT BIT;
q0_from_pads : IN BIT;
q0_to_pads : OUT BIT;
q3_from_pads : IN BIT;
q3_to_pads : OUT BIT;
r0_from_pads : IN BIT;
r0_to_pads : OUT BIT;
r3_from_pads : IN BIT;
r3_to_pads : OUT BIT;
shift_l : OUT BIT;
shift_r : OUT BIT;
f3_to_pads : OUT BIT;
vdd : IN BIT;
vss : IN BIT;
y_oe : OUT BIT;
y_to_pads : OUT BIT_VECTOR(3 DOWNTO 0);
zero_to_pads : OUT BIT
);
END coeur;
ARCHITECTURE VST OF coeur IS
SIGNAL alu_out : BIT_VECTOR(3 DOWNTO 0);
SIGNAL r : BIT_VECTOR(3 DOWNTO 0);
SIGNAL ra : BIT_VECTOR(3 DOWNTO 0);
SIGNAL rb : BIT_VECTOR(3 DOWNTO 0);
SIGNAL s : BIT_VECTOR(3 DOWNTO 0);
SIGNAL saccu : BIT_VECTOR(3 DOWNTO 0);
COMPONENT muxs
PORT(
alu_out : IN BIT_VECTOR(3 DOWNTO 0);
i : IN BIT_VECTOR(2 DOWNTO 0);
noe : IN BIT;
oe : OUT BIT;
ra : IN BIT_VECTOR(3 DOWNTO 0);
shift_l : OUT BIT;
shift_r : OUT BIT;
vdd : IN BIT;
vss : IN BIT;
y : OUT BIT_VECTOR(3 DOWNTO 0)
);
END COMPONENT;
COMPONENT alu
PORT(
alu_out : INOUT BIT_VECTOR(3 DOWNTO 0);
cin : IN BIT;
cout : OUT BIT;
i : IN BIT_VECTOR(2 DOWNTO 0);
ng : OUT BIT;
np : OUT BIT;
ovr : OUT BIT;
r : IN BIT_VECTOR(3 DOWNTO 0);
s : IN BIT_VECTOR(3 DOWNTO 0);
f3 : OUT BIT;
vdd : IN BIT;
vss : IN BIT;
zero : OUT BIT
);
END COMPONENT;
COMPONENT accu
PORT(
accu : INOUT BIT_VECTOR(3 DOWNTO 0);
alu_out : IN BIT_VECTOR(3 DOWNTO 0);
cke : IN BIT;
i : IN BIT_VECTOR(2 DOWNTO 0);
q0_from : IN BIT;
q0_to : OUT BIT;
q3_from : IN BIT;
q3_to : OUT BIT;
vdd : IN BIT;
vss : IN BIT
);
END COMPONENT;
COMPONENT ram
PORT(
a : IN BIT_VECTOR(3 DOWNTO 0);
alu_out : IN BIT_VECTOR(3 DOWNTO 0);
b : IN BIT_VECTOR(3 DOWNTO 0);
clk : IN BIT;
i : IN BIT_VECTOR(2 DOWNTO 0);
r0_from_pads : IN BIT;
r0_to_pads : OUT BIT;
r3_from_pads : IN BIT;
r3_to_pads : OUT BIT;
ra : OUT BIT_VECTOR(3 DOWNTO 0);
rb : OUT BIT_VECTOR(3 DOWNTO 0);
vdd : IN BIT;
vss : IN BIT
);
END COMPONENT;
COMPONENT muxe
PORT(
accu : IN BIT_VECTOR(3 DOWNTO 0);
d : IN BIT_VECTOR(3 DOWNTO 0);
i : IN BIT_VECTOR(2 DOWNTO 0);
r : OUT BIT_VECTOR(3 DOWNTO 0);
ra : IN BIT_VECTOR(3 DOWNTO 0);
rb : IN BIT_VECTOR(3 DOWNTO 0);
s : OUT BIT_VECTOR(3 DOWNTO 0);
vdd : IN BIT;
vss : IN BIT
);
END COMPONENT;
BEGIN
iram : ram
PORT MAP (
a(3 downto 0) => a_from_pads,
alu_out => alu_out,
b(3 downto 0) => b_from_pads,
i(2 downto 0) => i_from_pads(8 downto 6),
ra => ra,
rb => rb,
vss => vss,
vdd => vdd,
r3_to_pads => r3_to_pads,
r3_from_pads => r3_from_pads,
r0_to_pads => r0_to_pads,
r0_from_pads => r0_from_pads,
clk => ck
);
iaccu : accu
PORT MAP (
accu(3 downto 0) => saccu,
alu_out => alu_out,
i(2 downto 0) => i_from_pads(8 downto 6),
vss => vss,
vdd => vdd,
q3_to => q3_to_pads,
q3_from => q3_from_pads,
q0_to => q0_to_pads,
q0_from => q0_from_pads,
cke => ck
);
ialu : alu
PORT MAP (
alu_out => alu_out,
i(2 downto 0) => i_from_pads(5 downto 3),
r => r,
s => s,
zero => zero_to_pads,
vss => vss,
vdd => vdd,
f3 => f3_to_pads,
ovr => ovr_to_pads,
np => np_to_pads,
ng => ng_to_pads,
cout => cout_to_pads,
cin => cin_from_pads
);
imuxs : muxs
PORT MAP (
alu_out => alu_out,
i(2 downto 0) => i_from_pads(8 downto 6),
ra => ra,
y(3 downto 0) => y_to_pads,
vss => vss,
vdd => vdd,
shift_r => shift_r,
shift_l => shift_l,
oe => y_oe,
noe => noe_from_pads
);
imuxe : muxe
PORT MAP (
accu(3 downto 0) => saccu,
d(3 downto 0) => d_from_pads,
i(2 downto 0) => i_from_pads(2 downto 0),
r => r,
ra => ra,
rb => rb,
s => s,
vss => vss,
vdd => vdd
);
END VST;