FPGA/CPLD atd.
Petr Tosovsky
PetrTosHW@PTmodel.cz
Čtvrtek Září 8 13:37:20 CEST 2005
Ano na google je toho dost, ale vetsinou to hazelo odkaz na knizku, kterou
je treba si koupit (a to docela odradi :o) ), ale pridanim toho slovicka
pdf do vyhledavace pomohlo. Myslim, ze tohle by mohlo byt to co potrebuji.
http://www.fm.vslib.cz/~kes/data/vhdl_ref.pdf
Jinak dik vsem za odpovedi, je mi to jasnejsi, ale ne jasne. Snad na to
prijdu az prectu datasheety od Spartanu 3 a CoolRunneru II. Kazdopadne
nerozumim pojmu synchronni navrh. Vim jak to vypada u klasicke logiky, ale u
PLD netusim.
MCU.cz by se na tuhle problematiku mohlo mrknout, urcite by to neskodilo.
Mozna az to trosku nastuduju, tak bych na to mohl neco napsat jako z pohledu
novacka, aby to ostatni meli lehci.
Jinak bych jeste chtel podotknout na co to vsechno vlastne potrebuju. Chtel
bych zkusit udelat neco jako digitalni osciloskop a ve velice kratke dobe
jsem si uvedomil, ze ani s uP od Silabsu se 100MIPS to jaksi nestihnu dostat
na nejaky slusnejsi vykon. Kouknul jsem jen tak zbezne na ARMy, ale to mi
nic nereklo, tak jsem na doporuceni p. Pecha pres forum MCU (myslim, ze se
tu taky pohyboval) zvolil naucit se pracovat s FPGA, bohuzel se do toho CPLD
nejak pripletlo a jsem z toho porad zmateny. Kdyz si tedy vezmu, ze
potrebuji vytvorit mezistupen mezi vykonnym uP a ADC, ktery obstarava ADC z
hlediska casovani a uklada data z nej do RAM (uvazoval jsem z hlediska ceny
pouzit DDR moduly z PC) a pak pro uP zprostredkovaval data o ktera si rekne
a popripade je zpetne od uP dokazal zobrazit na VGA monitoru, tak byste
vybrali co? Podle toho co jste vsichni napsali, tak to pro me vede na FPGA
(rad bych pouzil Spartan 3, protoze mam na nej ten kit jak jsem psal), ale
treba jsem to spatne pochopil. V te knize se taky psalo, ze CPLD maji mensi
zpozdeni pruchodu signalu svoji strukturou, ale FPGA ma dostatecne vysoke
pracovni kmitocty, takze mi to asi nebude vadit, pravdepodobne jde asi o to
ze se v pripade slozitejsi funkce pouzije moc bunek a je to pak pomalejsi
coz u CPLD nehrozi, protoze jich tam zas tolik neni :o) (jen tip).
Peknej den
Tosa
PS: Omlouvam se za tak pomalou reakci, ale maily do konfery se mi porad
vraceji s chybovou hlaskou z cbl.abuseat.org, ale spravce site tady nevi co
s tim a tak to nechava jen tak v klidku byt.
-----Original Message-----
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
Behalf Of MK
Sent: Thursday, September 08, 2005 10:31 AM
To: HW-news
Subject: Re: FPGA/CPLD atd.
Rozdilu je mnoho a jednoduse je popsat snad ani nejde. Obecne asi lze rict,
ze CPLD
je vhodne jako rychla nahrada jednodussi relativne nemenne sekvencni a
kombinacni logiky
kdezto FPGA jsou urceny predevsim na slozitejsi, treba i za behu
reprogramovatelne funkcni
bloky. Dalsi rozdil je v technologii konfigurace - CPLD pouzivaji EEPROM
bunky, FPGA
bunky zalozene na SRAM - obe varianty maji sve vyhody a urceni.
K vlastnimu programovani
Uvedom si, ze program zapsany v nekterem HDL jazyku je v podstate jen
abstraktni popis
pozadovane funkce
Predstav si treba, ze mas sestavit obvod jehoz funkce je popsana rovnici
x = (a AND b) OR (c AND d)
nic jednodussiho, vezmes dve hradla AND a jedno hradlo OR (2/4 z 7408 a 1/4
z 7432)
Ale muze se stat, ze zadani je doplneno o podminku, ze muzes pouzit jen
jeden typIO
tak se chvilku zamyslis a prepises rovnici do jineho tvaru
x = (a NAND b) NAND (c NAND d)
pri realizaci nyni muzes pouzit prave ten jediny IO (3/4 7400)
A co tim chtel basnik rici - ke stejnemu vysledku se muzes dopracovat mnoha
ruznymi cestami
zalezi jen na vstupnich podminkach a pozadovane funkci. V pripade
programovatelne logiky
mas dane vstupni podminky pouzitym obvodem - v kazdem programovatelnem
obvodu
mas mnozstvi BUNEK jejiz vstupy a vystupy jsou propojeny. Nekdy bunka
obsahuje jeden KO,
ekdy je jich voce. Nekdy je propojeni vytvoreno pomoci komplexni matice,
nekdy jsou bunky
shlukovany do vetsich celku, a ty jsou vzajemne propojeny. Nekdy obsahuji
obvody ruzne
specializovane druhy bunek. To jake bunky jsou, co obsahuji a jak je
propojena s ostatnimi je dano
vyrobcem a typem obvodu.
HDL (Hardware Desription Language) jazyku existuje cela rada - VHDL,
Verilog, ABEL, specificke
mutace vyrobcu. Obvod lze popsat v jazyku C, schematem, vyvojovym diagramem,
pravdivostni tabulkou.
Moznosti jsou desitky. V Evrope je rozsiren VHDL, v USA zase Verilog. Pro
jdnoduche navrhy CPLD
je idelani ABEL - je jednoduchy, rychle pochopitelny a dovoluje udrzet
"abstrakci" na urovni blizke HW.
Pri srovnani s beznymi prog jazyky je ABEL je na urovni assembleru, VHDL
zhruba odpovida Packalu
a Verilog jazyku C.
I kdyz jsem mnohokrat psal, ze navrh pomoci schematu je proti popisu HDL
pomaly a nepruzny,
tak tomu tak nemusi byt vzdy. Editory schemat obsazene ve volne dostupnych
navrhovych prostredich
vyrobcu PLD jsou jen takove obezlicky s nepohodlnym ovladani. Existuji vsak
konvertory netlistu
z kvalitnich schematickych editoru (Orcad, PADS, etc), ktere maji jak
propracovane ovladani,
tak mnozstvi knihoven s obecnymi funkcnimi bloky pouzitelnymi s konkretnimi
PLD obvody
Krome ISE WebPacku existuje samozrejmne rada dalsich prostredku :-)))))
http://www.google.com/search?hl=cs&q=free+hdl+development+tools&btnG=Vyhleda
t+Googlem&lr
najde cca 500k odkazu :-))))
Existuji stovky, ba tisice knih venovych programovatelne logice, pohrichu v
cestine vysla prvni a posledni
pred cca 15 lety a skoncila nekde u GALu :-(
http://www.google.com/search?hl=cs&c2coff=1&q=hdl+book+pdf&btnG=Hledat&lr
najde cca 200k odkazu
Problematice programovatelne logiky se nevenuje v domene .cz zadny web, na
www.mcu.cz
sice vysel popis ABELu a castecne i VHDL, ale nestiham a nema na to nejak
cas :-(
S pozdravem
MK
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list