Guest User

Untitled

a guest
Jun 21st, 2018
709
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. MODULE Prak5_2
  2.  
  3. DECLARATIONS
  4. "INPUTS
  5. clock pin 11;
  6. read pin 21;
  7. write pin 9;
  8. s1D, s1C, s1B, s1A pin 36, 39, 37, 38;
  9. s2D, s2C, s2B, s2A pin 41, 43, 40, 42;
  10.  
  11. " OUTPUTS
  12. // 7-Segment Anzeige fuer die Zehnerstelle.
  13. zA, zB, zC, zD, zE, zF, zG pin 2..8 istype 'com';
  14.  
  15. // 7-Segment Anzeige fuer die Einerstelle.
  16. eA, eB, eC, eD, eE, eF, eG pin 14..20 istype 'com';
  17.  
  18. " NODES
  19. q3..q0 node istype 'reg'; // Multiplikant
  20. q7..q4 node istype 'reg'; // Multiplikator
  21. q12..q8 node istype 'reg'; // Zwischensumme
  22. q16..q13 node istype 'reg'; // Teilergebnis
  23. q19..q17 node istype 'reg'; // Rechenschritt Counter
  24. q27..q20 node istype 'reg'; // Anzeige
  25.  
  26.  
  27. " SETS
  28. s1 = [0, s1D, s1C, s1B, s1A];
  29. s2 = [0, s2D, s2C, s2B, s2A];
  30. multiplikant = [0, q3..q0];
  31. multiplikator = [0, q7..q4];
  32. zwischensumme = [q12..q8];
  33. teilergebnis = [q16..q13];
  34. rechenschritt = [q19..q17];
  35. anzeige = [q27..q20];
  36. anzeigeLinks = [q27..q24];
  37. anzeigeRechts = [q23..q20];
  38.  
  39.  
  40. EQUATIONS
  41. multiplikant.clk = clock;
  42. multiplikator.clk = clock;
  43. zwischensumme.clk = clock;
  44. teilergebnis.clk = clock;
  45. rechenschritt.clk = clock;
  46. anzeige.clk = clock;
  47.  
  48. anzeige := 0;
  49.  
  50. when (read) then {
  51. multiplikant := s1;
  52. multiplikator := s2;
  53. zwischensumme := 0;
  54. teilergebnis := 0;
  55. rechenschritt := 4;
  56.  
  57. } else when (rechenschritt != 0) {
  58. rechenschritt := rechenschritt - 1;
  59.  
  60. when (q4 == 1) then {
  61. zwischensumme := zwischensumme + multiplikant;
  62. } else {
  63. zwischensumme := zwischensumme;
  64. }
  65. }
  66.  
  67.  
  68. TRUTH_TABLE
  69. (anzeigeRechts -> [eA, eB, eC, eD, eE, eF, eG])
  70. 0 -> [1, 1, 1, 1, 1, 1, 0];
  71. 1 -> [0, 1, 1, 0, 0, 0, 0];
  72. 2 -> [1, 1, 0, 1, 1, 0, 1];
  73. 3 -> [1, 1, 1, 1, 0, 0, 1];
  74. 4 -> [0, 1, 1, 0, 0, 1, 1];
  75. 5 -> [1, 0, 1, 1, 0, 1, 1];
  76. 6 -> [1, 0, 1, 1, 1, 1, 1];
  77. 7 -> [1, 1, 1, 0, 0, 0, 0];
  78. 8 -> [1, 1, 1, 1, 1, 1, 1];
  79. 9 -> [1, 1, 1, 1, 0, 1, 1];
  80. 10 -> [0, 1, 1, 1, 1, 1, 1];
  81. 11 -> [0, 0, 1, 1, 1, 1, 1];
  82. 12 -> [1, 0, 0, 1, 1, 1, 0];
  83. 13 -> [0, 1, 1, 1, 1, 0, 1];
  84. 14 -> [1, 0, 0, 1, 1, 1, 1];
  85. 15 -> [1, 0, 0, 0, 1, 1, 1];
  86.  
  87.  
  88. TRUTH_TABLE
  89. (anzeigeLinks -> [zA, zB, zC, zD, zE, zF, zG])
  90. 0 -> [1, 1, 1, 1, 1, 1, 0];
  91. 1 -> [0, 1, 1, 0, 0, 0, 0];
  92. 2 -> [1, 1, 0, 1, 1, 0, 1];
  93. 3 -> [1, 1, 1, 1, 0, 0, 1];
  94. 4 -> [0, 1, 1, 0, 0, 1, 1];
  95. 5 -> [1, 0, 1, 1, 0, 1, 1];
  96. 6 -> [1, 0, 1, 1, 1, 1, 1];
  97. 7 -> [1, 1, 1, 0, 0, 0, 0];
  98. 8 -> [1, 1, 1, 1, 1, 1, 1];
  99. 9 -> [1, 1, 1, 1, 0, 1, 1];
  100. 10 -> [0, 1, 1, 1, 1, 1, 1];
  101. 11 -> [0, 0, 1, 1, 1, 1, 1];
  102. 12 -> [1, 0, 0, 1, 1, 1, 0];
  103. 13 -> [0, 1, 1, 1, 1, 0, 1];
  104. 14 -> [1, 0, 0, 1, 1, 1, 1];
  105. END
Add Comment
Please, Sign In to add comment