Fórum témák

» Több friss téma
Fórum » CPLD, FPGA - Miértek, hogyanok
Lapozás: OK   5 / 49
(#) gtk válasza dpeti hozzászólására (») Szept 22, 2007 /
 
Koszi !

Meg egy kerdesem lenne:
Van olyan FPGA tipus amit otthoni (hobbis) korulmenyek kozott lehetne hasznalni, ugy mint pl XC95xx CPLD csaladot?
(#) dpeti válasza gtk hozzászólására (») Szept 22, 2007 /
 
huh...
nagyon nincs...
minimum TQFP tokozás, utánna már csak BGA, a CPLD-kből még van PLCC-s, de xilinx fpga-ban már nem...
plussz 3 féle tápfesz kell a legtöbbnek (újabbaknak kettő)
ha van kedved próbálkozni, akkor vegyél egy SmartchBoardot (chipcadnél), az egy kis nyák darab, rajta sok előónozott Pad-el, amire BGA, TQFP + még egy csomó más fajta IC-t tudsz ráforrasztani, kvázi egyszerűen, csak folyatószer, meg vékony páka kell hozzá, esetleg kevés ón...

mielőtt veszel ilyet, nézd meg a kiszemelt fpga adatlapjában a kivezetések közötti távolságot, és aszerint válassz majd SB-t...

erre még plusszba tudsz pár smd kondit ellenállást pakolni, meg tüskesoros kivezetést körben, így amolyan modulszerűen hozzápakolhatod bármihez...
arra a nagyobb méretre meg már tudsz fogadó nyákot készíteni (bár lehet hogy nem tudod az összes kivezetést használni házi körülmények között, de a semmitől több)
+nem tudsz akkora nagy sebességeket sem majd elérni vele, mert elég sok zajt be fog szedni + a parazita kapacitások is nagyok lesznek
(#) dpeti válasza dpeti hozzászólására (») Szept 22, 2007 /
 
de szerintem jobban kijönnél, ha picit gyűjtenél vmi starter kit szerűségre, és azzal utánna játtszadozhatnál kedvedre...

ez a legolcsóbb (18e nettó)
Spartan-3E_Evaluation_Kit
(#) gtk válasza dpeti hozzászólására (») Szept 23, 2007 /
 
Koszi !

Meg nagyon alap nalam ez az egesz.
Az este sikerult a 'pek projects' oldalon talalhato CPLDs fejlesztoipanelt vegre beuzemelni. Es oromomre kiderult, hogy a korabban veletlenul 5V-al betaplalt XC9572XL is meg mindig mukodokepes
Az FPGAs kerdesem csak azert volt, hogy lassam mik a lehetosegek, hogy erdemes-e nekem otthoni korulmenyek kozott ezzel komolyabban foglalkozni a jovoben.
Elegge nehezemre esik ezt a VHDLt felfogni, mivel en C programozashoz vagyok szokva. Szoval el kell sajatitanom egy egesz mas szemleletmodot. Teljesen hardveresen nem tudok tekinteni ra, ahhoz keves vagyok..
(#) bbatka válasza gtk hozzászólására (») Szept 23, 2007 /
 
"Elegge nehezemre esik ezt a VHDLt felfogni"
Nekem is. Egy BME-s leírásból próbálok okosodni, de nem az igazi. Az angol nyelvűek közül meg felesleges lenne bármelyikbe bele kezdenem addig, míg az alapelveit nem értem meg.
(#) dpeti válasza gtk hozzászólására (») Szept 23, 2007 /
 
ezért kezdjed veriloggal
(#) dpeti válasza dpeti hozzászólására (») Szept 23, 2007 /
 
kezdők (különösen hobbisták) számára a VHDL-el való kezdés ellenjavalt...
többszörösen bonyolultabb, mint a verilog, VHDL-t csak nagyobbszabású rendszerek tervezésénél használnak (na jó persze ezzel is lehet egyszerűbb dolgokat, csak hülyeség pazarolni rá az időt vele)
a verilog inkább hasonlít a C nyelvre külalakra, természetesen ettől függetlenül még ugyanúgy egy áramkört írsz le vele, ezért nem szabad programozói mentalitással tervezni verilogban, mert abból csak "Garbage in, garbage out" lesz...
cserébe a verilog-ban megalkotott mű kevésébe megbízható, mint VHDL-es társai, bár ez is a tervezőn múlik, de pl a VHDL egy eléggé szigorú nyelv, és ezért is használják 'mission critical' alkalmazásokban (ugyanis könnyebben kibukik benne a hiba)
(#) sgyuri válasza dpeti hozzászólására (») Szept 23, 2007 /
 
Szia Peti!

Már 2 napja tanulom a PLD témát és a jelenlegi feladatomhoz a XILINX CPLD eszközét találtam megfelelőnek ezért aztán holnap veszek is egy kis panelt és valami Programozási lehetőséget . A Kérdéseim :
1. Láttál-e olyan embert aki az Altium Desigener-t használta CPLD vagy FPGA fejlesztéshez?
És ha igen akkor milyen hardware igénye van az ALtiumnak ehhez e feldathoz?
2. Ha független égetőt kell használnom az Altium milyen az égetők számára használható formára tudja lefordítani a beégetendő állományt.
3. Valakinek sikerült-e az Altium szimulátorát használni?
Gyuri
(#) dpeti válasza sgyuri hozzászólására (») Szept 23, 2007 /
 
nem igazán...
én ISE webpackot használok, suliban is ezt tanítják...
nem ismerem az Altium Designert...
(#) sgyuri válasza dpeti hozzászólására (») Szept 23, 2007 /
 
És a ISE WebPack-hoz milyen hardware kell az égetéshez?
Itt a topikon nem sok jót olvastam a Webpack-ról.
Remélem te már tudsz valami biztatót is mondani róla.
Lehet schematik alaján tervezni?
Komplett a könyvtára?
(#) dpeti válasza sgyuri hozzászólására (») Szept 23, 2007 /
 
pl mi az ami nem tetszett az embereknek benne?
nehogy azt hidd, hogy pl az Altiummal kevesebb szívás van mindegyik elég komplex program ahhoz, hogy órákat lehessen eltökölni apró dolgokon :p

lehet ise-ben is rajzolva tervezni, de nem ajánlott... igaz tud az is mindent amit kell, de ha már egyszer mindenáron FPGA-val akarsz foglalkozni, akkor tanulj meg egy HDL nyelvet... nem olyan bonyolult...
ajánlom pl a Verilogot...

azon meg mit értesz hogy komplett a könyvtára?
minden benne van ami kell, ami meg nincs, azt alapelemekből megépíted...

van benne egy CoreGenerator nevű program, azzal tudsz bonyolultabb előregyártott modulokat testreszabva belepakolni
---
az égetéshet vagy építesz párhuzamos portra JTAG kábelt, vagy veszel (ami ne ajánlott mert drága, inkább építs), meg van USB-s változat is, na az is vagy 40 ezer huf...
a legolcsóbb az a home-made párhuzamos JTAG kábel...
(#) sgyuri válasza dpeti hozzászólására (») Szept 23, 2007 /
 
Az ISE -ről csak annyit olvastam, hogy egy rakás SP-t kell feltölteni , hogy működjön.
Köszi a segítséget akkor megpróbálom a webpack-ot begerjeszteni és ránézek a verilog nyelvre is. De nekem a héten már működő darabot kell letennem a főnőkőm asztalára ezért első közelítésben schematic-kal próbálkozom. Párhuzamos JTAG kábelt tudok szerezni, most nincs időm a home made re.
Szia jó éjt!
Az eredmény(telenség)ről beszámolok.
Szia. Jó éjt!
Gyuri
(#) dpeti válasza sgyuri hozzászólására (») Szept 23, 2007 /
 
a Service Packes dolgok sajnos igazak :p
de ilyen méretű programoknál ezen meg sem szabad lepődni
---
Hamar bele lehet tanulni, Sok sikert hozzá!

(#) gtk válasza dpeti hozzászólására (») Szept 24, 2007 /
 
Namost akkor ez a Service Pack dolog azt jelenti, hogy addig neki se fogjak fejleszteni amig az nincs fent?
Es milyen Sp-t kell felrakni?
(#) dpeti válasza gtk hozzászólására (») Szept 25, 2007 /
 
neki lehet fogni anélkül is...
elég ritkán jönnek elő hibák, ha előjön vmi idegesítő, akkor kell felrakni...
(#) gtk hozzászólása Szept 26, 2007 /
 
Sziasztok !

Ma szorakoztam egy picit WP-el VHDL-ben.
Egy meglevo (pek projects) szamlalos - ledes kodot atirtam, hogy legyen valami sajat is benne. Mukodik

  1. Library ieee;
  2. Use ieee.std_logic_1164.ALL;
  3. Use ieee.std_logic_unsigned.ALL;
  4.  
  5. Entity k1 is
  6.  port(signal ledek: out std_logic_vector(3 downto 0);
  7.       signal clk: in bit);
  8. end;
  9.  
  10. Architecture rtl of k1 is
  11. signal count: std_logic_vector(21 downto 0); --22 bites szamlalo
  12. signal cnt_2: std_logic_vector(3 downto 0); --4 bites -
  13. begin
  14.   ledek <= cnt_2(3 downto 0); --ledek a 4 bites szamlalon
  15.  
  16.  process(clk) --processz
  17.  begin
  18.   if clk'event and clk='1' then --felfuto el detektalas
  19.    count <= count-1; --count leptetese
  20.      if count = 0 then -- count 0. ertekenek erzekelese
  21.       cnt_2 <= cnt_2 + 1; -- cnt_2 leptetese
  22.      end if;
  23.   end if;      
  24.  end process;
  25.  
  26. end;


A kerdesem az lenne, hogy : hogy lehet VHDL-ben decimalis elore-szamlalot letrehozni?

Nincs valakinek valami anyaga az adattipusokrol, es hogy kb melyik tipusbol mit lehet letrehozni?

Koszi.
(#) eltexto válasza gtk hozzászólására (») Szept 26, 2007 /
 
Hali !

Google: 'vhdl decimal counter'

link:

Üdv. Zoli
(#) gtk válasza eltexto hozzászólására (») Szept 26, 2007 /
 
Szia !

Koszi, de nem erre gondoltam ( vagy nem latom benne a lenyeget)
Csak annyit szeretnek egyelore elerni, hogy VHDL-ben implementaljak egy decimalis szamlalot, a beszurt kodban talalhato 'cnt_2' binaris szamlalo helyett.

(#) eltexto válasza gtk hozzászólására (») Szept 27, 2007 /
 
Szia Gtk !

Mivel itt is csak bitek állnak rendelkezésre a fizikai megvalósitásban, ezért szerintem a decimális helyiértékekre kell bontani a számot ( 1 dec. hely. 4 bit.) 9-ig elszámolni, átvitelt képezni a magasbb helyiérték felé, törölni a helyiértéket. Igy binárisan kódolt decimális helyiértékeid lesznek. Ezt csinálják a linken is a BCD forrásban. Aztán ezt a BCD formát át lehet kódolni pl. 7szegmenses ledekre, vagy más fomára. Ha valami másra gondoltál, ird le részletesebben.

Üdv. Zoli
(#) gtk válasza eltexto hozzászólására (») Szept 27, 2007 /
 
Szia eltexto !

Na ezen elmelkedhetekBocsi az ertetlensegemert, de nalam ez meg nagyon alap.

Probaltam processzben integer valtozot letrehozni es erteket ciklikusan 2 -vel szorozni, majd cnt_2 re kiirni persze atalakitassal, de nem mukodik.
Namost egy olyan tipusra lenne suzksegem amit lehet szorozni es a
  1. conv_std_logic_vector(arg, size:integer )
-nak is tetszik.

Igy probaltam:

  1. process(clk) --processz
  2.  variable a: integer := 1;
  3.  begin
  4.   if clk'event and clk='1' then --felfuto el detektalas
  5.    count <= count-1; --count leptetese
  6.      if count = 0 then -- count 0. ertekenek erzekelese    
  7.                 cnt_2 <= conv_std_logic_vector(a, 4); -- cnt_2 leptetese
  8.       a := a * 2;
  9.           end if;
  10.   end if;      
  11.  end process;


Udv.
(#) eltexto válasza gtk hozzászólására (») Szept 27, 2007 /
 
Hali !

Én is kezdő vagyok még, de mintha a variable a processen belul nem tartaná meg az értékét a következö processig. Csak abból következtetem, hogy a process-en belül definiálod és ez minden lefutáskor érvényes lehet. Mármint, hogy kezdőértéket adsz neki, de ha nem adnál, akkor meg default legkissebb értékkel indulna a process. De szóljon más is aki jobban tudja, mert ezt én csak úgy gondolom.

Üdv. Zoli
(#) gtk válasza eltexto hozzászólására (») Szept 27, 2007 /
 
Szia !

Ezt nem tudom. De ha kiveszem a processzbol akkor signal kell legyen, nemde?
A legnagyobb gond az a peldaban hogy forditaskor ad egy rakas figyelmeztetest..
De jo lenne egy ertheto attekintheto tomor leiras errrol a VHDL-rol..

Udv.
(#) eltexto válasza gtk hozzászólására (») Szept 27, 2007 /
 
Igen, signalnak kéne lennie. signal a :integer; vagy ha nem akarsz warningot a nemhasznált node-ok miatt, akkor signal a :integer range 0 to 15;, de ekkor a modelsim kiakad az a=16 -diknál, mivel a range behatárolja 0 és 15 közé, a process meg csak szorozgatja 2-vel. Hogy a hw-en ez mit csinál, ki kell próbálni.

Üdv. Zoli
(#) eltexto válasza gtk hozzászólására (») Szept 27, 2007 /
 
Én innen szoktam összehalászni ami éppen aktuális nálam:
www.vhdl-online.de

Üdv. Zoli

(#) gtk válasza eltexto hozzászólására (») Szept 28, 2007 /
 
Szia !

Koszi szepen linket.
Sehogy nem jott ossze az elobbi... Azt hiszem kicsit nekiugrottam.

Lenne meg egy kerdesem:
Az architekturat lehet feltetelhez kotni?
Arra gondolok, hogy pl. beolvassa egy port 3 bit allapotat es aszerint allitja be a tobbi I/O-t kimenetnek, vagy bemenetnek.(Itt tegyuk fel hogy a port definicioban inout-nak van allitva mindegyik hasznalt lab, hogy lehessen ki es bemenet egyarant).Lehet ilyet?

Udv.
(#) gtk hozzászólása Szept 28, 2007 /
 
Bocsi, az elozo kerdesem masodik fele ertelmetlen.
Valojaban arra vagyok kivancsi hogy :
Architekturaban feltetelrendszer lehet-e? (vagyis feltetel szerint lehet-e leirni architekturat.)
(#) eltexto válasza gtk hozzászólására (») Szept 28, 2007 /
 
Idézet:
„Koszi szepen linket.
Sehogy nem jott ossze az elobbi... Azt hiszem kicsit nekiugrottam.


Pedig én kicsit átalakitottam és szimuláció szerint müködik:

Entity k1 is
port( RESET : in std_logic;
LEDEK : out std_logic_vector(3 downto 0);
CLK : in std_logic);
end;

Architecture rtl of k1 is
signal count : std_logic_vector(21 downto 0); --22 bites szamlalo
signal cnt_2 : std_logic_vector(3 downto 0); --4 bites -
signal a : integer;

begin

LEDEK <= cnt_2(3 downto 0); --ledek a 4 bites szamlalon

process(RESET,CLK) --processz
begin
if(RESET = '1') then
a <= 1;
count <= (others => '0');
cnt_2 <= "0000";
elsif CLK'event and CLK='1' then --felfuto el detektalas
count <= count-1; --count leptetese
if count = 0 then -- count 0. ertekenek erzekelese
cnt_2 <= conv_std_logic_vector(a, 4); -- cnt_2 leptetese
a <= a * 2;
end if;
end if;
end process;
end;

Ebbe is már van feltétel (if), vagy olyanra gondolsz mint a C-ben az ifdef feltételes forditás ?

Én úgy tudom legjobban megérteni ezt az egészet, hogy egy számomra érdekes más által irt forrást elkezdek értelmezni. Igy nekem sokkal könnyebben megy.

Üdv. Zoli
>
(#) gtk válasza eltexto hozzászólására (») Szept 29, 2007 /
 
Koszi szepen hogy foglalkoztal vele !
Ki fogom probalni a kododat, csak most nincs nalam a fejlesztopanel.Bar ugy emlekszem hogy RESET reszet kiveve probalkoztam ezzel a koddal is.
(#) gtk válasza eltexto hozzászólására (») Szept 29, 2007 /
 
Megprobalom a felteteles kerdesemet erthetobben leirni valos peldan keresztul. Szeretnek epiteni egy eprom egetot CPLD-vel, 27C-hez egyelore. Namost tudjuk hogy mindegyik tipusu 27C eprom labkiosztasa mas. Arra gondoltam hogy eprom tipus szerint lehetne valahogy configolni a CPLD labakat, hogy melyik milyen funkciot toltson be , es hogyan kapcsolodjon az epromhoz meg a belso logikahoz.
Ezt a konfigot a PC felol erkezo elso byte adna meg,.
Ennek elmeleti megvalositasa erdekelne. pl. hogy hova kell rakni a felteteleket ilyen esetben, processzbe vagy architekturaba is lehet?Hiszen itt van a labakkal az osszehuzalozas , nem?
Nem tudom mennyire voltam ertheto.

Udv.
(#) eltexto válasza gtk hozzászólására (») Szept 29, 2007 /
 
-- This statement muxes out the data pins to the hex decoder
-- based on the cur_digit value. Digit 0 is the MSD and
-- digit 7 is the LSD.
digit_data <= data(31 downto 28) when cur_digit = "000" else
data(27 downto 24) when cur_digit = "001" else
data(23 downto 20) when cur_digit = "010" else
data(19 downto 16) when cur_digit = "011" else
data(15 downto 12) when cur_digit = "100" else
data(11 downto 8) when cur_digit = "101" else
data( 7 downto 4) when cur_digit = "110" else
data( 3 downto 0);

Ez architektúrán belül van, concurent statement. A cur_digit értékétől függően multiplexeli a digit_data-ra a 4 bites szeleteket a data(31 downto 0) -ról.

De meg lehetne csinálni szekvenciálisan is a case-el process-en belül. Vagy if-then-else - vel is.

Üdv. Zoli
>
Következő: »»   5 / 49
Bejelentkezés

Belépés

Hirdetés
XDT.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