Fórum témák
» Több friss téma |
Fórum » CPLD, FPGA - Miértek, hogyanok
Az előbbi "hogyan kell csinálni" arra vonatkozott, hogy nekem hosszú szimulációk kellettek. Az ISE-vel az ilyen hoszzú (1-5ms) testbench waveformot képtelen voltam megcsinálni. Miután megadtam az 1ms-es szimulációs időt, vagy 30 percig a homokórát néztem. Utána elmentettem és 3MB volt az egész. Hogy mit molyol fél órát rajta ? Aztán azt csináltam, hogy csak rövid tbw-t csináltam és a generált test forrást (vhw) átmásoltam egy modelsim új projekt könyvtárba, + a fent emlitett szimulációs modelt (..._timesim.vhd) és a kapukésleltetéseket tartalmazó sdf file-t. A vhw-nek adtam egy más nevet (test) és átneveztem vhd-re. Utána módositottam a stimulust az igényeim szerint és a 3 file-ra csináltam egy szimulációs konfigurációt (Add). Na, hogy ez menjen, nekem is jópár napomba telt.
Próbáld először ezt a Modelsim-es szimulációt egy rövid példán, amik ott vannak az ISE könnyvtárában. Aztán ha megy, utána válts a nagyobb projektre. Üdv. Zoli
Lehet hogy az alabbi a megoldas ??
Beleneztem a .vhw fileba es az alabbit modositottam :
Ezutan Simulate Behavioral Model eleg sok idot dolgozott,es ugytunik vegre elkeszult a diagramm Mostmar csak az a kerdes hogy hogy tudok a leghatasosabban nyomkovetni, mit is kellene mihez visznyitani? , (hol nem szinkron a dolog, miert van ez a "szin keses"). Egylore csak a colormap -et raktam fel .. Udv.
Kozben rajottem hogy a block RAMok adatai nem jelennek meg. A konstans ertekekkel feltoltott ROM adatai sem. Ezert a block ramok altal inicializalt regiszterek is undefined-ek.
A processzor altal inicializalt reg.-ek ertekei is ismeretlenek. Mi lehet ezekre a megoldas? Udv.
Most Modelsim-el szimulálsz vagy az ISE TBW windownak legyártattod csak vele az Expected Simulation Result-ot, amivel frissiti az ISE TBW window-ját. A Post Place&Route model-t szimuláltasd a Modelsim-mel. Ott fel lehet rakni a Block ramot egy objectként, vagy csak a kérdéses signaljait, bus-ait. Az ISE tbw windowjában csak a input waveformot kell szerkeszteni, aztán amikor elinditod a Modelsim szimulációt akkor elötte az ISE PrjNav. legyártja a test stimulust a tbw window waveformja alapján a vhw file-ba, megcsinálja a tdo ( a test futtató makrót. tdo: test do) és ezzel inditja a Modelsimet. A process ablakban a szimulációnál az opcióknál be lehet állitani a simulation run time-t és a resolution-t is. A régi verziókban siman -all opció volt a run time alapbeállitás, de most az újaknál állandó kavirc van, ezzel hogy szinkronba hozzam mindig a testbenh windowban beállitott szimulációs idővel. Igaz -all -al még nem próbáltam. Ja, de igen, próbáltam. Azért nem jó az -all, mert a réginél a vhw file-ba generált az ISE, a legutolsó WAIT urtán, leállitó ASSERTION sorokat:
Ez állitotta le -all - ból a szimulációt. Ez az új vhw file-okba nem generálódik. Ha a tbw window 1us hoszzú a szimuláció run time meg 4us, akkor az 1us után nem áll meg mint régen, hanem még háromszor megismétli. Üdv. Zoli
Koszi !
Idézet: „Azért nem jó az -all, mert a réginél a vhw file-ba generált az ISE, a legutolsó WAIT urtán, leállitó ASSERTION sorokat: ASSERT (FALSE) REPORT "Simulation successful (not a failure). No problems detected. " SEVERITY FAILURE;” Korabban nekem is mindig ezzel allt le. Most hogy beirtam a
Most akkor kiprobalom ujra Modelsim-el. Udv.
Szia !
Na vegre sikerult Modelsim alatt , es 20 ms-os wave-ot is sikerult generalni. Eleg sokat dolgozott vele. Egyes buszokat nem talalok. Pl. a video ram es colormap ugyanabbol a componensbol van peldanyositva. ezert ugy latszik hogy a
Itt az RGB erteke kellene legyen, ez viszont latszik a processzor out portjan a megfelelo port ID es write_strobe -jelnel. Na de igy elegge nehezen kovetheto a folyamat. Szoval nem tudom mennyire erthetoen irtam.. Udv.
Sziasztok!
Kezdő vagyok még a témában, elnézést, ha túl láma a kérdésem... Felraktam a XILINX ISE WebPack 10.1-et Schematic-ban dolgozom XC9572XL CPLD-vel és az a problémám, hogy a lábak hozzárendelését nem tudom megoldani valami számomra "láthatatlan" ok ( beállítás?) miatt! A fordítások lemennek, a Create Timing Constraints-ban látszanak az általam definiált lábak, de a Floorplan IO-Pre-Synthesis (ez is érdekes, mert a help-ben POST-nak írja!) már nem jelentkeznek az általam definiált elnevezések, ott csak "C, CLR, D és Q" nevek szerepelnek, amelyeket én nem is definiáltam. ( a képen mellékeltem!) Remélem nem volt nagyon talányos a megfogalmazás...): Előre is köszönöm a segítséget! Steve
Sziasztok !
Van egy TS-7200 ARM gepem. Ehhez szeretnek illeszteni egy grafikus VGA meghajtot . Ezt a feladatot latna el a Spartan3e. Valami open core -t szeretnek ra rakni; melyik buszra es milyen vga meghajtot lehetne pakolni? Tudtok adni valami otletet hol induljak el? Udv. gtk
Sziasztok !
SDRAMot szeretnek hasznalni egy mar megirt core-val. A core UCF_file-jaban az alabbit nem ertem, hogy mi is az a dqmh, dqml, SDRAM_clock_out. Ezeket a Spartan kit adatlapjaban nem talalom...
Üdv Mindenkink!
A ChipCAD Kft. -nél már időtlen idők óta meg van hirdetve egy Xilinx tanfolyam, de az időpontját még mindig nem rakták ki. Már egy tucat e-mail-t küldtem nekik, hogy megkérdezzem, mikor lesz, de nem hajlandóak válaszolni! Mit tudtok a tanfolyamról?
Nekünk (céges levél) válaszoltak. idézem:
Köszönöm érdeklődését. Sajnos egyenlőre nem tudjuk még kitűzni a soron következő Xilinx tanfolyamunk dátumát. Előreláthatólag leghamarabb 1-2 hónap múlva lesz a következő. Az általunk tartott oktatás kezdő Xilinx felhasználók számára lett kitalálva, hogy segítsünk az elindulásban. Amennyiben mélyebb ismereteket szeretne szerezni erről a témáról, javaslom nézze meg a BME, 3 napos tanfolyamáról szóló kiírást: http://szakkepzes.mit.bme.hu/tanfolyamok/digitalis_rendszerek.html Üdvözlettel, Farkas Szabolcs Alkalmazástechnikai mérnök remélem segítettem.
Kedves Pokot!
Köszönöm a hozzászólásod, remélem a nyáron tényleg sor kerül a tanfolyamra. Naponta figyelem a honlapot, hogy mikor hirdetik meg a dátumot. Remélem összefutunk az előadáson Köszi mégegyszer! bye
Segítségeteket kérem. Elkezdtem én CPLD programozással foglalkozni. Küszködök rendesen.
Egy resetelhető 16 bites számlálót próbálok összehozni. A 16 bites számláló müködik is, de ha a megjegyzésbe tett reset engedélyezésre vonatkozó 2 sort is befordítom, akkor resetre le is nulláz. Eddig oké is lenne csakhogy 8 bites számlálóként müködik ettől kezdve és elérve a 255-ös értéket mindig magától újra indul. Gondolom ismerős forrás. entity szaml is Port (CLK : in std_logic; RESET : in std_logic; START : in std_logic; OSZT : in std_logic_vector(4 downto 0); LED : out std_logic_vector(15 downto 0)); end szaml; Architecture rtl of szaml is signal count: std_logic_vector(15 downto 0); --15 bites szamlalo signal cnt_2: std_logic_vector(15 downto 0); --15 bites - begin LED <= cnt_2(15 downto 0); --ledek a 15 bites szamlalon process(RESET,CLK) --processz begin --if RESET='0' then --cnt_2 <= "0000000000000000"; if CLK'event and CLK='1' then --felfuto el detektalas count <= count-1; --count leptetese if count = 0 then -- count 0. ertekenek erzekelese cnt_2 <= cnt_2 + 1; -- cnt_2 leptetese end if; end if; end process; end rtl;>>>>
Átírtam kicsit a programot. Így eddig úgy tűnik jól müködik a módosított program, de azért érdekel hogy mi az előző hibája. Az előző programnál természetesen a megjegyzés után következő sor elsif -fel kezdődik és nem if-el , amikor a megjegyzésben lévő részt is befordítom.
entity szaml is Port (CLK : in std_logic; RESET : in std_logic; START : in std_logic; OSZT : in std_logic_vector(4 downto 0); LED : out std_logic_vector(15 downto 0)); end szaml; Architecture rtl of szaml is signal count: std_logic_vector(15 downto 0); --15 bites szamlalo signal cnt_2: std_logic_vector(15 downto 0); --15 bites - begin LED <= cnt_2(15 downto 0); --ledek a 15 bites szamlalon process(RESET,CLK) --processz begin --if RESET='0' then --cnt_2 <= "0000000000000000"; if CLK'event and CLK='1' then --felfuto el detektalas if RESET='0' then cnt_2 <= "0000000000000000"; end if; count <= count-1; --count leptetese if count = 0 then -- count 0. ertekenek erzekelese cnt_2 <= cnt_2 + 1; -- cnt_2 leptetese end if; end if; end process; end rtl;>
VHDL kodnal az a gond hogy sokfelekeppen le lehet irni ugyanazt, es nem mindenbol lesz hasznalhato hw.
Az elso kod egy rosszul sikerult asyncron reset. A masodik szinkron resettel van (javitas utan), de, a ket szamlalohoz tartozo kodot kulon - kulon processben kellene irni. Hasznalhato a [ code = vhdl ] [ / code ] vagy [ code = ada ] [ / code ] szokozok nelkul. Az ada -s kodszinezes itt nekem jobban tetszik
Értem. Átírtam az első hibás kódot szinkronba és tök jól müködik:
[code/ada] if RESET='0'and CLK='0' then cnt_2 <= "0000000000000000"; elsif CLK'event and CLK='1' then [/code]>
Üdv!
Annyi lenne a kérdésem, hogy egy teljes FPGA fejelsztési folyamat a PC oldalon kivitelezhető-e valamilyen linux disztribúció alatt (pl. Debian, Gentoo stb..)? Láttam hogy Gtk-nak sikerült a webpacket, kpicosimet működésre bírni, azonban annyit ekll tudni a webpackről, hogy mivel ingyenes, korlátokkal is rendelkezik. Tehát egy komolyabb Virtex kód generálására teljesen alkalmatlan, esetenként egy angyobb Spartan kóddal sem bírkózik meg. A kollegák vindóz alól az ISE project Navigatort hasznaljak, ami szinten "korlatlan" lehetosegekkel bir! Ja igen es VHDL kodolasos megoldas erdekelne, nem ilyen rajzolgatos, nem verilog, stb..
Miért nem látom dpeti hozzászólását itt? Holott ha rákeresek az FPGA fórumtémára ezt írja ki:
CPLD, FPGA - Miértek, hogyanok... Válaszok: 348, Olvasva: 27433, Lapozás: [1 ... 22, 23, 24] Tomee Dec 2, 2006 dpeti Júl 14, 2008
Sziasztok!
Azt szeretném megkérdezni hogy Xilinx XC9572 CPLD-t mivel tudom égetni? Tudtok kapcsolást, és programot? Csak .jed fájl kell ? Köszönöm!
Xilinx paralell download cable kell hozzá, és az ise webpackban található egyik program ezt tudja kezelni.
A linkelt pdf-ben van kapcsolási rajz is: toolbox.xilinx.com/docsan/3_1i/pdf/docs/jtg/jtg.pdf
Nekem >>ez<< van es CPLDhez mukodik.
Lehet hogy a nyakterv is megvan hozza valahol, ha fontos megprobalom megkeresni.
Sziasztok!
CPLD-be lehet szintetizálni olyan multiplexert, aminek nem kell órajel, például a következő verilog kóddal. module mux1( select, d, q ); input[1:0] select; input[3:0] d; output q; wire q; wire[1:0] select; wire[3:0] d; assign q = d[select]; endmodule Ilyenkor a CPLD ténylegesen órajel nélkül is multiplexerként fog viselkedni, tehát ha nem kötök rá semmilyen órajelet, mint mondjuk egy 74HCT-s logikai IC? Ha igen akkor milyen sebességgel változhatnak a jelek a multiplexeren?
A Mux-ot simán és-vagy hálózattal realizálja sztem a verilog, tehát aszinkron működésű lesz, viszont hogy milyen gyorsan váltakozhatnak a jelek azt a cpld típusa fogja megszabni.
Köszi, erre tippeltem én is. Az adatlapban találtam pár adatot.
Internal toggle rate: 450MHz Max. system freq: 256MHz Max system freq2: 238MHz Max external freq: 145 MHz Max external freq2: 139 MHz Konkrétan a CoolRunner II XC2C256-ról van szó. Azt gyanítom hogy ezek alapján a maximális freki amit át tudok vinni egy aszinkron multiplexerrel az vagy 145 MHz vagy 139MHz. Jól gondolom?
Hali !
ISE report mit mond a multiplexerre kapcsolódó input pin-re ? Ki szokta irni a timing reportba, hogy mennyivel lehet hajtani. Én hajtottam már túl az ISE által jelzett 80MHz-es input CLK-t, 133MHz-el. gond nélkül ment a cucc. Igaz, nem melegítettem, hütöttem meg. Üdv. Zoli
Még nem néztem meg, nem tudtam hogy ilyet is kiír. Kipróbálom mit mond.
Sziasztok !
Szeretnek a sp3e melle egy aramkort epiteni Hirose FX2 csatlakozoval. Nezegettem a sp3e adatlapban az erre vonatkozo reszeket, meg >>ezt<< de meg mindig nem vilagos a labkiosztas. Eagle-hoz meg van lib-em, csak abban meg nem bizok es ott sem egyertelmu a labkiosztas. Valakinek van otlete? Udv.
ezzel én is megszívtam...
aztán rájöttem, hogy igaz baromi pici betűkkel, de jelölve van a csatlakozón az hogy melyik az A, B és hol az 1-es
Koszi !
'a1' es 'b1'-et megtalaltam. A sp3e boardon hogy lehet? Vagy ennek igy osszeteve talalnia kell?Ugyertem az 'a1' ott is az 'a1' lesz? |
Bejelentkezés
Hirdetés |