www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

vhdl pomoč

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> FPGA in CPLD programabilna vezja
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
maxwell
Neznanec
Neznanec



Pridružen-a: Ned 08 Jan 2012 14:48
Prispevkov: 7
Aktiv.: 0.05
Kraj: Kranj

PrispevekObjavljeno: Ned Jan 08, 2012 4:06 pm    Naslov sporočila:  vhdl pomoč Odgovori s citatom

Zdravo, prosil bi za pomoč pri nalogi:

V vhdl moram opisati delovanje sinhronega števca po modulu 5 (0,1,2,3,4,0,1...) (s stavkoma process in if...then)


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity stevec is
Port ( clk : in STD_LOGIC;
q : out STD_LOGIC_VECTOR(1 downto 0));
end stevec;

architecture Behavioral of stevec is

begin
process()
begin
if (clk'event and clk='1') then
q<=q+1;
end if;

end process;

end Behavioral;


Nekaj kode imam že podane le kar je krepko napisano sem dopisal. Ne vem ali je prav? In če imam modul 5 a ne potrebujem potem tri spremenljivke, v nalogi je pa q definiran kot dve spremenljivki..
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RUros
Član
Član



Pridružen-a: Čet 09 Mar 2006 22:26
Prispevkov: 1030
Aktiv.: 4.69

PrispevekObjavljeno: Ned Jan 08, 2012 4:43 pm    Naslov sporočila:   Odgovori s citatom

Verjetno si že sam ugotovil, da ti koda verjetno ne dela oz. se pravilno ne prevede. To je zato, ker je q definiran kot izhod, v priredilnem stavku pa ga uporabljaš tudi kot vhod. Če želiš tako zapisati, moraš uporabiti spremenljivko tipa "signal". npr.:
Koda:
signal q: std_logic_vector(1 downto 0)

Kasneje pa izhodu to vrednost prirediš: izhod<=q (to stori izven procesa).
Kodo si sicer pravilno zapisal, povedati moraš še kdaj se ti naj števec resetira. Torej znotraj tvojega procesa v katerem povečuješ števec, vedno tudi poglej, kdaj je števec enak 5 in ga, če je enak 5, tudi pobriši na 0. Tako boš dobil štetje po tvojem modulu.
Opozoriti pa te moram, da si definiral tvoj izhodni signal q kot dvobitni števec in boš z njim štel lahko z največ do 4. Tako da ta vektor ustrezno povečaj (2 downto 0).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
maxwell
Neznanec
Neznanec



Pridružen-a: Ned 08 Jan 2012 14:48
Prispevkov: 7
Aktiv.: 0.05
Kraj: Kranj

PrispevekObjavljeno: Ned Jan 08, 2012 6:25 pm    Naslov sporočila:   Odgovori s citatom

aha, hvala

sedaj sem popravil kodo vendar mi še vedno javi napako in ne morem odkriti kaj je narobe (mogoče prazen oklepaj pri process?)..

Line 33. parse error, unexpected CLOSEPAR, expecting IDENTIFIER or STRING_LITERAL
...
architecture Behavioral of stevec is
signal a:std_logic_vector(1 downto 0);
begin
process() -- line 33
begin
if (clk'event and clk='1') then
a<=a+1;
else if a='5' then
a<='0';
end if;
end process;
q<=a;
end Behavioral;
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.96
Kraj: Celje

PrispevekObjavljeno: Ned Jan 08, 2012 6:28 pm    Naslov sporočila:   Odgovori s citatom

Sintaksa za else if v VHDL je elsif.
EDIT: Pa Clock dodaj v sensitivity list -> Process(Clock)

_________________
http://www.rielektronika.comule.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RUros
Član
Član



Pridružen-a: Čet 09 Mar 2006 22:26
Prispevkov: 1030
Aktiv.: 4.69

PrispevekObjavljeno: Ned Jan 08, 2012 7:55 pm    Naslov sporočila:   Odgovori s citatom

tozir je napisal/a:
Sintaksa za else if v VHDL je elsif.
EDIT: Pa Clock dodaj v sensitivity list -> Process(Clock)


Tako je, če napišeš tako:
Koda:
if pogoj then
                                         naredi nekaj;
                                      elsif pogoj_2 then
                                         naredi drugo stvar;
                                    end if;

Potem imaš na koncu samo en end if, drugače pa moraš vsak if stavek posebej zaključiti kar zna biti zoprno pri daljših zapisih:
Koda:
if pogoj then
                                         naredi nekaj;
                                      else if pogoj_2 then
                                              naredi drugo stvar;
                                            end if;
                                    end if;


V občutljivostno listo pa dodaj clock kot je omenil tozir. Pa prevajalnik ti bo verjetno javil error tudi tam ko gledaš kdaj je a='5', ker nikoli ne bo, ker je to 2 bitni vektor in je lahko maksimalno 4.
Aja, pa še to: pred začetkom procesa (točneje pred besedo process(clock)) moraš nekako poimenovati ta proces (znak in potem dvopičje). Za primer:
Koda:
P1: process(clock)
begin
.......
end process;
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.96
Kraj: Celje

PrispevekObjavljeno: Ned Jan 08, 2012 8:20 pm    Naslov sporočila:   Odgovori s citatom

Glede na to da ima samo en proces (zaenkrat), mu ni treba dodajati imena. Sicer pa priporočam pri veliko procesih dodati na koncu:
end process ime_procesa;

_________________
http://www.rielektronika.comule.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
maxwell
Neznanec
Neznanec



Pridružen-a: Ned 08 Jan 2012 14:48
Prispevkov: 7
Aktiv.: 0.05
Kraj: Kranj

PrispevekObjavljeno: Ned Jan 08, 2012 8:50 pm    Naslov sporočila:   Odgovori s citatom

tako sedaj pa je koda brez napak, hvala

še nekaj, ker google kar veliko najde o vhdl-u, me zanima če je kakšna spletna stran ali knjiga ki jo še posebej priporočate. Hvala:)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RUros
Član
Član



Pridružen-a: Čet 09 Mar 2006 22:26
Prispevkov: 1030
Aktiv.: 4.69

PrispevekObjavljeno: Ned Jan 08, 2012 9:06 pm    Naslov sporočila:   Odgovori s citatom

Ja obstaja tudi kar nekaj literature, v slovenščini pa jo lahko dobiš na FE jo je letos v prenovljeni verziji izdal prof. Andrej Trost. Točnega naslova knjige ne vem, je pa nekaj v smislu uvod v VHDL ali nekaj podobnega.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9406
Aktiv.: 42.36
Kraj: Kranj - struževo

PrispevekObjavljeno: Ned Jan 08, 2012 9:11 pm    Naslov sporočila:   Odgovori s citatom

Tu poišči literaturo:
http://lniv.fe.uni-lj.si/

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
tozir
Član
Član



Pridružen-a: Pon 17 Mar 2008 19:10
Prispevkov: 187
Aktiv.: 0.96
Kraj: Celje

PrispevekObjavljeno: Ned Jan 08, 2012 9:34 pm    Naslov sporočila:   Odgovori s citatom

Za samo sintakso zadnje čase precej uporabljam Language templates v Xilinx ISE WebPack.
_________________
http://www.rielektronika.comule.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
kornjace
Član
Član



Pridružen-a: Pon 05 Sep 2011 23:26
Prispevkov: 421
Aktiv.: 2.75
Kraj: Goriška Brda

PrispevekObjavljeno: Ned Jan 08, 2012 10:31 pm    Naslov sporočila:   Odgovori s citatom

pozdravljeni,

mene samo zanima kak program vi uporabljate (ali priporočate) za kompajlanje kode VHDL?

Lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sadida
Član
Član



Pridružen-a: Pet 17 Apr 2009 12:53
Prispevkov: 636
Aktiv.: 3.49
Kraj: Zasavje

PrispevekObjavljeno: Ned Jan 08, 2012 11:13 pm    Naslov sporočila:   Odgovori s citatom

RUros je napisal/a:
Ja obstaja tudi kar nekaj literature, v slovenščini pa jo lahko dobiš na FE jo je letos v prenovljeni verziji izdal prof. Andrej Trost. Točnega naslova knjige ne vem, je pa nekaj v smislu uvod v VHDL ali nekaj podobnega.


Načrtovanje digitalnih vezij v jeziku vhdl Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9406
Aktiv.: 42.36
Kraj: Kranj - struževo

PrispevekObjavljeno: Ned Jan 08, 2012 11:25 pm    Naslov sporočila:   Odgovori s citatom

Za Xilinx - ISE WebPack.
Ostali proizvajalci čipovja imajo svoja orodja oz. "toolchain".
Ker ne gre samo za kompajlanje, ampak je postopek mnooogo bolj kompliciran da zadeva na čipu "špila".
Če je projekt malo bolj obsežen, lahko celotno prevajanje traja tudi 15 minut ali več.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
kornjace
Član
Član



Pridružen-a: Pon 05 Sep 2011 23:26
Prispevkov: 421
Aktiv.: 2.75
Kraj: Goriška Brda

PrispevekObjavljeno: Ned Jan 08, 2012 11:47 pm    Naslov sporočila:   Odgovori s citatom

ok. hvala
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> FPGA in CPLD programabilna vezja Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group