Implemented a 12-bit decrementer
[Mograsim.git] / plugins / net.mograsim.logic.model.am2900 / components / net / mograsim / logic / model / am2900 / components / dec12.json
1 {
2   "width": 45.0,
3   "height": 45.0,
4   "interfacePins": [
5     {
6       "location": {
7         "x": 0.0,
8         "y": 20.0
9       },
10       "name": "A",
11       "logicWidth": 12,
12       "usage": "INPUT"
13     },
14     {
15       "location": {
16         "x": 0.0,
17         "y": 40.0
18       },
19       "name": "CI",
20       "logicWidth": 1,
21       "usage": "INPUT"
22     },
23     {
24       "location": {
25         "x": 45.0,
26         "y": 20.0
27       },
28       "name": "Y",
29       "logicWidth": 12,
30       "usage": "OUTPUT"
31     }
32   ],
33   "innerScale": 0.2,
34   "submodel": {
35     "components": [
36       {
37         "id": "NandGate",
38         "name": "NandGate#0",
39         "pos": {
40           "x": 20.0,
41           "y": 200.0
42         },
43         "params": 1
44       },
45       {
46         "id": "Splitter",
47         "name": "Splitter#0",
48         "pos": {
49           "x": 5.0,
50           "y": 45.0
51         },
52         "params": {
53           "logicWidth": 12,
54           "orientation": "RIGHT"
55         }
56       },
57       {
58         "id": "Splitter",
59         "name": "Splitter#1",
60         "pos": {
61           "x": 210.0,
62           "y": 45.0
63         },
64         "params": {
65           "logicWidth": 12,
66           "orientation": "LEFT"
67         }
68       },
69       {
70         "id": "WireCrossPoint",
71         "name": "WireCrossPoint#0",
72         "pos": {
73           "x": 14.0,
74           "y": 204.0
75         },
76         "params": 1
77       },
78       {
79         "id": "halfsubtracter",
80         "name": "halfsubtracter#0",
81         "pos": {
82           "x": 115.0,
83           "y": 180.0
84         }
85       },
86       {
87         "id": "halfsubtracter",
88         "name": "halfsubtracter#1",
89         "pos": {
90           "x": 55.0,
91           "y": 155.0
92         }
93       },
94       {
95         "id": "halfsubtracter",
96         "name": "halfsubtracter#2",
97         "pos": {
98           "x": 115.0,
99           "y": 145.0
100         }
101       },
102       {
103         "id": "halfsubtracter",
104         "name": "halfsubtracter#3",
105         "pos": {
106           "x": 55.0,
107           "y": 120.0
108         }
109       },
110       {
111         "id": "halfsubtracter",
112         "name": "halfsubtracter#4",
113         "pos": {
114           "x": 115.0,
115           "y": 110.0
116         }
117       },
118       {
119         "id": "halfsubtracter",
120         "name": "halfsubtracter#5",
121         "pos": {
122           "x": 55.0,
123           "y": 85.0
124         }
125       },
126       {
127         "id": "halfsubtracter",
128         "name": "halfsubtracter#6",
129         "pos": {
130           "x": 115.0,
131           "y": 75.0
132         }
133       },
134       {
135         "id": "halfsubtracter",
136         "name": "halfsubtracter#7",
137         "pos": {
138           "x": 55.0,
139           "y": 50.0
140         }
141       },
142       {
143         "id": "halfsubtracter",
144         "name": "halfsubtracter#8",
145         "pos": {
146           "x": 115.0,
147           "y": 40.0
148         }
149       },
150       {
151         "id": "halfsubtracter",
152         "name": "halfsubtracter#9",
153         "pos": {
154           "x": 55.0,
155           "y": 15.0
156         }
157       },
158       {
159         "id": "halfsubtracter",
160         "name": "halfsubtracter#10",
161         "pos": {
162           "x": 55.0,
163           "y": 190.0
164         }
165       },
166       {
167         "id": "xnor",
168         "name": "xnor#0",
169         "pos": {
170           "x": 115.0,
171           "y": 5.0
172         }
173       }
174     ],
175     "wires": [
176       {
177         "pin1": {
178           "compName": "halfsubtracter#9",
179           "pinName": "Z"
180         },
181         "pin2": {
182           "compName": "xnor#0",
183           "pinName": "B"
184         },
185         "name": "unnamedWire#0",
186         "path": []
187       },
188       {
189         "pin1": {
190           "compName": "halfsubtracter#8",
191           "pinName": "Z"
192         },
193         "pin2": {
194           "compName": "halfsubtracter#9",
195           "pinName": "B"
196         },
197         "name": "unnamedWire#1",
198         "path": [
199           {
200             "x": 170.0,
201             "y": 45.0
202           },
203           {
204             "x": 170.0,
205             "y": 35.0
206           },
207           {
208             "x": 110.0,
209             "y": 35.0
210           },
211           {
212             "x": 110.0,
213             "y": 40.0
214           },
215           {
216             "x": 50.0,
217             "y": 40.0
218           },
219           {
220             "x": 50.0,
221             "y": 30.0
222           }
223         ]
224       },
225       {
226         "pin1": {
227           "compName": "halfsubtracter#7",
228           "pinName": "Z"
229         },
230         "pin2": {
231           "compName": "halfsubtracter#8",
232           "pinName": "B"
233         },
234         "name": "unnamedWire#2",
235         "path": []
236       },
237       {
238         "pin1": {
239           "compName": "halfsubtracter#6",
240           "pinName": "Z"
241         },
242         "pin2": {
243           "compName": "halfsubtracter#7",
244           "pinName": "B"
245         },
246         "name": "unnamedWire#3",
247         "path": [
248           {
249             "x": 170.0,
250             "y": 80.0
251           },
252           {
253             "x": 170.0,
254             "y": 70.0
255           },
256           {
257             "x": 110.0,
258             "y": 70.0
259           },
260           {
261             "x": 110.0,
262             "y": 75.0
263           },
264           {
265             "x": 50.0,
266             "y": 75.0
267           },
268           {
269             "x": 50.0,
270             "y": 65.0
271           }
272         ]
273       },
274       {
275         "pin1": {
276           "compName": "halfsubtracter#5",
277           "pinName": "Z"
278         },
279         "pin2": {
280           "compName": "halfsubtracter#6",
281           "pinName": "B"
282         },
283         "name": "unnamedWire#4",
284         "path": []
285       },
286       {
287         "pin1": {
288           "compName": "halfsubtracter#4",
289           "pinName": "Z"
290         },
291         "pin2": {
292           "compName": "halfsubtracter#5",
293           "pinName": "B"
294         },
295         "name": "unnamedWire#5",
296         "path": [
297           {
298             "x": 170.0,
299             "y": 115.0
300           },
301           {
302             "x": 170.0,
303             "y": 105.0
304           },
305           {
306             "x": 110.0,
307             "y": 105.0
308           },
309           {
310             "x": 110.0,
311             "y": 110.0
312           },
313           {
314             "x": 50.0,
315             "y": 110.0
316           },
317           {
318             "x": 50.0,
319             "y": 100.0
320           }
321         ]
322       },
323       {
324         "pin1": {
325           "compName": "halfsubtracter#3",
326           "pinName": "Z"
327         },
328         "pin2": {
329           "compName": "halfsubtracter#4",
330           "pinName": "B"
331         },
332         "name": "unnamedWire#6",
333         "path": []
334       },
335       {
336         "pin1": {
337           "compName": "halfsubtracter#2",
338           "pinName": "Z"
339         },
340         "pin2": {
341           "compName": "halfsubtracter#3",
342           "pinName": "B"
343         },
344         "name": "unnamedWire#7",
345         "path": [
346           {
347             "x": 170.0,
348             "y": 150.0
349           },
350           {
351             "x": 170.0,
352             "y": 140.0
353           },
354           {
355             "x": 110.0,
356             "y": 140.0
357           },
358           {
359             "x": 110.0,
360             "y": 145.0
361           },
362           {
363             "x": 50.0,
364             "y": 145.0
365           },
366           {
367             "x": 50.0,
368             "y": 135.0
369           }
370         ]
371       },
372       {
373         "pin1": {
374           "compName": "halfsubtracter#1",
375           "pinName": "Z"
376         },
377         "pin2": {
378           "compName": "halfsubtracter#2",
379           "pinName": "B"
380         },
381         "name": "unnamedWire#8",
382         "path": []
383       },
384       {
385         "pin1": {
386           "compName": "halfsubtracter#0",
387           "pinName": "Z"
388         },
389         "pin2": {
390           "compName": "halfsubtracter#1",
391           "pinName": "B"
392         },
393         "name": "unnamedWire#9",
394         "path": [
395           {
396             "x": 170.0,
397             "y": 185.0
398           },
399           {
400             "x": 170.0,
401             "y": 175.0
402           },
403           {
404             "x": 110.0,
405             "y": 175.0
406           },
407           {
408             "x": 110.0,
409             "y": 180.0
410           },
411           {
412             "x": 50.0,
413             "y": 180.0
414           },
415           {
416             "x": 50.0,
417             "y": 170.0
418           }
419         ]
420       },
421       {
422         "pin1": {
423           "compName": "Splitter#0",
424           "pinName": "O0"
425         },
426         "pin2": {
427           "compName": "halfsubtracter#10",
428           "pinName": "A"
429         },
430         "name": "unnamedWire#10",
431         "path": [
432           {
433             "x": 20.0,
434             "y": 155.0
435           },
436           {
437             "x": 20.0,
438             "y": 195.0
439           }
440         ]
441       },
442       {
443         "pin1": {
444           "compName": "Splitter#0",
445           "pinName": "O11"
446         },
447         "pin2": {
448           "compName": "xnor#0",
449           "pinName": "A"
450         },
451         "name": "unnamedWire#11",
452         "path": [
453           {
454             "x": 25.0,
455             "y": 45.0
456           },
457           {
458             "x": 25.0,
459             "y": 10.0
460           }
461         ]
462       },
463       {
464         "pin1": {
465           "compName": "halfsubtracter#9",
466           "pinName": "A"
467         },
468         "pin2": {
469           "compName": "Splitter#0",
470           "pinName": "O10"
471         },
472         "name": "unnamedWire#12",
473         "path": [
474           {
475             "x": 30.0,
476             "y": 20.0
477           },
478           {
479             "x": 30.0,
480             "y": 55.0
481           }
482         ]
483       },
484       {
485         "pin1": {
486           "compName": "Splitter#0",
487           "pinName": "O9"
488         },
489         "pin2": {
490           "compName": "halfsubtracter#8",
491           "pinName": "A"
492         },
493         "name": "unnamedWire#13",
494         "path": [
495           {
496             "x": 35.0,
497             "y": 65.0
498           },
499           {
500             "x": 35.0,
501             "y": 45.0
502           }
503         ]
504       },
505       {
506         "pin1": {
507           "compName": "halfsubtracter#7",
508           "pinName": "A"
509         },
510         "pin2": {
511           "compName": "Splitter#0",
512           "pinName": "O8"
513         },
514         "name": "unnamedWire#14",
515         "path": [
516           {
517             "x": 40.0,
518             "y": 55.0
519           },
520           {
521             "x": 40.0,
522             "y": 75.0
523           }
524         ]
525       },
526       {
527         "pin1": {
528           "compName": "Splitter#0",
529           "pinName": "O7"
530         },
531         "pin2": {
532           "compName": "halfsubtracter#6",
533           "pinName": "A"
534         },
535         "name": "unnamedWire#15",
536         "path": [
537           {
538             "x": 45.0,
539             "y": 85.0
540           },
541           {
542             "x": 45.0,
543             "y": 80.0
544           }
545         ]
546       },
547       {
548         "pin1": {
549           "compName": "halfsubtracter#5",
550           "pinName": "A"
551         },
552         "pin2": {
553           "compName": "Splitter#0",
554           "pinName": "O6"
555         },
556         "name": "unnamedWire#16",
557         "path": [
558           {
559             "x": 45.0,
560             "y": 90.0
561           },
562           {
563             "x": 45.0,
564             "y": 95.0
565           }
566         ]
567       },
568       {
569         "pin1": {
570           "compName": "Splitter#0",
571           "pinName": "O5"
572         },
573         "pin2": {
574           "compName": "halfsubtracter#4",
575           "pinName": "A"
576         },
577         "name": "unnamedWire#17",
578         "path": [
579           {
580             "x": 45.0,
581             "y": 105.0
582           },
583           {
584             "x": 45.0,
585             "y": 115.0
586           }
587         ]
588       },
589       {
590         "pin1": {
591           "compName": "halfsubtracter#3",
592           "pinName": "A"
593         },
594         "pin2": {
595           "compName": "Splitter#0",
596           "pinName": "O4"
597         },
598         "name": "unnamedWire#18",
599         "path": [
600           {
601             "x": 40.0,
602             "y": 125.0
603           },
604           {
605             "x": 40.0,
606             "y": 115.0
607           }
608         ]
609       },
610       {
611         "pin1": {
612           "compName": "Splitter#0",
613           "pinName": "O3"
614         },
615         "pin2": {
616           "compName": "halfsubtracter#2",
617           "pinName": "A"
618         },
619         "name": "unnamedWire#19",
620         "path": [
621           {
622             "x": 35.0,
623             "y": 125.0
624           },
625           {
626             "x": 35.0,
627             "y": 150.0
628           }
629         ]
630       },
631       {
632         "pin1": {
633           "compName": "halfsubtracter#1",
634           "pinName": "A"
635         },
636         "pin2": {
637           "compName": "Splitter#0",
638           "pinName": "O2"
639         },
640         "name": "unnamedWire#20",
641         "path": [
642           {
643             "x": 30.0,
644             "y": 160.0
645           },
646           {
647             "x": 30.0,
648             "y": 135.0
649           }
650         ]
651       },
652       {
653         "pin1": {
654           "compName": "Splitter#0",
655           "pinName": "O1"
656         },
657         "pin2": {
658           "compName": "halfsubtracter#0",
659           "pinName": "A"
660         },
661         "name": "unnamedWire#21",
662         "path": [
663           {
664             "x": 25.0,
665             "y": 145.0
666           },
667           {
668             "x": 25.0,
669             "y": 185.0
670           }
671         ]
672       },
673       {
674         "pin1": {
675           "compName": "_submodelinterface",
676           "pinName": "CI"
677         },
678         "pin2": {
679           "compName": "WireCrossPoint#0",
680           "pinName": ""
681         },
682         "name": "unnamedWire#22",
683         "path": [
684           {
685             "x": 15.0,
686             "y": 200.0
687           }
688         ]
689       },
690       {
691         "pin1": {
692           "compName": "halfsubtracter#10",
693           "pinName": "Z"
694         },
695         "pin2": {
696           "compName": "halfsubtracter#0",
697           "pinName": "B"
698         },
699         "name": "unnamedWire#23",
700         "path": []
701       },
702       {
703         "pin1": {
704           "compName": "halfsubtracter#10",
705           "pinName": "Y"
706         },
707         "pin2": {
708           "compName": "Splitter#1",
709           "pinName": "O0"
710         },
711         "name": "unnamedWire#24",
712         "path": [
713           {
714             "x": 205.0,
715             "y": 205.0
716           },
717           {
718             "x": 205.0,
719             "y": 155.0
720           }
721         ]
722       },
723       {
724         "pin1": {
725           "compName": "_submodelinterface",
726           "pinName": "A"
727         },
728         "pin2": {
729           "compName": "Splitter#0",
730           "pinName": "I"
731         },
732         "name": "unnamedWire#25",
733         "path": []
734       },
735       {
736         "pin1": {
737           "compName": "xnor#0",
738           "pinName": "Y"
739         },
740         "pin2": {
741           "compName": "Splitter#1",
742           "pinName": "O11"
743         },
744         "name": "unnamedWire#26",
745         "path": [
746           {
747             "x": 195.0,
748             "y": 10.0
749           },
750           {
751             "x": 195.0,
752             "y": 45.0
753           }
754         ]
755       },
756       {
757         "pin1": {
758           "compName": "Splitter#1",
759           "pinName": "O10"
760         },
761         "pin2": {
762           "compName": "halfsubtracter#9",
763           "pinName": "Y"
764         },
765         "name": "unnamedWire#27",
766         "path": [
767           {
768             "x": 190.0,
769             "y": 55.0
770           },
771           {
772             "x": 190.0,
773             "y": 30.0
774           }
775         ]
776       },
777       {
778         "pin1": {
779           "compName": "halfsubtracter#8",
780           "pinName": "Y"
781         },
782         "pin2": {
783           "compName": "Splitter#1",
784           "pinName": "O9"
785         },
786         "name": "unnamedWire#28",
787         "path": [
788           {
789             "x": 185.0,
790             "y": 55.0
791           },
792           {
793             "x": 185.0,
794             "y": 65.0
795           }
796         ]
797       },
798       {
799         "pin1": {
800           "compName": "Splitter#1",
801           "pinName": "O8"
802         },
803         "pin2": {
804           "compName": "halfsubtracter#7",
805           "pinName": "Y"
806         },
807         "name": "unnamedWire#29",
808         "path": [
809           {
810             "x": 180.0,
811             "y": 75.0
812           },
813           {
814             "x": 180.0,
815             "y": 65.0
816           }
817         ]
818       },
819       {
820         "pin1": {
821           "compName": "halfsubtracter#6",
822           "pinName": "Y"
823         },
824         "pin2": {
825           "compName": "Splitter#1",
826           "pinName": "O7"
827         },
828         "name": "unnamedWire#30",
829         "path": [
830           {
831             "x": 180.0,
832             "y": 90.0
833           },
834           {
835             "x": 180.0,
836             "y": 85.0
837           }
838         ]
839       },
840       {
841         "pin1": {
842           "compName": "Splitter#1",
843           "pinName": "O6"
844         },
845         "pin2": {
846           "compName": "halfsubtracter#5",
847           "pinName": "Y"
848         },
849         "name": "unnamedWire#31",
850         "path": [
851           {
852             "x": 180.0,
853             "y": 95.0
854           },
855           {
856             "x": 180.0,
857             "y": 100.0
858           }
859         ]
860       },
861       {
862         "pin1": {
863           "compName": "halfsubtracter#4",
864           "pinName": "Y"
865         },
866         "pin2": {
867           "compName": "Splitter#1",
868           "pinName": "O5"
869         },
870         "name": "unnamedWire#32",
871         "path": [
872           {
873             "x": 180.0,
874             "y": 125.0
875           },
876           {
877             "x": 180.0,
878             "y": 105.0
879           }
880         ]
881       },
882       {
883         "pin1": {
884           "compName": "Splitter#1",
885           "pinName": "O4"
886         },
887         "pin2": {
888           "compName": "halfsubtracter#3",
889           "pinName": "Y"
890         },
891         "name": "unnamedWire#33",
892         "path": [
893           {
894             "x": 185.0,
895             "y": 115.0
896           },
897           {
898             "x": 185.0,
899             "y": 135.0
900           }
901         ]
902       },
903       {
904         "pin1": {
905           "compName": "halfsubtracter#2",
906           "pinName": "Y"
907         },
908         "pin2": {
909           "compName": "Splitter#1",
910           "pinName": "O3"
911         },
912         "name": "unnamedWire#34",
913         "path": [
914           {
915             "x": 190.0,
916             "y": 160.0
917           },
918           {
919             "x": 190.0,
920             "y": 125.0
921           }
922         ]
923       },
924       {
925         "pin1": {
926           "compName": "Splitter#1",
927           "pinName": "O2"
928         },
929         "pin2": {
930           "compName": "halfsubtracter#1",
931           "pinName": "Y"
932         },
933         "name": "unnamedWire#35",
934         "path": [
935           {
936             "x": 195.0,
937             "y": 135.0
938           },
939           {
940             "x": 195.0,
941             "y": 170.0
942           }
943         ]
944       },
945       {
946         "pin1": {
947           "compName": "halfsubtracter#0",
948           "pinName": "Y"
949         },
950         "pin2": {
951           "compName": "Splitter#1",
952           "pinName": "O1"
953         },
954         "name": "unnamedWire#36",
955         "path": [
956           {
957             "x": 200.0,
958             "y": 195.0
959           },
960           {
961             "x": 200.0,
962             "y": 145.0
963           }
964         ]
965       },
966       {
967         "pin1": {
968           "compName": "Splitter#1",
969           "pinName": "I"
970         },
971         "pin2": {
972           "compName": "_submodelinterface",
973           "pinName": "Y"
974         },
975         "name": "unnamedWire#37",
976         "path": []
977       },
978       {
979         "pin1": {
980           "compName": "WireCrossPoint#0",
981           "pinName": ""
982         },
983         "pin2": {
984           "compName": "NandGate#0",
985           "pinName": "A"
986         },
987         "name": "unnamedWire#38",
988         "path": []
989       },
990       {
991         "pin1": {
992           "compName": "NandGate#0",
993           "pinName": "Y"
994         },
995         "pin2": {
996           "compName": "halfsubtracter#10",
997           "pinName": "B"
998         },
999         "name": "unnamedWire#39",
1000         "path": [
1001           {
1002             "x": 50.0,
1003             "y": 210.0
1004           },
1005           {
1006             "x": 50.0,
1007             "y": 205.0
1008           }
1009         ]
1010       },
1011       {
1012         "pin1": {
1013           "compName": "WireCrossPoint#0",
1014           "pinName": ""
1015         },
1016         "pin2": {
1017           "compName": "NandGate#0",
1018           "pinName": "B"
1019         },
1020         "name": "unnamedWire#40",
1021         "path": [
1022           {
1023             "x": 15.0,
1024             "y": 215.0
1025           }
1026         ]
1027       }
1028     ],
1029     "version": "0.1.1"
1030   },
1031   "symbolRendererSnippetID": "simpleRectangularLike",
1032   "symbolRendererParams": {
1033     "centerText": "Decrementer\n12-bit",
1034     "centerTextHeight": 5.0,
1035     "horizontalComponentCenter": 22.5,
1036     "pinLabelHeight": 3.5,
1037     "pinLabelMargin": 0.5
1038   },
1039   "outlineRendererSnippetID": "default",
1040   "highLevelStateHandlerSnippetID": "default",
1041   "version": "0.1.5"
1042 }