soustractor 12 bit vhdl ?

Joined
Apr 21, 2010
Messages
10
Reaction score
0
Hi i am a new designer in vhdl and i want to write a vhdl code soustractor 12 bit. I want to do it in vhdl structural and at first i create an adder 12 bit in i want to use this adder to create soustractor 12 bit. My idea is i should use complement two for the second operand ( A - B = A + (-B)).

My question is : How can i create a structural vhdl code for soustractor 12 bit ?

Thank you very much !

Charko

NB: Sorry for my bad english!!
 
Joined
Apr 21, 2010
Messages
10
Reaction score
0
I think i resolve this problem!

The vhdl code that i write to do that is :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity soustr12 is
Port ( a : in STD_LOGIC_VECTOR (11 downto 0);
b : in STD_LOGIC_VECTOR (11 downto 0);
s : out STD_LOGIC_VECTOR (11 downto 0));
end soustr12;

architecture structural of soustr12 is
component add12
port ( a : in std_logic_vector(11 downto 0 );
b: in std_logic_vector(11 downto 0) ;
s: out std_logic_vector(11 downto 0);
Cout: out std_logic);
end component ;
signal q : std_logic_vector( 11 downto 0 );


begin
q(11 downto 0) <= (not B(11 downto 0) ) + 1 ;
inst1 : add12 port map ( a(11 downto 0)=> a( 11 downto 0),
b( 11 downto 0)=> q(11 downto 0),
s( 11 downto 0)=> s (11 downto 0));
end structural;
----------------------------------------------------------------------------
I think that is rigth because the test bench give me a good result.
 
Joined
Jan 29, 2009
Messages
152
Reaction score
0
If you're really looking for a structural solution, wouldn't you prefer to have a carry-in of 1 instead of adding 1 before-hand, and pass in 'not B'?
That could save a full adder for the incrementing.
 
Joined
Apr 21, 2010
Messages
10
Reaction score
0
joris said:
If you're really looking for a structural solution, wouldn't you prefer to have a carry-in of 1 instead of adding 1 before-hand, and pass in 'not B'?
That could save a full adder for the incrementing.



hi Joris. ok i try it !!


Charko
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,822
Latest member
israfaceZa

Latest Threads

Top