Fórum témák
» Több friss téma |
Fórum » CPLD, FPGA - Miértek, hogyanok
Az initben a testbenchben levo regiszterek kezdoerteket kell beallitani. Ha ezt nem teszed meg, akkor a szimulacio hatarozatlan ertekrol indul.
WEBPack license eseten a szimulator sebessege vissza van fogva, erre figyelmeztet teged.
automatikusan megkapom a regiszterek initjének megfelelő kódot.
Ha jól sejtem ez kell hozzá. Mégsem megy a szimuláció.
Szia!
Előrebocsájtom, hogy nem volt időm sokáig nézegetni a kódot, de gyanítom, hogy hiányolja az órajelet. Az "endmodule" kulcsszó fölé illeszd be az alábbi kódot: always #5 CLK <= ~CLK; Ez a sor 5 timescale egységenként invertálja a CLK jelet (periódusidő a kódod esetén: 10*timescale = 10ns) Az initial blokk 'endif kulcsszava fölé én tennék még egy end kulcsszót, hogy az initial blokk le legyen zárva.>
Még annyival kiegészíteném a korábbi hozzászólásomat, hogy ha valami működést is akarsz látni, akkor az A és B bemeneteknek is kell valami értékeket adni, mert így minden órajelnél az A = 0 és B = 0 bemenetekhez tartozó kimenetet fogja generálni. Ha kiegészíted a kódot ezzel:
reg [1:0] cnt = 2'b0; always@(posedge CLK) begin cnt <= cnt + 1'b1; A <= cnt[0]; B<= cnt[1]; end Akkor talán még az összeadást is lehet ellenőrizni. (A fenti kódot természetesen az endmodule kulcsszó fölé kell beilleszteni)>>>
Köszi a válaszokat, sajnos nem nagyon volt időm ezidáig belemélyedni a kérdésbe. Az rendben van, hogy legalább egy always #5 CLK <= ~CLK; hiányzott. Ha ezt az általad javasolt módon hozzáadom akkor sem látom billegni CLK -t.
Az, hogy A = 0 és B = 0 bemenetekhez tartozó kimenetet látnék folyamatosan egyenlőre nem zavarna, ha látnám CLK -t órajelként működni. Másik kérdésem volna, hogy ugyan automatikusan hozza létre a bemásolt .v file -t, mit jelent benne az UUT block? Másik dolog, ha a javasolt end -et beszúrom hibát kapok.
Az UUT jelentese benne van az altalad linkelt doksiban is, az Unit Under Test roviditese, magyarul azt jelenti, hogy az az egyseg amit tesztelsz.
A CLK-t szerintem azert nem latod billegni, mert tul rovid ideig futtatod a szimulaciot.
Nem láttam, hogy írtad volna, így feltételezem az ISE beépített ISim szimulátorát használod nem a ModelSim-et. Nálam időnként előfordul, hogy rossz forrást próbálok szimulálni, ekkor tipikusan nem történik semmi, illetve piros logikai jelek jelennek meg a szimulációs ablakban. Ez amiatt van, hogy a rossz forrásfájlt akarom szimulálni. Ebben az értelemben a rossz azt jelenti, hogy az eredeti modul van kiválasztva és nem a testbench. Tehát először rá kell kattintani a testbench filera a projekt navigátorban, aztán pedig már lehet a szimulátort indítani. Ha nem ez a hiba forrása, akkor légy szíves tedd fel a verilog forrást, amit szimulálni szeretnél, készítek hozzá testbenchet.
Sziasztok,
Érdeklődnék, hogy kaphatóak-e cpld/fpga modulok ddram + spi busz kezelésre (szerelve, programozva, leírással, egyszóval éppen álmodozom). Ha ilyesmit szeretnék, mi a vélhetően legjobb esélyem?
Szia! A hétvégén távol voltam, de mostantól rákapcsolok a dologra. Az ISE szimulátorát használom. Mellékelem a 3 filét.
Reggie válaszát is köszönöm, de nem az UUT jelentésével volt gondom, hanem a kapcsolás blokk jelentésével:
A javított tesztbrench (javitott tesztbrench.jpg) egy leírás szerinti javaslat, de nem világos a ciklusban pontosan mi történik, és miért jobb, mint a fordító által generált verzió.
Szia!
Nem tudom mit ronthattál el, nálam megy a szimuláció. Mondjuk az elején kicsit szenvedős volt a dolog, mert nem tudta a schematic-ba rajzolt verilog példányokat elérni, ezért újra kellett generáltatnom a schematic symbol-umokat, az implementation rádiógombbal való váltás után. Aztán fogtam és az XST szintézerrel szintetizáltam a design-t, majd átváltottam Simulation módba. Ekkor testbench hozzáadása után, amelyet a kapcsolas.sch- hoz generáltattam, meg lehet kezdeni a szimulációt. Természetesen ekkor a Design fülön belül a projekt hierarchiában ki kell választani a legfelső szintet, a testbench szintjét és csak ezután lehet a Process-ek közül rábökni a Simulate Behavior Model parancsra. Szerintem Neked ez a lagutolsó hiányzott. Felteszem a szimulációs eredményt, meg a testbenchet is. Egyébként van valami komolyabb oka, hogy a top level szinten kapcsolási rajzzal dolgozol HDL helyett?
Átgondolom amit írtál. az utolsó sorban lévő kérdésedre nem tudom a választ, mert az sem világos mit kell érteni top level szinten. A leírások csupán azt mondják válaszd ..ezt. Végeredményben csupán követtem ezen a téren a leírást.
A TOP level, mint azt a neve is sugallja a design hierarchia legfelsőbb szintje. Az egész hardver konfiguráció hierarchikus szervezésű. A modulok példányosíthatnak más modulokat és őket is példányosíthatják a magasabb szinten levő modulok. A top level modult nem példányosítjuk, kivéve testbench használatakor. A top szinten a moduldeklaráció jelei összhangban vannak az UCF file-ban levő NET-ekkel is, amely végső soron az FPGA kimeneteivel való összeköttetést biztosítja.
Sziasztok!
Most tettem fel a Webpack ISE 14.1-et SUSE linuxra. Generáltattam license file-t, rámutattam az XLCM-ben, ennek ellenére még mindig license hibát ír ki az Implement Design-nál (SPARTAN 3 es SPARTAN 3E-vel is próbálkoztam). Error: Security:9c - No 'ISE' nor 'WebPack' feature version 2012.04 was available for part 'xc3s200'. Mit nem csinálok jól?
Kisebb meretu FPGA eseten is? Nezegettem forumokat, es irtak hasonlo hibarol, de mindenhol az volt a viszontvalasz, hogy a license telepitesevel lehet gond: Bővebben: Link
Azt az infót kaptam, hogy 14.1 webpack nem támogatja a Spartan 3 családot. Amit nem egészen értek, mert régen, mikor még "komolyabban" foglalkoztam vele, akkor a 11.1 még támogatta.
A license beállítást szerintem jól csináltam. A license HOST=ANY zavart ezért generáltattam még párat. Hiába adtam meg neki a host mac címét, azzal nem engedte generáltatni csak ANY-re.
Sziasztok!
Nem rég kezdtem FPGA-val foglalkozni, és gondoltam neki kezdtek egy egyszerű 4bites ALUnak. De valami nem akar rendesen működni, valamiért a kimenet 5. bitje mindig 1 és nem tudom mi lehet a probléma. Itt a kód eleje:
Tudnátok segíteni hol lehet a hiba? Köszönöm előre Üdv. Horv
Hello
Egy 4 bites ALU kódját olvasgatom, de ezt a sort nem nagyon értem:
Nem értem, hogy ez ("0" & Nibble1) mit eredményez. Üdv.
m.joco
A Temp hozzárendelő utasítás egy kivonást ad meg (kivonás egyik lehetséges módja a bit-szintű helyiértékes kivonás mellett). A - B = (felírható) = A + (- B) ahol a -B = 2's komplemens (B) = not (B) + 1 (LSB) a not (B)-t szokás 1's kompelmens(B) nek is nevezni. Azaz A-B = A + not(B) + 1. A fenti összefüggésben: A:= nibble1 B:= nibble2 ahol Nibble1, Nibble2 std_logic vector típusok. Rajtuk a logikai műveletek igen, de aritmetikai műveletek nincsenek értelmezve (érdemes egy VHDL könyvet megnézned az adattípusokról. pl Aschenden.) ("0" & Nibble1) biztosítja azt, hogy előjel kiterjesztéssel Nibble1 biztosan pozitív legyen. Mivel az aritmetikai összeadás integer tipusokon van értelmezve, ezért cast unsignedre történik először Majd pedig az összeadás után, mivel Temp std_logic_vector alakú (én annak értelmezem), helyesen vissza kell cast-olni std_logic_vector típussá a teljes összeadott kifejezést.) (x).
Sziasztok,
Horv. Nálad is kb. ott van a hiba, ahol az m.joco kerdese volt. Aritmetikai muveleteknel integer tipus hasznalatos. Tehát akár a feltételtől függően összeadsz, kivonsz stb. ott kell a cast-olás std_logic_vector(unsigned(nibble1) + unsigned (nibble2). (érdemes megnézni a VHDL szintaktikájával, bevezetésével, szimulációval foglalkozó könyvet pl. Peter.J.Aschenden : Bővebben: Link) Aki viszont szintetizálható kódot is akar, tehát "nemcsak szimulálgatni", hanem ténylegesen FPGA-val dolgozni, annak a következő könyvet ajánlanám: Bővebben: Link Nálam bevált. Van VHDL, Verilog változata is. (x)
Ha sima Spartan III-as FPGA-t használsz akkor az alábbi doksi szerint 14.X alatt már nem támogatott.
VEN
No mégegyszer valahova félrement. Az alábbi doksi szeirnt, ha sima Spartan III_asat használsz, akkor ISE 14.x alatt már nem támogatott. Bővebben: Link a xc3s1500, illetve xc3s50 az Spartan III (ha a végén van 'e' pl. xc3s500e, akkor az már Spartan 3E-s, és támogatott). Hogy miért. Kérdezni kell a Xilinx-et. Egyrész politika, az újabb pl. Spartan6 eszközeiknek eladása végett, másrész a telepítő csomag mérete csökkenhet, ha kiveszenek régi eszközöket, vagy inkább nem-változik, ha betesznek a régi FPGA-k helyett újakat.) (x)
Spartan 3E-t használok.
Még akkor írtam levelet a supportnak és ők válaszoltak, hogy a S3E nem is támogatott a Webpack-ban. Kicsit gyanús volt, mert még anno az egyetemen a webpack 11-et használtuk és az simán ment vele. Na mindegy azóta innen segített nekem valaki, szóval működik.
Nézegettem Altera FPGA-kat és fejlesztő paneleket. Gyakorlatilag fele-, vagy harmad áron lehet beszerezni, mint a Xilinx eszközöket. Van valakinek tapasztalata Alterával kapcsolatban? Érdemes lehet megfontolni az áttérést?
Hello
Xilinx ISE-ben történő szintetizáláskor úgy tudom ignorálva vannak a process-ek érzékenységi listái. Ez azt jelenti, hogy azt kell feltételezni, hogy a process-ben lévő összes olvasott jel változása beindíthatja a process-t? Üdv.
szia Ven,
KB 1.5 éve használok Altera FPGA-kat is (kizárólag Cyclone III, Cyclone IV sorozatokat). Áruk ahogy én látom kedvezőbb a Xilinx-énál, viszont a technológiát tekintve kisebb lemaradásban vannak általában (pl. az ARM hard-proc maggal integrált Cyclone V-ös eszközök később jöttek ki, mint a Xilinx Zync EPP platformok). Áttérésnél érdemes először megvizsgálni, mire is akarod használni. HW: Tanuló, hobbi szinthez található több kártya is. Egy kis, kompakt kártya pl: BeMicro néven. Nem kell elájulni tőle, de ami az ismerkedéshez kell van rajta. Ráadásul Ethernettel. És nem kell külső programozó eszköz sem, csak a programozó SW. Bővebben: Link Komolyabb feladatokra, esetleg fejlesztési célra érdemesebb nagyobb kártyát (ha lehet inkább Cyclone IV-et a III-as sorozat helyett) választani. Az Arria IV, Stratix IV FPGA sorozatok viszont meglehetősen drágák, de már kaphatóak a V.-ös változatok is mindegyikből). Nagyon sok kártyánál van szabványos csatlakozójú külső bővítési lehetőség, pl. HSMC foglalattal. Tehát ha a kívánt funkció még sincs a választott kártyán, akkor egy HSMC add-on board-al, vagy saját HSMC csatlkakozójú PCB-vel minden megoldható Boardok: Bővebben: Link SW: Quartus II fejlesztő rendszer. Teljes változata: Subscription Edition Software néven fut. Van 30-napos trial valtozata, és Student változata is Web Edition néven. A legnagyobb erőssége a moduláris-hierarchikus tervezés, amely 2 verzióval korábban (10.0-s változatban) QSys néven jött be. Ebben a Xilinx nagy elmaradásban van (bár úgy tudom Xiilinx Vivado-ban történik ez irányban lépés) ModelSim: szerencsére a ModelSim Altera változat is megtalálható, sőt van ModelSim Starter változat is, oktatási, tanulási célokra. IP core: Az Altera esetén is sok ingyenesen elérhető IP core van, és talán valamivel jobban is állnak (CoreGen-hez hasonló generálható MegaFunction néven, vagy Xilinx EDK IP hez hasonló QSys IP-ként). pl. Alteránál komplett Video feldolgozó lánc már régóta beépíthető, amelyre a Xilinx még csak 3-4 modult adott ki a legújabb rendszerében. DOC: Altera specifikációk általában megfelelőek, sok esetben viszont meglehetősen régiek, vagy elavultak. A Xilinx ebben sztem jobb. Összességében a legjobb lenne Xilinx alapú eszközökkel Altera Quartus-Qsys-ben tervezni Xilinx dokumentációk alapján Zs (x)
"Összességében a legjobb lenne Xilinx alapú eszközökkel Altera Quartus-Qsys-ben tervezni Xilinx dokumentációk alapján"
Igen, ez egy jó meglátás +A P&R algoritmusaikat is lassan portolhatnák GPU-ra valamilyen módon, biztosan lehetne benne találni olyan gyakran végrehajtott párhuzamosítható kódrészleteket, amivel a pár órás routolást le lehetne csökkenteni.
Üdv!
Köszi a felvilágosítást. Amit egyelőre nézegettem az a Cyclone 2-4 és csupán hobbi célra használnám. Igazából, amire tényleg akarom használni, teljesen mindegy, hogy Spartan vagy Cyclone. Azt nem tudom eldönteni, hogy átállásra befektetett idő mennyire térülne meg az ár különbségben. |
Bejelentkezés
Hirdetés |