|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # Rapport - Martin Dørum (martindn)
-
- ## Subcircuits
-
- ### decode
-
- Denne kretsen tar de første 4 bits fra maskinkoden, og bestemmer hva CPUen skal
- gjøre. Den bestemmer om RAMen skal skrives eller leses, om registeret skal
- skrives til, om inputen til registeret skal være fra maskinkoden eller fra RAM,
- og om de laveste eller de høyeste bits fra maskinkoden skal endres.
-
- ### direct-input
-
- Med instruksjonene 1000 og 1001 skriver jeg til registeret. Hva jeg skriver
- blir bestemt av denne kretsen. Den tar 4 bits fra maskinkoden og 8 bits fra
- registeret, og har en input som bestemmer om den skal ta de 4 nederste bits
- fra registeret og de 4 øverste fra registeret, eller om den skal ta de 4
- øverste bits fra registeret og de 4 nederste fra registeret. Denne inputen
- kommer fra decode-kretsen.
-
- I tillegg har den en 4 bit output som bare er de 4 bits fra maskinkoden
- direkte, som brukes som RAM-addresse i de instruksjonene hvor vi vil lese
- fra eller skrive til RAM.
-
- ### mux-8, mux-4
-
- Disse kretsene tar to 4- eller 8-bit inputs, og har en `Control` input som
- bestemmer om input 0 eller input 1 skal gå igjennom.
-
- ## Kretsen
-
- Output fra program ROM går til `decode` og `direct-input`, som passer på at RAM
- og registeret får de verdiene de skal ha i hendhold til maskinkoden. Når
- clock-signalet går fra 0 til 1, skrus `decode` sine outputs på, og RAMen skrives
- hvis det er nødvendig, registeret sin clock input slår seg på hvis det er
- nødvendig, etc. Når clock-signalet går fra 1 til 0, vil alle outputs fra `decode`
- slås av igjen, registeret vil skrives hvis clock-signalet var på, og
- program counteren vil økes med 1.
-
- \pagebreak
-
- ## Logg av test1.raw
-
- | Maskinkode | Register | RAM[1] | Clock |
- |:----------:|:--------:|:------:|:-----:|
- | 85 | 00 | 00 | 0 |
- | 85 | 00 | 00 | 1 |
- | 97 | 05 | 00 | 0 |
- | 97 | 05 | 00 | 1 |
- | b1 | 75 | 00 | 0 |
- | b1 | 75 | 75 | 1 |
- | 81 | 75 | 75 | 0 |
- | 81 | 75 | 75 | 1 |
- | 94 | 71 | 75 | 0 |
- | 94 | 71 | 75 | 1 |
- | a1 | 41 | 75 | 0 |
- | a1 | 41 | 75 | 1 |
- | 00 | 75 | 75 | 0 |
-
- ## Logg av test2.raw
-
- | Maskinkode | Register | RAM[0] | RAM[1] | RAM[2] | RAM[3] | RAM[4] | Clock |
- |:----------:|:--------:|:------:|:------:|:------:|:------:|:------:|:-----:|
- | 8c | 00 | 00 | 00 | 00 | 00 | 00 | 0 |
- | 8c | 00 | 00 | 00 | 00 | 00 | 00 | 1 |
- | 9d | 0c | 00 | 00 | 00 | 00 | 00 | 0 |
- | 9d | 0c | 00 | 00 | 00 | 00 | 00 | 1 |
- | b0 | dc | 00 | 00 | 00 | 00 | 00 | 0 |
- | b0 | dc | dc | 00 | 00 | 00 | 00 | 1 |
- | b3 | dc | dc | 00 | 00 | 00 | 00 | 0 |
- | b3 | dc | dc | 00 | 00 | dc | 00 | 1 |
- | 81 | dc | dc | 00 | 00 | dc | 00 | 0 |
- | 81 | dc | dc | 00 | 00 | dc | 00 | 1 |
- | 91 | d1 | dc | 00 | 00 | dc | 00 | 0 |
- | 91 | d1 | dc | 00 | 00 | dc | 00 | 1 |
- | a0 | 11 | dc | 00 | 00 | dc | 00 | 0 |
- | a0 | 11 | dc | 00 | 00 | dc | 00 | 1 |
- | b4 | dc | dc | 00 | 00 | dc | 00 | 0 |
- | b4 | dc | dc | 00 | 00 | dc | dc | 1 |
- | 00 | dc | dc | 00 | 00 | dc | dc | 0 |
|