-
1. Data: 2016-01-02 13:18:40
Temat: Jak działa FPGA?
Od: Ignacy <n...@s...ignacy>
Gdy bramka mam 2 wejścia i jedno wyjście, potrzeba 4 bitów do zapisu
typu bramki.
Mamy 16 możliwości:
0000 - nudne, zawsze da zero
0001 - or
0010 - NOT implikacja
0011 - tylko drugi się liczy
0100 - NOT zamieniona implikacja
0101 - tylko pierwszy się liczy
0110 - xor
0111 - and
1000 - nand
1001 - xnor
1010 - tylko NOT pierwszego się liczy
1011 - zamieniona implikacja
1100 - tylko NOT drugiego się liczy
1101 - implikacja p,q
1110 - nor
1111 - nudne, zawsze da jeden
A jak to jest w FPGA? 1 CLB = 4 slice, które dzielą się na dwie tablice
LUT, z których każda ma 4 wejścia i jedno wyjście.
Programuje/konfiguruje się w ten sposób że dla LUT przekazuje się 16
bitową wartość określającą jak ma się zachowywać?
Czy nie lepiej były by drobniejsze elementy, takie jednobramkowe?
Choć ilość, mimo że układy FPGA są tworzone w technologii liczonej w
nanometrach, nie jest imponująca. Ilość bramek i pamięci mierzy się w
tysiącach, jak to się ma do 16 GB pamięci flash? Dlaczego pamięci mogą
mieć znacznie więcej podstawowych elementów?
Jeszcze Xilinx ma te układy bogatsze a układy innych firm mają dość mało
bramek.
-
2. Data: 2016-01-02 22:13:14
Temat: Re: Jak działa FPGA?
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
W dniu 02.01.2016 o 13:18, Ignacy pisze:
> Gdy bramka mam 2 wejścia i jedno wyjście, potrzeba 4 bitów do zapisu
> typu bramki.
> Mamy 16 możliwości:
> 0000 - nudne, zawsze da zero
> 0001 - or
> 0010 - NOT implikacja
> 0011 - tylko drugi się liczy
> 0100 - NOT zamieniona implikacja
> 0101 - tylko pierwszy się liczy
> 0110 - xor
> 0111 - and
> 1000 - nand
> 1001 - xnor
> 1010 - tylko NOT pierwszego się liczy
> 1011 - zamieniona implikacja
> 1100 - tylko NOT drugiego się liczy
> 1101 - implikacja p,q
> 1110 - nor
> 1111 - nudne, zawsze da jeden
>
> A jak to jest w FPGA? 1 CLB = 4 slice, które dzielą się na dwie tablice
> LUT, z których każda ma 4 wejścia i jedno wyjście.
> Programuje/konfiguruje się w ten sposób że dla LUT przekazuje się 16
> bitową wartość określającą jak ma się zachowywać?
> Czy nie lepiej były by drobniejsze elementy, takie jednobramkowe?
> Choć ilość, mimo że układy FPGA są tworzone w technologii liczonej w
> nanometrach, nie jest imponująca. Ilość bramek i pamięci mierzy się w
> tysiącach, jak to się ma do 16 GB pamięci flash? Dlaczego pamięci mogą
> mieć znacznie więcej podstawowych elementów?
> Jeszcze Xilinx ma te układy bogatsze a układy innych firm mają dość mało
> bramek.
Nie wiem jak w innych, ale np w Xilinx-ie (Spartan 3) LUT to jest w
sumie szesnastobitowa pamięć RAM w organizacji 16x1. Te cztery wejścia
LUT to szyna adresowa tej pamięci. Czyli nie jest to "programowanie typu
bramki" tylko wpisując wartości do tej pamięci w trakcie programowania
FPGA taki LUT może realizować dowolną funkcję czterech zmiennych logicznych.
--
Pozdrawiam
Grzegorz
-
3. Data: 2016-01-02 22:55:42
Temat: Re: Jak działa FPGA?
Od: Ignacy <n...@s...ignacy>
W dniu 02.01.2016 o 22:13, Grzegorz Kurczyk pisze:
> Nie wiem jak w innych, ale np w Xilinx-ie (Spartan 3) LUT to jest w
> sumie szesnastobitowa pamięć RAM w organizacji 16x1. Te cztery wejścia
> LUT to szyna adresowa tej pamięci. Czyli nie jest to "programowanie typu
> bramki" tylko wpisując wartości do tej pamięci w trakcie programowania
> FPGA taki LUT może realizować dowolną funkcję czterech zmiennych
> logicznych.
Próbuję zrozumieć elektronikę od strony tranzystorów. Gdyby tablice LUT
miały tylko dwa wejścia i były czymś w rodzaju bramek, narzut elementów
obsługujących tę jedną bramkę byłby jeszcze większy.
Teraz w LUT oprócz innych elementów jest 16 komórek pamięci. Są robione
w technologii CMOS? Czy komórka pamięci to tranzystor, może więcej +
kondensator? Organizacja pamięci to 16x1, czyli zamiast wpisać coś do
pamięci od razu, wpisujemy po bicie - na czterech wejściach adres i na
jeszcze dodatkowym wartość bitu? Każdy LUT musi mieć swój adres przy
programowaniu całej kostki, jest jeszcze hierarchia - slice,CLB.
czy te 4 wejścia działają w dwóch trybach? gdy programuje się je to jest
to szyna adresowa, a gdy wykonuje operacje, to jest wykonywana na nich
funkcja? teraz przyszło mi do głowy, że wykonanie funkcji to odczytanie
n-tego bitu z szesnastu. Czyli w tym tkwi tajemnica.
Komórka musi być połączona z 8 sąsiadami, więc też trzeba by
zaprogramować z kim się łączy, bo nawet gdybyśmy mieli same branki NAND,
to obwód zależałby od ich połączeń.
Skoro to są tablice 16-bitowe LUT zamiast bramek, to jak przetłumaczyć
sieć bramek na takie tablice? Sumator 1-bitowy połowiczny to XOR i AND,
a pełny to 5 różnych bramek, nie mówiąc o bardziej skomplikowanych
układach. Teraz zamiast bramek są tablice LUT.
-
4. Data: 2016-01-02 23:03:33
Temat: Re: Jak działa FPGA?
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
W dniu 02.01.2016 o 22:55, Ignacy pisze:
> W dniu 02.01.2016 o 22:13, Grzegorz Kurczyk pisze:
>> Nie wiem jak w innych, ale np w Xilinx-ie (Spartan 3) LUT to jest w
>> sumie szesnastobitowa pamięć RAM w organizacji 16x1. Te cztery wejścia
>> LUT to szyna adresowa tej pamięci. Czyli nie jest to "programowanie typu
>> bramki" tylko wpisując wartości do tej pamięci w trakcie programowania
>> FPGA taki LUT może realizować dowolną funkcję czterech zmiennych
>> logicznych.
>
> Próbuję zrozumieć elektronikę od strony tranzystorów. Gdyby tablice LUT
> miały tylko dwa wejścia i były czymś w rodzaju bramek, narzut elementów
> obsługujących tę jedną bramkę byłby jeszcze większy.
> Teraz w LUT oprócz innych elementów jest 16 komórek pamięci. Są robione
> w technologii CMOS? Czy komórka pamięci to tranzystor, może więcej +
> kondensator? Organizacja pamięci to 16x1, czyli zamiast wpisać coś do
> pamięci od razu, wpisujemy po bicie - na czterech wejściach adres i na
> jeszcze dodatkowym wartość bitu? Każdy LUT musi mieć swój adres przy
> programowaniu całej kostki, jest jeszcze hierarchia - slice,CLB.
> czy te 4 wejścia działają w dwóch trybach? gdy programuje się je to jest
> to szyna adresowa, a gdy wykonuje operacje, to jest wykonywana na nich
> funkcja? teraz przyszło mi do głowy, że wykonanie funkcji to odczytanie
> n-tego bitu z szesnastu. Czyli w tym tkwi tajemnica.
> Komórka musi być połączona z 8 sąsiadami, więc też trzeba by
> zaprogramować z kim się łączy, bo nawet gdybyśmy mieli same branki NAND,
> to obwód zależałby od ich połączeń.
> Skoro to są tablice 16-bitowe LUT zamiast bramek, to jak przetłumaczyć
> sieć bramek na takie tablice? Sumator 1-bitowy połowiczny to XOR i AND,
> a pełny to 5 różnych bramek, nie mówiąc o bardziej skomplikowanych
> układach. Teraz zamiast bramek są tablice LUT.
>
>
Jeśli znasz rodzinę TTL, to mogę wyjaśnić budowę takiego LUT-a
rozpisując go na TTL-e :-)
Da się to zrobić z dwóch 74164 i jednego 74150 ;-)
--
Pozdrawiam
Grzegorz
-
5. Data: 2016-01-03 00:04:09
Temat: Re: Jak działa FPGA?
Od: Ignacy <n...@s...ignacy>
W dniu 02.01.2016 o 23:03, Grzegorz Kurczyk pisze:
> Jeśli znasz rodzinę TTL, to mogę wyjaśnić budowę takiego LUT-a
> rozpisując go na TTL-e :-)
> Da się to zrobić z dwóch 74164 i jednego 74150 ;-)
To jeden LUT taki skomplikowany jak trzy TTL-e? Nie znam, mają chyba
duży pobór mocy, czy są stosowane w układach o dużej skali integracji?
-
6. Data: 2016-01-03 01:30:01
Temat: Re: Jak działa FPGA?
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl>
W dniu 03.01.2016 o 00:04, Ignacy pisze:
> W dniu 02.01.2016 o 23:03, Grzegorz Kurczyk pisze:
>> Jeśli znasz rodzinę TTL, to mogę wyjaśnić budowę takiego LUT-a
>> rozpisując go na TTL-e :-)
>> Da się to zrobić z dwóch 74164 i jednego 74150 ;-)
>
> To jeden LUT taki skomplikowany jak trzy TTL-e? Nie znam, mają chyba
> duży pobór mocy, czy są stosowane w układach o dużej skali integracji?
>
>
Pod względem logicznym taki LUT4 to 16-bitowy rejestr przesuwny
szeregowo/równoległy (2szt 74164), którego wyjścia równoległe połączone
są z wejściami 16-to wejściowego multipleksera (74150). Cztery wejścia
adresowe multipleksera to są wejścia LUT, a wyjście multipleksera to
wyjście LUT. Rejestr przesuwny jest programowany podczas inicjalizacji
układu FPGA (np. przez łańcuch JTAG).
Co do poboru mocy... umówmy się, że są to 74HCT164 i 74HCT150 ;-)
To nie jest dokładne odzwierciedlenie tego co jest w TTL-ach.
Multiplekser 16x1 to nie musi być wiadro bramek :-)
Czy taki LUT jest skomplikowany ? Pojęcie względne. W skrajnie "złym"
przypadku LUT może stać się dwuwejściową bramką AND lub nawet zwykłym
inwerterem!!! Jakże paskudne marnowanie zasobów :-/ Z drugiej strony
taki LUT4 może zastąpić dowolny układ kombinacyjny funkcji czterech
zmiennych czyli już całkiem niezłą garstkę bramek. Również może stać się
rejestrem przesuwnym "zastępując" dwa scalaki 74HCT164 ;-)
--
Pozdrawiam
Grzegorz
-
7. Data: 2016-01-03 07:33:39
Temat: Re: Jak działa FPGA?
Od: Ignacy <n...@s...ignacy>
W dniu 03.01.2016 o 01:30, Grzegorz Kurczyk pisze:
> Czy taki LUT jest skomplikowany ? Pojęcie względne. W skrajnie "złym"
> przypadku LUT może stać się dwuwejściową bramką AND lub nawet zwykłym
> inwerterem!!! Jakże paskudne marnowanie zasobów :-/ Z drugiej strony
W skrajnie złym przypadku może nic nie robić. A jak to jest gdy
skonfiguruje się tylko 1% bramek a resztę nie? czy są wtedy ustawione
tak, że są przezroczyste dla sygnału, czy sygnał je omija?
> taki LUT4 może zastąpić dowolny układ kombinacyjny funkcji czterech
> zmiennych czyli już całkiem niezłą garstkę bramek. Również może stać się
> rejestrem przesuwnym "zastępując" dwa scalaki 74HCT164 ;-)
Rejestr przesuwny opisany jest w
https://en.wikipedia.org/wiki/Shift_register.
Co to są za prostokątne bloki na rysunku na dole oznaczające 1 bit? Mają
wyjścia? D,S,Q,Q,R.
-
8. Data: 2016-01-03 07:51:50
Temat: Re: Jak działa FPGA?
Od: Ignacy <n...@s...ignacy>
W dniu 03.01.2016 o 07:33, Ignacy pisze:
> Rejestr przesuwny opisany jest w
> https://en.wikipedia.org/wiki/Shift_register.
> Co to są za prostokątne bloki na rysunku na dole oznaczające 1 bit? Mają
> wyjścia? D,S,Q,Q,R.
W symulacji http://www.falstad.com/circuit/ dobrze widać działanie
inwertera. Czy zawsze bateria dodatnia? Ziemia zero, więc ruch prądu
przedstawiony jest odwrotnie (zawsze?) niż ruch elektronów.
U góry mamy typ PNP który przepuszcza prąd gdy na bazie nie ma napięcia,
a u dołu wychodzący czyli NPN który przepuszcza prąd gdy na bazie jest
napięcie.
-
9. Data: 2016-01-04 00:24:27
Temat: Re: Jak działa FPGA?
Od: k...@g...com
W dniu niedziela, 3 stycznia 2016 07:32:53 UTC+1 użytkownik Ignacy napisał:
> Rejestr przesuwny opisany jest w
> https://en.wikipedia.org/wiki/Shift_register.
> Co to są za prostokątne bloki na rysunku na dole oznaczające 1 bit? Mają
> wyjścia? D,S,Q,Q,R.
Przerzutniki. Jak klikniesz gdzieś na tej stronie na 'flip flop', to dostaniesz opis.
Aczkolwiek ten schemat jest w zasadzie na poziomie RTL i wcale nie musi oddawać
fizycznej struktury takiego rejestru przesuwnego.
Pozdrawiam,
--
Karol Piotrowski
-
10. Data: 2016-01-04 14:54:26
Temat: Re: Jak działa FPGA?
Od: Ignacy <n...@s...ignacy>
W dniu 03.01.2016 o 01:30, Grzegorz Kurczyk pisze:
> Czy taki LUT jest skomplikowany ? Pojęcie względne. W skrajnie "złym"
> przypadku LUT może stać się dwuwejściową bramką AND lub nawet zwykłym
> inwerterem!!! Jakże paskudne marnowanie zasobów :-/ Z drugiej strony
> taki LUT4 może zastąpić dowolny układ kombinacyjny funkcji czterech
> zmiennych czyli już całkiem niezłą garstkę bramek. Również może stać się
> rejestrem przesuwnym "zastępując" dwa scalaki 74HCT164 ;-)
A jak to wygląda, gdy mamy mały układ na kilka slicy a reszta układu
jest nieużywana? Wszystkie inne LUT programowane są tak, aby były
przeźroczyste? choć to i tak byłoby marnowanie czasu, gdyby sygnał przez
nie przechodził.