-
Notifications
You must be signed in to change notification settings - Fork 3
/
schema.json
179 lines (173 loc) · 7.65 KB
/
schema.json
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
{
"options,type:object,help:Global options" :
{
"ignoreSetYoffsetHalf" : "type:bool,help:Ignore the setYoffsetHalf parameter. Global override",
},
"patterns,type:object,help:Define special patterns for PatternTile" :{
"type:string,help:Name of pattern string" : [ "type:string,help: - for no fill, x for fill" ]
},
"include,type:array,help: Path to include files. Relative to --I" : [
"type:string,help:path to include file"
]
"cells,type:list,help:List of cells": [
{
"class" : "default,type:string,help:classname"
"spiceRegex,type:list,help:List of list" :[
["type:regex,help:from pattern","type:regex,help:to pattern"]
],
"class": "type:string,help:Classname,default:cicCore::LayoutCell",
"inherit" : "type:string,help:Name to inherit from",
"leech" : "type:string,help:Steal all properties from cell, but ignore parents",
"decorator,type:list,help:List of decorators" : [
[
{"ConnectSourceDrain" : ["type:string,help:Layer","type:route","type:routeOptions"]}
]
],
"afterNew" : [],
"beforePlace" : [],
"afterPlace" : [],
"beforeRoute" : [],
"afterRoute" : [ ],
"beforePaint" : [ ],
"afterPaint" : [ ]
}
{
"class" : "cIcCore::Cell",
"name" : "default,type:string,help:cellname",
"physicalOnly" : "type:bool,help: Don't remember what this does. Don't think it's used",
"moveTo,type:list,help:Move cell" : ["x,type:int","y,type:int" ],
"abstract,help: Abstract, don't print" : "type:int,help: 1|0",
"boundaryIgnoreRouting,help:Ignore routing for updateBoundary": "type:int,help: 1|0,default:0",
"mirrorCenterX,help:Not sure if this works" : "type:none",
"mirrorCenterY,help:Not sure if this works" : "type:none"
},
{
"class" : "cIcCore::LayoutCell",
"setYoffsetHalf,help:Used for digital cells to overlay drain/source": "type:dontcare,default:false,help:if set, true",
"noPowerRoute,help:Disable automatic power routing" : "type:dontcare,default:false,help:if set,true",
"alternateGroup,help:Alternate mirror Y" : "type:dontcare,default:false,help:if set,true",
"afterPlace" : [
"addPowerRings,type:list,help:Wide power routing. Names RAIL_(TOP|BOTTOM|LEFT|RIGHT)_<NAME>" : [
[
"layer,type:string",
"name,type:string,help:net name",
"location,type:string,default:rtbl",
"widthmult,type:int,help: cut_2x2.width x widthmult,default:1",
"spacemult,type:int,help: grid x spacemult,default:2" ]
],
"addRouteRings,type:list,help: Route rings" : [
[
"layer,type:string",
"netname,type:string,help:Will expand bus <x:0>",
"location,type:string,defautl:rtbl",
"widthmult,type:int,help: cut_2x2.width x widthmult,default:1",
"spacemult,type:int,help: grid x spacemult,default:10" ]
]
]
"beforeRoute" : [
"addDirectedRoutes,type:list" :[
[
"layer,type:string",
"netname,type:string",
"route,type:routeDirection",
"option,type:routeOptions",
],
"addConnectivityRoutes,type:list" : [
[
"layer",
"regex",
"routeType,type:routeType",
"options,type:routeOptions",
"cuts,type:int,help:Number of cuts",
"excludeInstances,type:regexInstance,default:empty",
"includeInstances,type:regexInstance,default:empty"
]
]
]
],
"afterRoute" : [ ],
"beforePaint" : [ ],
"afterPaint" : [ ]
},
{"class" : "cIcCore::LayoutRotateCell"},
{"class" : "cIcCore::PatternTile"},
{"class" : "cIcCore::PatternTransistor"},
{"class" : "cIcCore::PatternCapacitor"},
{"class" : "cIcCore::PatternHighResistor"},
{"class" : "cIcCore::PatternResistor"},
{"class" : "cIcCore::PatternHighResistor"},
{"class" : "cIcCells::SAR"},
{"class" : "cIcCells::CapCell"},
{"class" : "cIcCells::CDAC"}
],
"types" : {
"routeDirection" : {
"help" : "Runs a regex set by ^([^-\\|<>]*)([-\\|<>]+)([^-\\|<>]*)$ turns into startRegex;routeType;stopRegex",
"startRegex,type:findAllRectangles",
"routeType,type:routeType",
"stopRegex,type:findAllRectangles"
},
"findAllRectangles" : {
"help" : [
"1. findRectanglesByRegex. Search ports by regex. Split list delim=, "
" - if contains :, inst:path, if has instancname search recursively",
" - else search ports, match exact, no regex. If port has layer, return rect "
"2. Searches all instances and finds ports that match. If port has layer, return rect",
"3. Search custom named ports (RAIL_ etc). return rects"
]
},
"routeType" : {
"help" : [
"- -|-- => LEFT",
"- --|- => RIGHT",
"- - => STRAIGHT",
"- -| => U_RIGHT",
"- |- => U_LEFT",
"- --| => U_TOP",
"- |-- => U_BOTTOM",
"- -> => STRAIGHT",
"- || => VERTICAL"
]
}
"routeOptions" : [
"help" : "Options separated by space or , . See route.cpp for details",
"fillhcut, help: Fill horizontal cut",
"fillvcut, help: Fill vertical cut",
"antenna, help: Make an atenna route, up, short, down",
"onTopR, help: Put Right as the first rect",
"onTopB, help: Put Bottom rect as first rect",
"onTopT, help: Put Top rect as first rect",
"onTopL, help: Put Left rect as first rect",
"trimstartleft, help: Trim left start",
"trimstartright, help: Trim right start",
"trimendleft, help: Trim end left",
"trimendright, help: Trim end right",
"startLayer=Mx, help: Override start rectangle layers",
"stopLayer=Mx, help: Override stop rectangle layers",
"startoffsetcuthigh",
"startoffsetcutlow",
"endoffsetcuthigh",
"endoffsetcutlow",
"offsethighend",
"offsetlowend",
"track(\\d+),help=Move route by grid x track",
"offsethigh",
"offsetlow",
"nostartcut",
"noendcut",
"offsethighend",
"offsetlowend",
"(\\d+)startcuts",
"(\\d+)startvcuts",
"(\\d+)endcuts",
"(\\d+)endvcuts",
"(\\d+)cuts",
"(\\d+)vcuts",
"routeWidth=([^,\\s+,$]+)",
"cutalignright",
"leftdownleftup",
"leftupleftdown",
"strap,help: if one stop rect, strap all start rects with straight route to stop. Reverse if one start rect"
]
}
}