Komponent för 4-bit till 8-bit konvertering

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
falken
Inlägg: 17
Blev medlem: 29 mars 2013, 10:48:57

Komponent för 4-bit till 8-bit konvertering

Inlägg av falken »

Hej,

Jag håller på att funta på en 4-bits dator som jag tänkte bygga helt med 74-serie logik. Cpu'n har två interna bussar; adressbus på 8 bitar å en databuss på 4. Utöver detta finns 16 register r0-15 samt ett A som accumulator. Mitt problem är att jag vill kunna ladda register med värde från minne, dvs

mv r0, $ab

Eftersom adressen (ab) är 8-bitar så läggs detta ut på databussen över två clocktick, jag måste då "komma ihåg" de första 4-bitarna för att sedan fylla på med nästa 4 för att bilda en 8-bits adress. Jag är ganska ny kring detta så jag vet inte smartaste sättet att göra detta på. Spontant tänkte jag på ett skift register, men finns det sådana som tar 4-bitar å skiftar dem 4-bitar på ett tick?

Tack för hjälpen,
Johan
bearing
Inlägg: 11678
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av bearing »

Tror komponenten du söker heter Latch.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4755
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av Swech »

Du måste väl ha samma problem med hela instruktionen då den är 4 bitars.

Ditt exempel
Mov r0, $ab

instruktionen Mov måste vara ett separat 4 bitars ord.
r0 är ytterligare ett 4 bitars ord eftersom du har 16 register
$ab är två 4 bitars ord

Totalt är det alltså 4 st 4 bitars ord som skall in och avkodas

Kul ide men fundera allvarligt på att göra en 8 bitars direkt
Swech
falken
Inlägg: 17
Blev medlem: 29 mars 2013, 10:48:57

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av falken »

@Swech, jag tog inte med de "gömda" registerna som är inblandade, jag har ett MAR (8-bit, memory adress register) ett IR (4-bit, instruction register) samt ett REG_SEL (4-bit, register select). Vad som händer är

mv opkod -> IR på första clock ticket
register code -> REG_SEL på andra clock tick
sen måste jag bygga upp min adress till MAR
Tekko
Inlägg: 9009
Blev medlem: 28 november 2004, 20:19:15

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av Tekko »

Går det öht att konvertera 4-bit till 8-bit ? 4-bit har ju lixom 16 ord medans 8-bit har dubbelt (fyra?) gånger så många.
falken
Inlägg: 17
Blev medlem: 29 mars 2013, 10:48:57

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av falken »

@bearing, du har nog rätt, den smidigaste lösningen kanske helt enkelt är att låta första adress cykeln latchas in till ena bufferten å andra adressen till den andra buffern. Valet kan ju göras med en enkel mux och lite klister logik. Provar en sån lösning
falken
Inlägg: 17
Blev medlem: 29 mars 2013, 10:48:57

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av falken »

@bearing, gjorde ett försök imorse i min simulator å det verkar fungera bra så kör på ditt förslag. Tack för hjälpen

@Swech, microarkitekturen är enligt bifogad bild så borde klara sig med 4-bitar fast varje instruktion kommer ta mellan 2 och 6 klockcykler, tror jag kommer binda så att alla tar 6 klockcykler oavsett, det blir lättare att programmera den då
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4755
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av Swech »

Du har inget ram överhuvudtaget m.a.o.

Jag skissade på något liknande för måååånga år sedan. Det är riktigt kul.

Ett litet tips kanske..
Om du bygger dina register av 4029 så får du register som är möjliga att ladda men
också går att räkna upp / ned ett steg.
Då kan du göra loopräknare i ditt program utan att behöva snurra via ALUn...

Jag körde nog även programräknaren med två 4029

Swech
falken
Inlägg: 17
Blev medlem: 29 mars 2013, 10:48:57

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av falken »

Perfekt, jättebra tips! Sånna får det nog bli! Funderade på en "rep" instruktion men kom fram till att det behövdes ytterligare komponenter, med ditt tips blir det kanske helt trivialt. Näpp, inget RAM, tänkte mig lite som en microcontroller, nästa projekt så kanske det blir fler bitar å mer minne, skulle gärna ha en stack för att stödja funktionsanrop mm, men det blir svårt, eller så slänger jag in det ändå :), 8-bitar adress, dela hälften ROM hälften RAM, så 128-ord vardera.... eller kanske 70/30% lite tight men kan gå... Ja, det är riktigt roligt att sitta å fundera på hur det egentligen funkar allt det där.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4755
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av Swech »

Sedan är 4022 johnson counter helt perfekt till ett sådant här bygge också
För att styra sekvensen för instruktionsavkodning.
Du får upp till 8 steg....

steg 1. hämta instr
steg 2. avkoda instr
steg 3. utför
steg 4.... osv....

Swech
Användarvisningsbild
MiaM
Inlägg: 13275
Blev medlem: 6 maj 2009, 22:19:19

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av MiaM »

4017 har fler steg och vad jag minns i övrigt inga nackdelar jämfört med 4022, så jag skulle nog valt 4017.

(Jag erkänner att jag dock använt 4022 rätt friskt genom tiderna, men det är mest för att "det blev så").

Men räcker en instruktion om 4 bitar? Är det inte läge att ha två IR-register? (Jag har inte tänkt efter själv, ställer bara frågan för säkerhets skull så att trådstartaren tänker på detta :wink: )
falken
Inlägg: 17
Blev medlem: 29 mars 2013, 10:48:57

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av falken »

@MiaM jag hoppas det räcker, ger 16 instruktioner. Gjorde en ISA på mnemonik nivå och tycker jag fick med de flesta. Har två mov å en ld, sen de vanliga ALU instruktionerna (add, sub, and, xor, or, shr, shl), en jmp, push, pop, call å ret. Det som jag är lite osäker på är branch instruktioner, jag tänker mig att det räcker med en brz dvs hoppa om föregående ALU instruktion gav noll resultat, borde kunna räcka tycker jag. Sen är bitrymden fylld.

Siktar på att skriva lite i min blogg ikväll om detta, länkar in det hit sen.

Bra förslag med 4017 komponenten, men som det ser ut nu behöver jag "bara" 6-steg
Senast redigerad av falken 27 april 2015, 17:01:58, redigerad totalt 3 gånger.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av Platis »

Vad är det för simulator du använder?
falken
Inlägg: 17
Blev medlem: 29 mars 2013, 10:48:57

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av falken »

Kör logisim http://www.cburch.com/logisim/
Tycker den funkar riktigt bra för att testa logiken
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4755
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Komponent för 4-bit till 8-bit konvertering

Inlägg av Swech »

Bra förslag med 4017 komponenten, men som det ser ut nu behöver jag "bara" 6-steg
Precis... då drar du sjätte utgången till reset på kretsen... :wink:

Swech
Skriv svar