7bb6ab95234ccd722c60fcd237e6547ee1aab49a
[Mograsim.git] / net.mograsim.logic.ui.am2900 / test / net / mograsim / logic / ui / am2900 / TestableAm2901.java
1 package net.mograsim.logic.ui.am2900;\r
2 \r
3 public interface TestableAm2901\r
4 {\r
5         void setup();\r
6 \r
7         Result run();\r
8 \r
9         void setDest(Am2901_Dest dest);\r
10 \r
11         void setFunc(Am2901_Func func);\r
12 \r
13         void setSrc(Am2901_Src src);\r
14 \r
15         void setReg_A(String val_4_bit);\r
16 \r
17         void setReg_B(String val_4_bit);\r
18 \r
19         void setCarryIn(String val_1_bit);\r
20 \r
21         void setNotOutEnable(String val_1_bit);\r
22 \r
23         void setD(String val_4_bit);\r
24 \r
25         void setQ_0(String val_1_bit);\r
26 \r
27         void setQ_3(String val_1_bit);\r
28 \r
29         void setRAM_0(String val_1_bit);\r
30 \r
31         void setRAM_3(String val_1_bit);\r
32 \r
33         void toogleClock();\r
34 \r
35         String getQ_0();\r
36 \r
37         String getQ_3();\r
38 \r
39         String getRAM_0();\r
40 \r
41         String getRAM_3();\r
42 \r
43         String getNotP();\r
44 \r
45         String getNotG();\r
46 \r
47         String getCarryOut();\r
48 \r
49         String getSign();\r
50 \r
51         String getZero();\r
52 \r
53         String getOverflow();\r
54 \r
55         String getY();\r
56 \r
57         public enum Result\r
58         {\r
59                 SUCCESS, OUT_OF_TIME, ERROR;\r
60         }\r
61 \r
62         public enum Am2901_Dest\r
63         {\r
64                 QREG, NOP, RAMA, RAMF, RAMQD, RAMD, RAMQU, RAMU;\r
65 \r
66                 public boolean doesShift()\r
67                 {\r
68                         return ordinal() >= 4;\r
69                 }\r
70 \r
71                 public int getShiftDir()\r
72                 {\r
73                         return doesShift() ? (ordinal() < 6 ? -1 : 1) : 0;\r
74                 }\r
75 \r
76                 public int getI7()\r
77                 {\r
78                         return this.ordinal() >> 1 & 1;\r
79                 }\r
80         }\r
81 \r
82         public enum Am2901_Func\r
83         {\r
84                 ADD, SUBR, SUBS, OR, AND, NOTRS, EXOR, EXNOR;\r
85         }\r
86 \r
87         public enum Am2901_Src\r
88         {\r
89                 AQ, AB, ZQ, ZB, ZA, DA, DQ, DZ;\r
90         }\r
91 }\r