Viki
Guest
Thu Oct 27, 2011 7:13 am
Witam.
Posiadam pamięć 16MB * 8 bitów, którą obsługuję z poziomu FPGA, wszystko
ładnie działa.
Problem w tym że potrzebuję zapisywać tam dane 16-to bitowe.
Zamiast dzielić słowo 16-to bitowe na dwa kawałki pomyślałem czy nie
można by dołożyć drugiej
takiej samej pamięci i połączyć je "równolegle", równocześnie je
adresując i do jednej zapisywać
młodsze 8 bitów a do drugiej starsze.
Czy to ma prawo działać??
Pozdrawiam.
pgw
Guest
Thu Oct 27, 2011 7:26 am
Dnia Thu, 27 Oct 2011 09:13:04 +0200, Viki napisał(a):
Quote:
Witam.
Posiadam pamięć 16MB * 8 bitów, którą obsługuję z poziomu FPGA, wszystko
ładnie działa.
Problem w tym że potrzebuję zapisywać tam dane 16-to bitowe.
Zamiast dzielić słowo 16-to bitowe na dwa kawałki pomyślałem czy nie
można by dołożyć drugiej
takiej samej pamięci i połączyć je "równolegle", równocześnie je
adresując i do jednej zapisywać
młodsze 8 bitów a do drugiej starsze.
Czy to ma prawo działać??
Pozdrawiam.
Jak najbardziej, powszechna praktyka. Chociażby przyjrzyj się modułom
pamięci komputerowych, które mają 64-bitową magistralę danych.
--
pgw
Cezar
Guest
Thu Oct 27, 2011 7:46 am
"pgw" <swietymikolaj@pl.onet.poczta> wrote in message
news:1lbaz48t1o8xh$.18wwplwfdoapj$.dlg@40tude.net...
Quote:
Dnia Thu, 27 Oct 2011 09:13:04 +0200, Viki napisał(a):
Witam.
Posiadam pamięć 16MB * 8 bitów, którą obsługuję z poziomu FPGA, wszystko
ładnie działa.
Problem w tym że potrzebuję zapisywać tam dane 16-to bitowe.
Zamiast dzielić słowo 16-to bitowe na dwa kawałki pomyślałem czy nie
można by dołożyć drugiej
takiej samej pamięci i połączyć je "równolegle", równocześnie je
adresując i do jednej zapisywać
młodsze 8 bitów a do drugiej starsze.
Czy to ma prawo działać??
Pozdrawiam.
Jak najbardziej, powszechna praktyka. Chociażby przyjrzyj się modułom
pamięci komputerowych, które mają 64-bitową magistralę danych.
30 lat temu, w atarynkach, łączyło się tak kostki 1-bitowe aby otrzymać 8
bitów ;)
c.
Marcin Wasilewski
Guest
Thu Oct 27, 2011 1:00 pm
Użytkownik "Cezar" <cezar91@BEZtlen.pl> napisał w wiadomości
news:j8b28n$1mi$1@inews.gazeta.pl...
Quote:
"pgw" <swietymikolaj@pl.onet.poczta> wrote in message
Jak najbardziej, powszechna praktyka. Chociażby przyjrzyj się modułom
pamięci komputerowych, które mają 64-bitową magistralę danych.
3x prawda.
Quote:
30 lat temu, w atarynkach, łączyło się tak kostki 1-bitowe aby otrzymać 8
bitów
Do Amigi też były rozszerzenia na 4 kościach 4-bitowych, albo 16
kościach 1-bitowych.
identifikator: 20110701
Guest
Thu Oct 27, 2011 3:35 pm
koleś który programuje FPGA zadaje takie pytania... niezłe.
Viki
Guest
Thu Oct 27, 2011 4:53 pm
Największe pamięci SDRAM jakie udało mi się znaleźć w sieci to kostki o
organizacji: 32 Meg x 4 x 4 banks.
http://www.micron.com/partscatalog.html?categoryPath=products/parametric/DRAM/SDRAM
Z tego wynika że jeśli połącze ich nawet kilka równolegle (co decyduje o
szerokości słowa) to i tak nie przeskoczę objętości 32MB.
Jak w takim razie uzyskać pojemność np. 128MB??
Czy da się to zrobić wykorzystując jeden sterownik dla tej pamięci w FPGA??
Proszę o jakieś sugestie.
Pozdrawiam.
Viki
Guest
Thu Oct 27, 2011 6:24 pm
Quote:
koleś który programuje FPGA zadaje takie pytania... niezłe.
Spokojnie, jestem amatorem.
Kiedyś w ten sposób połączyłem do AVR-ka dwie kostki z pamięci SIMM i
układ działał (transfer niestety żółwi), wolałem się upewnić czy z
SDRAM-em będzie podobnie.
Na FPGA mam zaliczone dopiero kilka automatów FSM, driver wygenerowałem
i działa, uważam to za wielki sukces:))
Pozdrawiam.
Marcin Wasilewski
Guest
Thu Oct 27, 2011 6:30 pm
Użytkownik "Viki" <Viki@gazeta.pl> napisał w wiadomości
news:j8c2cd$4n2$1@inews.gazeta.pl...
Quote:
Największe pamięci SDRAM jakie udało mi się znaleźć w sieci to kostki o
organizacji: 32 Meg x 4 x 4 banks.
http://www.micron.com/partscatalog.html?categoryPath=products/parametric/D
RAM/SDRAM
Z tego wynika że jeśli połącze ich nawet kilka równolegle (co decyduje o
szerokości słowa) to i tak nie przeskoczę objętości 32MB.
Jak w takim razie uzyskać pojemność np. 128MB??
Czy da się to zrobić wykorzystując jeden sterownik dla tej pamięci w
FPGA?? Proszę o jakieś sugestie.
Rzucę ci dwa hasła: dekoder adresów, sygnał EN tychże pamięci.
W skrócie działa to tak, że z kombinacji bitów które Ci zostały (np. 4)
robisz dekoder adresu, który aktywuje jeden z 16 układów (podpięty do
niższych bitów) poprzez wystawienie dla niego sygnału EN.
Marcin Wasilewski
Guest
Thu Oct 27, 2011 6:33 pm
Użytkownik "identifikator: 20110701" <NOSPAMtestowanije@go2.pl> napisał w
wiadomości news:j8btnb$iue$1@news.onet.pl...
Quote:
koleś który programuje FPGA zadaje takie pytania... niezłe.
Że tak to ujmę "przygadał kocioł garnkowi", większość twoich wystąpień na
tej grupie ma dużo gorszy charakter, że przypomnę dzisiejsze pytanie o
"instalację bez instalacji".
Viki
Guest
Thu Oct 27, 2011 6:50 pm
Quote:
Rzucę ci dwa hasła: dekoder adresów, sygnał EN tychże pamięci.
W skrócie działa to tak, że z kombinacji bitów które Ci zostały (np. 4)
robisz dekoder adresu, który aktywuje jeden z 16 układów (podpięty do
niższych bitów) poprzez wystawienie dla niego sygnału EN.
Rozumiem że EN to to samo co CS.
Jeśli tak to ten sposób obsługi już wcześniej wydumałem:) ale zawsze
lubię zweryfikować swoje filozofie z fachowcami bo nigdy nie wiadomo czy
nie ma innego prostszego sposobu:)
Pozdrawiam.
Grzegorz Kurczyk
Guest
Thu Oct 27, 2011 6:54 pm
W dniu 27.10.2011 20:24, Viki pisze:
Quote:
koleś który programuje FPGA zadaje takie pytania... niezłe.
Spokojnie, jestem amatorem.
Kiedyś w ten sposób połączyłem do AVR-ka dwie kostki z pamięci SIMM i
układ działał (transfer niestety żółwi), wolałem się upewnić czy z
SDRAM-em będzie podobnie.
A czemu był żółwi ? Podłączałem pamięci DRAM 44256 do ATmega128 (obsługa
sprzętowa jako zewnętrzny RAM) i do ATmega32 (obsługa programowa). W
jednym i drugim przypadku odświeżanie na przerwaniach. Działało to jak
burza, a wąskim gardłem to bardziej był uC niż pamięci.
Pozdrawiam
Grzegorz
Viki
Guest
Thu Oct 27, 2011 7:09 pm
Quote:
A czemu był żółwi ? Podłączałem pamięci DRAM 44256 do ATmega128 (obsługa
sprzętowa jako zewnętrzny RAM) i do ATmega32 (obsługa programowa). W
jednym i drugim przypadku odświeżanie na przerwaniach. Działało to jak
burza, a wąskim gardłem to bardziej był uC niż pamięci.
Ja uzyskałem transfer (obsługa programowa) coś ok. 200K.
Zgadzam się że wąskim gardłem w tym przypadku jest procek, dlatego robię
to obecnie na FPGA.
Pozdrawiam.
Marcin Wasilewski
Guest
Thu Oct 27, 2011 7:51 pm
Użytkownik "Viki" <Viki@gazeta.pl> napisał w wiadomości
news:j8c980$r41$1@inews.gazeta.pl...
Quote:
Rozumiem że EN to to samo co CS.
Tak, wybacz z pamięci pisałem.
Quote:
Jeśli tak to ten sposób obsługi już wcześniej wydumałem:) ale zawsze lubię
zweryfikować swoje filozofie z fachowcami bo nigdy nie wiadomo czy nie ma
innego prostszego sposobu:)
To jest chyba najprostszy sposób, gdyż większość linii jest podłączona
równolegle. Poza tym polecam jakąś książkę do przedmiotu "podstawy układów
cyfrowych" dla studiów elektronicznych, albo informatycznych. Zapobiegnie to
wielu sytuacjom, w których odkrywa się koło od nowa.
Polecam np. "Podstawy elektroniki cyfrowej" Józefa Kalisza, z uwagi na niską
cenę, częste uaktualnienia i przekrój począwszy od bramek logicznych aż do
VHDL-a.
Jacek Radzikowski
Guest
Thu Oct 27, 2011 10:04 pm
On 10/27/2011 02:50 PM, Viki wrote:
Quote:
Rzucę ci dwa hasła: dekoder adresów, sygnał EN tychże pamięci.
W skrócie działa to tak, że z kombinacji bitów które Ci zostały (np. 4)
robisz dekoder adresu, który aktywuje jeden z 16 układów (podpięty do
niższych bitów) poprzez wystawienie dla niego sygnału EN.
Rozumiem że EN to to samo co CS.
Jeśli tak to ten sposób obsługi już wcześniej wydumałem:) ale zawsze
lubię zweryfikować swoje filozofie z fachowcami bo nigdy nie wiadomo czy
nie ma innego prostszego sposobu:)
Jak już będziesz łączyć te pamięci równolegle zwróć uwagę na pojemności
obciążające piny FPGA. Przy niskich prędkościach to nie będzie miało
znaczenia, ale jakbyś chciał wykorzystać pełen potencjał kostek, to
możesz musieć powstawiać bufory.
Właśnie z tego powodu na płytach serwerowych mających wiele gniazd na
pamięci trzeba stosować moduły buforowane.
pzdr.
j.
Artur M. Piwko
Guest
Fri Oct 28, 2011 6:14 am
In the darkest hour on Thu, 27 Oct 2011 20:33:46 +0200,
Marcin Wasilewski <jakis@adres.pl> screamed:
Quote:
koleś który programuje FPGA zadaje takie pytania... niezłe.
Że tak to ujmę "przygadał kocioł garnkowi", większość twoich wystąpień na
tej grupie ma dużo gorszy charakter, że przypomnę dzisiejsze pytanie o
"instalację bez instalacji".
Lubię to. ;-)
--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:218B ]
[ 08:14:19 user up 12969 days, 20:09, 1 user, load average: 0.13, 0.95, 0.50 ]
Every solution breeds new problems.