Forum: FPGA, VHDL & Co. Fehlverhalten in Post-Route Sim


von Tony (Gast)


Angehängte Dateien:

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.

von Tony (Gast)


Angehängte Dateien:

Lesenswert?

noch ein Nachtrag so sollte es richtig aussehen.

von Tony (Gast)


Lesenswert?

für alle die so ein ähnliches Problem haben, hatten oder haben werden. 
Das gleiche Design in ISE 9.1 simuliert im Xilinx Simulator Post-Route 
natürlich zeigt das richtige Ergebnis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.