Init:
PROC = {
R: PROC [a: ICTest.Assignments] = {assignments ← CONS[a, assignments]};
groups: LIST OF ICTest.Group ← NIL;
ct: Core.CellType ←
CoreCreate.Cell[name:"TamarinNMos",
public: CoreCreate.WireList[
LIST[
"hold",
"interrupt",
"refresh",
"reset",
"holdA",
"outputInterrupt",
"writeEnableBar",
"casBar",
CoreCreate.Seq["rasBar",4],
CoreCreate.Seq["dataBus",32],
CoreCreate.Seq["rAddr",10],
"precharge","clock","clockD10","clockD35",
"gnd","vdd","cycle"]],
onlyInternal: NIL,
instances: NIL
];
assignments ← NIL;
groups ←
LIST [
[number: 1,
name: "CtlIn",
directionality: force,
format: DNRZ,
delay: 50],
[number: 2,
name: "CtlOut",
directionality: acquire,
format: DNRZ,
sample: 100],
[number: 3,
name: "DataBus",
directionality: biDirectional,
format: DNRZ,
sample: 100,
delay: 50],
[number: 4,
name: "Clocks",
directionality: force,
format: DNRZ,
delay: 0],
[number: 7,
name: "ClockCycle",
directionality: force,
format: RZ,
delay: 0, width: 200],
[number: 5,
name: "Row/ColAddrs",
directionality: acquire,
format: DNRZ,
sample: 100],
[number: 6,
name: "Cas",
directionality: acquire,
format: DNRZ,
sample: 100]
];
assignments ← NIL;
L
o
a T
d e
s
B t D
o e U
a P r T
r o C D
d d h H H U
G B a e e T
r o S P B n a a
o a i a y n d d P
u r d i t e e e i
Signal Name p d e r e l r r n
R[["gnd", 0,0,R,AB, A,1,001,001,02]];
R[["gnd", 0,0,R,AB, A,1,001,001,03]];
R[["gnd", 0,0,R,AB, A,1,001,001,04]];
R[["gnd", 0,0,R,AB, A,1,001,001,05]];
R[["gnd", 0,0,R,AB, A,1,001,001,06]];
R[["gnd", 0,0,R,AB, A,1,001,001,07]];
R[["gnd", 0,0,R,AB, A,1,001,001,08]];
R[["gnd", 0,0,R,AB, A,1,001,001,16]];
R[["gnd", 0,0,R,AB, A,1,001,001,17]];
R[["gnd", 0,0,R,AB, A,1,001,001,18]];
R[["gnd", 0,0,R,AB, A,1,001,001,33]];
R[["gnd", 0,0,R,AB, A,1,001,001,65]];
R[["gnd", 0,0,R,AB, A,1,001,001,99]];
R[["vdd", 0,0,R,AB, A,0,001,001,34]];
R[["vdd", 0,0,R,AB, A,0,001,001,59]];
R[["vdd", 0,0,R,AB, A,0,001,001,60]];
R[["vdd", 0,0,R,AB, A,0,001,001,61]];
R[["vdd", 0,0,R,AB, A,0,001,001,62]];
R[["vdd", 0,0,R,AB, A,0,001,001,63]];
R[["vdd", 0,0,R,AB, A,0,001,001,64]];
R[["vdd", 0,0,R,AB, A,0,001,001,67]];
R[["vdd", 0,0,R,AB, A,0,001,001,100]];
R[["vdd", 0,0,R,AB, A,0,001,001,132]];
R[["v10", 0,0,R,AB, A,0,001,001,01]];
R[["v10", 0,0,R,AB, A,0,001,001,66]];
R[["cycle", 7,0,R,AB, A,3,001,001,200]];
R[["precharge", 4,6,L,CD, B,0,001,001,78]];
R[["clock", 4,6,L,CD, B,1,001,001,77]];
R[["clockD10", 4,6,L,CD, B,2,001,001,75]];
R[["clockD35", 4,6,L,CD, B,3,001,001,76]];
R[["hold", 1,0,R,AB, B,0,001,001,71]];
R[["interrupt", 1,0,R,AB, B,1,001,001,74]];
R[["refresh", 1,0,R,AB, B,2,001,001,69]];
R[["reset", 1,0,R,AB, B,3,001,001,73]];
R[["holdA", 2,1,R,CD, A,0,001,001,70]];
R[["outputInterrupt", 2,1,R,CD, A,1,001,001,72]];
R[["writeEnableBar", 2,1,R,CD, A,2,001,001,79]];
R[["rasBar[0]", 2,1,R,CD, A,4,001,001,81]];
R[["rasBar[1]", 2,1,R,CD, A,5,001,001,82]];
R[["rasBar[2]", 2,1,R,CD, A,6,001,001,83]];
R[["rasBar[3]", 2,1,R,CD, A,7,001,001,84]];
R[["casBar", 6,1,R,CD, B,0,001,001,80]];
R[["rAddr[0]", 5,2,R,EF, A,0,001,001,85]];
R[["rAddr[1]", 5,2,R,EF, A,1,001,001,86]];
R[["rAddr[2]", 5,2,R,EF, A,2,001,001,87]];
R[["rAddr[3]", 5,2,R,EF, A,3,001,001,88]];
R[["rAddr[4]", 5,2,R,EF, A,4,001,001,89]];
R[["rAddr[5]", 5,2,R,EF, A,5,001,001,90]];
R[["rAddr[6]", 5,2,R,EF, A,6,001,001,91]];
R[["rAddr[7]", 5,2,R,EF, A,7,001,001,92]];
R[["rAddr[8]", 5,2,R,EF, B,0,001,001,93]];
R[["rAddr[9]", 5,2,R,EF, B,1,001,001,94]];
R[["dataBus[0]", 3,3,R,GH, A,0,001,001,95]];
R[["dataBus[1]", 3,3,R,GH, A,1,001,001,96]];
R[["dataBus[2]", 3,3,R,GH, A,2,001,001,97]];
R[["dataBus[3]", 3,3,R,GH, A,3,001,001,98]];
R[["dataBus[4]", 3,3,R,GH, A,4,001,001,101]];
R[["dataBus[5]", 3,3,R,GH, A,5,001,001,102]];
R[["dataBus[6]", 3,3,R,GH, A,6,001,001,103]];
R[["dataBus[7]", 3,3,R,GH, A,7,001,001,104]];
R[["dataBus[8]", 3,3,R,GH, B,0,001,001,105]];
R[["dataBus[9]", 3,3,R,GH, B,1,001,001,106]];
R[["dataBus[10]", 3,3,R,GH, B,2,001,001,107]];
R[["dataBus[11]", 3,3,R,GH, B,3,001,001,108]];
R[["dataBus[12]", 3,3,R,GH, B,4,001,001,109]];
R[["dataBus[13]", 3,3,R,GH, B,5,001,001,110]];
R[["dataBus[14]", 3,3,R,GH, B,6,001,001,111]];
R[["dataBus[15]", 3,3,R,GH, B,7,001,001,112]];
R[["dataBus[16]", 3,4,R,IJ, A,0,001,001,113]];
R[["dataBus[17]", 3,4,R,IJ, A,1,001,001,114]];
R[["dataBus[18]", 3,4,R,IJ, A,2,001,001,115]];
R[["dataBus[19]", 3,4,R,IJ, A,3,001,001,117]];
R[["dataBus[20]", 3,4,R,IJ, A,4,001,001,118]];
R[["dataBus[21]", 3,4,R,IJ, A,5,001,001,119]];
R[["dataBus[22]", 3,4,R,IJ, A,6,001,001,120]];
R[["dataBus[23]", 3,4,R,IJ, A,7,001,001,121]];
R[["dataBus[24]", 3,4,R,IJ, B,0,001,001,122]];
R[["dataBus[25]", 3,4,R,IJ, B,1,001,001,123]];
R[["dataBus[26]", 3,4,R,IJ, B,2,001,001,124]];
R[["dataBus[27]", 3,4,R,IJ, B,3,001,001,125]];
R[["dataBus[28]", 3,4,R,IJ, B,4,001,001,126]];
R[["dataBus[29]", 3,4,R,IJ, B,5,001,001,127]];
R[["dataBus[30]", 3,4,R,IJ, B,6,001,001,128]];
R[["dataBus[31]", 3,4,R,IJ, B,7,001,001,129]];
[] ← Ports.InitPort[ct.public[dataBus],lc];
[] ← Ports.InitPort[ct.public[rAddr],c];
[] ← Ports.InitPort[ct.public[rasBar],c];
[] ← Ports.InitPort[ct.public[precharge],c];
[] ← Ports.InitPort[ct.public[clock],c];
[] ← Ports.InitPort[ct.public[clockD10],c];
[] ← Ports.InitPort[ct.public[clockD35],c];
[] ← Ports.InitPort[ct.public[hold],c];
[] ← Ports.InitPort[ct.public[hold],c];
[] ← Ports.InitPort[ct.public[interrupt],c];
[] ← Ports.InitPort[ct.public[refresh],c];
[] ← Ports.InitPort[ct.public[reset],c];
[] ← Ports.InitPort[ct.public[holdA],c];
[] ← Ports.InitPort[ct.public[outputInterrupt],c];
[] ← Ports.InitPort[ct.public[writeEnableBar],c];
[] ← Ports.InitPort[ct.public[casBar],c];
[] ← Ports.InitPort[ct.public[cycle],b];
Ports.InitTesterDrive[ct.public[vdd],force];
Ports.InitTesterDrive[ct.public[gnd],force];
Ports.InitTesterDrive[ct.public[cycle],force];
Ports.InitTesterDrive[ct.public[precharge],force];
Ports.InitTesterDrive[ct.public[clock],force];
Ports.InitTesterDrive[ct.public[clockD10],force];
Ports.InitTesterDrive[ct.public[clockD35],force];
Ports.InitTesterDrive[ct.public[hold],force];
Ports.InitTesterDrive[ct.public[interrupt],force];
Ports.InitTesterDrive[ct.public[refresh],force];
Ports.InitTesterDrive[ct.public[reset],force];
Ports.InitTesterDrive[ct.public[holdA],none];
Ports.InitTesterDrive[ct.public[outputInterrupt],none];
Ports.InitTesterDrive[ct.public[writeEnableBar],none];
Ports.InitTesterDrive[ct.public[casBar],none];
Ports.InitTesterDrive[ct.public[rasBar],none];
Ports.InitTesterDrive[ct.public[rAddr],none];
Ports.InitTesterDrive[ct.public[dataBus],none];
TestCable.Init[groups, assignments, "cycle"];
ICTest.MakeStandardViewer[
testName: thisTest,
cellType: ct,
clockAName: "cycle",
groups: groups,
assignments: assignments,
period: 200];
};