Fórum témák

» Több friss téma
Fórum » CPLD, FPGA - Miértek, hogyanok
Lapozás: OK   47 / 49
(#) icserny válasza szikorapéter hozzászólására (») Okt 30, 2020 /
 
Nekem az Altera MAX II termékcsaládba tartozó EPM240-hez volt szerencsém, azt az Altera Quartus Prime Lite (azóta Intel tulajdonú lett) környezeteben, a kínai piacon kapható USB Blaster klónok segítségével is lehetett programozni.

Az alábbi fórumbejegyzés szerint az epm7128slc84-15 is programozható így. Bővebben: Link
A hozzászólás módosítva: Okt 30, 2020
(#) szikorapéter válasza icserny hozzászólására (») Okt 30, 2020 /
 
A link sajnos nem jó.
Kínából nem rendelnék most fordítót, de gondolom itthon meg nem nagyon elérhető hozzá.
(#) icserny válasza szikorapéter hozzászólására (») Okt 30, 2020 /
 
Bocs, itt a linkelt oldal: Bővebben: Link
És itt egy ajánlat: Bővebben: Link
(#) szikorapéter válasza icserny hozzászólására (») Okt 30, 2020 /
 
Köszi, fizukor rendelem is.
Utánna már csak majd némi segítség kellene az elinduláshoz hogyan mit.
(#) icserny válasza szikorapéter hozzászólására (») Okt 30, 2020 /
 
Azt a keveset, ami én tudok a témáról, megtalálod itt: Link
(#) Endre22 hozzászólása Nov 6, 2020 /
 
Sziasztok!

Szeretnék venni egy FPGA-t, pusztán ismerkedési céllal.
Ebből kifolyólag igazán komoly, és drága lapot nem is akarok venni. Max. olyan 20 ezer ft körül.

Rengeteg féle van, így nehéz dönteni. Persze mint kezdőnek, szerintem mindegy is milyen lenne
Banggood-on ezt néztem ki.

Viszont szintél olcsón hozzá tudnék jutni egy Digilent 410-087 Spartan-3E -hoz.
Ez komolyabb a másik lapnál, csak már elég régi kiadás. jelenthet ez valami hátrányt vajon?

Ti melyiket választanátok?
Esetleg valami teljesen másikat?
(#) icserny válasza Endre22 hozzászólására (») Nov 7, 2020 /
 
A fő kérdés az, hogy milyen fejlesztői környezetet és programozóeszközt akarsz használni, mert a Xilinx és az Altera két külön utat jelent.
(#) sdrlab hozzászólása Nov 19, 2020 /
 
Szeretnék memória tömböt definiálni VHDL-ben, ami a belső block RAM-ból van létrehozva. Így próbálkozok:
  1. type ram_type is array (255 downto 0) of std_logic_vector (15 downto 0);
  2. signal RAM : ram_type;


Ennek ellenére nem abból próbálja felépíteni. Mit nem csinálok jól?
Quartus II v13
(#) don_peter hozzászólása Nov 25, 2020 /
 
Srácok, valaki nagyon hozzáértő egy két mondatban össze tudná nekem foglalni mi a főbb különbség a CPLD és FPGA közt? Köszi előre is..
(#) edigi hozzászólása Nov 25, 2020 / 2
 
Nem vagyok hozzáértő (bár mindkettőt használtam, CPLD-t saját NYÁK-al is) és néhány esetben nem is igaz az általánosítás.

CPLD: kevesebb logika (szinte csak flip-flop és kapuk), egyszerűbb áramkör mert szinte semmi nem kell hozzá tápszűrő kondikon kívül ugyanis saját nem elvesző memóriája van.
Ha egy kicsit bonyolultabb amit csinálni kell nem gazdaságos ui. nagyon meredeken emelkednek az árak a logikai cellák számának a növelésével, egy határon túl meg nincs is (ami határ nem túl magas ezres logikai cella számra kell gondolni).
Sajnos nem nagyon hoznak ki belőle új dolgokat.

FPGA: Kell hozzá külön flash ami tárolja a logika beállítását amit induláskor betölt, sok tápfesz kell hozzá, logika mennyiségében a határ a csillagos ég (ahogy árban is). Nagyon sok IO helyből benne van nem kapukból kell összerakni (pl. RAM vezérlő, különféle gyors soros interfészek) és van amiben hard core proci is van (pl. nekem ilyen a Zynq-7020-at használó kártyám amiben 2 ARM mag van és Linuxot is bebootol) ill. tipikus még a gyors belső RAM és DSP blokkok.
(#) don_peter válasza edigi hozzászólására (») Nov 25, 2020 /
 
Köszi, így akkor csak megerősítést kaptam csak, de ez is jó. Azt hittem van valami rejtett dolog amit még nem tudok. Küszi a türelmed..
(#) matheattila válasza sdrlab hozzászólására (») Nov 25, 2020 /
 
Üdv,

Sajnos már nagyon régen nem foglalkoztam FPGA-val és nem tudom pontosan milyen típust használsz és mekkora a block RAM minimális mérete (4/8/16K) de esetleg megpróbálhatod ezt:
  1. type ram_type is array (255 downto 0) of std_logic_vector (15 downto 0);
  2. signal RAM : ram_type:=(others=>"0000000000000000");

Valoszínüleg egy entitást is kell majd csinálj (clk, en, read, write) portokkal de szerintem ez a dokumentációban is benne kellene legyen mint egy példa...
(#) sdrlab válasza matheattila hozzászólására (») Nov 26, 2020 /
 
Az "(others=>"0000000000000000")" -nek itt mi a szerepe?
Próbáltam ebben a formában is...ugyanazzal az eredménnyel...

Miközben tesztelgettem a dolgot, feltűnt, hogy néha-néha azért megcsinálja, minden különösebb trükközés nélkül is. Látszólag random módon, hol a belső RAM-ból csinálja meg, hol kapukból akarja összerakni...

Próbáltam így is, de ez se hatotta meg:
  1. type memory_t is array (0 to 1023) of std_logic_vector(15 downto 0);
  2. signal RAM : memory_t;
  3. attribute ramstyle : string;
  4. attribute ramstyle of RAM : signal is "M4K";


Pedig az én olvasatomban itt már gondolkodnia sem kellene, hol is kéne előállítania a tömböt...
Nem értem, egy ilyen egyszerű dolgot hogy lehet így elcseszni...
A hozzászólás módosítva: Nov 26, 2020
(#) matheattila válasza sdrlab hozzászólására (») Nov 26, 2020 /
 
Az (others=>"0000000000000000") csak annyit csinál, hogy minden elemét a memóriának (tömbnek) nullázza.
Nem tudom mi lehet vele a gond, interneten is néztem de ott is hasonló példákat láttam.
Nincs semmi példaprogram a dokumentációban?
(#) sdrlab válasza matheattila hozzászólására (») Nov 26, 2020 /
 
Turkáltam ezzel kapcsolatban a netet nem keveset, de általában csak arra vonatkozóan voltak példák, hogyan lehet a megafunkciók(varázsló) segítségével a belső memóriát 1 portos memória tömbbé formálni?!
Maga a varázsló kódja stabilan létrehozta mindig a kívánt memóriát..., talán ez is megfelelt volna nekem, bár így nehezebb lett volna a használata(ez már így nem tömb), mert ugye itt kezelni kell WE jelet is... Viszont, valamiért másodikra sem akart működni megfelelően a memória elérése - valószínűleg a kódom hiányossága miatt csupán -, de tovább nem teszteltem, mert addigra sikerült egy sima tömbös verziót produkálnom, így rájöttem, hogy valahogy mégiscsak megoldható az eredeti elképzelésem szerint, és inkább azt tanulmányoztam már csak...

Mostanra eljutottam oda, hogy belülről építve a projectet, kezdtem egy minimál kóddal, ami még jól működött, és hozzáépítettem minden mást, lépésről-lépésre ellenőrizve, még megvan e a memóriám?! Jelenleg utolsó simításokat végzek rajta, egy alfaverziós, de már működőnek tűnő kód lesz nemsokára...
(#) matheattila válasza sdrlab hozzászólására (») Nov 26, 2020 /
 
Igen, ha a WE meg hasonló jeleket is kezelni kell akkor már nehezebb, mert olyan mintha egy rendes külső RAM-ot használnál.
Örvendek, hogy sikerült megoldani a problémát és hogy jó úton haladsz, sok sikert hozzá!
(#) sdrlab válasza matheattila hozzászólására (») Nov 26, 2020 /
 
Ha más verzió nem lenne, akkor nyilván úgy használnám, bár nem tudom, hogy az befolyásolná e a sebességet(gyanítom nem, mert a háttérben ha nem is én, de a rendszer ugyanúgy kezeli azt is)...?!
Köszönöm! És az agyalást is a problémámon!
(#) matheattila válasza sdrlab hozzászólására (») Nov 27, 2020 /
 
Nagyon szívesen, legalább én is frissítettem kicsit az emlékeztem mióta nem használtam FPGA-kat
(#) szucsistvan123 hozzászólása Jan 3, 2021 /
 
Üdv!

Van itt olyan akinek sikerült már nem támogatott linux disztribúcióra telepíteni a Xilinx ISE 14.7 -et?
Debian-ra szeretném, de a telepítési hely kiválasztásánál nem megy tovább.

Köszi!
(#) silent15 válasza szucsistvan123 hozzászólására (») Jan 4, 2021 / 1
 
Szia!

Linuxra ami azt illeti nem próbáltam még, de Windowsra igen és rengeteg nyűgje tud lenni.
Olyan elérési útra próbáld rakni, amiben se ékezet, se szóköz nincs... Volt még valami amit figyelembe kellett venni, de arra sajnos már nem emlékszem :/

Üdv!
(#) szucsistvan123 válasza silent15 hozzászólására (») Jan 4, 2021 /
 
Heló!

Köszi a választ!
Az opt mappába csináltam neki helyet, se ékezet, se szóköz az elérési útban, de akármit állítok be azt írja, hogy az elérési út érvénytelen karaktereket tartalmaz (?*+ stb...). pedig nem. Más helyet is próbáltam, de ugyan ez a helyzet. Annyit megtudtam, hogy ez elvileg a nem támogatott linux disztribúció miatt van, de semmi megolddást nem találtam rá. Windows-al nekem simán ment, (14.7 VB), de csak emiat nem szeretnék visszaváltani.
(#) sdrlab válasza szucsistvan123 hozzászólására (») Jan 4, 2021 /
 
Virtuális gép?
(#) szucsistvan123 válasza sdrlab hozzászólására (») Jan 4, 2021 /
 
Anélkül szeretném megoldani. De ha nem sikerül az lesz.
(#) silent15 válasza szucsistvan123 hozzászólására (») Jan 4, 2021 /
 
Találtam egy egész részletes körbejárást, esetleg meg lehet ezzel is próbálkozni:
Bővebben: Link
(#) Zuzmo_farok válasza szucsistvan123 hozzászólására (») Jan 6, 2021 /
 
Szia,
Perjelekkel nem lehet baj az elérési útban?
\ nem egyenlő /
Linux terminálban ha \ -jelet raksz akkor az utána következő karaktert megváltoztatja, másképp értelmezi mint látszik.
(#) vargham hozzászólása Jan 30, 2021 /
 
Sziasztok!
ATF16V8 programozásával kapcsolatban ez a jó topik, vagy keresgéljek tovább?
köszönöm
(#) Bakman válasza vargham hozzászólására (») Jan 30, 2021 /
 
Ha érdemben nem tud senki hozzászólni, kb. mindegy is.

Mi a kérdés? Hátha valaki tudja mi a dörgés.
(#) vargham válasza Bakman hozzászólására (») Jan 30, 2021 /
 
Sosem használtam még ilyen eszközöket. WinCUPL segítségével szeretném programozni. Mindenféle dokumentáció, főleg példák, segítenek. Először azt szeretném megoldani, hogy az OE bemenet segítségével HI-Z állapotba állítsam az összes kimenetet. A programhoz vannak példák, de az OE használata csak más típusnál. Copy+paste után csak hibaüzenetet ad, részletek nélkül.
(#) vargham hozzászólása Jan 31, 2021 /
 
Vettem egy nagy levegőt, és megpróbáltam. Az eszköz ATF22V10C.
Feltöltöttm, teszteltem. Működik a logika.
Az output control viszont nem. Akár tápra, akár földre húzom, mindenképpen aktív a kimenet.
  1. Name      three_to_eight;
  2. Partno    VMP001;
  3. Date      31/01/21;
  4. Revision  01;
  5. Designer  VMP;
  6. Company   VMP;
  7. Assembly  None;
  8. Location  None;
  9. Device    g22v10;
  10.  
  11. /* Three to eight decoder with output enable */
  12.  
  13. /**  Inputs  **/
  14.  
  15. PIN [1..3]   = [S2..0]; /* Select inputs */
  16. PIN 13       = ! OE;    /* Output enable */
  17.  
  18. /**  Outputs  **/
  19.  
  20. PIN [14..21] = [Q7..0]; /* Register Outputs */
  21.  
  22. /** Declarations and Intermediate Variable Definitions **/
  23.  
  24. FIELD select = [S2..0];         /* Inputs Field                 */
  25. FIELD output = [Q7..0];         /* Outputs Field                */
  26.  
  27. /** Logic Equations **/
  28.  
  29. $DEFINE L 'b'0
  30. $DEFINE H 'b'1
  31. output = select:0 & [L, L, L, L, L, L, L, H]
  32.         # select:1 & [L, L, L, L, L, L, H, L]
  33.         # select:2 & [L, L, L, L, L, H, L, L]
  34.         # select:3 & [L, L, L, L, H, L, L, L]
  35.         # select:4 & [L, L, L, H, L, L, L, L]
  36.         # select:5 & [L, L, H, L, L, L, L, L]
  37.         # select:6 & [L, H, L, L, L, L, L, L]
  38.         # select:7 & [H, L, L, L, L, L, L, L];
  39. $UNDEF L
  40. $UNDEF H
  41.  
  42. output.oe = OE; /* tri-state control */
(#) vargham válasza vargham hozzászólására (») Jan 31, 2021 /
 
Itt egy gyári példa, amit a WinCUPL-hoz adott az Atmel. Kipróbáltam, az OE itt is hatástalan, mindig aktív a kimenet.

  1. Name      Barrel22;
  2. Partno    CA0006;
  3. Date      05/11/89;
  4. Revision  02;
  5. Designer  Kahl;
  6. Company   Logical Devices, Inc.;
  7. Assembly  None;
  8. Location  None;
  9. Device    g22V10;
  10.  
  11. /****************************************************************/
  12. /*                                                              */
  13. /* 8-Bit Registered Barrel Shifter                              */
  14. /*                                                              */
  15. /* This 8-bit registered barrel shifter takes 8 data inputs     */
  16. /* and cyclically rotates the data  0 to 7 places under     */
  17. /* control of the  ( S0, S1, S2 ) inputs.  A SET input    */
  18. /* can be used to initialize the outputs to the all ones state  */
  19. /****************************************************************/
  20. /* Allowable Target Device Types :  PAL22V10                    */
  21. /****************************************************************/
  22.  
  23. /**  Inputs  **/
  24.  
  25. PIN 1           = clock;        /* Register Clock               */
  26. PIN [2..9]      = [D7..0];      /* Data Inputs                  */
  27. PIN [10,11,14]  = [S2..0];      /* Shift Count  Inputs    */
  28. PIN 13          = !out_enable;  /* Register Output Enable       */
  29. PIN 23          = preset;       /* Set to Ones Input            */
  30.  
  31. /**  Outputs  **/
  32.  
  33. PIN [15..22] = [Q7..0];         /* Register Outputs             */
  34.  
  35. /** Declarations and Intermediate Variable Definitions **/
  36.  
  37. field shift  = [S2..0];         /* Shift Width Field            */
  38. field input  = [D7..0];         /* Inputs Field                 */
  39. field output = [Q7..0];         /* Outputs Field                */
  40.  
  41. /** Logic Equations **/
  42.  
  43. output.d  =  [D7, D6, D5, D4, D3, D2, D1, D0]  &  shift:0
  44.           #  [D0, D7, D6, D5, D4, D3, D2, D1]  &  shift:1
  45.           #  [D1, D0, D7, D6, D5, D4, D3, D2]  &  shift:2
  46.           #  [D2, D1, D0, D7, D6, D5, D4, D3]  &  shift:3
  47.           #  [D3, D2, D1, D0, D7, D6, D5, D4]  &  shift:4
  48.           #  [D4, D3, D2, D1, D0, D7, D6, D5]  &  shift:5
  49.           #  [D5, D4, D3, D2, D1, D0, D7, D6]  &  shift:6
  50.           #  [D6, D5, D4, D3, D2, D1, D0, D7]  &  shift:7;
  51.  
  52. output.sp = preset;             /* synchronous preset           */
  53.  
  54. output.oe = out_enable;         /* tri-state control            */
  55.  
  56. output.ar = 'h'00;              /* asynchronous reset not used  */
Következő: »»   47 / 49
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem