mikrocontroller.net

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


Autor: Tony (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Tony (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
noch ein Nachtrag so sollte es richtig aussehen.

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.