Fórum témák

» Több friss téma
Fórum » CPLD, FPGA - Miértek, hogyanok
Lapozás: OK   38 / 49
(#) pajti2 válasza he.henrik6626 hozzászólására (») Okt 16, 2014 /
 
Pont olyan devboardot sikerült berendelnem, ami kifogyott, és ezt a tényt csak fizetés után árulták el. Még vagy 2 hét, mire ide ér. Ennyit a gyakorlatról

Verilog kontra vhsic hitvitákkal tele a net, amit nem kívánok ide hozni. Amibe belefutottam, annak nem kellene sem hdl, sem fejlesztői környezet függőnek lennie. A hdl-ek mindegyike elvileg hordozható - ebből a szempontból legalábbis.
(#) eltexto válasza pajti2 hozzászólására (») Okt 17, 2014 /
 
Hali!

Idézet:
„Kissé ellentmondást érzek. Mit kellene gondolnom?”


Az ellentmondás szerintem abból fakad, hogy a Xilinx doksiban már a saját eszközspecifikus tulajdonságok alapján írták a guide-ot. Mivel ezek konfigurálható eszközök és a konfigurációs stream tartalmazza a regiszterek kezdő értékét is. Viszont, egy HDL forrás szintézisének eredménye, lehet egy nagy sorozatu ASIC is. Itt nincs konfigurációs stream, a regiszterek véletlenszerüen állnak be, kell egy szinkron, aszinkron reset a bekapcsolás után.

Üdv. Zoli
(#) pajti2 hozzászólása Okt 23, 2014 /
 
A kísérleti elektronikai tapasztalataitokra lenne szükségem. Sajnos nem vagyok felszerelve eszközökkel ahhoz, hogy kimérjem, amire kíváncsi vagyok.

Cpld-ből szintillesztő latch regisztereket faragnék, amiknek a kimenetéről differenciális órajelet is le kellene vennem. Vajon megbízhatok-e abban, hogy a kimeneten a logikailag egyébként közösen vezérelt jelek (közös jel tárolási vezérlés) szinkronban fognak megjelenni annyira, hogy a differenciális slew rate-em értékelhető legyen?

Ha valaki futott már össze a problémával, örülnék a tapasztalt tanácsnak. Ami doksikat fellelni tudtam, ott jel propagálási eltérések alapján összejöhet az elgondolásom, de az csak elmélet. Minden tippet előre is köszönök.
(#) holex hozzászólása Nov 26, 2014 /
 
Sziasztok! Van bármi különbség működés vagy fizikai megvalósítás szempontjából a három összeadó között?
  1. module adder0(input [31:0] num1, num2, output reg [31:0] out);
  2. always @ (num1 or num2)
  3. out <= num1+num2;
  4. endmodule
  5.  
  6.  
  7. module adder1(input [31:0] num1, num2, output reg [31:0] out);
  8. always @ (*)
  9. out <= num1+num2;
  10. endmodule
  11.  
  12. module adder2(input [31:0] num1, num2, output [31:0] out);
  13. assign out = num1+num2;
  14. endmodule
A hozzászólás módosítva: Nov 26, 2014
(#) he.henrik6626 válasza holex hozzászólására (») Nov 26, 2014 /
 
mellékelt képek
(#) holex válasza he.henrik6626 hozzászólására (») Nov 26, 2014 /
 
Akkor ezek szerint nincs. Köszönöm!
(#) BESENYII hozzászólása Dec 1, 2014 /
 
Hali!
Nem boldogulok a XILINX 12.2-es fordítójával: hogyn ismerje fel az LPT1-re dugott JTAG programozót. CSE server nevet vagy IP port-ot kér: Server name <host[;port]>
(#) gtk válasza BESENYII hozzászólására (») Dec 1, 2014 /
 
Ugy emlekszem be kell allitani valamit LPT-re vonatkozoan bioszban. Itt a topikban mintha volt szo rola.
(#) zut hozzászólása Dec 10, 2014 /
 
hello!
Adott egy ni labview rio evaulation kit.
Ha 2 DIO-t összekötök eg vezetékkel, egyiket írom, másikat olvasom, az úgy jó?
Azt szeretném tudni hogy nincs e rövidzár.
(#) matheattila válasza zut hozzászólására (») Dec 10, 2014 /
 
Szia, nem ismerem ezt a kit-et, de szerintem nyugodtan összekötheted őket, persze ha biztos vagy abban amit a programmal csinálsz, azaz még véletlenül se fogod mindkettőt kimenetre állítani a programból...
Biztos ami biztos alapon a sima vezeték helyett inkább pl egy 100-1k közötti ellenállást tegyél, így ha mégis mindkettő kimenet lenne és emellett még egyik föld és másik táp még akkor se lesz gond, mert az ellenállás korlátozza az áramot.
(#) zut válasza matheattila hozzászólására (») Dec 12, 2014 /
 
köszi!
(#) zut hozzászólása Dec 12, 2014 /
 
még egy dolog:
labview-ból lehet mikrovezérlőre progit írni?
(#) matheattila válasza zut hozzászólására (») Dec 12, 2014 /
 
Nem tudom, hogy te milyen mikrovezérlőre gondoltál, de ha az ezelőtt említett kit-ről van szó akkor több mint valószínű, hogy lehet, mást nem tudom, mikrovezérlőkre általában C-ben szoktak programot írni, de ez már lassan nem ebbe a topic-ba tartozik...
(#) cassis hozzászólása Dec 27, 2014 /
 
Nagy kedvvel vágtam a VHDL nyelv tanulásába de amellett hogy sok mindent értek azért vannak sötét foltok is. Például a következő dolog nem világos tömb bejelentésénél:

Alap szintaktika:
type típusnév is array (indexdef...1 [,indexdef...2]) of típus;

A dolog érthető ha ilyen pédát látok:
type word is array (31 downto 0) of bit;

Itt egy word nevű 0...31 között indexelt korábban definiált bit típusú tömb elemek helyezkednek el.

Itt már bizonytalanabb vagyok hogyan kell olvasni a sort.
type register is array (byte range 0 to 132) of Integer;

Itt egy regiszter nevű tömb keletkezik, melynek tagjai Integer típusúak, de az indexelés már leszűkíti a korábban vélhetően 0...255 közt definiált byte tartományt?

Aztán van ilyen is:
type vector is array (integer range <>) of Real;
Itt az index azt jelenti, hogy az bármilyen szám lehet... Kicsit bővebben valaki tudna segíteni ebben?

Aztán a legfurcsább variáció mikor ezt olvasom:
type vector_1 is array ( 0 to 20);
type vector_2 is array (NATURAL);
type vector_3 is array (INTEGER range -10 to 10);

Ezeknél hova lett a tömbelem típus? Tudnátok kicsit olvasmányosabbá tenni a fenti sorokat?
(#) Lucifer válasza zut hozzászólására (») Jan 2, 2015 /
 
Ha még aktuális: régebben (azt hiszem LV 2009-ig) volt egy LabVIEW for ARM csomag amivel ARM-okra lehetett fejleszteni, de ez ma már nem ajánlott új fejlesztésekhez. . A háttérben C kódot generál és a Keil fordítójával fordította le. Az egész a Keil RTX kernelére épül, ha nem supportált hardveren akarod futtatni akkor először azt kell portolni, ami anniyra nem triviális. Egy ismerősöm nekiállt egy STM32! alapú termosztáthoz portolni, de ha nem járt sikerrel.
A hozzászólás módosítva: Jan 2, 2015
(#) Suncorgo hozzászólása Feb 20, 2015 /
 
Sziasztok!

Így átfutva a topikot gyorsan az elején sok szó esett az ISE webpack rengeteg bugjáról. Ezek az elején elvették a kedvem de, gondolom azóta kijavították őket. Szeretném elkezdeni az ismerkedést a CPLD-kkel is.

Rengeteg kérdésem lenne, itt egy pár:

Órajel:
Külső kvarc oszcillátor de belül van ezekben PLL?
Kvarc oszcillátor helyett használható ha egy a CPLD belsejében lévő invertert használok és egy sima kvarc-ot? (pl kvarcoszcillátor TTL áramkörökkel)

Feszültség:
Hányfajta feszültség kell egy CPLD-nek? Használható a ki és bemeneteik 5V vagy 3,3V szintekkel?

A legfontosabb:
USB-s JTAG programozót honnan lehet nem arany áron szerezni hozzájuk?

Üdv: Suncorgo
A hozzászólás módosítva: Feb 20, 2015
(#) gtk válasza Suncorgo hozzászólására (») Feb 21, 2015 /
 
A kerdeseid nagy reszere valaszt talalsz az adatlapokban. En egy HC125-el epitett parhuzamos portos programozoval programoztam az XC9572XL-t, de gondolom hogy a fesz szintekre odafigyelve a coolrunner is programozhato lenne.
(#) cassis hozzászólása Ápr 18, 2015 /
 
Nem értem a VHDL kódban miért van az, hogy egyszer az arhitektúra az entitásában közvetlenül a pornak adja meg az értéket, míg más példaprogramban a processben deklarálni kellet egy változót és ez adja értékét tovább a portnak.

  1. entity MUX_4_1 is
  2. port (          SEL: in std_logic_vector(2 downto 1);
  3. A, B, C, D: in std_logic;
  4. Z: out std_logic);
  5. end  entity MUX_4_1;
  6.  
  7. architecture behav_MUX41 of MUX_4_1 is
  8. begin
  9. process (SEL, A, B, C, D)
  10. begin
  11. case SEL is
  12. when
  13. "00" => Z  <= A;
  14. when
  15. "01" => Z  <= B;
  16. when
  17. "10" => Z  <= C;
  18. when
  19. "11" => Z  <= D;
  20. when   others => Z  <= 'X';
  21. end    case;
  22. end    process;
  23. end    architecture behav_MUX41;


másik:

[code=c]
entity cnt is
port (clk, rst : in std_logic;
q : out std_logic_vector (3 downto 0));
end entity cnt;

architecture behavioral of cnt is
begin
process (clk) is
variable count : std_logic_vector (3 downto 0);
begin
i f (clk = '1') then
i f (rst = '1')
then count := B"0000";
else count := count + B"001";
end if;
end if;
q <= count;
end process;
end architecture behavioral;
[code=c]
A hozzászólás módosítva: Ápr 18, 2015
(#) matheattila válasza cassis hozzászólására (») Ápr 19, 2015 /
 
Azért van kétféle képpen, mert a feladat amit elvégeznek is más!

Az első (mint a neve is mutatja) egy multiplexer, ami a SEL bemenetek értékének függvényében kapcsolgatja valamelyik bemenetet a kimenetre (mint egy egyszerű mux. IC), s mivel nincs órajel amihez kellene szinkronizáljon ezért instant kapcsol ahogy megváltozik a SEL, ezért nincs belső változó, csak egyből a kimenetre pakolja a bemenetet.

A második esetben egy számlálód van (neve is mutatja... cnt, mint counter rövidítése). Egy számláló általában egy órajel változására növeli értékét, ebben az esetben a felfutó élre. Ez a számláló "meg kell jegyezze" az értékét, hogy majd a következő órajelnél legyen mit növelni egyel, másképp nem lenne számláló...Ahhoz, hogy meg tudja jegyezni, szükség van egy belső változóra (count) amiben tárolja az aktuális értéket, amit ki is tesz a kimenetre. Ennek a számlálónak még van egy reszet bemenete is, ha az is aktiv (logikai 1) miközben az órajel is "1" akkor nullázza a váltzó értékét ami megint megjelenik a kimeneten.


Természetesen az első esetnél is lehetne belső változót használni amibe eltárolja a bemenetet és majd kiteszi a kimenetre, de nem lenne semmi értelme, mert később nincs szükség arra az értékre, így egyszerűen "összeköti" a bemenetet a kimenettel.

Úgy kell implementálni ahogy az adott feladat kéri.
(#) cassis hozzászólása Ápr 19, 2015 /
 
A program működését értettem, már csak az a kérdés a magyarázatot is jól értem -e.
Egyetlen kulcs mondatot idéznék:
Idézet:

Ahhoz, hogy meg tudja jegyezni, szükség van egy belső változóra (count) amiben tárolja az aktuális értéket,

Megjegyezni megtudná Q -n is, de azért nem használják így mert esetleg Q -t módosíthatja más is a program egyéb - itt nem írt - részében?
(#) matheattila válasza cassis hozzászólására (») Ápr 19, 2015 / 1
 
Az igaz, hogy a kimenet is "megjegyzi" az adott értéket, csak azt nem tudod felhasználni bemeneti értékként is ha szükség lenne rá, azaz pl. ha egy bizonyos érték után szeretnéd reszetelni és nem túlcsorduláskor vagy külső reszet jel hatására.
Ezért jó a belső változó, azzal azt csinálsz amit akarsz, használhatod az egyenlőségjel mindkét oldalán, majd a végén kiteszed a kimenetre.
Itt egy példa: Bővebben: Link

szerk.: a kimenetet más része a programnak nem nagyon tudja módosítani direkt módon, mert nem engedi a hdl nyelv, egy kimenet csak egyetlen process-ben módosítható. Csak úgy lehet ha létre hozol egy-egy változót vagy signal-t mindegyik process-nek amelyik módosítani szeretné ugyanazt a kimenetet, majd azokat a változókat módosítod a process-ekben és majd egy VAGY kapuval kötöd őket az adott kimenetre. Persze ez is függ a feladattól, mert nem minden esetben van értelme ennek.
A hozzászólás módosítva: Ápr 19, 2015
(#) cassis válasza matheattila hozzászólására (») Ápr 19, 2015 /
 
Köszönöm a választ teljesen értem a dolgot.
Ugyan a kódot már jól tudom olvasni még kezdőnek számítok a nyelv rejtelmeiben.
Például a általad belinkelt példakódban egyáltalán nem világos miért kellett használni a
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
csomagokat?
Ha én írom ezt a programot biztosan eszembe sem jut mindez, anélkül meg nyilván nem működik.
Amit sejtek, de nem tudom jól gondolom -e a
use IEEE.STD_LOGIC_ARITH.ALL;
kell az összeadás elvégzéséhez, míg a
use IEEE.STD_LOGIC_UNSIGNED.ALL;
az operandusok típusbeállításához. (minden a programban definiált signal és változó ilyen lesz ??)
Jól gondolom?
(#) matheattila válasza cassis hozzászólására (») Ápr 20, 2015 /
 
Azt hiszem igen, de már nem emlékeszem pontosan, meg ezeket amúgy is az fejlesztői környezet (pl Xilinx ISE) adja hozzá a kódhoz mikor egy új vhdl állományt hozol létre
(#) cs_gabor hozzászólása Jún 13, 2015 /
 
Sziasztok!

Egy címdekódolót szeretnék készíteni (Amigához) és a sok kapu IC helyett CPLD-re gondoltam. Az 5V miatt az XC9536 vagy XC9582-re gondoltam első körben, de a programozóját a pénztárcámhoz mérten drágának tartom, kb 10eFt körül van pl. az eBay-en. Az Altera esetén viszont 1500Ft-ból meglenne egy "altera Mini Usb Blaster", de sajnos nem tudom alkalmas-e a fent nevezett típusok programozásához. Az Altera MAX7000 pdf-ben található táblázat szerint csak a MAX7000S típusokban van ISP via JTAG interfész, illetve külön oszlopban jelzi az EPM7032 és EPM7064 típusokat.
Esetleg ismeri valaki ezt a programozót?

Köszönöm
(#) gtk válasza cs_gabor hozzászólására (») Jún 13, 2015 /
 
XC9572XL-t programoztam LPT portos barkacsolt programozoval (egyetlen IC). Igaz manapsag mar nem valoszinu hogy LPT port van a gepeken.
Esetleg nezz utanna : Xilinx DLC5 Parallel Cable III.
A hozzászólás módosítva: Jún 13, 2015
(#) cs_gabor válasza gtk hozzászólására (») Jún 13, 2015 /
 
Nagyon szépen köszönöm, még van parallel portom, megnézem
(#) gtk válasza cs_gabor hozzászólására (») Jún 13, 2015 /
 
Ezt is nezd meg: Bővebben: Link Keress ra az oldalon: Here is an add-on for the XILINX programming hardware .
Vagy :Bővebben: Link
A hozzászólás módosítva: Jún 13, 2015
(#) killbill válasza gtk hozzászólására (») Jún 13, 2015 /
 
Itt a rajza a hazilag is megepitheto Parallel portos JTAG programozonak.
(#) cs_gabor válasza gtk hozzászólására (») Jún 13, 2015 /
 
Feltelepítettem az ISE Webpack-et, vagyis most már Vivado-t, viszont nem találom az XC9572-t illetve semmilyen hasonlót nem tartalmaz, mindössze Kintex Artix és Zynq családból lehet választani. Nincs alap logikai kapu sem, amiből összeállítanám a kapcsolást, csak komplex egységek... a google ugyan a barátunk de example-t sem nagyon találok, amiből el tudnék indulni, az első találat is egy "embedded processor design" és a többi is úgy kezdődik, hogy valamilyen fejlesztőkártyát kell kiválasztani... hát azt hittem azért ennél könnyebb lesz elindulni és érthetőbb, értelmezhetőbb a fejlesztőkörnyezet, nem processzort akarok tervezni és nem X ezer Euro-s fejlesztőkörnyezeten

Ha esetleg volna tanács, hogyan merre kezdjem (az alapoknál) megköszönöm előre is.
(#) killbill válasza cs_gabor hozzászólására (») Jún 13, 2015 /
 
Az ISE Webpack-bol a 14.7 a legutolso. Az meg talan tudja ezeket a CPLD-ket. A vivaldo nem. A Webpack letoltheto.
Következő: »»   38 / 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