24 bool orChannel)
const {
25 if(slbout->
isValid()==
false)
return nullptr;
34 int adjacentOfSLB = -1;
35 int channelInSLB = -1;
43 if(channel%numberOfLayer==1){
46 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
49 if(channel%numberOfLayer==0){
52 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
57 if(channel%numberOfLayer==1){
60 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
63 if(channel%numberOfLayer==0){
66 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
76 if(channel%numberOfLayer==1){
79 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
82 if(channel%numberOfLayer==0){
85 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
90 if(channel%numberOfLayer==1){
93 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
96 if(channel%numberOfLayer==0){
99 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
109 if((channel+block*channelInBlock)%numberOfLayer==2){
112 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
115 if((channel+block*channelInBlock)%numberOfLayer==1){
118 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
121 if((channel+block*channelInBlock)%numberOfLayer==0){
124 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
134 if(orChannel==
false){
135 if(channel%numberOfLayer==1){
138 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
141 if(channel%numberOfLayer==0){
144 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
149 if(channel%numberOfLayer==1){
152 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
155 if(channel%numberOfLayer==0){
158 channelInSLB = (channel+block*channelInBlock)/numberOfLayer
169 if(channelInSLB!=-1){
171 cellType,channelInSLB);
184 bool orChannel)
const {
185 if(slbin->
isValid()==
false)
return nullptr;
205 if(orChannel==
false){
207 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer+1;
209 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer;
210 block = channel/channelInBlock;
211 channel = channel%channelInBlock;
215 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer+1;
217 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer;
218 block = channel/channelInBlock;
219 channel = channel%channelInBlock;
223 if(orChannel==
false){
225 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer+1;
227 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer;
228 block = channel/channelInBlock;
229 channel = channel%channelInBlock;
233 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer+1;
235 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer;
236 block = channel/channelInBlock;
237 channel = channel%channelInBlock;
242 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer+2;
244 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer+1;
246 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer;
247 block = channel/channelInBlock;
248 channel = channel%channelInBlock;
255 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer+1;
257 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer;
258 block = channel/channelInBlock;
259 channel = channel%channelInBlock;
263 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer+1;
265 channel = (channelInSLB-adjacentOfSLB)*numberOfLayer;
266 block = channel/channelInBlock;
267 channel = channel%channelInBlock;
275 if(block!=-1&&channel!=-1)