VHDL - jak zrobic 8-bitowy rejestr

Witam! zastanawiam sie jak zrobic w VHDL 8-bitowy rejestr, ktory mozna podlaczyc do wspolnej trojstanowej szyny IO (szyna wewnetrzna w scalaku) ze strobem zapisu i odczytu? Chodzi o to, zeby przy wr=0 rejest zapamietywal to co jest na szynie, a przy rd=0 wystawial na szyne to co wczesniej zapamietal. Dla rw=rd=1 rejestr ma pamietac swoja zawartosc, jednak wyjscia maja byc w stanie wysokiej impedancji. Prosto zrobic latch, ale nie radze sobie jakos z rejestrem. Dzieki za wszelka pomoc i pozdrawiam, T.M.F.

Reply to
T.M.F.
Loading thread data ...

Nie zabardzo rozumiem w czym masz problem...

Przzeciez wewnatrz CPLD/FPGA nie ma czegos takiego jak szyna trojstanowa... trojstanowosc dotyczy tylko pinow zewnetrznych. A wiec wspolnieuzywane szyny danych robi sie tak, ze uzywasz duzego ORa do ktorego wejsc laczysz wyjscia urzadzen peryferyjnych ktore sa jak sa wybierane to steruja wejsciem ORa a gdy sa niewybrane to wystawiaja na swoje wyjscia logiczne zera...

A wiec zapis realizujesz przerzutnikiem DFF z wejsciem clock-enable podlaczonym do write i zegarem podlaczonym do zegara systemowego a wylot z tego 8-bitowego przerzutnika DFF podlaczasz do bramki AND2 ktorej jedno wejscie sterujesz sygnalem read (lub output-enable).

Jak dalej cos niejasne to pytaj smialo.

Reply to
Pszemol

Ok, zasugerowalem sie implementacja czegos takiego na ukladach dyskretnych. W sumie tak jak piszesz to nawet bedzie wygodniej. Bo chodzi o stworzenie kilku rejestrow IO ktore beda czytane/zapisywane przez mikroprocesor poprzez szyne danych IO + 4 bity adresu wybierajacego rejestr do zapisu/odczytu. Dodatkowo dane z rejestrow beda sterowaly wewnetrznymi licznikami.

Reply to
T.M.F.

Dokladnie taki sam jak zewnetrzna ?

Np jak podlaczyc wiele peryferii [na macrocelach zrobionych] do linii danych procesora - taz z makrocel zrobionego ? :-)

Ano istnieje takie ryzyko.

J.

Reply to
J.F.

No wlasnie, chce zrobic tak, ze mam procesor polaczony z CPLD, w ktorym mam 16 rejestrow R/W, wyjscia tych rejestrow steruja licznikami (wewnatrz CPLD), tu nie ma problemu. Natomiast przy odczycie procesor wybiera jeden z 16 rejestrow, rozumiem, ze skoro nie moze byc buforow trojstanowych to robie 8 multiplekserow 16 wejsciowych (tak to bedzie zaimplementowane), ktorych wyjscia ida na linie trojstanowe D7-D0 dostepne na zewnatrz CPLD. Kierunek tych linii przelaczam zewnetrznym strobem zapisu i sygnalu wyboru ukladu. Dobrze rozumuje?

Reply to
T.M.F.

jesli chodzi o typowa architekture CPLD to i tak nie masz wyjscia i musisz zrobic jak powyzej. Nawiasem mowiac moze to nie wyjsc takie latwe i trzeba dwupoziomowy.

O ktorym CPLD myslisz, bo to juz dosc ambitne trzeba ?

J.

Reply to
J.F.

XC95144XL. 144 makrokomorki powinny wystarczyc, chociaz dla mnie istotniejsza jest ilosc pinow IO - to ma byc kontroler LCD.

Reply to
T.M.F.

Na szczecie czesc jest krotsza. No i multiplexery chyba z pozostalych bramek makroceli da sie zrobic? Zreszta zobacze co mi ISE na to powie. W sumie max CPLD jaki widze xilinxa w Kamami ma 288 makroceli, co do FPGA to wyraznie drozsze sa i chyba wszystkie wymagaja zewnetrznej pamieci konfiguracji?

Reply to
T.M.F.

Od tego zacznij. IMO - na 144 ci nie wyjdzie, 288 byc moze.

I tam jest jest jeszcze pare innych ograniczen - np function block ma 90 product term, a multiplekser 16 wejsciowy wymaga ich 16. Niby nie ma problemu, ale ty ich potrzebujesz 8 :-)

Od projektu trzeba zaczac.

Zobacz jeszcze oferte Altery.

J.

Reply to
J.F.

T.M.F:

[...]

bardzo dobrym multiplekserem, pod pewnymi warunkami, jest po prostu wewnetrzny ram; przy wyborze jednego rejestru z 16 ram zaoszczedzi sporo logiki zwiazanej z multipleksowaniem; i bedzie szybszy;

JA

Reply to
JA

mk:

[...]
[...]

a jak sie domysli, ino zle ? zartuje :)

Reply to
JA

Ale on chce tymi rejestrami cos sterowac. A to oznacza klopot zwiazany z dostepem do magistrali :-)

J.

Reply to
J.F.

J.F:

nie, zapisuje wartosci do rejestrow i do ramu, rejestry steruja a pamiec sluzy do odczytu tego, co jest w rejestrach;

JA

Reply to
JA

A, no chyba ze tak.

Jeszcze mozna pomyslec zeby odczytu w ogole nie bylo, w koncu procesorek chyba wie co zapisal.

J.

Reply to
J.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.