Fórum témák
» Több friss téma |
Fórum » CPLD, FPGA - Miértek, hogyanok
Üdv mindenkinek!
Egy bemutató órán ismerkedtem meg a CPLD k világának igen kis szeletével. Az ISE Webpackot használtuk, csináltunk egy kis kapcsolást és ki is próbáltuk próbapanelen. Mivel ez a progi ingyenes, gondoltam kicsit ismerkedek vele, letöltöttem, telepítettem és csalódtam. A sematis csak egy kb félcentis csíkba jelenik meg, vízszintesen tudom állítani a méretés, de függőlegesen nem tudom széthúzni. A képet mellékelem. Mi lehet a hiba? Előre is köszönöm.
Hát szerintem az ingyenes verziókban vannak hibák és akármit is mondanak fordítási korlátok is. Javaslom a teljes verziót próbáld letölteni valahonnét. Külföldi "bizonyos" oldalakon általában fent van.
Üdv!
Meglesem, bár u. ez ment a suliba több gépen is, nem egyformákon. Ott semmi gond nem volt vele, mindent ugyan úgy telepítettem mint ott és mégis ezt csinálja
Milyen kep felbontas van allitva, nem lehet az a baja?
Üdv!
próbáltam 800x600, 1024x768 al is de semmi változás, a suliba 1024x768 volt
Az Actel sw-t sajnos nem lattam meg, de erdekelne engem is, ha van tapasztalat. A Xilinx ISE-vel kapcsolatban meg ugy hirlik, hogy a 9.x-es verzio Linux-on sokkal gyorsabb, mint vindozon. Nekem Linux-on tenyleg eleg gyors. (Persze mihez kepest..) 1996-ban egy Actel 42MX16 szintezise kb. 20 ora volt Linux-on a Leonardoval egy 133MHz Pentiumnak, es tovabbi 22..24 ora volt a Place and Route egy Sun Sparc-on. Ahhoz kepest azert sokat gyorsult a vilag...
A Xilinx WebPack telejesen jol mukodik, nem kell megvenni a fizetos verziot, ha nem akarsz xmillio kapus Virtex FPGA-kkal dolgozni!
Hali!
Teljesen kezdő vagyok CPLD ügyben. Van nálam egy Xilinx CoolRunner-II és azt szeretném kérdezni, hogy késleltetéseket, hogy szoktak implementálni ebbe a kütyübe. A probléma az, hogy van két 7 segmenses kijelző, de ki kell választani, hogy éppen melyikre akarom küldeni a jelet. És az olyan gyorsan történik, hogy a kijelző nem tud rá reagálni. Segítségeteket előre is köszi. U.I.: Ádám.
Leosztod a frekvenciat egy szamlaloval pl. Szamlalot hasonlitod egy konstans ertekkel, majd mikor egyenlo invertalsz egy bitet (NOT),majd ez a bit lesz a kijelzo valasztasnal a kapcsolod. Ha a "bit"=1, kijelzes egyik kijelzore, ha = 0 kijelzel a masik kijelzore.
vagy:
N, az N bites szamlalo.
Vagyis akartam irni:
vagy:
Sziasztok!
Letöltöttem a WEBpack-ot. Telepítésnél kiírja, hogy nem támogatott OS. Na most nekem magyar XP van SP2-vel. A hiba ablakot képként csatoltam. Mi a baj?
Akkor nem is engedett volna el eddig.
Az nem lehet baj, hogy magyar xp-m van?
Szia!
A Xilinx szerint : "Microsoft Windows XP Professional (Chinese, Korean, US, and Japanese) (32-bit)" Prof vagy Home ? De lehet hogy a magyar nem jó neki. Üdv. Zoli
Nekem XP prof hun SP2 van a gépen és vígan megy a 7.1i,8.2i,9.1i és a 9.2i is.
Szia.
Ezzel már másnak is volt gondja. Az a probléma, hogy nem a free ISE-hez való sorozatszámot adtál meg neki. Mindenféle WIN-en elmegy, legyen az magyar vagy nem, Prof vagy Home változat. Ha a sorozatszám kérésekor egynél több terméket is beikszeltél, az is lehet gond. Nézz szét itt: Több változat esetén mi a probléma Imi.
Pontosan ez a probléma. Köszönöm a segítséget.
Udv.
Nem találok megnyugtató választ egy VHDL kérdésre: "VHDL-ben kimenetet nem lehet belül használni". Vagyis az a problémám, hogy egy blokk kimenetének deklarált jelbe nem lehet közvetlenül beleírni, hanem végig egy másik bevezetett segédváltozóba kell számolni, majd a blokk végén kell ezt a segédet a kimeneti változóba tenni. Vannak példák, ahol így van megoldva, és vannak, ahol nem... Mi a helyes megoldás, és miért ? Köszi. Imi.
Sziasztok!
Egy olyan problémám lenne Xilinx Coolrunner-II Starter Kit-en szeretném elosztani a a belső (P38) -as 1 MHz-es órajelet 16-al. Majd egy késöbb, a már elosztott órajelet szintén elosztva 16-al, szeretnék egy olyan kb 4kHz-es órajelet kapni. Esetleg vki tudja ezt pontosan hogyan lehetne? VHDL-ben érdekelne. Kösznöm előre is! Üdv: endru
4 bites szamlalo. ezzel elszamolsz 8-ig, majd reseteled.
Egy signalt minden resetnel invertalsz (NOT). Ez lesz a 16-al leosztott orajel. Ezzel a modszerrel F1 = F / (oszto*2); Ezt megegyszer a tovabbi 16-al valo osztashoz.
Sziasztok!
Egy rendkívül egyszerű kérdésem lenne. PicoBlaze-hez a Xilinx WebPack 10.1-ben írtam egy SPI perifériát. A BFM szimuláció szerint teljesen jól működik, maga a kód viszont mégsem akar lefordulni egyetlen hiba miatt: amikor példányosítom és összekötöm a processzort a perifériával, azt írja, hogy helytelenül használom az in_port-ot, ami ugye a picoblaze periféria buszának a beolvasó sínje: kcpsm3 processor ( .address(address), .instruction(instruction), .port_id(port_id), .write_strobe(write_strobe), .out_port(out_port), .read_strobe(read_strobe), .in_port(in_port), .interrupt(interrupt), .interrupt_ack(interrupt_ack), .reset(reset), .clk(clk)); SPI SPI_A ( .address(port_id), .iobus_in_port(out_port), .iobus_out_port(in_port), .iobus_write(read_strobe), .iobus_read(write_strobe), .clk(clk), .miso(miso), .mosi(mosi), .sck(sck), .nss(nss)); Már kipróbáltam minden lehetséges verziót (atírtam wire-re, reg-re az interface-t, buffereltem, minden), de sehogysem eszi meg a fordító. Elképzelni sem tudom mi lehet a probléma, hiszen mint mondtam, a bfm szimuláció tökéletesen fut. Előre is köszönöm a válaszokat!
Szia.
- a kcpsm3 modul-ban a in_port legyen "input [X:0]" (ez ugye itt wire lesz) - az SPI modulban a "iobus_out_port" legyen REG-es kimenet - az összekötő modulban az "in_port" pedig legyen "wire [X:0]" Imi.
Szia! Köszi szépen a segítséget. Így is próbáltam már a dolgot, de így sem sikerült. Végül azonban mégis megoldódott a probléma. A baj gyökere az volt, hogy a külvilág felé is kivezettem az interface buszt - közte az in_portot is -, ami ugyebár teljesen felesleges. Innentől kezdve természetesen a külső inputként definiált in_port-ra nyilván nem tudtam írni, hiszen az azt jelentette volna, hogy belülről próbálok meg írni egy külső bemeneti pontként definiált portra.
Mindenesetre köszönöm a gyors hozzászólást és segítséget! Marci
Udv.
Xilinx BRAM kezelésében kérnék segítséget. Szóval BRAM-ot szeretnék használni bit-es kiosztásban. Több modulból szeretném írni párhuzamosan, illetve egy modulból is több bitet párhuzamosan (a címek persze eltérőek lennének), és egy kitüntetett modulból pedig olvasni szeretném ugyanazokat a biteket, amiket az előbb írtam. Azt garantálni tudom, hogy egy bit-es rekesz csak 1 helyről lenne írva, de egy másik modulból mindenképp olvasnom kellene a biteket. Első körben single portos változattal próbálkoztam: A "V_R_1"-et szeretném beleírni a 0-ás címre.
Namost ha ilyenből lerakok X darabot, akkor rögtön átlépem a 20-at (500-as Spartan3E), holott én nem akarom elfogyasztani a 20 blokkot, csak egyet, de annak az egynek mindig más címére akarok írni. Mintha nem lehetne párhuzamosan több bitre írni ? Ha tényleg nem lehet párhuzamosan írni eltérő biteket, akkor valami számlálóval, vagy minta generátorral állítsam elő a címeket, és azt pörgessem végig az ADDR-be ? Egyenlőre ennyi. Köszi. Imi.
Ez egy BRAM peldanyositas, jol gondolom? (nem ertek veriloghoz) Minden peldanyositasnal egyertelmu hogy az adott blokkot lefoglalja.Cim es adat multiplex-el nem lehet megoldani?
(Hany bites a BRAM DI/DO ?)
Udv.
Jól gondolod, ez egy példányosítás VERILOG-ban, a "RAMB16_S1" nevű Xilinx primitiv-ből. A "#" jel után mennek át a paraméterek, majd utána az input/output-ok, "bram_10" a példány neve. Hany bites a BRAM DI/DO 1 bites Csatoltam egy képet, amin látszik, hogy mit is akarok. Ebből most engem egyenlőre a "process image" megvalósítása érdekelne. Tehát van egy FPGA-m, benne egy kommunikációs modul (ez most nálam nem CAN, hanem RS232 alapú MODBUS), illetve van GPIO, és azt szeretném, hogy a GPIO állandóan írja bele a process image-be az I/O-k állapotát, és a másik oldalról a kommunikációs modul ezt onnan ki tudja olvasni. Vagyis szükség van egy "nagyon sok" bitből álló memóriára, amit egyik oldalról tudok írni/olvasni, a másik oldalról pedig tudom olvasni, de ugyanazokat a biteket, amiket az előbb írtam. És persze az lenne a jó, ha az összes használatban lévő bitet tudnám írni egyszerre, illetve a másik oldalról olvasni azt, amire a MODBUS-on kérés érkezik. PLC szerűségen gondolkodom. Köszi. Imi.
Nem tudom jol ertem-e a problemad. Van egy elkepzelesem. Nem biztos hogy 1 bites adatki/bemenettel rendelekezo ram kellene. Pl. 8 vagy otbb bites ram es egy megfeleloen megirt cim es adat multiplexer ami a modulok jelzobitjei szerint az adat es cimvonalakat osszekoti a modulok es a ram kozott.
Valamit "pszeudoban" leirtam, ha nem ilyesmire gondolsz, bocsi. modulok : modul1, modul2, modul3, modul4, modul5 (kituntetett); jelzobitek: m1, m2, m3, m4, m5_k Adat es cim osszerendeles BRAM es modulok kozott, "m"-ek szerint. ha m1 akkor BRAMcim(0 to 0) osszekapcsolva modul1_cim(0 to 0) BRAMadat_be(0 to 3) osszekapcsolva modul_adat_be(0 to 3) --0-3 bitet beirsz 0 cimre BRAMadat_ki(0 to 3) osszekapcsolva modul_adat_ki(0 to 3) --0-3 bitet olvasol ha m2 akkor BRAMcim(0 to 0) osszekapcsolva modul1_cim(0 to 0) BRAMadat_ki(4 to 7) osszekapcsolva modul_adat_ki(4 to 7) -- BRAMadat_be(4 to 7) osszekapcsolva modul_adat_be(4 to 7) --4-7 bitet 0 cimre/cimrol ... ha m5_k akkor: BRAM cim osszekapcsolva modul5; BRAM adat_ki-be osszekapcsolva modul5 Termeszetesen ez csak szemleltetes az elkepzelesemre. |
Bejelentkezés
Hirdetés |