Novi u VHDL (molim pomoć)

H

Hammer111

Guest
Bok
Ja sam novi u VHDL kodiranje i trebam malu pomoć.
Im 'težak to izraditi neki semafora za automobile i za ostale pješake.
Napravila sam ovaj kod koji odlično funkcionira s simulatoru, ali kada sam pokušao da ga stavite na čipu JA je dobio ovaj greška:
ERROR: Xst: 825 - "C: / sustav/test/test1.vhd" line 49: Čekanje iskaz u postupku nije prihvaćen.
Ja iskorišten FPGA From My UNIVERZITETU (50 MHz kvartz) pa sam morao računati 50.000.000 niske do visoke prijelazi da biste dobili 1 sekunde.

Here's the code:

entitet test1 je
Port (sat: u STD_LOGIC;
ključ: u STD_LOGIC;
žuta: out STD_LOGIC: = '0 ';
zeleno: out STD_LOGIC: = '1 ';
crveno: out STD_LOGIC: = '0 ';
pred: out STD_LOGIC: = '1 ';
pgreen: out STD_LOGIC: = '0 ');
test1 end;

architecture Behavioral of test1 je
signala s: integer range 0 - 50: = 0;
signala nsec: integer range 0 - 50: = 0;
započeti
proces
započeti
čekati do key = '1 ';
za j u 1 do 38 petlji
for i in 1 do 50.000.000 petlja
čekati do sat = '1 ';
nsec <= nsec 1;
end loop;
s <= s 1;
nsec <= 0;
if ((s <= 2) ili (s> = 34 sek i <= 36)) tada
žuta <= '1 ';
drugi
žuta <= '0 ';
end if;

if (s> 2 sek i <= 36) a zatim
crvena <= '1 ';
drugi
crvena <= '0 ';
end if;

if (s> 2 sek i <= 36) a zatim
crvena <= '1 ';
drugi
crvena <= '0 ';
end if;

if (s> 36) a zatim
zelena <= '1 ';
drugi
zelena <= '0 ';
end if;
if (s> 5 sec i <= 30) a zatim
pgreen <= '1 ';
pred <= '0 ';
drugi
pgreen <= '0 ';
pred <= '1 ';
end if;
end loop;
end process;
end Behavioral;

ugoditi ako netko mi može reći što nije u redu s njom?Ja radim sa Xilinx ISE 8.1i
Sam bio težak za pronaći ono što nije u redu za više od nekoliko dana (Ja sam tako frustriran)
Moram reći SIMULATOR radi savršeno

 
Pa ...

U VHDL posao, nije dovoljno da kod simulira perfectky, morate provjeriti da li je kod "Synthizable", što znači da je f se može staviti na FPGA ili pretvoreni u ASIC, mnogi synthsis alat za ovo ... Leonardo i većina nedavno precizni su primjeri

Sada mislim, kako bi FPGA čeka sve dok ne pritisnete 1??način na koji ste ga napisali sugerirati vuče, da petlja i provjeriti, ovo je dobra ako mikroprocesor dobro nose posao, ali ne postoje procesor!

Pokušajte koristiti ako umjesto čekati ", ako gumb ide onda ne ..."

Nadam se da to pomaže ..

 
To je kod za oponašanje računalom, a ne za FPGA.

First, let's pull unutrašnje petlje van i staviti ga u novom procesu.
Šifra:

proces

započeti

za j u 1 - 50.000.000 petlja

čekati do sat = '1 '

nsec <= nsec 1

end loop;

end process;

 
GREAT IT RADOVI
Ali to counter ide u ∞, želim ga za početak prebrojavanja nakon tipka je pritisnuta i prestati nakon 37 sekundi

Šifra:

entitet count1 je

Port (sat: u STD_LOGIC;

ključ: u STD_LOGIC;

žuta: out STD_LOGIC: = '0 ';

zeleno: out STD_LOGIC: = '1 ';

crveno: out STD_LOGIC: = '0 ';

pred: out STD_LOGIC: = '1 ';

pgreen: out STD_LOGIC: = '0 ');

kraj count1;architecture Behavioral of count1 je

signala s: integer range 0 - 50: = 0;

signala nsec: integer range 0 - 50.000.000: = 1;

započeti

proces (sat)

započeti

ako rising_edge (sat) tada

ako nsec = 5 onda - Stavio sam 5 i imati lakši kod pogodan za test (trebao bi biti 50M)

nsec <= 1;

s <= s 1;

drugi

nsec <= nsec 1;

end if;

end if;

end process;

end Behavioral;
 
Kada kodiranje u VHDL ili verilog, mislite o hardveru.Vi ste opisujući ponašanje hardvera.Razmislite o tome što signali rade, ne razmišljaju o tome kako je izvršiti petlja.

Kada uhvatiti ove filozofije, bit ćete gospodar FPGA razvoj.

Na početku je svibanj izgledaju isto, međutim, više VHDL stvari koje se više ne ćete biti svjesni da VHDL nije "softver", razvoj jezika, ali hardver.

 
Hammer111 wrote:

GREAT IT RADOVI

Ali to counter ide u ∞, želim ga za početak prebrojavanja nakon tipka je pritisnuta i prestati nakon 37 sekundi

 
Thanks for replys.Uspio sam dobiti "Krug VHDL dizajna s" od VA Pedroni.Ja ću proći kroz sve primjere.I ja sam riješio semafora.ONY Imam 3 upozorenja:
Šifra:entitet count1 je

Port (sat: u STD_LOGIC;

ključ: u STD_LOGIC;

žuta: out STD_LOGIC: = '0 ';

zeleno: out STD_LOGIC: = '1 ';

crveno: out STD_LOGIC: = '0 ';

pred: out STD_LOGIC: = '1 ';

pgreen: out STD_LOGIC: = '0 ');

kraj count1;architecture Behavioral of count1 je

signala s: integer range 0 - 50: = 0;

signala nsec: integer range 1 do 50.000.000: = 1;

signala x: std_logic: = '0 ';

signal y: std_logic: = '0 ';

započeti

proces (sat, ključ, x, y)

započeti

ako rising_edge (ključ), tada

y <= '1 ';

end if;

if ((key = '0 'i x = '1') ili y = '0 '), tada

nsec <= 1;

s <= 0;

drugi

ako rising_edge (sat) tada

ako je onda nsec = 50000000

nsec <= 1;

s <= s 1;

drugi

nsec <= nsec 1;

end if;

ako s> = 38 tada

x <= '1 ';

end if;

ako sec <38 onda

x <= '0 ';

end if;

if ((s <= 2) ili (s> = 34 sek i <= 36)) tada

žuta <= '1 ';

drugi

žuta <= '0 ';

end if;if (s> 2 sek i <= 36) a zatim

crvena <= '1 ';

drugi

crvena <= '0 ';

end if;if (s> 36) a zatim

zelena <= '1 ';

drugi

zelena <= '0 ';

end if;

if (s> 5 sec i <= 30) a zatim

pgreen <= '1 ';

pred <= '0 ';

drugi

pgreen <= '0 ';

pred <= '1 ';

end if;

end if;

end if;

end process;

end Behavioral;
 
Upozorenja neće spriječiti stvaranje učitavanje datoteke.I dalje ćete moći testirati svoj dizajn na pravim hardverom.

Ali, oni ne ističu potencijalne probleme.

Posljednja dva upozorenja vam reći da je zalihost, i to je bio optimiziran.

Prvo upozorenje ukazuje na Oddities signala "y".Kao što je objavljeno, y je postavljena na '1 'jednom, i nikad nije izbrisan natrag na '0'.

 
Hvala za pomoć

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

.Ti mi puno pomogao.

 
Bok,

bi u lice problem ako u simulaciju sa netlist vrata razini ... jer u imati koristi za inicijalizaciju za neke od signala koji je u redu za RTL-u simulaciju, ali sinteza alat zanemariti signale i inicijalizacija os u svibanj vidjeti različite rezultate u razini vrata netlist ..... pokušati provjeriti ur vrata razini simulacije

Pozdravi,
dcreddy

 
također prije pisanja VHDL koda, dobili dobru ideju različitih izjava koje se mogu sintezi, a koji ne može biti sintetiziran.ne pokušati implementirati algoritam sličan softver kod, analizirati algo, nacrtati shematski grubo.utvrditi kako se to algo pretvorit će se u hardver.obaviti svoj posao ispravno rad prije početka kodiranja.

 
kada se u HDL koriste kako bi opisali ur krug, držati logička vrata i povezati ideju na umu, to se ne softver, to mora ispunjavati pravila o hardveru

 
hi evrey jedan;

trebam neki VHDL Files oko 7 segment šalter (4 znamenke).i Moris Mano procesora i dizajn u VHDL.i bilo koje druge vrste ALU's su wellcom.

tnx svima

 

Welcome to EDABoard.com

Sponsor

Back
Top