@@ -9,65 +9,47 @@ namespace Chips
99{
1010 public class Binary_Counter_4Bit : Chip
1111 {
12- public Binary_Counter_4Bit ( ) : base ( 3 , 4 )
12+ /// <summary>
13+ /// CLK = 0,
14+ /// 1 = CLR
15+ /// </summary>
16+ public Binary_Counter_4Bit ( ) : base ( 2 , 4 )
1317 {
14- D_FlipFlop_Re chipA = new D_FlipFlop_Re ( ) ;
15- int indexA = AddChip ( chipA ) ;
16-
17- D_FlipFlop_Re chipB = new D_FlipFlop_Re ( ) ;
18- int indexB = AddChip ( chipB ) ;
19-
20- D_FlipFlop_Re chipC = new D_FlipFlop_Re ( ) ;
21- int indexC = AddChip ( chipC ) ;
22-
23- D_FlipFlop_Re chipD = new D_FlipFlop_Re ( ) ;
24- int indexD = AddChip ( chipD ) ;
25-
26- Gate gateE = new NANDGate ( ) ;
27- int indexE = AddGate ( gateE ) ;
28-
29- Gate gateF = new ANDGate ( ) ;
30- int indexF = AddGate ( gateF ) ;
31-
32- //Inputs
33- AddWire ( ID , new Wire ( 0 , 0 , indexE , false ) ) ;
34- AddWire ( ID , new Wire ( 1 , 1 , indexE , false ) ) ;
35- AddWire ( ID , new Wire ( 2 , 0 , indexF , false ) ) ;
36-
37- AddWire ( ID , new Wire ( 0 , 0 , indexA , true ) ) ;
38-
39- AddWire ( ID , new Wire ( 2 , 3 , indexA , true ) ) ;
40- AddWire ( ID , new Wire ( 2 , 3 , indexB , true ) ) ;
41- AddWire ( ID , new Wire ( 2 , 3 , indexC , true ) ) ;
42- AddWire ( ID , new Wire ( 2 , 3 , indexD , true ) ) ;
43-
44- //Gate E
45- AddWire ( gateE . ID , new Wire ( 0 , 1 , indexF , false ) ) ;
46-
47- //Gate F
48- AddWire ( gateF . ID , new Wire ( 0 , 2 , indexA , true , true ) ) ;
49- AddWire ( gateF . ID , new Wire ( 0 , 2 , indexB , true , true ) ) ;
50- AddWire ( gateF . ID , new Wire ( 0 , 2 , indexC , true , true ) ) ;
51- AddWire ( gateF . ID , new Wire ( 0 , 2 , indexD , true , true ) ) ;
52-
53- //Chip A
54- AddWire ( chipA . ID , new Wire ( 0 , 0 , - 1 , true ) ) ;
55- AddWire ( chipA . ID , new Wire ( 1 , 1 , indexA , true ) ) ;
56- AddWire ( chipA . ID , new Wire ( 1 , 0 , indexB , true ) ) ;
57-
58- //Chip B
59- AddWire ( chipB . ID , new Wire ( 0 , 1 , - 1 , true ) ) ;
60- AddWire ( chipB . ID , new Wire ( 1 , 1 , indexB , true ) ) ;
61- AddWire ( chipB . ID , new Wire ( 1 , 0 , indexC , true ) ) ;
62-
63- //Chip C
64- AddWire ( chipC . ID , new Wire ( 0 , 2 , - 1 , true ) ) ;
65- AddWire ( chipC . ID , new Wire ( 1 , 1 , indexC , true ) ) ;
66- AddWire ( chipC . ID , new Wire ( 1 , 0 , indexD , true ) ) ;
67-
68- //Chip D
69- AddWire ( chipD . ID , new Wire ( 0 , 3 , - 1 , true ) ) ;
70- AddWire ( chipD . ID , new Wire ( 1 , 1 , indexD , true ) ) ;
18+ JK_FlipFlop_Clr chip0 = new JK_FlipFlop_Clr ( ) ;
19+ chip0 . SetInputBit ( 0 , true ) ;
20+ chip0 . SetInputBit ( 1 , true ) ;
21+ int index0 = AddChip ( chip0 ) ;
22+
23+ JK_FlipFlop_Clr chip1 = new JK_FlipFlop_Clr ( ) ;
24+ chip1 . SetInputBit ( 0 , true ) ;
25+ chip1 . SetInputBit ( 1 , true ) ;
26+ int index1 = AddChip ( chip1 ) ;
27+
28+ JK_FlipFlop_Clr chip2 = new JK_FlipFlop_Clr ( ) ;
29+ chip2 . SetInputBit ( 0 , true ) ;
30+ chip2 . SetInputBit ( 1 , true ) ;
31+ int index2 = AddChip ( chip2 ) ;
32+
33+ JK_FlipFlop_Clr chip3 = new JK_FlipFlop_Clr ( ) ;
34+ chip3 . SetInputBit ( 0 , true ) ;
35+ chip3 . SetInputBit ( 1 , true ) ;
36+ int index3 = AddChip ( chip3 ) ;
37+
38+ AddWire ( ID , new Wire ( 0 , 2 , index0 , true ) ) ;
39+
40+ AddWire ( ID , new Wire ( 1 , 3 , index0 , true ) ) ;
41+ AddWire ( ID , new Wire ( 1 , 3 , index1 , true ) ) ;
42+ AddWire ( ID , new Wire ( 1 , 3 , index2 , true ) ) ;
43+ AddWire ( ID , new Wire ( 1 , 3 , index3 , true ) ) ;
44+
45+ AddWire ( chip0 , new Wire ( 0 , 2 , index1 , true ) ) ;
46+ AddWire ( chip1 , new Wire ( 0 , 2 , index2 , true ) ) ;
47+ AddWire ( chip2 , new Wire ( 0 , 2 , index3 , true ) ) ;
48+
49+ AddWire ( chip0 , new Wire ( 0 , 0 , - 1 , true ) ) ;
50+ AddWire ( chip1 , new Wire ( 0 , 1 , - 1 , true ) ) ;
51+ AddWire ( chip2 , new Wire ( 0 , 2 , - 1 , true ) ) ;
52+ AddWire ( chip3 , new Wire ( 0 , 3 , - 1 , true ) ) ;
7153 }
7254 }
7355}
0 commit comments