University stuff.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rapport.mdn 3.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # Rapport - Martin Dørum (martindn)
  2. ## Subcircuits
  3. ### decode
  4. Denne kretsen tar de første 4 bits fra maskinkoden, og bestemmer hva CPUen skal
  5. gjøre. Den bestemmer om RAMen skal skrives eller leses, om registeret skal
  6. skrives til, om inputen til registeret skal være fra maskinkoden eller fra RAM,
  7. og om de laveste eller de høyeste bits fra maskinkoden skal endres.
  8. ### direct-input
  9. Med instruksjonene 1000 og 1001 skriver jeg til registeret. Hva jeg skriver
  10. blir bestemt av denne kretsen. Den tar 4 bits fra maskinkoden og 8 bits fra
  11. registeret, og har en input som bestemmer om den skal ta de 4 nederste bits
  12. fra registeret og de 4 øverste fra registeret, eller om den skal ta de 4
  13. øverste bits fra registeret og de 4 nederste fra registeret. Denne inputen
  14. kommer fra decode-kretsen.
  15. I tillegg har den en 4 bit output som bare er de 4 bits fra maskinkoden
  16. direkte, som brukes som RAM-addresse i de instruksjonene hvor vi vil lese
  17. fra eller skrive til RAM.
  18. ### mux-8, mux-4
  19. Disse kretsene tar to 4- eller 8-bit inputs, og har en `Control` input som
  20. bestemmer om input 0 eller input 1 skal gå igjennom.
  21. ## Kretsen
  22. Output fra program ROM går til `decode` og `direct-input`, som passer på at RAM
  23. og registeret får de verdiene de skal ha i hendhold til maskinkoden. Når
  24. clock-signalet går fra 0 til 1, skrus `decode` sine outputs på, og RAMen skrives
  25. hvis det er nødvendig, registeret sin clock input slår seg på hvis det er
  26. nødvendig, etc. Når clock-signalet går fra 1 til 0, vil alle outputs fra `decode`
  27. slås av igjen, registeret vil skrives hvis clock-signalet var på, og
  28. program counteren vil økes med 1.
  29. \pagebreak
  30. ## Logg av test1.raw
  31. | Maskinkode | Register | RAM[1] | Clock |
  32. |:----------:|:--------:|:------:|:-----:|
  33. | 85 | 00 | 00 | 0 |
  34. | 85 | 00 | 00 | 1 |
  35. | 97 | 05 | 00 | 0 |
  36. | 97 | 05 | 00 | 1 |
  37. | b1 | 75 | 00 | 0 |
  38. | b1 | 75 | 75 | 1 |
  39. | 81 | 75 | 75 | 0 |
  40. | 81 | 75 | 75 | 1 |
  41. | 94 | 71 | 75 | 0 |
  42. | 94 | 71 | 75 | 1 |
  43. | a1 | 41 | 75 | 0 |
  44. | a1 | 41 | 75 | 1 |
  45. | 00 | 75 | 75 | 0 |
  46. ## Logg av test2.raw
  47. | Maskinkode | Register | RAM[0] | RAM[1] | RAM[2] | RAM[3] | RAM[4] | Clock |
  48. |:----------:|:--------:|:------:|:------:|:------:|:------:|:------:|:-----:|
  49. | 8c | 00 | 00 | 00 | 00 | 00 | 00 | 0 |
  50. | 8c | 00 | 00 | 00 | 00 | 00 | 00 | 1 |
  51. | 9d | 0c | 00 | 00 | 00 | 00 | 00 | 0 |
  52. | 9d | 0c | 00 | 00 | 00 | 00 | 00 | 1 |
  53. | b0 | dc | 00 | 00 | 00 | 00 | 00 | 0 |
  54. | b0 | dc | dc | 00 | 00 | 00 | 00 | 1 |
  55. | b3 | dc | dc | 00 | 00 | 00 | 00 | 0 |
  56. | b3 | dc | dc | 00 | 00 | dc | 00 | 1 |
  57. | 81 | dc | dc | 00 | 00 | dc | 00 | 0 |
  58. | 81 | dc | dc | 00 | 00 | dc | 00 | 1 |
  59. | 91 | d1 | dc | 00 | 00 | dc | 00 | 0 |
  60. | 91 | d1 | dc | 00 | 00 | dc | 00 | 1 |
  61. | a0 | 11 | dc | 00 | 00 | dc | 00 | 0 |
  62. | a0 | 11 | dc | 00 | 00 | dc | 00 | 1 |
  63. | b4 | dc | dc | 00 | 00 | dc | 00 | 0 |
  64. | b4 | dc | dc | 00 | 00 | dc | dc | 1 |
  65. | 00 | dc | dc | 00 | 00 | dc | dc | 0 |