 |
Mikrokontroller & FPGA
 Tervezek tervezni egy mikrokontrollerrel és FPGA-val megáldott kis panelt, amit PC USB portra lehet kötni.
Egyfajta gyakorló panel lenne.
AVR mikrokontroller: assembly, C, BASIC programozás.
XILINX FPGA: VHDL, Verilog programozás.
No meg maga a hardver...
NYFT rendszerben gondoltam, ha van rá igény
(NYFT = Nyílt Fej Törés)
Kapcsolási rajztól a nyáktervezésen keresztül az élesztésig majd a programozásig.
Van rá igény?
Ui.: nem magam.. |

Van valami fejlemény?  |
Ezzel mindenképpen legyen valami, tökre játszadoznék egy kicsit ilyennel
Sőt szerintem még pár haveromat is érdekelné |
+1, nagyon várom  |
Okééé!
Várok türelemmel.  |
Na, most mi van?
Meg vagyok.
Nem halt el.
0-ról szeretném szájbarágósan "dokumentálni" a projectet.
0-ról, vagyis a nyáktervezéssel együtt.
Én magam nem ingyenes nyáktervezőt használok. Nem volna túl szerencsés egy nyílt projecthez használni.
Ha lesz egy kis időm, akkor szétnézek a free tervezők közt...  |
Hali!
Nem tudom mit szólnátok a következő ötlethez:
Egy USB-vel csatlakoztatható mikrokontrolleres, FPGA-s panelt kellene tervezni/fejleszteni. Szerintenm egy csomó mindenre lehetne használni.
Egyfajta gyakorló panel lenne.
AVR mikrokontroller: assembly, C, BASIC programozás.
XILINX FPGA: VHDL, Verilog programozás.
No meg maga a hardver...
NYFT rendszerben gondoltam, ha van rá igény
(NYFT = Nyílt Fej Törés)
Kapcsolási rajztól a nyáktervezésen keresztül az élesztésig majd a programozásig.
PERSZE AZ LENNE A TUTI, HA KisJ-T MEGSZEREZHETNÉNK PROJEKTVEZETŐNEK.
Ez szerintem tök jó ötlet!
Na, most mi van?  |
"Ilyen meggondolás alapján egy 64 bites CPU 64 bites oprendszerrel és 64 bites alkalmazással 2x gyorsabban kellene hogy megoldjon egy egyenletrendszert a 32 bites párjához képest. De sajnos nem oldja."
-Sima gépen sokkal több megkötés van:
64bites regiszterek csak "nagyobb számok", persze van olyan, hogy SIMD azaz pl. többször kevesebb bitnyi adaton ugyanazon művelet megvalósítása és ezzel megoldani egyenletrendszert tényleg x-szer gyorsabb, mint kevesebb bitesen. A probléma az hogy ezeket a spéci utasításokat a "sima" fordítók nem támogatják rendesen...De azért van ilyen!
-Más: Van a párhuzamosság is, azaz több mag számol. Sima programoknál ez se jár x-szeres sebbességnövekedéssel, ahol x az egységek száma, de nagyon sok numerikus módszer jól párhuzamosítható, ezeknél x-szeres mínusz epszilon sebességnövekedés simán várható(epszilon a kommunikáció)
Ha jól érzem pl. egy LU, Cholesky, stb. felbontás mind párhuzamosítható több egységre mind pedig SIMD-re, hogy kihasználják-e vagy sem az a kérdés csak...
-Nem tudom ismered-e a pvm nevű rendszert példának okáért(Parallel Virtual Machine). Ez egy nyíltforrású(ingyenes!) üzenetküldésen alapuló virtuális gép, az a lényege hogy x db kis pc-ből(tetsz. gépből amin fut pvm-démon) csinál egy nagyot és azon pont ilyesmiket szoktak számolni amiről beszélsz. Nálunk ezt tanítják is az egyetemen, meg a párhuzamos programozás elméletét is. Hogy konkrét példát is mondjak: részecskefizikai számolásokat például konkrétan tudom hogy szoktak így számolni(pl. nálunk az ELTE-n is, sőt elvileg be is lehet kapcsolódni ebbe, bár most minden áll, mert CERN-nél épp javítgatnak...)
Ja és ehhez van C,C++ és Fortran library, mármint a pvm-hez!
-Általában azzal van tehát gond hogy viszonylag kevesen értenek ezekhez a dolgokhoz ma még, na meg sokszor fizetősek a tényleg jó fordítók(mármint pc-re pl. ami vektorműveleteket kioptimalizálja magától, hááát...). Na meg ha beteszel plusz 2 magot egy gépbe és megduplázod a bitek számát egy darab program se lesz gyorsabb, azokat eleve úgy kell írni hogy támogasság rendesen a párhuzamosságot(amihez nem csak újrafordítani de újraírni is kell mindent!). Persze erre is van kivétel ma már, mert ha rendesen elterjednének a funkcionális nyelvek(amikben nincs értékadás és minden függvény ), akkor elég lenne újrafordítani, mert "magától" megoldaná a párhuzamosítást. Ezek most kezdenek felfutni, de még van annyi overheadjük, hogy nem éri meg csak bizonyos alkalmazásoknál használni őket, megadott célokra...
Bocs mindenkitől hogy ennyi fél-offot ideírtam, de fel akartam hívni a figyelmet, hogy ennek tényleg van értelme szerintem(és ha már próbálkoztak ezzel akkor mások szerint is, igazából már sejtettem hogy ez már másnak is eszébe jutott...)
mttamas-nak meg ajánlom a pvm-el barátkozást, ha sokezres mátrixokat akar szorozni/bontani, mert az párhuzamosítható(kérdés a kommunikáció többe kerül-e hogy megéri-e). Ha nem tetszik ez a megoldás és még mindíg PC-be gondolkozol akkor érdemes esetleg a videókártyával számolnod(majd lesz OpenCL és hasonló, akkor zsírkirály módon, egyelőre meg trükközéssel), mert a mai vga-k nagyon jók tudnak lenni a tudományos/párhuzamos számolásokban is, nem csak játékra...
-Na tényleg jó lenne megvalósítani egy ilyet, ki lehet próbálgatni ilyeneket is, meg lehet hardverezni is. Olyan fura helyzetben vagyok hogy mind2 érdekel egy kicsit így én rajongok az ötletért
ui.: A rendszerbuszt meg természetesen lehet úgy csinálni hogy sokbites legyen a ramod is, mondjuk fogsz két 32bites modult és az alsó 32 bitet egyikbe, a felsőt a másikba vezeted be oszt csókolom....
ui2.: Nem akarok funkprog-nyelvet implementálni a rendszerere meg optimalizáló algoritmusokat, csak kíváncsi vagyok maga az alapja hogy működne, na meg "összeheggesztgetni" a hardvert és játszadozni vele, aztán később jöhet a bonyolítás ha tényleg kedve lesz az embernek...
ui3.: A vázolt FPGA+Proci géppel SIMD-féle párhuzamosságot és simafélét is lehet csinálni szerintem(amíg van elég hely), sőt ezeknél összetettebbeket is hisz mindent te mondasz meg hogy legyen(megkötések azért vannak gondolom). Viszont én nem arra akartam utalni hogy nekünk konkrétan valami ilyen überbrutálszámításra használható lenne amit mi itt építeni akarunk mert szerintem ez nem lenne igaz, viszont érdekes lehet ezeket megnézni, hogy ilyen szinten mit érne el valaki, na meg ez az eszköz sok egyébre is használható lenne, nem kell erőltetni ezt a számolósdit, én ezt a részét inkább kíváncsiságból nézném meg(aztán ha valami értelmesre is jó lenne akkor még pluszba örülnék mint majom a farkának
ui4.:
Csak még1X a félreértések elkerülése végett:
"16x gyorsabban fognak "számolódni" a lebegőpontos műveletek??
Nem hinném. "
Elméletileg igen, ez lehetséges megfelelően" nagy" hardverrel, persze azért ez a szélsőséges eset ami csak néha működik, ám ne keverd össze ezt a többitesedést azzal, ami mondjuk az x64 és a sima 32bites proci között van, mert ott főként arról van szó hogy "nagyobbak a számok" na meg nagyobb a címtér, ilyesmi. Viszont ha azt nézed hogy mátrixokat sima 32bites gépi utasításokkal vagy SSE-vel(SIMD-technológia ami valószínüleg van a gépedbe!) csinálod ott lehet kb. 4-szeres gyorsulás!  |
+1  |
Kösz a választ...
Azt értem, hogy csinálhatok az FPGA ban 16x szélesebb buszt, de gondolom ehhez olyan párhuzamosan címezhető külső SRAM modul is kellene ami 16x szélesebb adatbuszon elérhető, 4 bittel hosszabb címekkel. Van ilyen?
És önmagában attól, hogy 16x szélesebb a busz
16x gyorsabban fognak "számolódni" a lebegőpontos műveletek??
Nem hinném.
Ha mondjuk én olyan nagyon nagy integer számokkal akarnék számolni, hogy szükségem lenne egy 32*16 = 512 bites integer típusra, akkor azokkal biztosan 16x gyorsabban számolna mint egy 32 bites busszal, de pl. a PCnél megszokott 8byteos double lebegőpontos számoknál mi a helyzet?
Ilyen meggondolás alapján egy 64 bites CPU 64 bites oprendszerrel és 64 bites alkalmazással 2x gyorsabban kellene hogy megoldjon egy egyenletrendszert a 32 bites párjához képest. De sajnos nem oldja.
Valószínűleg csak csak nem működne ez a végeselemes "modul"... mire letöltenék mondjuk 30Gbyte-os egyenletrendszert USB-n, meg a 'programot' hozzá és mire kiszámolja...
ha számottevően gyorsíthatna egy ilyen külső egység, vélhetőleg lenne ilyen a piacon, mert a végeselemes analízis témája szinten minden mérnöki területen valamilyen szinten alkalmazásra kerül. Vagy van is ilyen külső egység???
 |
Egy célgépben megvan arra a lehetőséged (mármint a hardver kialakítása során), hogy változtass a megszokott architektúrán. Ezt azért bocsátom előre, mert pl. a mátrixszámításnál a memóriához történő hozzáférések sebessége a korlát. Itt viszont szélesítheted kedvedre az adatbuszt.
Az FPGA-ban kialakíthatsz pl. 16 aritmetikai művet regiszterkészlettel, és az adatbuszt is 16X szélességre veszed. Ezéltal ténylegesen 16X sebességgel tudsz számolni. Az órajeled persze az életben nem lesz 3Ghz, viszont nincs utasításlehívásod sem. Magyarul nagyságrendileg az egy aritmetikában végzett művelteid száma azonos lesz az alaplapiéval. Na ezt kell szoroznod (pl.) 16-tal.
Hardver nagyon(!) leegyszerűsítve: van két portod. Az egyiken átküldöd az adatokat a panel memóriájába. A másikon átküldöd az FPGA 'programját' a panel flash-RAM-jába. Nyomsz a panelre egy SW reszetet, aminek hatására az újrainduló FPGA betölti a flash-ben talált 'programot', aztán elkezdi a dolgát. A történet végén USB-n a panel memóriájából visszatöltöd az eredményeidet.  |
Mint korábbi hozzászólásomból kiderült az FPGA-k lelkivilágával csak nagyon érintőlegesen vagyok tisztában, de hozzászólásod alapján kérdezném, hogy lehetséges-e hogy egy ilyen külső FPGA-s cuccossal egy elég nagy (mondjuk 1e7 ismeretlennel) lineáris egyenletrendszert (végső soron ez is mátrixszámítás) gyorsabban lehessen megoldani mint egy gyors asztali PC-vel? Az időbe persze az FPGA felprogramozása ill az adatok "visszanyerése" is beleszámítana. A végeselemes számításoknál jól jöhetne egy ilyesmi. Most pl. egy közepes épületmodellen is elszámolgat akár egész éjszaka a gép.
Az FPGA-t ilyenkor 1x kell csak "programozni" generálisan LU típusú mátrixfelbontás/ visszahelyettesítésre, vagy pedig minden egyenletrendszer más "programot" igényelne?
No elnézést mindenkitől, ha hülyeségeket kérdezek.  |
A kettes pontra: Igen, igen. Évekkel ezelőtt volt olyan elképzelése processzorgyártóknak, hogy FPGA-val bővítenék a processzorokat. A gyakran használt rutinokat (nagy számítási igényűeket) ide fordítaná a fordító. Ma hasonlóképpen a videoprocesszorok aritmetikájának közhasználatba vételét erősítik.
Engem egyébként éppen ez az alkalmazás-típus érdekelne. Mármint az USB-n célprogramozott gép.
a. Hosszú számokkal végzett műveletek
b. Mátrixszámítás
c. Kombinatorikai feladatok kiértékelése  |
AT90USB1287 microcontroller.Már használtam:)  |
PIC es ARM nálam nem igen játszik.
Egyszerű feladatokra a atmega128, ha az nem elég akkor ADSP.
Persze ez csak az én véleményem.
Nincs objektív oka, így alakult...
 |
Szia,
USB FTDI kihagyása miatt nem kell Xilinx.
PIC-nél van már beépitett USB, meg ugy az ARM-ok 99% -ban van USB.
pl. AT91SAM, mscbp-nél 700 ft.
Az ötlet egyébként jó....  |
Ha xilinx akkor nem az fpga-t kell irni hanem a kulso flast-t 4 szal droton megoldhato.
 |
+1 támogató...
Szerintem jó ötlet, nagyon örülni tudnék egy ilyennek!!!!!
1) Amúgy a fent leírt architektúrával szerintem csodás dolgokat lehetne csinálni(bár nem értek hozzá, főleg FPGA-hoz), például megoldható lenne valahogy az, hogy a mikrokontroller tudja az FPGA-t felprogramozni?
Ezt úgy értem, hogy akár egy kész rendszert összerakok és az "magát" át tudná írni mert leállítaná az FPGA-t majd a Mikrokontorller szépen átírná és ha végzett akkor újra "bekapcsolná" az FPGA-t. Azaz egy olyan gépet akarnék ami runtime tudja saját magát "írni"(mintha runtime változtatható utasításkészletű számítógépem lenne).
Ha ilyet tudnék belőle csinálni(nem elsőre, csak nagyon sokadszorra!), akkor piszkosul érdekelne a dolog(de ha nem, még akkor is )
2) Amúgy valaki látott már olyan rendszert amit fentebb vázoltam? Szerintem tök király ötlet mert minden program indulásakor át lehetne írni az FPGA-t egy program számára optimális célgéppé(sőt tfh. egyszer a fordító tudná már ezt mondjuk) |
Gondolhatod, hogy gyakorlo panel viszonylatban a virtex csak ironia.
spartan 2 v. 3 ami szoba johet...
max tqfp208 tokban
 |
ne haragudjatok, de ezt jól átgondoltátok?
2 réteg + Virtex5 még viccnek is elég erős...
tokozását néztétek már? (nameg az árát )  |
Remek ötlet. De mi az az FPGA?? 
Nem lehetne először a hülyébbek kedvéért (mint pl. én) egy olyan panelkét csinálni amin egy atmega128 van, meg egy gsm modem, esetleg egy kis 868MHz s rádiómodul, esetleg egy infra led (távirányító funkció) és az egész nyákocska pont olyan lenne, hogy egy nokia 3310 es alaplapjával egyezne a mérete és véletlenül a csatlakozóhelyek is pont ugyanott lennének. Egy az egyben fel lehetne használni a billentyűzetet, a kijelzőt (PCD8544) meg pwm-el még a buzzerjén is lehetne ugyanolyan hangot kicsikarni, mint a gyári 3310-es. Kb. ez az a hardwarekörnyezet, amit még egy atmega 128 al ki lehetne simán szolgálni. A tápcsatlakozó is ugyanott lenne, ill a külső csatlakozókon, ami eredetileg (headset vagy mi) volt meg lehetne csinálni az USB-s csatlakozást
Csinálnánk a telefonból telefont :) csak sokkal jobbat.
Szerintem fantörpikus lenne 3310 est meg bárki tud szerezni aki akar és fillérekért megvan az intelligens kijelzős "doboz".
|
De gyors voltál! Hiába javitottam a figyelmetlenségem
Lehetne egy miniszámítógép. VGA, PS2 keyboard, CF/SD kártya, ethernet
Ez jól hangzik, mivel én is ilyesmivel amatőrködtem egy Spartan3-as StarterKit-en (T80-as core,VGA,AVR,SD,PS2,RS232). Terveztem hogy megcsinálom egybe az egészet, de idő nincs rá, meg én két rétegen ezt nem tudom megcsinálni.
Ha kialakul pontosan mi lesz rajta, lehet hogy érdekel a dolog.
Üdv. Zoli  |
Milyen FPGA ? Atmel
Lattice vagy XILINX
Melyik eszköz? Virtex-5
Akár...
Mi lenne a feladata az USB-nek ? FPGA-ban lenne USB core?
Felesleges. Ftdi...
Vagy csak a lábak lennének kivezetve?
Hány rétegü lenne a PCB ?
2
PCB-nél nem jó ötlet a "mindenki magának"(ár
Ott hagyom a nyákgyártónál a filmeket és mindenki kér magának nyákot.
Nem fog ez többe kerülni mint egy low cost gyári EvalKit ?
Nem.
Mit lehetne gyakorolni rajta?
Csak ötlettelek...
Lehetne egy miniszámítógép. VGA, PS2 keyboard, CF/SD kártya, ethernet  |
Hali!
Bővebben ?
Melyik eszköz? Virtex-5 ? Mérete ?
Mi lenne a feladata az USB-nek ? FPGA-ban lenne USB core?
Mit lehetne gyakorolni rajta? Vagy csak a lábak lennének kivezetve? Miért kell hozzá AVR. Fellövi az FPGA configot?
Hány rétegü lenne a PCB ? Nem mindegy, ha nekem kell legyártatni. PCB-nél nem jó ötlet a "mindenki magának"(ár).
Nem fog ez többe kerülni mint egy low cost gyári EvalKit ?
Xilinx Spartan-3A Low Cost Evaluation Kit
ChipCad 12500 Ft+ sarc.
Hirtelen ennyi kérdés merült fel bennem.
Üdv. Zoli  |
Ha belekezdesz, vevő lennék a dologra
1. Ha belekezdek megcsinálom.
2. nem vagyok kalmár! Nem fogok árulni semmit. Igy nem lehetsz vevö nálam. Meg mondom mit hol és mindenki magának do it.
Csak a fejlesztést vállalom!
 |
| Ha belekezdesz, vevő lennék a dologra. Egy ideje már nem követem ennek a világnak a folyását, ezért szívesen frissíteném elavult tudásomat. Mikroprocesszorra meg ráadásul Z80-ra fejlesztettem utoljára. |
Tervezek tervezni egy mikrokontrollerrel és FPGA-val megáldott kis panelt, amit PC USB portra lehet kötni.
Egyfajta gyakorló panel lenne.
AVR mikrokontroller: assembly, C, BASIC programozás.
XILINX FPGA: VHDL, Verilog programozás.
No meg maga a hardver...
NYFT rendszerben gondoltam, ha van rá igény
(NYFT = Nyílt Fej Törés)
Kapcsolási rajztól a nyáktervezésen keresztül az élesztésig majd a programozásig.
Van rá igény?
Ui.: nem magamnak csinálnám, én életvitelszerűen alkalmazom a fenti eszközöket.
Tehát nem az én gyakorlásom, hanem a tudás megosztás a cél. |
|
| |
| RSS források |
 | - | Hírek |  | - | Cikkek |  | - | Fórumok |  | - | Állás/munka |
|
| Top pontgyűjtők |
| » | Micu | 1.030 | | » | Interlock | 280 | | » | mezofi | 150 | | » | Pitta_ | 100 | | » | Frostech0 | 100 | | » | szbzs.2 | 100 | | » | Hack | 100 | | » | Riha | 60 | | » | Akhiles | 50 | | » | mrchandra | 50 |  |  |  |
|
| Top wikieditorok |
| » | Sting | | » | Doi | | » | FlamingClaw | | » | Argathron | | » | Csaboka2 | | » | Vodka | | » | Joexy | | » | Ivn | | » | Balucinho | | » | Kelemzol |  |  |  | » ugrás a wikire |
|
|