Gast
#598788
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.

