Układy FPGA - parę pytań.

Dyskusje ogólne na temat "cyfrówki" czyli wszystko o TTL/CMOS, językach VHDL i VERILOG, bramkach, rejestrach, przerzutnikach... Dobre miejsce na pytania odnośnie uniwersalnych programatorów (np. Willem) a także podłączania własnych peryferiów do komputera PC.
ZbeeGin

Post autor: ZbeeGin » 12 mar 2008, 14:19

aktus pisze:A czy ktoś z Was ma może takie coś jak manuale do vhdla ( najlepiej po polskiemu lub po angielsku ).
Po anglijsku: http://www.doulos.com/knowhow/vhdl_designers_guide/

Awatar użytkownika
Gutek
Użytkownik
Posty: 323
Rejestracja: 27 sty 2006, 13:05
Lokalizacja: Wadowice
Kontakt:

Post autor: Gutek » 12 mar 2008, 14:49

gaweł pisze:Układy logiki programowalnej są elementami cyfrowymi i nie przetwarzają sygnałów cyfrowych.
Powinno być chyba że - Nie przetwarzają Sygnałów analogowych ale to chyba nieumyslna pomyłka .Programowalne pole Analogwowe jest np w mikrokontrolerach Cypresa PSoC.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 12 mar 2008, 19:35

Masz rację Gutek, powinno być sygnałów analogowych.
Również poprawiłem w poście wyżej.

aktus
Użytkownik
Posty: 379
Rejestracja: 06 sie 2007, 20:44
Lokalizacja: Tychy

Post autor: aktus » 13 mar 2008, 10:25

Dziękuję bardzo za odpowiedź. Pytam, bo będę musiał zrobić projekt przed wzmacniacza sterowanego cyfrowo wraz z obróbką cyfrową dźwięku. Mam 2 ARM-y9 ( STM32F ) i ewentualnie zastanawiam się czy nie zakupić/zasamplować jakiegoś FPGA do tego jako DSP.

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 13 mar 2008, 23:55

Witam!
Interesuje mnie czy jest możliwość zaprogramowania układu PLD: 16R8 przy użyciu programatora którego budowę przedstawia artykuł traktujący o gumowej logice w elportalu- strona wskazana parę postów wyżej przez gawła. Co prawda jest tam wyraźnie napisane ze jest to programator układów Xilinx a układ 16R8 jest produkcji Cypress'a, ale wolę zapytać dla pewności.
Może macie jakiś prosty programator w/w układu. Dziekuję.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 14 mar 2008, 0:19

Wymieniony układ jest najprawdopodobniej układem PAL a te podobnie jak typowe układy GAL nie są programowalne w układzie (znam tylko jeden wyjątek: układy ispGAL), czyli scalaczka trzeba wyjąć z układu, włożyć do programatora i po zaprogramowaniu włożyć do docelowego układu. Jest bardzo prawdopodobne, że ten układ Cypress'a nie jest reprogramowalny (typowe układy PAL takie były) ale to musisz sprawdzić na stronie producenta i może się okazać, że jeżeli jest z odzysku, to nadaje się na ... breloczek do kluczy.
Trudno jest mi wskazać jakiś tani programator do takich układów. Ja posługuję się programatorem LabTool 48 a on praktycznie programuje "wszystko co się rusza" więc nigdy nie poszukiwałem innych rozwiązań bo ich nie potrzebowałem.

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 14 mar 2008, 10:02

Pozwolę sobie zamieścić "listing"- konfigurację układu 16R8.
:arrow: rozumiem ze nie jest to takie programowanie jak np. AVR- nie mamy tutaj instrukcji do wykonania, a w zamian za to jest opis konfiguracji urządenia:

Kod: Zaznacz cały

}
MODULE QuadDivider;
TITLE QuadDivider V1.0;
COMMENT Device: 16R8;
TYPE MMI 16R8;
INPUTS;
RESET NODE[PIN2] INVERTED;
X4 NODE[PIN3];
P0 NODE[PIN4]; { Phi0 }
P90 NODE[PIN5]; { Phi90 }
INDX NODE[PIN6];
{ Feedback pins }
S2 NODE[PIN12];
S4 NODE[PIN13];
P0D NODE[PIN14];
P90D NODE[PIN15];
CntUp NODE[PIN18];
CntDn NODE[PIN19];
UP NODE[PIN16];
COUNT NODE[PIN17] INVERTED;
OUTPUTS;
S2 NODE[PIN12];
S4 NODE[PIN13];
P0D NODE[PIN14];
P90D NODE[PIN15];
CntUp NODE[PIN18];
CntDn NODE[PIN19];
UP NODE[PIN16];
COUNT NODE[PIN17] INVERTED;
TABLE;
S2 := P0D & !RESET;
S4 := P90D & !RESET;
P0D := P0 & !RESET;
P90D := P90 & !RESET;
CntUp := COUNT & UP;
CntDn := COUNT & !UP;
COUNT :=
( P0D & S2 & !P90D & S4 & X4{ C1 }
+!P0D & !S2 & P90D & !S4 { C2 }
+!P0D & S2 & !P90D & !S4 & X4{ C3 }
+ P0D & !S2 & P90D & S4 & X4{ C4 }
+ P0D & S2 & P90D & !S4 & X4{ C5 }
+ P0D & S2 & P90D & S4 { C6 }
+!P0D & S2 & P90D & S4 & X4{ C7 }
+ P0D & !S2 & !P90D & !S4 & X4{ C8 }
) & !RESET;
UP :=
(
!P0D & S2 & !P90D & S4
+!P0D & S2 & P90D & S4
+!P0D & S2 & P90D & !S4
+ P0D & S2 & P90D & !S4
+ P0D & !S2 & P90D & !S4
+ P0D & !S2 & !P90D & !S4
+ P0D & !S2 & !P90D & S4
+!P0D & !S2 & !P90D & S4
) & !RESET;
END;
END QuadDivider;
I moje pytanie jak to wsadzić w układ PAL?
PS. nie mam takiego układu- chciałem zbudować pewien układ w którym użyto takiego układu. Pozdrawiam

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 14 mar 2008, 10:51

To ja też pozwolę sobie zacytować fragment "gumowej logiki":
  • Specyfiką układów PLD jest to, że wytworzony przez człowieka zbiór (jak opis w języku HDL: Hardware Description Language) nie jest programem, zapisy w języku HDL nie są instrukcjami do wykonania. W żadnym wypadku nie należy szukać analogii do języków programowania mikroprocesorów.
Jak to wsadzić w ... PAL: skompilować odpowiednim kompilatorem (wygląda to na PALASM-trochę archaiczne oprogramowanie), który wygeneruje plik, który należy "wbić" w układ za pomocą programatora (plus program sterujący programatorem).
Można ewentualnie zaproponoać następujące rozwiązanie:
- użyć układu GAL, jest to funkcjonalny odpowiednik układów PAL ale bardziej współczesny, same układy są bardziej dostępne programatory są bardziej dostępne (o ile dobrze sobie przypominam, to chyba ZbeeGin podawał jakiegoś linka na prosty programator),
- zainteresować się pakietem WinCupl dostępny na stronie www.atmel.com (na tym forum był taki temat poruszony),
- pakiet WinCupl może to kupić wprost lub po drobnych poprawkach lub ewentualnie napisać po swojemu jeżeli wiadomo dokładnie co to ma robić

lub zrobić tak
- kupić majmniejszy układ CPLD (np XC9536XL),
- narysować to jako schemat w programie WebPack
- skompilować i wynik zaprogramować programatorem zaprezentowanym w "gumowej logice".

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 22 mar 2008, 23:14

Witam!
Dość dużo używam pakietu Protel 99SE, ale zawsze pomijałem wszystko co miało w nazwie PLD. Czy w tym środowisku również można przygotowywać dokumentacje do układów PLD (tzn. pisać "programy itp. czy ma jakieś kompilatory, programatory)?

ODPOWIEDZ