Fehlverhalten in Post-Route Sim

Gast #598788
Lesenswert?

Hi,

ich habe ein kleines Problem mit einem noch kleineren Design. :)

Folgender Quellcode beschreibt einen Multiplizierer erstellt mit Xilinx 
wobei das Ergebnis in ein Register geschrieben wird.

Code #####################################
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 multi_zerodelay_mod is
    Port ( clk_24mhz : in  STD_LOGIC;
           mula : in  STD_LOGIC_VECTOR (9 downto 0);
           mulb : in  STD_LOGIC_VECTOR (9 downto 0);
           prod : out  STD_LOGIC_VECTOR (9 downto 0));
end multi_zerodelay_mod;

architecture Behavioral of multi_zerodelay_mod is

------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
component multip_zerodelay
  port (
  a: IN std_logic_VECTOR(9 downto 0);
  b: IN std_logic_VECTOR(9 downto 0);
  p: OUT std_logic_VECTOR(19 downto 0));
end component;

-- FPGA Express Black Box declaration
attribute fpga_dont_touch: string;
attribute fpga_dont_touch of multip_zerodelay: component is "true";

-- Synplicity black box declaration
attribute syn_black_box : boolean;
attribute syn_black_box of multip_zerodelay: component is true;

-- COMP_TAG_END ------ End COMPONENT Declaration ------------

signal prod_out : STD_LOGIC_VECTOR (19 downto 0) := 
"00000000000000000000";



begin
zero : multip_zerodelay
    port map (
      a => mula,
      b => mulb,
      p => prod_out);

process(clk_24mhz)
begin
  if rising_edge(clk_24mhz) then
  prod <= prod_out(19 downto 10);
  end if;
end process;



end Behavioral;
########################################
Wie Ihr seht ist dies kein großer Entwurf. Die Behavioral Simulation 
läuft wie erwartet. Jedoch verschiebt sich in der Post-Route Sim das 
erste Ergebnis einen Takt nach rechts. (siehe Bild) Was nicht gewollt 
ist.

Multiplikator:
0 pipelines
Verzögerung bei max.9ns ( Die Ergebnisse kommen auch zur richtigen Zeit)

Constraints werden alle eingehalten = met.

ISE Version 8.2

Ich wäre dankbar wenn Ihr irgendwelche Ideen habt.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren