Extracted the program counter into its own component. Fixes #13
[Mograsim.git] / plugins / net.mograsim.logic.model.am2900 / components / net / mograsim / logic / model / am2900 / components / Am2900PC.json
1 {
2   "width": 100.0,
3   "height": 70.0,
4   "interfacePins": [
5     {
6       "location": {
7         "x": 90.0,
8         "y": 0.0
9       },
10       "name": "A",
11       "logicWidth": 16,
12       "usage": "TRISTATE"
13     },
14     {
15       "location": {
16         "x": 60.0,
17         "y": 70.0
18       },
19       "name": "C",
20       "logicWidth": 1,
21       "usage": "INPUT"
22     },
23     {
24       "location": {
25         "x": 10.0,
26         "y": 0.0
27       },
28       "name": "D",
29       "logicWidth": 16,
30       "usage": "TRISTATE"
31     },
32     {
33       "location": {
34         "x": 40.0,
35         "y": 70.0
36       },
37       "name": "I",
38       "logicWidth": 4,
39       "usage": "INPUT"
40     },
41     {
42       "location": {
43         "x": 0.0,
44         "y": 60.0
45       },
46       "name": "_AOUT",
47       "logicWidth": 1,
48       "usage": "OUTPUT"
49     }
50   ],
51   "innerScale": 0.4,
52   "submodel": {
53     "components": [
54       {
55         "id": "NandGate",
56         "name": "NandGate#0",
57         "pos": {
58           "x": 160.0,
59           "y": 115.0
60         },
61         "params": 1
62       },
63       {
64         "id": "NandGate",
65         "name": "NandGate#1",
66         "pos": {
67           "x": 110.0,
68           "y": 100.0
69         },
70         "params": 1
71       },
72       {
73         "id": "NandGate",
74         "name": "NandGate#2",
75         "pos": {
76           "x": 160.0,
77           "y": 140.0
78         },
79         "params": 1
80       },
81       {
82         "id": "Splitter",
83         "name": "Splitter#0",
84         "pos": {
85           "x": 85.0,
86           "y": 155.0
87         },
88         "params": {
89           "logicWidth": 4,
90           "orientation": "UP"
91         }
92       },
93       {
94         "id": "TriStateBuffer",
95         "name": "TriStateBuffer#0",
96         "pos": {
97           "x": 190.0,
98           "y": 40.0
99         },
100         "params": {
101           "logicWidth": 16,
102           "orientation": "RIGHT_ALT"
103         }
104       },
105       {
106         "id": "TriStateBuffer",
107         "name": "TriStateBuffer#1",
108         "pos": {
109           "x": 190.0,
110           "y": 65.0
111         },
112         "params": {
113           "logicWidth": 16,
114           "orientation": "RIGHT_ALT"
115         }
116       },
117       {
118         "id": "WireCrossPoint",
119         "name": "WireCrossPoint#0",
120         "pos": {
121           "x": 104.0,
122           "y": 114.0
123         },
124         "params": 1
125       },
126       {
127         "id": "WireCrossPoint",
128         "name": "WireCrossPoint#1",
129         "pos": {
130           "x": 184.0,
131           "y": 49.0
132         },
133         "params": 16
134       },
135       {
136         "id": "WireCrossPoint",
137         "name": "WireCrossPoint#2",
138         "pos": {
139           "x": 154.0,
140           "y": 129.0
141         },
142         "params": 1
143       },
144       {
145         "id": "WireCrossPoint",
146         "name": "WireCrossPoint#3",
147         "pos": {
148           "x": 154.0,
149           "y": 144.0
150         },
151         "params": 1
152       },
153       {
154         "id": "WireCrossPoint",
155         "name": "WireCrossPoint#4",
156         "pos": {
157           "x": 114.0,
158           "y": 149.0
159         },
160         "params": 1
161       },
162       {
163         "id": "WireCrossPoint",
164         "name": "WireCrossPoint#5",
165         "pos": {
166           "x": 24.0,
167           "y": 14.0
168         },
169         "params": 16
170       },
171       {
172         "id": "dff16",
173         "name": "dff16#0",
174         "pos": {
175           "x": 135.0,
176           "y": 25.0
177         }
178       },
179       {
180         "id": "inc16",
181         "name": "inc16#0",
182         "pos": {
183           "x": 95.0,
184           "y": 35.0
185         }
186       },
187       {
188         "id": "mux1_16",
189         "name": "mux1_16#0",
190         "pos": {
191           "x": 20.0,
192           "y": 30.0
193         }
194       }
195     ],
196     "wires": [
197       {
198         "pin1": {
199           "compName": "_submodelinterface",
200           "pinName": "I"
201         },
202         "pin2": {
203           "compName": "Splitter#0",
204           "pinName": "I"
205         },
206         "name": "unnamedWire#0",
207         "path": []
208       },
209       {
210         "pin1": {
211           "compName": "_submodelinterface",
212           "pinName": "C"
213         },
214         "pin2": {
215           "compName": "dff16#0",
216           "pinName": "C"
217         },
218         "name": "unnamedWire#1",
219         "path": [
220           {
221             "x": 150.0,
222             "y": 85.0
223           },
224           {
225             "x": 130.0,
226             "y": 85.0
227           },
228           {
229             "x": 130.0,
230             "y": 30.0
231           }
232         ]
233       },
234       {
235         "pin1": {
236           "compName": "WireCrossPoint#2",
237           "pinName": ""
238         },
239         "pin2": {
240           "compName": "NandGate#0",
241           "pinName": "B"
242         },
243         "name": "unnamedWire#2",
244         "path": []
245       },
246       {
247         "pin1": {
248           "compName": "WireCrossPoint#2",
249           "pinName": ""
250         },
251         "pin2": {
252           "compName": "NandGate#0",
253           "pinName": "A"
254         },
255         "name": "unnamedWire#3",
256         "path": [
257           {
258             "x": 155.0,
259             "y": 120.0
260           }
261         ]
262       },
263       {
264         "pin1": {
265           "compName": "Splitter#0",
266           "pinName": "O2"
267         },
268         "pin2": {
269           "compName": "WireCrossPoint#2",
270           "pinName": ""
271         },
272         "name": "unnamedWire#4",
273         "path": [
274           {
275             "x": 95.0,
276             "y": 130.0
277           }
278         ]
279       },
280       {
281         "pin1": {
282           "compName": "NandGate#0",
283           "pinName": "Y"
284         },
285         "pin2": {
286           "compName": "TriStateBuffer#0",
287           "pinName": "EN"
288         },
289         "name": "unnamedWire#5",
290         "path": [
291           {
292             "x": 215.0,
293             "y": 125.0
294           },
295           {
296             "x": 215.0,
297             "y": 60.0
298           },
299           {
300             "x": 200.0,
301             "y": 60.0
302           }
303         ]
304       },
305       {
306         "pin1": {
307           "compName": "WireCrossPoint#3",
308           "pinName": ""
309         },
310         "pin2": {
311           "compName": "NandGate#2",
312           "pinName": "A"
313         },
314         "name": "unnamedWire#6",
315         "path": []
316       },
317       {
318         "pin1": {
319           "compName": "WireCrossPoint#3",
320           "pinName": ""
321         },
322         "pin2": {
323           "compName": "NandGate#2",
324           "pinName": "B"
325         },
326         "name": "unnamedWire#7",
327         "path": [
328           {
329             "x": 155.0,
330             "y": 155.0
331           }
332         ]
333       },
334       {
335         "pin1": {
336           "compName": "Splitter#0",
337           "pinName": "O0"
338         },
339         "pin2": {
340           "compName": "WireCrossPoint#4",
341           "pinName": ""
342         },
343         "name": "unnamedWire#8",
344         "path": []
345       },
346       {
347         "pin1": {
348           "compName": "NandGate#2",
349           "pinName": "Y"
350         },
351         "pin2": {
352           "compName": "TriStateBuffer#1",
353           "pinName": "EN"
354         },
355         "name": "unnamedWire#9",
356         "path": [
357           {
358             "x": 200.0,
359             "y": 150.0
360           }
361         ]
362       },
363       {
364         "pin1": {
365           "compName": "Splitter#0",
366           "pinName": "O3"
367         },
368         "pin2": {
369           "compName": "mux1_16#0",
370           "pinName": "S"
371         },
372         "name": "unnamedWire#10",
373         "path": [
374           {
375             "x": 85.0,
376             "y": 145.0
377           },
378           {
379             "x": 5.0,
380             "y": 145.0
381           },
382           {
383             "x": 5.0,
384             "y": 35.0
385           }
386         ]
387       },
388       {
389         "pin1": {
390           "compName": "inc16#0",
391           "pinName": "Y"
392         },
393         "pin2": {
394           "compName": "dff16#0",
395           "pinName": "D"
396         },
397         "name": "unnamedWire#11",
398         "path": []
399       },
400       {
401         "pin1": {
402           "compName": "inc16#0",
403           "pinName": "A"
404         },
405         "pin2": {
406           "compName": "mux1_16#0",
407           "pinName": "Y"
408         },
409         "name": "unnamedWire#12",
410         "path": [
411           {
412             "x": 80.0,
413             "y": 50.0
414           },
415           {
416             "x": 80.0,
417             "y": 80.0
418           }
419         ]
420       },
421       {
422         "pin1": {
423           "compName": "inc16#0",
424           "pinName": "CI"
425         },
426         "pin2": {
427           "compName": "NandGate#1",
428           "pinName": "Y"
429         },
430         "name": "unnamedWire#13",
431         "path": [
432           {
433             "x": 90.0,
434             "y": 65.0
435           },
436           {
437             "x": 90.0,
438             "y": 95.0
439           },
440           {
441             "x": 135.0,
442             "y": 95.0
443           },
444           {
445             "x": 135.0,
446             "y": 110.0
447           }
448         ]
449       },
450       {
451         "pin1": {
452           "compName": "WireCrossPoint#0",
453           "pinName": ""
454         },
455         "pin2": {
456           "compName": "NandGate#1",
457           "pinName": "A"
458         },
459         "name": "unnamedWire#14",
460         "path": [
461           {
462             "x": 105.0,
463             "y": 105.0
464           }
465         ]
466       },
467       {
468         "pin1": {
469           "compName": "NandGate#1",
470           "pinName": "B"
471         },
472         "pin2": {
473           "compName": "WireCrossPoint#0",
474           "pinName": ""
475         },
476         "name": "unnamedWire#15",
477         "path": []
478       },
479       {
480         "pin1": {
481           "compName": "WireCrossPoint#1",
482           "pinName": ""
483         },
484         "pin2": {
485           "compName": "TriStateBuffer#1",
486           "pinName": "IN"
487         },
488         "name": "unnamedWire#16",
489         "path": [
490           {
491             "x": 185.0,
492             "y": 75.0
493           }
494         ]
495       },
496       {
497         "pin1": {
498           "compName": "WireCrossPoint#1",
499           "pinName": ""
500         },
501         "pin2": {
502           "compName": "dff16#0",
503           "pinName": "Q"
504         },
505         "name": "unnamedWire#17",
506         "path": []
507       },
508       {
509         "pin1": {
510           "compName": "WireCrossPoint#1",
511           "pinName": ""
512         },
513         "pin2": {
514           "compName": "TriStateBuffer#0",
515           "pinName": "IN"
516         },
517         "name": "unnamedWire#18",
518         "path": []
519       },
520       {
521         "pin1": {
522           "compName": "WireCrossPoint#1",
523           "pinName": ""
524         },
525         "pin2": {
526           "compName": "mux1_16#0",
527           "pinName": "I1"
528         },
529         "name": "unnamedWire#19",
530         "path": [
531           {
532             "x": 185.0,
533             "y": 20.0
534           },
535           {
536             "x": 10.0,
537             "y": 20.0
538           },
539           {
540             "x": 10.0,
541             "y": 120.0
542           }
543         ]
544       },
545       {
546         "pin1": {
547           "compName": "_submodelinterface",
548           "pinName": "_AOUT"
549         },
550         "pin2": {
551           "compName": "WireCrossPoint#4",
552           "pinName": ""
553         },
554         "name": "unnamedWire#20",
555         "path": []
556       },
557       {
558         "pin1": {
559           "compName": "_submodelinterface",
560           "pinName": "A"
561         },
562         "pin2": {
563           "compName": "TriStateBuffer#1",
564           "pinName": "OUT"
565         },
566         "name": "unnamedWire#21",
567         "path": [
568           {
569             "x": 225.0,
570             "y": 75.0
571           }
572         ]
573       },
574       {
575         "pin1": {
576           "compName": "Splitter#0",
577           "pinName": "O1"
578         },
579         "pin2": {
580           "compName": "WireCrossPoint#0",
581           "pinName": ""
582         },
583         "name": "unnamedWire#22",
584         "path": []
585       },
586       {
587         "pin1": {
588           "compName": "mux1_16#0",
589           "pinName": "I0"
590         },
591         "pin2": {
592           "compName": "WireCrossPoint#5",
593           "pinName": ""
594         },
595         "name": "unnamedWire#23",
596         "path": [
597           {
598             "x": 15.0,
599             "y": 55.0
600           },
601           {
602             "x": 15.0,
603             "y": 15.0
604           }
605         ]
606       },
607       {
608         "pin1": {
609           "compName": "WireCrossPoint#4",
610           "pinName": ""
611         },
612         "pin2": {
613           "compName": "WireCrossPoint#3",
614           "pinName": ""
615         },
616         "name": "unnamedWire#24",
617         "path": [
618           {
619             "x": 115.0,
620             "y": 145.0
621           }
622         ]
623       },
624       {
625         "pin1": {
626           "compName": "WireCrossPoint#5",
627           "pinName": ""
628         },
629         "pin2": {
630           "compName": "_submodelinterface",
631           "pinName": "D"
632         },
633         "name": "unnamedWire#25",
634         "path": []
635       },
636       {
637         "pin1": {
638           "compName": "WireCrossPoint#5",
639           "pinName": ""
640         },
641         "pin2": {
642           "compName": "TriStateBuffer#0",
643           "pinName": "OUT"
644         },
645         "name": "unnamedWire#26",
646         "path": [
647           {
648             "x": 215.0,
649             "y": 15.0
650           },
651           {
652             "x": 215.0,
653             "y": 50.0
654           }
655         ]
656       }
657     ],
658     "version": "0.1.1"
659   },
660   "symbolRendererSnippetID": "simpleRectangularLike",
661   "symbolRendererParams": {
662     "centerText": "Program\ncounter",
663     "centerTextHeight": 5.0,
664     "horizontalComponentCenter": 17.5,
665     "pinLabelHeight": 3.5,
666     "pinLabelMargin": 0.5
667   },
668   "outlineRendererSnippetID": "default",
669   "highLevelStateHandlerSnippetID": "standard",
670   "highLevelStateHandlerParams": {
671     "subcomponentHighLevelStates": {
672       "pc": {
673         "id": "delegating",
674         "params": {
675           "delegateTarget": "dff16#0"
676         }
677       }
678     },
679     "atomicHighLevelStates": {}
680   },
681   "version": "0.1.5"
682 }