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 

PAL-GAL osnove
Pojdi na stran 1, 2  Naslednja
 
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
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Mar 26, 2006 3:09 pm    Naslov sporočila:   Odgovori s citatom

GAL, pa bo samo en cip. Sicer pa takole na hitro mislim, da bo moralo iti z dvema ... bom malo preracunal.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Mar 26, 2006 3:38 pm    Naslov sporočila:   Odgovori s citatom

futuristic je napisal/a:
Najlepša hvala, res. Very Happy

Sem misli narediti z temi "vgrajenimi" logičnimi vezji, ker z gal/pal nisem še nikoli delal. Imaš mogoče kak dober link z osnovami. Predvsem me zanima, če rabim poseben programator ali bi se dalo to kar na roke, sprogramirat, npr. tako da bi peljal na 5V na določene kontakte?
PAL je tako poceni(30sit), da ni panike tudi če bi ena dva pokvaril preden bi mi uspelo. Smile

Lp,
Frenky


PAL ter GAL je tudi zame popoln tabu. Ne vem zakaj, ampak z tem nisem nikoli delal. Prebral sem edino kak datashet. Bil bi vesel, če bi kdo napisal nekaj osnov. Kaj o programatorjih/softweru (pred vsem kaj takega za samogradnjo). Pa tudi o samih "surovcih". Kaj se dobi, kaj je najboljše uporabit. Če bo tema zaživela, jo bom razdelil v novo z ustreznim naslovom.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Mar 26, 2006 4:33 pm    Naslov sporočila:   Odgovori s citatom

Brez konkretnih vprasanj je kar tezko kaj koristnega napisati - vprasajte, kar vas zanima.

Na hitro malo teorije:

PLD je cip, ki ima vhode in izhode, med njimi pa matriko "varovalk" (fuse) in logicnih celic (OR, inverter). S prekinjanjem povezav ("fuse") tako dobis na izhodu zeljeno logicno funkcijo, sestavljeno iz preprostih vrat. PAL je bil ocitno prvi PLD in ni prepisljiv, GAL (in podobni) pa so prepisljivi (uporabljajo EEPROM) in jih mocno priporocam namesto neprepisljivih ekvivalentov.

Delovanje PLDja opises v programskem jeziku (primer v tej temi). Obstaja vec razlicnih jezikov, za preproste PLDje kot so PALi/GALi pa se uporablja predvsem CUPL in Abel (za bolj kompleksne pa VHDL, Verilog in podobno). "Program" nato prevedes z orodjem in dobis "fusemap", ki ga programator zapece v cip.

Vsak soliden univerzalni programator podpira tudi PALe/GALe. Programiranje je relativno preprosto, zato obstaja tudi cel kup homemade programatorjev, ni pa tako enostavno, da bi samo malo posaril naokoli s 5V (bolj je podobno prvim mikroracunalnikom, ki so jih programirali s stikali). Za vec informacij o doma narejenih programatorjih :google:

Za izvedbo zgornjega primera (sicer resenega z dvema locenima cipoma) v CUPLu bi napisal naslednje:

Koda:

pin 1 = a;
pin 2 = b;
pin 3 = c;
pin 12 = izhod;

izhod = (a & !b) # (!a * b * c);


En klik da se program prevede, zagon programatorjevega SW, vstavitev GALa, programiranje in voila, 5 minut in namesto dodatne matematike in risanja vezic po plosci je problem resen v enem samem cipu, pa se vec kot pol vhodov, skoraj vsi izhodi ter vecina celic je ostala prostih za morebitne druge (bolj kompleksne) funkcije.

PLDji niso bavbav in za naslovne dekoderje in podobno saro so izjemno uporabni. Delujejo s frekvencami vecine mikrokontrolerjev (nekaj deset MHz), tako da ni tezav s hitrostjo in zato nadomestijo kup locenih cipov enake hitrosti.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Mar 26, 2006 4:46 pm    Naslov sporočila:   Odgovori s citatom

Sokrat, kaj torej predlagaš začetniku vzeti v roke. Mogoče navedeš konkreten čip, ki je dobavljiv pri nas. Lepo bi bilo, da bi za njega obstajal kak free prevajalnik.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Mar 26, 2006 5:03 pm    Naslov sporočila:   Odgovori s citatom

Pri nas je dobavljivo vse mogoce (sam poglej obe veliki trgovini z elektroniko, da ne bo spet jok in stok zaradi "reklamiranja" - obe imata iskalnik, v katerem za "GAL", "PAL", "PALCE" itd. pade ven precej zadetkov).

Jaz uporabljam najmanjse GALe v hitrejsi inkarnaciji (GAL16V8D-15), ker doslej se nikoli nisem porabil vseh pinov, hitrosti pa ni nikoli prevec Laughing Navijam za GALe (in ne za PALe ali slabse ekvivalente GALov drugih proizvajalcev), ker delajo zadovoljivo dobro, cene so razumne in jih je mogoce preprogramirati. Glej zgoraj omenjeno temo za komentarje o (ne)dobavljivih alternativah. PALi so stvar zgodovine, razen ce bi se sel masovno proizvodnjo.

Zastonjski prevajalnik je Atmelov WinCUPL, ki pride skupaj s simulatorjem. Med podprtimi cipi so sicer omenjeni samo Atmelovi, a gre za genericne komponente, ki so (preverjeno) med seboj kompatibilne - moj GAL 16V8D je tako mozno programirati z deklaracijo g16v8a, ki je alias za Atmelov ATF16V8B s seznama. Ker je izhod itak JEDEC, je vazno le da je "arhitektura" pravilna (od tega je odvisno kako bo zgeneriran fusemap), za vpis pa potem skrbi programatorjev algoritem oz. PLD sam, ce pozna "zdruzljivostne" nacine programiranja (preberi recimo Lattice-ov datasheet za kaksen GAL za vec informacij o zdruzljivosti s starejsimi algoritmi).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Ned Mar 26, 2006 5:46 pm    Naslov sporočila:   Odgovori s citatom

A jih še niso nehali proizvajati? Smile
Mi smo ravno letos pri predmetu Preklopna vezja (2.letnik UNI FE) delali z GAL-i in ne morem rečt, da bi jih kdo od nas ravno vzljubil (mogoče zato, ker smo funkcije morali na roko minimizirat in potem programirat na ta način, da smo vpisovali 1 in 0 na primerna mesta - kakšni programski jeziki niti omenjeni niso bili...).
Torej, kateri programski jezik/način programiranja bi mi svetovali, da bi jih malce preizkusil?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Mar 26, 2006 5:59 pm    Naslov sporočila:   Odgovori s citatom

Hahahahahahahahahahahaha Brick wall To je pa tako, kot ce bi mikrokontrolerje se vedno programiral s tabelo na papirju in stikali - saj bi slo Twisted Evil

Saj ne recem, tudi sam zagovarjam tezo, da bi ljudje, ki imajo bojda dokoncano racunalnisko solo, imeti vsaj nekaj pojma o delovanju naprav in o tem kako jih narediti manj slabo (ravno zato vedno sitnarim z optimizacijami vsega mogocega), ampak programiranje 0 in 1 na roke je pa precej mazohisticno pocetje. Saj gre, ce malo premislis kako stvar deluje (vsaka celica ima en normalen in en invertiran izhod, povezave v vrsti so AND, med vrstama pa OR, vse ostalo je pa osnovnosolska matematika), ampak vseeno je tako pocetje izguba casa - zato pa so napisali orodja Rolling Eyes

Za vec informacij beri visje, da ne bo potrebno vsakemu posebej ponavljati Wink
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Mar 26, 2006 8:26 pm    Naslov sporočila:   Odgovori s citatom

Sokrat,
Mogoče lahko pripneš kak primer kode s komentarji za tega GAL-a. WinCupl sem poinštaliral. Hardwera za programiranje sicer nimam, a lahko bi primer poskusil na simulatorju.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Mar 26, 2006 9:02 pm    Naslov sporočila:   Odgovori s citatom

Dva primera kode ze imas - en je v tej temi (funkcija, ki jo je bilo potrebno optimizirati; manjka sicer header, zaradi cesar bi ze WinCUPL pritozil, dovolj pa bi bila deklaracija cip, torej vrstica z Device), drugi pa v temi, na katero sem dal link v enem od prejsnjih postov. Koda je enostavna Boolova algebra, ki jo ze poznas iz sveta mikrokontrolerjev. V programu moras definirati Device (gal16v8-), pine (glej na to kot na deklaracijo enobitnih spremenljivk), ostalio je pa samo preprosta matematika. V primeru iz Iztokove teme imas vse - AND, OR, NOT, preverjanje stanja (ekvivalent == 1 oz. == 0 iz C-ja), manjka samo uporaba GALa kot registra, torej s clockom.

Zraven WinCUPLa sicer preide precej primerov ("examples"), spravljenih v direktoriju Examples.

Se nekaj navodil za uporabo simulatorja, da ne bos odkrival tople vode:

1: Za simulacijo potrebujes troje: program (ki se prevede), seznam vhodov in izhodov, ki jih bos simuliral in seznam testnih vektorjev.

2: Vhode/izhode dodas v simulacijo z gumbom Add Signal (levi v 3. skupini gumbov z leve). Dodaj tiste vhode/izhode, ki jih zelis simulirati, druge pa izpusti, ce te ne zanimajo (to sicer ni nujno, a bos imel pozneje manj dela, ce jih izpustis).

3: Doloci stevilo testnih vektorjev glede na stevilo vhodov in njihova mozna stanja. Kaj sploh je testni vektor ? Vektor kot vektor, vsaka komponenta vektorja pa predstavlja stanje dolocenega signala glede na zeljeni rezultat. Za funkcije, kjer PLD ne deluje kot register (vecina funkcij, tudi oba zgoraj omenjena primera), je stevilo vektorjev tocno enako 2^N, kjer je N stevilo neodvisnih vhodov od katerih je odvisen rezultat. Za primer iz Iztokove teme so tako stirje vektorji, saj gre v bistvu za simulacijo treh elementov hkrati - en inverter (zanj bi bila dovolj dva vektorja), en multiplekser in en demultiplekser.

4: Doloci testne vektorje; za vhode to pomeni, da jim nastavi vrednost na 0 ali 1 (zeleno; Drive Input Low/High), za izhode pa na to, kar zelis od njih - zelis jih testirati (L ali H; Test Output Low/High, ali pa njihovo delovanje samo simulirati (*; sSimulator Determined). verjetno bos uporabil zadnjo moznost, sploh pri tako preprostih funkcijah, in potem rezultate simulacije primerjal s pricakovanji (kar sicer naredi tudi Test Output, ampak tam moras vsako stanje dolociti posebej, za Simulator Determined pa lahko dolocis za vse vektorje z enim klikom in si prihranis nekaj dela).

5: Klikni na Simulate oz. Compile/Simulate in obcuduj rezultate (4. skupina gumbov z leve).

Spodaj je prilozena slika simulacije (pred klikom Simulate) za program iz Iztokove teme. Ko kliknes Simulate, dobis stanja izhodov glede na vhodne podatke. Juhej.



WinSim.jpg
 Opis:
 Velikost datoteke:  73.94 KB
 Pogledana:  68 krat

WinSim.jpg


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



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Mar 26, 2006 9:12 pm    Naslov sporočila:   Odgovori s citatom

Aja, pa se to ... tema je ze davno odtavala stran od optimizacije tiste funkcije z 74* cipi Rolling Eyes Najbrz si zasluzi delitev, da lahko gre vsak konec po svoje.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
lucca brassi
Član
Član



Pridružen-a: Ned 01 Feb 2004 12:46
Prispevkov: 4223
Aktiv.: 17.83
Kraj: KOČEVJE

PrispevekObjavljeno: Pon Mar 27, 2006 3:02 pm    Naslov sporočila:  re Odgovori s citatom

No ja zdaj sem pogruntal kar sem se učil na faksu Twisted Evil Twisted Evil bolje zdaj kot nikoli.

Mi smo šli malo obrnjeno . Imeli smo logično vezje za katerega smo sumili da je nekaj narobe . Potem smo generirali vhodne vektorje in čakali kaj se pojavi na izhodu - ene vrste black box . Tako smo testirali neko logično vezeje Tista napaka bi v tem primeru predstavljala napačno postavljeno varovalko -recimo
Nikoli pa nismo zapekli kakega čipa ampak smo vse delali na VHDL simulatorju.

Ma za programirat jaz nikoli nisem bil kak gizmo Wink

Potem so ti Xilinx procesorji kombinacija mikroprocesorja s spominom in logičnim vezjem v obliki GALa?

LP

_________________
Moments before detonation ,....... TT
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Pon Mar 27, 2006 3:34 pm    Naslov sporočila:   Odgovori s citatom

Nisem se slisal za Xilinxove procesorje - najbrz imas v mislih CPU, izveden v njihovem FPGAju ? Vecji PLDji (kot so npr. FPGAji) so "nabildana" verzija malckov kot je PAL/GAL - bistveno vec vhodov in izhodov in bistveno vec celic. Isto kot lahko znotraj malega PLDja delas interne (povratne) povezave, jih lahko tudi v vecjem. Na tak nacin iz med sabo povezanih logicnih vrat sestavis CPU in periference enote, enako kot bi to lahko naredil iz locenih komponent (ravno zadnjic sem naletel na eno stran, kjer je mozak sestavil svoj racunalnik izkljucno iz 74* komponent in podobne sare - mislim, da se lahko celo telnetas nanj Applause ).

FPGAji imajo ponavadi SRAM, v katerega se DL "program", saj 100 vpisov ne bi zdrzalo prevec dolgo med debuggiranjem kaksnega procesorja, dekoderja ali cesa podobnega.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Ned 19 Sep 2004 22:04
Prispevkov: 16777193
Aktiv.: 70819.71

PrispevekObjavljeno: Pon Mar 27, 2006 3:36 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lucca brassi
Član
Član



Pridružen-a: Ned 01 Feb 2004 12:46
Prispevkov: 4223
Aktiv.: 17.83
Kraj: KOČEVJE

PrispevekObjavljeno: Pon Mar 27, 2006 3:47 pm    Naslov sporočila:  re Odgovori s citatom

Ja sokrat točno to FPGA . Uf SILICA ima seminar Smile , bi blo za it malo poslušat

http://lniv.fe.uni-lj.si/silica0306.html

sicer tu se dobi dosti predavanj v pdf tako za začetek da veš za kaj se gre

http://lniv.fe.uni-lj.si/education.html

je pa kriza če s tem ne delaš in pozabljaš

_________________
Moments before detonation ,....... TT
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Pon Mar 27, 2006 4:05 pm    Naslov sporočila:   Odgovori s citatom

Boris, nisem imel linka med favourites, sem ga pa zdajle spet nasel (naslov je precej ociten, hecno da sem tako rec pozabil Laughing ): http://www.homebrewcpu.com/
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
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group