Works for me.... one 2-to-4 decoder, 16 flip-flops, three 4-bit
full adders. Seems like you have a problem with usage of
your synthesis tool. It's probably best for you to find a local
expert to get started with your tools in your environment.
--
Jonathan Bromley, Consultant
DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services
Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
(e-mail address removed)://
www.MYCOMPANY.com
The contents of this message may contain personal views which
are not the views of Doulos Ltd., unless specifically stated.
with this program , i have the same problem into simulation , please
help me , i havent someone near to me that can give me help
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity somme is
Port ( clk : in STD_LOGIC;
reset : in std_logic;
clk_out : out std_logic;
din : in STD_LOGIC_VECTOR (3 downto 0);
taille : in STD_LOGIC_VECTOR (2 downto 0);
dout : out STD_LOGIC_VECTOR (3 downto 0)
);
end somme;
architecture Behavioral of somme is
type tab is array(3 downto 0) of STD_LOGIC_VECTOR(3 DOWNTO 0);
signal s : tab;
begin
process
begin
SEQ_LOOP:loop
wait until clk'event and clk ='1';-- Au 1er front montant
exit SEQ_LOOP when reset = '1';-- on met le front montant
clk_out <= '1';-- celui d'horloge de sortie
wait until clk'event and clk ='1';-- Au 2eme front montant
exit SEQ_LOOP when reset = '1';-- on va lire
s(0) <= din; -- le 1er element
wait until clk'event and clk ='1';-- Au 2eme front montant
exit SEQ_LOOP when reset = '1';-- on met le front descendant
clk_out <= '0'; -- de sortie
wait until clk'event and clk ='1';-- Au 3eme front montant
exit SEQ_LOOP when reset = '1';-- on va lire
s(1) <= din; -- le 2eme element
wait until clk'event and clk ='1';-- Au 4eme front montant
exit SEQ_LOOP when reset = '1';-- on met le front montant
clk_out <= '1';-- celui d'horloge de sortie
wait until clk'event and clk ='1';-- Au 4eme front montant
exit SEQ_LOOP when reset = '1';-- on va lire
s(2) <= din; -- le 3eme element
wait until clk'event and clk ='1';-- Au 5eme front montant
exit SEQ_LOOP when reset = '1';-- on met le front descendant
clk_out <= '0'; -- de sortie
wait until clk'event and clk ='1';-- Au 6eme front montant
exit SEQ_LOOP when reset = '1';-- on va lire
s(3) <= din; -- le 4eme element
dout <= s(0) + s(1) + s(2) + s(3);
end loop;
end process;
end Behavioral;