--========================================================== -- Design units : MULTcell (Structure) -- Entity and architecture -- -- File name : MULTcell.vhd -- -- Purpose : Cell for a multiplier network -- -- Limitations : None -- -- Library : WORK -- -- Dependencies : IEEE, ELEMpack -- -- Author : Hans-Peter Eich, REFT -- -- Simulator : Synopsys V3.1a on Sun SPARCstation 10 -- ----------------------------------------------------------- -- Revision list -- Version Author Date Changes -- -- 1.0 hpe 10.01.95 None -- 1.1 cjt 07.06.95 None --========================================================= LIBRARY IEEE; USE IEEE.std_logic_1164.all; USE work.ELEMpack.all; ENTITY MULTcell IS PORT(A : IN std_logic; -- data in B : IN std_logic; -- data in C : IN std_logic; -- data in Cin : IN std_logic; -- carry in Sum : OUT std_logic; -- result Cout: OUT std_logic); -- carry out END MULTcell; --============================ARCHITECTURE================== ARCHITECTURE Structure OF MULTcell IS SIGNAL in0,in1,in2,in3,in4: std_logic; BEGIN AndGate: AND2 PORT MAP(A => A, B => B, Y => in0); XorGate_1: XOR2 PORT MAP(A => C, B => Cin, Y => in1); XorGate_2: XOR2 PORT MAP(A => in0, B => in1, Y => Sum); NandGate_1: NAND2 PORT MAP(A => in0, B => Cin, Y => in2); NandGate_2: NAND2 PORT MAP(A => in0, B => C, Y => in3); NandGate_3: NAND2 PORT MAP(A => Cin, B => C, Y => in4); NandGate_4: NAND3 PORT MAP(A => in2, B => in3, C => in4, Y => Cout); END Structure; --============================CONFIGURATION================= CONFIGURATION MULTcell_DefaultConfig OF MULTcell IS FOR Structure FOR AndGate : AND2 USE ENTITY work.AND2(Behavior); END FOR; FOR XorGate_1 : XOR2 USE ENTITY work.XOR2(Behavior); END FOR; FOR XorGate_2 : XOR2 USE ENTITY work.XOR2(Behavior); END FOR; FOR NandGate_1 : NAND2 USE ENTITY work.NAND2(Behavior); END FOR; FOR NandGate_2 : NAND2 USE ENTITY work.NAND2(Behavior); END FOR; FOR NandGate_3 : NAND2 USE ENTITY work.NAND2(Behavior); END FOR; FOR NandGate_4 : NAND3 USE ENTITY work.NAND3(Behavior); END FOR; END FOR; END MULTcell_DefaultConfig;