Unsigned 8 Bit Multiplier Data Path (Entity)
USE gate_lib.resources.all;
PORT(multiplicand : IN level_vector(7 DOWNTO 0);
multiplier : IN level_vector(7 DOWNTO 0);
a_enable : IN level; -- clock enable for A register
a_reset : IN level; -- Reset control for A register
a_mode : IN level; -- Shift or load mode for A
c_enable : IN level; -- clock enable for c register
m_enable : IN level; -- clock enable for M register
q_enable : IN level; -- clock enable for Q register
q_mode : IN level; -- Shift or load mode for Q
product : OUT level_vector(15 DOWNTO 0));
Notes:
The final example is of an RTL level datapath for an unsigned 8 bit multiplier. It illustrates the use of complex components in a structural description and the use of multiple levels of hierarchy in that the components are themselves structural descriptions of lower level components. This is the entity description for the datapath. The register controls (enable, mode) will go to the control unit when it is added.