Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

4 Bit Adder using port maps

Status
Not open for further replies.

TheCholo

Newbie level 1
Joined
Sep 18, 2013
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
10
Hey guys I am having an issue with this 4 bit adder. I was told to include my Adder1.vhd file into the folder for my Adder4 project. Whenever I try to compile my code (I think its right) I am getting an error saying:

Error (10430): VHDL Primary Unit Declaration error at adder1.vhd(3): primary unit "Adder1Vhd" already exists in library "work"

Any help with this would be much appreciated :grin:

Here is the Adder4.vhd:

Code:
LIBRARY IEEE; 
USE IEEE.STD_LOGIC_1164.ALL; 
ENTITY Adder4 IS
GENERIC(CONSTANT N: INTEGER := 4);
PORT(
a, b: IN STD_LOGIC_VECTOR(N-1 DOWNTO 0); -- Input SW[7..4]: a[3..0] inputs,
-- SW[3..0]: b[3..0]
cIn: in std_logic;
sum: OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0); -- Output LEDR[3..0]
cOut: OUT STD_LOGIC -- Output LEDR[4]
);
END Adder4;
ARCHITECTURE imp OF Adder4 IS
COMPONENT Adder1 
PORT(
a, b, cIn : in STD_LOGIC;
sum, cOut : out STD_LOGIC);
END COMPONENT;
SIGNAL carry_sig: std_logic_vector(N-1 DOWNTO 0);
BEGIN
--What to put here?  I know it must include port maps
A1: Adder1 port map (a(0), b(0), cIn, sum(0), carry_sig(0));
A2: Adder1 port map (a(1), b(1), carry_sig(0), sum(1), carry_sig(1));
A3: Adder1 port map (a(2), b(2), carry_sig(1), sum(2), carry_sig(2));
A4: Adder1 port map (a(3), b(3), carry_sig(2), sum(3), cOut);

END imp;

Here is the Adder1.vhd file that is included in the project folder:

Code:
library ieee; 
use ieee.std_logic_1164.all; 
entity Adder1Vhd is 
 port( 
 a, b, cIn : in std_logic; 
 sum, cOut : out std_logic);
end Adder1Vhd; 
architecture imp of Adder1Vhd is 
begin 
 -- Add two lines (one for sum and the other for cOut) of VHDL code here
 sum <= (a xor b) xor cIn;
 cOut <= (a and b) or (cIn and (a xor b));
end imp;
 

You've got a component named "Adder1Vhd", but you're declaring a component named "Adder1". Where is Adder1's entity? You need to use the ENTITY name not the FILE name in your component declaration. In other words:

Component Adder1Vhd...

But the error you're getting indicates some other problem...
 

THe error implies you've got two different files that use the same entity name.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top