Hjälp vid tänket kring att skapa en logisk krets

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Hjälp vid tänket kring att skapa en logisk krets

Inlägg av Magnus_K »

Mycket kryptiskt ämne och jag stod i valet och kvalet om jag skulle fråga detta i min kärnminnes-tråd eller göra en separat.
Då detta är lite mer "hur man tänker" istället för att lösa en specifikt problem så valde jag en ny tråd.
För att ta ett konkret exempel så tar jag just mitt 16-bitars minne som exempel.

Jag har suttit en stund idag och funderat på hur adresseringen skulle ske av de olika bitarna och min "sammanfattning" är som på bilderna nedan.
Det jag undrar över är hur man går till väga egentligen? Jag har inte en aning om dator-adressering eller pysslat så mycket med logiska kretsar innan.

Om ni har en krets som ser ut som på bild ett och ska göra logiken till den; skulle ni gå till väga på samma sätt som mig då eller tänker jag helt upp åt väggarna?

Min metod har varit att spalta upp alla dom önskade logiska kombinationerna och baserat på resultatet försökt se samband och kombinationer som gör att man med så får "in"-bitar som möjligt kan få de önskade kombinationerna.

Kanske för mycket begärt att be någon annan kolla på den här röran men man kanske i alla fall kan få en knuff i rätt riktning hur man går in i ett sånt här problem.
Driver.JPG
Logic.JPG
Logic_buildup.JPG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av lillahuset »

Vad vill du uppnå? Jag kan inte läsa mig till det.
Användarvisningsbild
bit96
Inlägg: 2531
Blev medlem: 3 september 2007, 10:04:29
Ort: Säffle

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av bit96 »

Vet inte om du känner till Karnaughdiagram.
Där ritar man i princip upp sina ingångar och önskade utgångar och minimerar fram de logiska funktionerna.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av Magnus_K »

@lillahuset:
Om jag har en tabell med logiska tal av önskade kombinationer, vad använder jag för metod för att förenkla ner denna till minst antal adresser genom logiska grindar. Äsch, det var inte mycket bättre.

@bit96:
Det ser väldigt intressant ut. Tack för tipset. Ska läsa mer om det.
Användarvisningsbild
bit96
Inlägg: 2531
Blev medlem: 3 september 2007, 10:04:29
Ort: Säffle

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av bit96 »

Troligtvis har du även nytta av att lära dig Boolesk algebra om du inte redan kan det.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av Magnus_K »

Uff... Det är bara sånt jag har hört talas om och läst lite om här på forumet. Nu börjar det ryka ur öronen :wink:
Användarvisningsbild
anders_bzn
Inlägg: 5809
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av anders_bzn »

Jag vet ju svaret, eller hur jag hade gjort. Men den är ju lite fusk eftersom jag sett lösningen innan. Men som du ritat kärnmatrisen så blir det lite konstigt. Du har ju ritat vissa X och Y trådar parallellt och det är ju inte så det ser ut.

Tänk att varje tråd har Select/read-write och enable. Man inser snabbt att read/write och enable kan vara samma för samtliga trådar (annars kan man rita med dem i diagrammet och sedan inse detta).

Jag orkade bara rita fyra kärnor med principen blir densamma oavsett.
core-addr1.png
Använder man samma numrering på trådarna fast man har 4x4 istället:

Kod: Markera allt

          Tråd
Kärna Y0 Y1 Y2 Y3 X0 X1 X2 X3
0     1  0  0  0  1  0  0  0    
1     0  1  0  0  1  0  0  0    
2     0  0  1  0  1  0  0  0    
3     0  0  0  1  1  0  0  0    
4     1  0  0  0  0  1  0  0    
5     0  1  0  0  0  1  0  0
6     0  0  1  0  0  1  0  0
7     0  0  0  1  0  1  0  0
8     1  0  0  0  0  0  1  0
9     0  1  0  0  0  0  1  0
10    0  0  1  0  0  0  1  0
11    0  0  0  1  0  0  1  0
12    1  0  0  0  0  0  0  1
13    0  1  0  0  0  0  0  1
14    0  0  1  0  0  0  0  1
15    0  0  0  1  0  0  0  1
Då ser man lösningen utan att använda ett Karnaougdiagram!

Nå var är tricket?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av Magnus_K »

Jag lägger ner det här. Det blir för mastigt och även om jag skulle kunna lösa det med logiska kretsar för just detta minnet så kommer tavlan bli mycket mer komplicerat. Det får bli adressering med hjälp av en µC och eventuellt IO-extenders istället.

anders_bzn:
Hur ska man göra med "andra änden" av snöret då? Det måste väl sitta drivare där också som ska adresseras?
Anledningen till min märkliga drivardragning var ett försök att spara drivare men möjligt att det försvårar adresseringen i den grad att man gör sig en björntjänst.

EDIT: Felstavning
Senast redigerad av Magnus_K 1 september 2015, 16:33:48, redigerad totalt 1 gång.
Användarvisningsbild
anders_bzn
Inlägg: 5809
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av anders_bzn »

Först, det är skillnad på hur du väljer tråd logisk och elektriskt. Nu tänker jag på logiken.

Elektriskt sett så driver du varje tråd från båda håll med en H-brygga. Om du ritar upp den elektriskt en brygga och en tråd med de styrsignaler du behöver. Select för att välja, R/W för att styra riktningen i tråden och enable för pulslängden.

Logiskt: Det jag ville att du skulle se är det man gör i Karnaoughdriagram, men kollar vilka signaler som har beroenden till varandra och vilka man kan bortse ifrån. Du ser att mönstret upprepar sig. På ett sådant sett så för varje kombination av X finns alla möjliga kombinationer av Y och tvärtom.

Man kan då dra slutsatsen att X är oberoende av Y.

Man ser också att bara en utgång är satt, man har fyra ledningar ut, hur många ingångar behöver man då för att generera:

- Alla X kombinationer?
- Alla Y kombinationer?
- Alla kombinationer?
Användarvisningsbild
bit96
Inlägg: 2531
Blev medlem: 3 september 2007, 10:04:29
Ort: Säffle

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av bit96 »

Magnus_K skrev:Uff... Det är bara sånt jag har hört talas om och läst lite om här på forumet. Nu börjar det ryka ur öronen :wink:
Meningen var inte att "skrämmas" :)
På Youtube finns en hyfsad kurs i tre delar, ca 3x10 minuter.
Boolean Algebra Part 1 https://www.youtube.com/watch?v=lEgyiudC-nk
Även om du löser ditt problem med en µC är det ändå nyttigt att känna till lite grunder.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av lillahuset »

Aha, du vill skapa din krets med bara NAND-grindar, typ.

Det var länge sedan jag höll på med sådant, ~35 år sedan.
Och ja, boolesk algebra och karnaughdiagram var vardagsmat då. Idag skulle jag bara känna mig hjälplös. :D
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av Magnus_K »

anders_bzn skrev: Man ser också att bara en utgång är satt, man har fyra ledningar ut, hur många ingångar behöver man då för att generera:

- Alla X kombinationer?
- Alla Y kombinationer?
- Alla kombinationer?
4+4=8? Nej jag känner mig mycket tappad. :(
Användarvisningsbild
anders_bzn
Inlägg: 5809
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av anders_bzn »

Vi fortsätter, du har fyra unika kombinationer för X

För att räkna till fyra kombinationer binärt så behöver du två bitar (00,01,10,11).

Så, två bitar till X och två till Y. Totalt fyra.

Med fyra bitar kan man få sexton kombinationer. Det är ju bra att det är just så många kärnor vi vill adressera!

De logiska uttrycken för varje tråd.

Kod: Markera allt

X0=!A*!B    X0=1 då A=0 och B=0
X1=A*!B     X1=1 då A=1 och B=0
X2=!A*B     X2=1 då A=0 och B=1
X3=A*B      X3=1 då A=1 och B=1

Y0=!C*!D    Y0=1 då C=0 och D=0
Y1=C*!D     Y0=1 då C=1 och D=0
Y2=!C*D     Y0=1 då C=0 och D=1
Y3=C*D      Y0=1 då C=1 och D=1
För att adressera kärnorna har du då adressen "DCBA", fyra bitar. Du ser nu de logiska uttrycken för att avkoda adressen. Det man behöver är två 2-4 avkodare för att avkoda adressen, ser du?. Klarar du nu att rita en 2-4 avkodare med grindar? Med hjälp av de logiska uttrycken ovan.

Normalt brukar man sätta ett streck över bokstaven istället för utropstecken framför, men det tillåter inte mina kunskaper. Lite LaTeX hade fixat biffen.

Kan du nu med ledning av ovanstående räkna ut hur uttrycken för ett 256bits minne ska se ut. Hur många adressbitar går åt till X respektive Y?

Jag förklarar gärna, men jag är ingen pedagog. Jag är ingenjör, så om det blir svårt så försöker jag gärna igen. Om du lyckades få inversionspulsen så fixar du detta.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av Magnus_K »

Det är absolut inget fel med din pedagogik. Du ska ha en eloge att du står ut med en trög elev. Tack för att du hjälper mig!

Har tänkt sätta mig och göra en tabell för de logiska uttrycken i helgen men vad jag kan komma fram till så bör mitt 256-bitars minne kunna adresseras av en 8-bitars adress.
Detta borde också kunna göras av 2 st 4-16 decoders?

Satt och läste lite inatt om decoders men ska fortsätta lässtunden i natt.
Användarvisningsbild
anders_bzn
Inlägg: 5809
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Hjälp vid tänket kring att skapa en logisk krets

Inlägg av anders_bzn »

Det är kul när man kan hjälpa till!

Du har rätt, det räcker fint med två 4-16 avkodare.
Skriv svar