kategoria: Sprzęt
[#1] 8MB fast A600
Poszukuje kodu verilog do fastu 8MB z Autoconfigiem.

Zasadniczo to mam taki kod ale ktoś to dziwnie pisał i do linii inout przypisał reg.
A to tak nie będzie działać.

Lub może ktoś zna dobrze verilog i pomoże przerobić kod na poprawny.
Bo nie mam pojęcia jak na inout wysłać dane.
Próbowałem "assign" ale coś ze składnią mam problem. szeroki uśmiech
[#2] Re: 8MB fast A600

@Kamikadze, post #1

Zgaduję, że kod przeniosłeś ze środowiska Altery do Xilinxa?
U mnie był taki problem w ISE a Quartus przyjmował kod bez problemu.
[#3] Re: 8MB fast A600

@bogumil, post #2

Dobrze zgadujesz, czuję, że wiesz o co chodzi i pomożesz. :D
[#4] Re: 8MB fast A600

@Kamikadze, post #3

Jak znajdę gdzieś plik do Xilinxa to tak.
[#5] Re: 8MB fast A600

@bogumil, post #4

O to był bym wielce wdzięczny.
Miałem kiedyś projekt do Xilinxa nawet go trochę przerobiłem bo w A500 dałem pamięci simm.
Ale już nie mam.
[wyróżniony] [#6] Re: 8MB fast A600

@Kamikadze, post #1

ISE xilinx nie akceptuje sygnałów reg jako sygnałów wyjściowych, zgaduję że czepia się sygnałów RAS i CAS, musisz skasować always@* begin ..... end i dać assign, a same deklaracje sygnałów zmienić z REG na WIRE, ewentualnie stworzyć dodatkowe sygnały wyjściowe i do nich przypisać sygnały REG np:

wire RAS1_out;
assign RAS1_out = RAS1;
[#7] Re: 8MB fast A600

@sanjyuubi, post #6

Ja tam pozmieniałem trochę:
Usunąłem reg taki jak inout, a dane udało mi się wpisać przez assign z warunkiem.
Po tym właśnie zaczęło się czepiać funkcji ras i cas.
Po tym wziąłem i zamknąłem ISE
[#8] Re: 8MB fast A600

@sanjyuubi, post #6

Nie bardzo mi się chce symulować to to.
Przynajmniej ISE łyknął to co na modziłem.

Jednak gdy zobaczyłem schemat zobaczyłem coś dziwnego!
to co ja sam pozmieniałem, wygląda tak:

Tyczy się to szyny danych procesora.

inout cpu_d12,cpu_d13,cpu_d14,cpu_d15; // autoconfig data in-out
//reg cpu_d12,cpu_d13,cpu_d14,cpu_d15; zakomentowane
reg iostate; Dodane


always @*
begin
if( read_cycle==1 && high_addr==8'hE8 && autoconf_on==1 )
iostate <= 1; Dodane
//{cpu_d15,cpu_d14,cpu_d13,cpu_d12} <= datout; zakomentowane

else
iostate <= 0; Dodane
//{cpu_d15,cpu_d14,cpu_d13,cpu_d12} <= 4'bZZZZ; Zakomentowane

end

assign {cpu_d15,cpu_d14,cpu_d13,cpu_d12}=iostate?4'hz:datout; Dodane
assign {cpu_d15,cpu_d14,cpu_d13,cpu_d12}=4'bZZZZ; dodane
i tyle.

Chyba coś jest nie tak, bo na schemacie na liniach pomiędzy wyjściami danych z układu a rejestrami wystawiającymi dane na wyjścia są jakby strzałeczki tylko, że kierunek tych strzałeczek jest do rejestrów a nie do wyjść.
Te strzałeczki to takie trójkąciki równo boczne dziubkiem skierowane w kierunku wyjść rejestrów, bo może one oznaczają warunkowy dostęp?

Jeszcze mi przyszło do głowy, te trójkąciki mogą oznaczać punkt wejścia linii do szyny.
Ale pewności nie mam.

Ostatnia aktualizacja: 25.03.2015 05:14:02 przez Kamikadze
[#9] Re: 8MB fast A600

@Kamikadze, post #8

Wykasuj drugi assign, masz to w pierwszym, a tak warunek z pierwszego nie będzie działał, gdyż ciągle będzie zzzz na wyjściu.
[#10] Re: 8MB fast A600

@bogumil, post #9

No patrz fakt, zagapiłem się na pozostałości w warunkach i odruchowo dodałem.
Dzięki. :)
[#11] Re: 8MB fast A600

@Kamikadze, post #10

Został mi się wolny pin i cała masa niewykorzystanych rejestrów.
Xilinx ma chyba więcej pinów IO a mniej zasilania niż Altera.
Zrobiłem przełącznik 4MB/8MB.

Zastanawiam się czy nie wrzucić atmegi jako uniwersal IO z DMA do fastu, do amigi.
Miał bym szybkie porty szeregowe, mam kwarc 18.423MHz dał by on bezbłędną transmisję usart na poziomie 2.3Mbps, do tego SPI. Rezonator pozwalał by na transfer 4MB/s w trybie DMA 16bit/bufor256B. Tryb PIO musiał by być 8bit to by dawało w A600 max 0,875MB/s, w A1200 to by było 2,3MB/s. Ech muszę w końcu zacząć pisać biblioteki do amigi. Oba tryby w A1200 są przekraczające szybkości transmisji szeregowych. Ale to zostawię na potem.
[#12] Re: 8MB fast A600

@Kamikadze, post #11

Szalejesz szeroki uśmiech. Ale to fajny pomysł. Sam myślałem o zrobieniu czegoś takiego z PIC32 (bo je już znam jako tako), ale oczywiście brak czasu.

Tylko jeśli chciałbyś zrobić to DMA, to żeby było sensownie musiałbyś zaimplementować protokół bus masteringu procesora 68000. To już nie jest takie proste i pewnie przydałby się osobny CPLD do tego (ew. wrzucić wszystko do jednego wielkiego). Na samym mikrokontrolerze byłoby trudno to zrobić.


Ostatnia aktualizacja: 26.03.2015 08:58:28 przez strim_
[#13] Re: 8MB fast A600

@strim_, post #12

Tak CPLD jest konieczny dla Autoconfigu i jakiś flash dla biblioteki obsługi. Co do procków wszystko jest ładnie rozrysowane w datashetach. Można by dwa tryby DMA uruchomić. Jeden standardowy "jawny" z żądaniem dostępu do magistrali. Drugi, w przypadku wbudowania układu w płytkę fastram, tajny w czasie gdy procesor nie korzysta z pamięci.
Mówisz szaleję? Spodobała mi się transmisja przez Bluetooth, który podłączyłem do A600. Wszystko jest pięknie tylko ta prędkość. :D
[#14] Re: 8MB fast A600

@Kamikadze, post #13

Jak ktoś ma lepsze doświadczenie w Xilinxah może wie?
Zostały mi się układy tylko w wersji xl, w nocie katalogowej nie ma za specjalnych obostrzeń.
Jednakowoż mam wątpliwości co do tych pinów inout co mają być trójstanowe.
Co prawda jako wyjścia pracują tylko w jednym warunku.
I nie jestem pewien czy dawać konwertery napięć na tranzystorach czy nie?
Czy mogę liczyć na logikę kierunku czy nie?
A i tak jeszcze muszę schemat amigi sprawdzić, czy podciągania nie ma na szynie danych?
[#15] Re: 8MB fast A600

@Kamikadze, post #14

Układy 9500XL bez problemu działają Amigą, bez potrzeby stosowania konwerterów poziomów stanów logicznych. Przetestowane doświadczalnie. M.in. są użyte w moim i jarob Sakura PCMCIA SRAMie. Sanjyuubi też ich używa w swoich rozszerzeniach. No i Jens w prawie wszystkich kartach do Amigi.

Wszystkie funkcjonalności działają, włącznie z I/O trójstanowym.


Ostatnia aktualizacja: 26.03.2015 20:53:40 przez strim_
[#16] Re: 8MB fast A600

@strim_, post #15

Dzięki, właśnie sprawdziłem schemat i terminator podciąga tylko sygnały sterujące.
No to zaczynam się bawić w tworzenie ścieżek.
[#17] Re: 8MB fast A600

@Kamikadze, post #14

I nie jestem pewien czy dawać konwertery napięć na tranzystorach czy nie?


Na pierwszej stronie dokumentacji układu XC9572xl widnieje taki napis:

- 5V tolerant I/O pins accept 5V, 3.3V, and 2.5V signals

Ostatnia aktualizacja: 26.03.2015 22:37:38 przez sanjyuubi
[#18] Re: 8MB fast A600

@sanjyuubi, post #17

Tak masz rację ale to tylko in3v3 <- out5v CMOS lub TTL i out3v3 -> in5v ale tylko TTL.
jeśli chodzi o wyjście 3v3 do szyny podciąganej do 5v to jest problem wszędzie nawet z tolerancją. W układach prąd nie może się cofać. Bo wyjście to wyjście tolerancja jest tylko dla TTL zwróć uwagę. Bo TTL mają stan wysoki od 2v stąd cała tolerancja, jednak poziom napięcia na wyjściu jest 3v3 i nie można tego podciągać do 5V.
[#19] Re: 8MB fast A600

@Kamikadze, post #18

Jak chcesz, to możesz podciągnąć linie do 5V i zrobić wyjście OC, ale te linie danych są używane tylko raz przy starcie, gdzie Amiga odczytuje tylko konfigurację, poza tym linie danych chyba nie są podciągane do żadnego napięcia (nie widzę przynajmniej tego na schemacie).
[#20] Re: 8MB fast A600

@sanjyuubi, post #19

A ja trochę dmucham na zimne stąd ta rozmowa.
To są wyjścia trójstanowe, więc nawet nie dało by się zrobić OC, tylko konwerter poziomów na tranzystorze MOSFET.
Ale rzeczywiście nie trzeba.
[wyróżniony] [#21] Re: 8MB fast A600

@Kamikadze, post #20

To są wyjścia trójstanowe, więc nawet nie dało by się zrobić OC, tylko konwerter poziomów na tranzystorze MOSFET.


A kto ci tego naopowiadał? Wystarczy, że wszędzie tam, gdzie masz 1 wpiszesz Z, jest wiele sposobów na osiągnięcie tego stanu, nawet dopisując w pliku UCF linijkę takiego typu (źródło):

NET "d15" OPEN_DRAIN;
NET "d14" OPEN_DRAIN;
NET "d13" OPEN_DRAIN;
NET "d12" OPEN_DRAIN;

Na pewno w samym ISE też można gdzieś to w GUI zaznaczyć, ale nigdy tego nie używałem, zawsze robiłem wyjście OC w kodzie.
[#22] Re: 8MB fast A600

@sanjyuubi, post #21

Nikt mi nie na opowiadał. :D
Nie zrozumiałem Cię, myślałem, że do pinu chcesz podpiąć tranzystor robiąc OC.
Ale to bardzo ciekawe co napisałeś, dziwne tylko, że w nocie katalogowej nie napisali tego jako sposób na sterowanie wejść CMOS 5V?
Nie dziw się bo nie miałem za wiele styczności z logiką programowalną. Tylko 3 razy potrzebowałem coś zaprogramować.
Itak muszę jeszcze pozmieniać w kodzie, bo montując gołe układy jak w oryginale, strasznie dużo przelotek będę musiał robić.
A mam gniazdo SIMM 72 to zrobię pod SIMM-y.

Ostatnia aktualizacja: 28.03.2015 05:52:52 przez Kamikadze
[#23] Re: 8MB fast A600

@Kamikadze, post #22

A mam gniazdo SIMM 72 to zrobię pod SIMM-y.


I skąd ludzie te SIMMy w roku 2015 będą brać?

Jak już przerabiasz to rozszerzenie, to zrób to z głową, daj 8MB na płytkę w postaci układu który można kupić nowy (a nie znów jakieś stare DRAMy ze szrotu).

Jak umiesz BGA lutować to np. IS66WVE4M16 w śmiesznej cenie 4 euro za 8MB. Do tego można byłoby jeszcze uprościć logikę w CPLD.
[#24] Re: 8MB fast A600

@strim_, post #23

Hola hola. :D Ja płytkę sam mam zamiar robić.
BGA nie wchodzi w rachubę.
SIMM-ów 72pin mam całe pudełko, około 30 szt.
I co się okazało, dobrze, że dociekliwy jestem, piny 33 i 45 ponoć są NC.
A się okazuje, że na tych pinach są RAS3 i RAS1, więc nie muszę przerabiać wsadu.
Bo wszystkie sygnały RAS wymagane do aktywowania poszczególnych układów są wyprowadzone.
Co ciekawe mam taką jedną pamięć SIMM co tylko na RAS0 hula RAS 1,2 i 3 nie są podłączone.
[#25] Re: 8MB fast A600

@Kamikadze, post #24

Jak niektórzy wiedzą wkładam A600 do obudowy robionej przeze mnie.
Obudowa jest robiona jako improwizacja, więc powstaje w miarę dodawania komponentów.

Potrzebuję waszej podpowiedzi, co pożytecznego można tam zamontować?

Opiszę tu co mam zamiar tam włożyć:

1. Płyta główna ze swoimi dodatkami, zasilacz - oczywiście.
2. Moduł portów i sterowania - (Złącze SCART, Klawiatura PC, Mysz PS2, port Joy-a)
3. Dwa napędy fdd - w tym jeden Gotek.
4. Bluetooth.
5. Dysk twardy elektroniczny.
6. i co jeszcze?

CD-ROM nie będę montował bo i tak nie będę używał.

Jakieś propozycje?
[wyróżniony] [#26] Re: 8MB fast A600

@Kamikadze, post #25

Dorzuć na równoległym adapter 4-player albo plipboksa. Albo najlepiej jedno i drugie na jakimś turbo przełączniku wszystkożyłowym.

Swoją drogą pałęta mi się po głowie pomysł żeby wywalić modulator, w to miejsce wstawić gniazdo na zasilacz laptopowy i jakiś układ przetwarzający napięcie na zdatne dla Ami, zamiast starego gniazda zasilania wstawić gniazdo ethernet plipboksa zminiaturyzowanego do gołej atmegi i chipa od tcp/ip. Ale jeszcze za głupi jestem w tematach napięciowo-prądowych żeby takie rzeczy robić. ;)

Ostatnia aktualizacja: 13.04.2015 16:25:47 przez teh_KaiN
[#27] Re: 8MB fast A600

@teh_KaiN, post #26

O! ciekawy ten plipbox, nawet sterowniki są.
Wszystko co potrzeba mam, moduł ENC28J60, "Atmegów" jak "mrówków".
Tyle, że Amiga 600 to tak średnio na jeża do internetu, komunikację mam przez bluetooth.
Na małe pliki wystarczy, duże przez PCMCIA.

Za to, przyszło mi do głowy "kickstart loader" ładowanie kicka z karty SD.
Można by dowolny kick zapodać, i odpalić na nim amigę.
Dobre do testowania kicków.
[#28] Re: 8MB fast A600

@Kamikadze, post #27

Mam takie pytanie, bo nie posiadam oscyloskopu.
Orientuje się ktoś czy zegar 14MHz wychodzący z Angusa, ma taką samą fazę co 7MHz?
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem