Fórum témák
» Több friss téma |
Fórum » CPLD, FPGA - Miértek, hogyanok
Egész pontosan erre: xc7a35tfgg484-2 (Artix 7)
A számok 13 bites előjelnélküli egész számok, egy tömbben vannak. Ez egyébként csak egy része egy nagyobb feladatnak. Főleg az a kérdés most, hogy milyen algoritmust érdemes választani, amit adatfolyam áramlásos (hardveres) megközelítéssel is jól lehet implementálni. Nyilván, a buborék itt nem lesz jó. Összeadó talán, osztó biztos nem kell. Mondjuk verilogban hogyan állnál neki egy ilyennek?
Ha binárisban van az értéked, 8 vagy 16 szám átlagát akarjad. 9 szám átlagát akarni az ördögtől való
Szerintem a kolléga egy 3x3-as mediánszűrőn dolgozik. Ha igazam van, akkor a 8 nem járható út... a 16 már inkább. Viszont akkor átlagot sem kell számolni, csak rendezni. Egyébként ezt találtam, hátha segít: Bővebben: Link. Amúgy Artix-7-re ezt nem biztos, hogy HLS-ben írnám.
Valóban 3x3-as mediánszűrőn dolgoztam.
Köszi szépen a linket. Én is ráakadtam később guglizás közben. De előtte már megtaláltam ezt az algoritmust even-odd sort néven. Először meg akartam csinálni ciklus nélkül, úgy ahogy az ábrán van. De 18 ns-ba nem fért bele, úgyhogy hagytam a sima for ciklusos megoldást UNROLL pragmával. Én azért írom HLS-ben, mert ez a házifeladat... Amúgy sikerült megcsinálni. 18 ns-os órajelre 5 a latency és 1 az iteration interval. Nekem ez egy kicsit hihetetlen egyébként... A feladat az volt, hogy egy 1280*760 60Hz kép stream jön be, plussz a vezérlőjelek, és realtime kell kiadni az új pixeleket. Ezért volt fontos a 18 ns és az 1-es iteration interval.
Sziasztok,
Meg szeretnék megoldani egy feladatot. Sajnos a probléma ott kezdődik, hogy kellene hozzá 60db élvezérelt D tároló valamint ugyan ennyi AND kapu. Az viszont kikötés, hogy mindegyik tárolónak külön órajel kell (lényegében egy shift regiszter lépteti végig a tárolókat - ez a működés mód fontos) Az összes tároló Data lába lényegében ugyan arra a pontra csatlakozik (egy komparátor kimenete) Na ehhez vagy használok egy marék alkatrészt, vagy megoldanám egy CPLD-vel. A gond ezzel csak az, hogy hülye vagyok hozzá, meg hülye a VHDL-hez. A YT-on láttam egy videót az ALTERA quartus programjáról. Ott lényegében csak a kapcsolást rajzolták meg, a program meg elvégezte a többit. https://www.youtube.com/watch?v=7kmvI00aFOg&t=27s Szóval ezt én is megtehetném? Vagy inkább ne álljak neki? A hozzászólás módosítva: Jan 4, 2017
A videón egy szimulátorban minden egyszerűnek tűnik, de alapozás nélkül nem lesz az. Ha sürgős az eredmény, olyan eszközöket használj, amik már készség szintjén mennek. Ha pedig ráérsz új dolgokat tanulni, elsőként a vhdl-en kellene keresztül rágnod magadat.
Szia.
A kapcsolást össze tudom állítani a megfelelő IC-kből (pl: 74hc74), tehát azzal nincs problémám. De, hogy hogyan oldjam meg cpld-vel fpga-val az a kérdés De ha a Quartus II-ben összeraknám a kapcsolást és az elvégzi a többi műveletet akkor az is jó lenne. A Quartust próbálta már valaki?
Quartus ingyenes leszeded, kipróbálod, olvass tutorialt, vagy nézz Youtube-ot.
Szimulátor rész nekem az elején igen nehezen tudtam használni aztán belejöttem. Itt van két pdf: Bővebben: Link (1939 oldal) Bővebben: Link(136 oldal) Szerintem nyugodtan állj neki, idő kell hozzá, de ha nekem sikerült úgy hogy nem vagyok nagyon okos akkor bárkinek mehet. A hozzászólás módosítva: Jan 4, 2017
Ilyenkor jönnek elő azok a reflexek, hogy valaki azt írja, csak 60 darab flop meg and kapu, és akkor az kb 50x annyi lesz a végén, mint mondja Példának okáért 60 darab külön órajel.. egek! Az egy alkarvastag kábelkorbács! Azt tényleg drótozod a panelra? Vagy valami forrás generálja? És a flopok kimenetét drótozod? Vagy azokat is használod valamire? Szóval van egy sanda gyanúm, bőven tudsz még erőforrást használni, és akkor már biztosan fpga fog neked kelleni. A cpld-nek még a top kategóriája is nagyon kevés erőforrást tud csak felkínálni. Pillanatok alatt elfogy. És közép kategóriától fölfelé még drágább is, mint amennyiért már fpga-k is elérhetőek sokkal több erőforrással. Akármi is van még ott a 60 flop környezetében, ha már egyszer van logikai erőforrás, huzigáld bele azokat is az fpga-ba.
Még egy kicsike hátulütő amiatt lesz, hogy az 0.1 inch raszteres ic-ket remekül bele tudod pakolászni akár próba nyákokba is, a sok lábas cpld / fpga viszont minimum ügyes kezet + normális nyákot fog igényelni (4 réteg alatt nem úszod meg, és az már jellemzően nem házilag gyártható). Szóval meglehet, érdemesebb lenne körbenézelődnöd, milyen előre gyártott boardok vannak, amiken legalább az fpga fel van forrasztva jó sok kivezetéssel (példa). A schematic-nak van pár hátulütője, amiért is a 80-as évek végétől az ipari gyakorlatból folyamatosan kiszorult, és lecserélte a hdl. A schematic vizuális. A folyamatos fejlesztések során a karbantartás is, meg a verziókövetés is egy rémálom volt. A hdl-ek esetében egyszerű szövegfile-okat kell csak dokumentálni, amire automata eszközök is vannak a különbségeket megmutatni, és szöveg sorokat beszúrni is egyszerűbb, mint szanaszét tologatni az ábra darabjait. Ha a későbbiekben is szándékozol hasonló ismereteket felhasználni, vagy a mostani problémád messzire terjedhet még időben, be kellene vállalni az összebarátkozást valamelyik hdl-el, és hátrahagyni a schematicot még akkor is, ha most perpillanat még az is elég lenne. Múlik az idő, és úgysem úszod meg, hiába menekülnél A hozzászólás módosítva: Jan 4, 2017
Idézet: Azért ezt így nem merném kijelenteni. Igaz, hogy egy FPGA-ban nagyságrendekkel több logika van, de pl. egy XC9572XL-ben is van 72 db flip-flop. Ami belefér egy CPLD-be, azt minek tennéd FPGA-ba? Legutóbb egy munkában elő kellett állítanom három darab rotary encoder jelét, maximum 1MHz léptetési sebességgel. Ezt mikrokontrollerrel igen problémás lett volna megoldani, úgyhogy lett egy xc95144xl, ami SPI-n megkapja a három csatorna sebességét és a lépések számát, és a három A-B kimeneten meg szépen megy kifele az impulzussorozat. Sőt, még csatornánként három általános célú kimenet is lett rajta. Ilyesmikre nagyon jó a CPLD, tárolós szkópba nyilván kicsi... „A cpld-nek még a top kategóriája is nagyon kevés erőforrást tud csak felkínálni.”
A CPLD-kel van egy másik probléma is a kis méret mellett. Egyre kevesebb a választék, legalább is a Xilinx kínálatában. Vajon mi a tervük? Kiakarják vezetni a termékválasztékukból?
Nem tudom, mi a Xilinx terve. Az xc95xl még kapható. De amúgy FPGA-ban is mennek el rendesen. Az általam használt XC3Sxx meg XC2Sxx chip-eket már régen nem is támogatja az új software-ük, csak a régi ISE. De nem értem, hogy miért, mert attól, hogy ma már van csilliárd millió kapus FPGA, attól még egy 300.000 kapus FPGA még jól használható lenne új fejlesztésekbe is, ahol nincs szükség nagyobbra.
Oké, az tényleg kicsit túlkapás volt.
Amit részemről elkezdtem számolgatni, hogy 60 külön információs ágat akar feldolgozni, aminek a részleteit ugyan nem ismerjük, de ha elkezdenek potyogni a "még ezt is meg azt is jó lenne" gondolatok, mert evés közben mindig megjön az étvágy, 60 sokszorosával potyognak majd a makrocellák (vagy lutok meg flopok, vagy system gatek tömkelegével, vagy akármik). A többi szimpla árlista matek. Még ha bele is fér végül egy cpld-be, nem jár rosszabbul egy fpga-val sem ugyan azon a költség kereten, és sokkal több fejlesztési tartalékja marad, ha idővel mégis eszébe jutna még többet akarni. Azt pedig szimpla megérzés tippelte, hogy bizony eszébe fog jutni. Szóval ha cpld-t javaslok neki fpga helyett, utólag engem fog szidni, mint a bokrot. Akkor inkább szidjon téged
Végül is igazad lehet. Muszáj lesz megtanulnom a HDL-t. No majd egyszer úgy is neki állok!
A 60db D tároló az biztos (+60db AND kapu), több nem kell. A kapcsolásom készen van, csupán egy fél marék IC-t tudnék helyettesíteni vele. Ezért gondoltam rá. Azért ilyen szokatlan a tárolók órajele (végül is soros, nem párhuzamos..) Mert egy mérés sorozatot készítek, amiknek az állapotát két komparátor mutatja meg. A flopok csak azért kellenek, hogy el tudjam őket tárolni. Mindegy lehet szokatlan, de ez van A tárolók igazából LED-eket kapcsolnak. A tokozás nem számít, akár BGA-t is fel tudok forrasztani, mert szerencsére van rá lehetőségem, de egy mezei TQFP nekem biztonságosabb forrasztani. A nyák pedig természetesen nem itthoni körülmények között készül A hozzászólás módosítva: Jan 4, 2017
LED-eket kapcsolni??
Szinkron áramköröket átlag akkor használunk, ha a sebesség túl van azon, amit egy mikrovezérlővel még fel lehet dolgozni. LED-ezni emberi reflexek sebességét sejteti. Ha a sebesség igény nem túl nagy, mikrovezérlőkkel is meg lehet csinálni, és az sokkal barátibb fejlesztői környezet.
Sziasztok!
Letöltöttem a Quartust. A schematic Editorral egész jól elboldogulok. A kérdésem csupán annyi lenne, hogy honnan tudom hogy a választott CPLD-vel mennyi flip flop-ot tervezhetek? Ezt az alkatrészt választottam: http://hu.farnell.com/altera/5m240zt144c5n/cpld-max-v-240-le-144tqf...100801 Annyit vettem észre, hogy pl ha felhasználok mondjuk 4 flip flop-ot akkor a quartus annyit ír, hogy a 192 logikai elemből felhasználtam 4-et. Akkor 192-ig mehetek a számukkal? Mert az bőségesen elég lenne!
Vannak mindenféle riportok mindegyik fejlesztői környezetben. Jelzik a választott eszköz összes erőforrását, és hogy aktuálisan mennyit használtak fel belőlük. Több különféle erőforrásból bármi elfogy, akkor vagy csiszolsz rajta, vagy másik eszközt választasz. Amiből 4/192-t írt, ott bőven van még mit aprítani.
Sziasztok,
Ismét lenne néhány amatőr kérdésem. Először is, ha LED-eket szeretnék kapcsolni akkor a kimenetekre tegyek buffereket? A másik: Ugye D flip floppokkal operálok és annyi lenne a kérdésem, hogy ha 1.8V-ról megy a CPLD akkor mekkora az a minimális feszültség a Clock lábon ahol kapcsol? Adatlapokban általában az szerepel hogy 0.5V*VCC, akkor kb 0,9V? Tehát a felfutó élt ennyinél érzékeli?
A termék adatlapban általában leírják, milyen órajel forrásokat használhatsz, és hogyan. Vannak kristály oszcillátorok például, azoknak ugyan úgy tápfeszt adsz, és a kimenetet vezeted tovább. Bármilyen cpld-t is választottál, a termékcsalád adatlapjait fel kellene túrni. Jelen esetben az Altera a gyártó, és a Max V cpld család doksijai kellenek neked. Az áramköri környezetet egyébként is fel kell építened, a doksi lapok feltúrását biztosan nem úszod meg.
Át túrtam, sajnos nem találtam meg amiket említettél, vagy figyelmetlen voltam.
Annyit találtam, hogy High-level input voltage — 0.65 × VCCIO (nálam a VCCIO az 3,3V) A felfutó élt egy schmitt trigger buffer szolgáltatná nekem. Végül is nekem csak egy impulzus lesz a jel, hogy beírja az előkészített Data-t. Nem mint órajel pl egy kristályból
Ha bármi impulzus jó, miért bonyolítod? Npn open collector + munka ellenállás a tápfesz felé. Vagy nem igazán értem a problémádat
Szia!
Nincs problémám, csak egy kérdés volt Az első kérdésemre mit javasolsz? AND kapuk kimenetei kapcsolnák a LED-eket, kell utánuk kötnöm még egy buffert, hogy lehessen terhelni, vagy a kimenetek alapból buffereltek? +-20mA-t írt nekem az adatlap.
A kimenetek biztosan mindenütt buffereltek, sőt, meghajtási erősség is szokott lenni szabályozhatóan. Van valami default a maximum értékre (az sdk alapból azt állítja be, ha nem piszkálod), és azt változtathatod.
Ha teljesítmény ledeket gondoltál meghajtani, és nem elég a default, akkor rakj oda valami elektronikus kapcsolót meghajtónak. Nem néztem meg az adatlapot, és nem ismerem testközelből a max 5-ösöket, de azoknak is biztos io bankokba van szervezve a kimenete, amiknek szintén van egy összes terhelhetősége. A hozzászólás módosítva: Jan 7, 2017
Köszönöm a segítséget!
Nem power LED-eket kapcsolok. Mezei smd-s LED-ek. Kb 4-5mA-rel járatnám őket.
Nem használtam még, de amit összesen érdemes megnézni, hogy milyen feszültség tartományban dolgozik az a jtag. A fotón azt írja, 1.2v - 5v. Ha azt tényleg tudja, biztosan alkalmas lesz programozni. Ha fejlesztői környezettel is biztosan kompatibilis cucc kell, jobb lett volna altera honlapon keresni listát, vagy meglesni a quartus menüjét, mihez van támogatása, mert gondolom a kényelmes utat választanád, és onnét programoznád.
A default áram a max-oknál nem tudom mennyi, de ha 2 mA, akkor nem fognak a ledek 4-5 mA-t kapni, ha meg több, és egyszerre "jó sokat" hajtanál meg, elérheted a bank io current limitet. Utána kellene kotorni, biztos ami biztos alapon. Amúgy ügyi vagy, hogy összehozod
Szia!
Kicsit tanulmányozgattam még a quartust, az alapértelmezett kimeneti meghajtás 16mA, ez szerintem nekem jó is lesz így. Közben én is rájöttem, hogy egyszerre akár 30 LED-et is kellene világítani, úgyhogy inkább majd egy npn tranyó vagy n-fet fogja kapcsolni a LED-eket. Egyébként sikerült a 60db D tárolót és AND kaput bepakolni, valamint kellett még 30 inverter is. Azt írja 240 LE-ből 60-at használtam fel. Úgyhogy lenne még mibe aprítani Csak az alkatrész lábak fogytak el. Most az Altera szimulátorával tesztelem a projektet. A gyári Altera programozó baromi drága, a legjobb megoldásnak nekem ez tűnt. Egyébként találtam kemény 700Ft-ért is usb blastert DD Nem mertem bevállalni. A programozó elvileg tud 1.8V-on programozni, remélem nem lesz gond.
Nekem van hasonlóm..., szerintem ugyanazok belsőleg! Teljesen ok-s volt, amire eddig próbálgattam...ilyen olcsó, gyári kompatibilis programozó valószínűleg nincs más gyártónál...ezért is tértem át xilinx-ről az alterára, egyebek mellett.
Idézet: Nekem olyan van. Egy PIC18F14K50 mikrovezérlő van benne, meg egy fél marék ellenállás (ahelyett, hogy 3,3 V-on járatnák a mikrovezérlőt ). Az EP240 kártyámhoz megfelel, de kisebb feszültségű cuccokhoz már aligha jó. „Egyébként találtam kemény 700Ft-ért is usb blastert DD Nem mertem bevállalni.” A hozzászólás módosítva: Jan 9, 2017
Miről beszélsz ?! 1,2-5V között minden Altera cucchoz jó!
Én nem néztem még bele..., érdekes, ha PIC-el van megoldva |
Bejelentkezés
Hirdetés |