-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfinalTest.py
124 lines (101 loc) · 3.06 KB
/
finalTest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
__author__ = "YuHu, Yueming Yang"
__Copyright__ = "Copyright @2016, Mount Holyoke College"
import circuits
register_file_0 = []
for counter in range(0,32):
register = []
for counter in range(0,32):
if counter == 30:
register.append(1)
else:
register.append(0)
register_file_0.append(register)
regFile = circuits.registerFile(register_file_0)
out_regFile = regFile.getAllRegValues()
test_instruction_sequence = []
#sw_01 = [1,0,1,0,1,1, 1,0,0,0,0, ]
#lw = [1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]
#add $a2 $a3 $t0
#or $t0 $a3 $t1
#add $t1 $t1 $t2
#and $t3 $t1 $t2
#slt $v0 $t2 $v0
#sw $t0 3($t3)
lw_sequence = [1,0,0,0,1,1, 0,0,1,0,0, 0,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0]
add_sequence = [0,0,0,0,0,0, 0,1,0,0,0, 0,1,0,0,1, 0,1,0,0,0, 0,0,0,0,0, 1,0,0,0,0,0]
and_sequence = [0,0,0,0,0,0, 0,1,0,0,0, 0,1,0,0,1, 0,1,0,1,0, 0,0,0,0,0, 1,0,0,1,0,0]
sub_sequence = [0,0,0,0,0,0, 0,1,0,1,0, 0,1,0,1,0, 0,1,0,1,1, 0,0,0,0,0, 1,0,0,0,1,0]
or_sequence = [0,0,0,0,0,0, 0,1,1,0,0, 0,1,0,1,1, 0,1,1,0,0, 0,0,0,0,0, 1,0,0,1,0,1]
slt_sequence = [0,0,0,0,0,0, 0,1,1,0,0, 0,1,0,0,0, 0,1,1,0,0, 0,0,0,0,0, 1,0,1,0,1,0]
sw_sequence = [1,0,1,0,1,1, 0,0,1,0,0, 0,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]
mips = circuits.simpleMIPS(regFile)
out_mips = mips.getCircuitOutput(lw_sequence)
#print "register file: ", out_mips[0]
print "lw_cal: ", out_mips[2]
for counter in range(0,32):
print counter, " ", out_mips[0][counter]
#print "register file: ", out_mips[0]
print "memory: "
for counter in range(0,32):
print counter, " ", out_mips[1][counter]
print " "
print " "
print " "
out_mips = mips.getCircuitOutput(add_sequence)
print "add: ", out_mips[2]
for counter in range(0,32):
print counter, " ", out_mips[0][counter]
print " "
print " "
print " "
out_mips = mips.getCircuitOutput(and_sequence)
print "and_cal: ", out_mips[2]
for counter in range(0,32):
print counter, " ", out_mips[0][counter]
print " "
print " "
print " "
print " "
out_mips = mips.getCircuitOutput(sub_sequence)
print "sub_cal: ", out_mips[2]
for counter in range(0,32):
print counter, " ", out_mips[0][counter]
print " "
print " "
print " "
out_mips = mips.getCircuitOutput(or_sequence)
print "or_cal: ", out_mips[2]
for counter in range(0,32):
print counter, " ", out_mips[0][counter]
print " "
print " "
print " "
out_mips = mips.getCircuitOutput(slt_sequence)
print "slt_cal: ", out_mips[2]
for counter in range(0,32):
print counter, " ", out_mips[0][counter]
#print "memory file: ", out_mips[1]
print " "
print " "
print " "
out_mips = mips.getCircuitOutput(sw_sequence)
print "sw_cal: ", out_mips[2]
for counter in range(0,32):
print counter, " ", out_mips[0][counter]
print "memory: "
for counter in range(0,32):
print counter, " ", out_mips[1][counter]
print " "
print " "
print " "
'''
for counter in range(0, 1):
mips = circuits.simpleMIPS(register_file_0)
out_mips = mips.getCircuitOutput(test_instruction_sequence[counter])
print "register file: ", out_mips[0]
#print "memory: ", out_mips[1]
print "out_cal: ", out_mips[2]
'''
#print out_mips[0]
#print out_mips[1]
#print out_mips[2]