Čo je zlé s týmto kódom VHDL??

H

hm_fa_da

Guest
Zdravím všetkých,

Neviem, čo je zle s týmto kódom?Som naozaj prospech zmätený ...

Keď spustím ho webedition ISE v9.1, dáva fata chyba!ale nie v ISE 8.1!
do verzie 9.1, keď som vymazať 1 z line30, neposkytuje Fatal Error,

Avšak môj problém je, že nie!

<img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="Exclamation" border="0" />

, Môj problém je:
V sekcii varovanie, že hovorí, že:
UPOZORNENIE: Xst: 646 - Signal <ram0> je pridelený, ale nikdy použiť.
UPOZORNENIE: Xst: 646 - Signal <result2> je pridelený, ale nikdy použiť.

Ale ja som použila je v kóde, v slučke, line57 a line62 ...
V tomto prípade, že ISE hovorí, v skutočnosti to nie je syntetizovať, čo chcem!
Kód obsahuje tieto časti: získavanie a ukladanie dát do pamäte RAM,
prechádza od ram robiť (ram príliš), a pohybuje sa od urobiť, aby výstupy ...Budem vďačný, mi pomohla

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying or Very sad" border="0" />Tu je kód:knižnica IEEE;
IEEE.STD_LOGIC_1164.ALL použitie;
IEEE.STD_LOGIC_ARITH.ALL použitie;
IEEE.STD_LOGIC_UNSIGNED.ALL použitie;jednotka test

port (
CLK, rám, sk, e, lnumber: in std_logic;
údaje: v std_logic_vector (7 downto 0);
refs: out std_logic_vector (112 downto 1));
konci testu;

architektúra Behaviorálne testu je

Typ ram_all je array (224 downto 1) z celej číslo v rozmedzí 0 až 255;
Typ outreg je array (112 downto 1) z celej číslo v rozmedzí 0 až 255;

signálu ram0: ram_all;
signálu Address1: integer rozmedzí 1 až 224: = 1;
signálu výsledok: integer rozmedzí 1 až 224: = 1;
signálu result2: integer rozmedzí 1 až 224: = 1;
signálu mk: celé číslo v rozmedzí 0 až 10;
signálu do: outreg;
signal cnt: integer v rozmedzí 0 až 10: = 0;
signálu cnt2: celé číslo v rozmedzí 0 až 255: = 0;

začať
mk <= conv_integer (frame); --****** line30
výsledok <= Address1 * mk;
result2 <= conv_integer (lnumber) * 112 * (conv_integer (not (frame)));process (CLK, e, sk, výsledok, result2)
variabilný Hrdza, rez2: integer rozmedzí 1 až 224: = 1;
začať
rez: = result;
rez2: = result2;
if (clk'event a CLK = '1 ') then
if (e = '1 'a sk = '1') then
Ak Address1 = 224 potom
Address1 <= 1;
iné
Address1 <= Address1 1;
end if;
ram0 (hrdza) <= conv_integer (data);
end if;

cnt <= cnt 1;
Ak cnt = 10 potom
cnt <= 0;
cnt2 <= cnt2 1;

Ak cnt2 = 255 potom - zaťaženia v okolí (i)
cnt2 <= 0;
s1: for i in 1 do 112 slučke --****** line57
do (i) <= ram0 (rez2 i);
end loop;
end if;

s2: for i in 1 do 112 slučke --****** line62
do (i) <= do (i) - 1;
Ak to (i) = 0 then
refs (i) <= '1 '; - vypnúť
iné
refs (i) <= '0 '; - zapnúť
end if;
end loop;
end if;
end if;
end process;

koniec správania;

 
Citácia:

Avšak môj problém je, že nie!
, Môj problém je:

V sekcii varovanie, že hovorí, že:

UPOZORNENIE: Xst: 646 - Signal <ram0> je pridelený, ale nikdy použiť.

UPOZORNENIE: Xst: 646 - Signal <result2> je pridelený, ale nikdy použiť.Ale ja som použila je v kóde, v slučke, line57 a line62 ...

V tomto prípade, že ISE hovorí, v skutočnosti to nie je syntetizovať, čo chcem!

Kód obsahuje tieto časti: získavanie a ukladanie dát do pamäte RAM,

prechádza od ram robiť (ram príliš), a pohybuje sa od urobiť, aby výstupy ...
 
Vážení hm_fa_da
Citácia:

s1: for i in 1 do 112 slučke --****** line57

do (i) <= ram0 (rez2 i);

end loop;

 
Díky moc drahé avimit,

Zmenil som sa a získať pravdivé výsledky,
thanks again,

ale čo fatálna chyba, ktorá sa vyskytuje v ISE9.1 v line30?
Keď som odstrániť 1 z riadku, potom nie je chyba, to je problém s ISE software verzia 9.1?(To sa nevyskytuje v 8.1!)

Thanks & Best Regards.

 
Nazdar,
Nechápem, wot myslíš tým ' 1 ", rezané vložiť kód a uvidím.Ale som si úplne istý, že má čo do činenia s 'rozsahu' ste nastavili.Môže robiť 1 niekde (ako vravíte), dáva nejaký signál do rozsahu (1 až 224), ktoré ste zadali, a nie je pritom kladie určité signály = 0, čo je mimo rozsahu (1 až 224), a teda chyba.
Ide o to, čo potrebujete simulovať kód, sa pred uvedením do FPGA, a váš život bude oveľa lepšie.
Kr,
Avi
http://www.vlsiip.com

 
ľúto, kód, ktorý som mal problém s ním bol:

mk <= conv_integer (frame) 1; --****** line30

Vážení Avimit, opäť ste mi pomohol, rozmezí pre výsledok to nie je pravda, keď som to zmenil, fungovalo to.

Thanks Again.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top