P
Panthy
Guest
Ahoj všetci,
Som veľmi nové v programovaní VHDL.Pre svoju prácu som pomocou ISE 10.1 a ModelSim XE III 6.3cm.Mám nejaké problémy, ktorým čelia v programovaní jednoduchého kódu.Kód je nasledovné:
------------------------------------------
knižnica IEEE;
ieee.std_logic_1164.all použitie;
ieee.numeric_std.all použitie;
jednotka test
port (
clk: in std_logic;
in_i1: v std_logic_vector (7 downto 0);
out_i1: out std_logic_vector (7 downto 0)
);
konci testu;
architektúra v teste
signálu signed_out_i1: podpísal (7 downto 0);
začať
process (CLK)
začať
if (clk'event a CLK = '1 ') then
signed_out_i1 <=- signed (in_i1);
end if;
end process;
out_i1 <= std_logic_vector (signed_out_i1);
koniec;
----------------------------------------
Problém č 1:
Chcem "signed_out_i1" sa zmení na negatív "in_i1" pri každej zmene do 1 hodiny.behaviorálnej (funkčné), simulácia funguje v poriadku a ukazuje očakávaný výsledok.Ale v po-translate simulácia výstup nie je, ako sa očakávalo.Použil som testbench nasledujúci kód:
--------------------------------------
knižnica IEEE;
ieee.std_logic_1164.all použitie;
ieee.numeric_std.all použitie;
jednotka je test_tb
koniec test_tb;
architektúra test_tb_arch z test_tb je
súčasťou testu
port (
clk: in std_logic;
in_i1: v std_logic_vector (7 downto 0);
out_i1: out std_logic_vector (7 downto 0)
);
koniec zložky;
signálu CLK: std_logic;
signálu in_i1, out_i1: std_logic_vector (7 downto 0);
začať
aaaa: test port map (clk, in_i1, out_i1);
Proces
začať
clk <= '0 ';
in_i1 <= "11111111";
čakať na 50 ns;
clk <= '1 ';
in_i1 <= "00000001";
čakať na 50 ns;
clk <= '0 ';
in_i1 <= "00000001";
čakať na 50 ns;
clk <= '1 ';
in_i1 <= "11111111";
čakať na 50 ns;
end process;
koniec test_tb_arch;
konfigurácia AOA z test_tb je
pre test_tb_arch
na konci;
koniec AOA;
-------------------------------------------------- ---------
očakávaný výstup by mal byť buď "00000001", alebo "11111111".Ale vo výstupe ukazuje, "11001001" a "00110111".Môže niekto vysvetliť, v čom je problém?
Problém č 2:
Ďalším problémom je, že keď spustím Post-mapy Simulácia alebo Post-cesta simulácia v ISE 10,1 simulácie výstup nie je uvedený v ModelSim.To ukazuje nasledujúci chyba v ModelSim:
# ** Upozornenie: Design veľkosti 12.274 vyhlásenia alebo 0 nie sú-Xilinx list prípadoch presahuje ModelSim XE-Starter odporúčanej kapacity.
# Očakávajte výkon pomerne nepriaznivo ovplyvnená.
# ** Error: (vším-SDF-3250) netgen / map / test_map.sdf (0): Failed nájsť STUPŇA '/ UUT'.
# Error loading design
# Error: Chyba pri načítaní design
# Pozastavenie spúšťanie makier
# MACRO. / Test_tb.mdo sa zastavil na riadku 8
Ako vyriešiť problém?
Budem veľmi vďačný, ak mi niekto môže pomôcť pri riešení problémov.
Thanks and best regards,
Panthy
Som veľmi nové v programovaní VHDL.Pre svoju prácu som pomocou ISE 10.1 a ModelSim XE III 6.3cm.Mám nejaké problémy, ktorým čelia v programovaní jednoduchého kódu.Kód je nasledovné:
------------------------------------------
knižnica IEEE;
ieee.std_logic_1164.all použitie;
ieee.numeric_std.all použitie;
jednotka test
port (
clk: in std_logic;
in_i1: v std_logic_vector (7 downto 0);
out_i1: out std_logic_vector (7 downto 0)
);
konci testu;
architektúra v teste
signálu signed_out_i1: podpísal (7 downto 0);
začať
process (CLK)
začať
if (clk'event a CLK = '1 ') then
signed_out_i1 <=- signed (in_i1);
end if;
end process;
out_i1 <= std_logic_vector (signed_out_i1);
koniec;
----------------------------------------
Problém č 1:
Chcem "signed_out_i1" sa zmení na negatív "in_i1" pri každej zmene do 1 hodiny.behaviorálnej (funkčné), simulácia funguje v poriadku a ukazuje očakávaný výsledok.Ale v po-translate simulácia výstup nie je, ako sa očakávalo.Použil som testbench nasledujúci kód:
--------------------------------------
knižnica IEEE;
ieee.std_logic_1164.all použitie;
ieee.numeric_std.all použitie;
jednotka je test_tb
koniec test_tb;
architektúra test_tb_arch z test_tb je
súčasťou testu
port (
clk: in std_logic;
in_i1: v std_logic_vector (7 downto 0);
out_i1: out std_logic_vector (7 downto 0)
);
koniec zložky;
signálu CLK: std_logic;
signálu in_i1, out_i1: std_logic_vector (7 downto 0);
začať
aaaa: test port map (clk, in_i1, out_i1);
Proces
začať
clk <= '0 ';
in_i1 <= "11111111";
čakať na 50 ns;
clk <= '1 ';
in_i1 <= "00000001";
čakať na 50 ns;
clk <= '0 ';
in_i1 <= "00000001";
čakať na 50 ns;
clk <= '1 ';
in_i1 <= "11111111";
čakať na 50 ns;
end process;
koniec test_tb_arch;
konfigurácia AOA z test_tb je
pre test_tb_arch
na konci;
koniec AOA;
-------------------------------------------------- ---------
očakávaný výstup by mal byť buď "00000001", alebo "11111111".Ale vo výstupe ukazuje, "11001001" a "00110111".Môže niekto vysvetliť, v čom je problém?
Problém č 2:
Ďalším problémom je, že keď spustím Post-mapy Simulácia alebo Post-cesta simulácia v ISE 10,1 simulácie výstup nie je uvedený v ModelSim.To ukazuje nasledujúci chyba v ModelSim:
# ** Upozornenie: Design veľkosti 12.274 vyhlásenia alebo 0 nie sú-Xilinx list prípadoch presahuje ModelSim XE-Starter odporúčanej kapacity.
# Očakávajte výkon pomerne nepriaznivo ovplyvnená.
# ** Error: (vším-SDF-3250) netgen / map / test_map.sdf (0): Failed nájsť STUPŇA '/ UUT'.
# Error loading design
# Error: Chyba pri načítaní design
# Pozastavenie spúšťanie makier
# MACRO. / Test_tb.mdo sa zastavil na riadku 8
Ako vyriešiť problém?
Budem veľmi vďačný, ak mi niekto môže pomôcť pri riešení problémov.
Thanks and best regards,
Panthy