Init:
PROC = {
R: PROC [a: ICTest.Assignment] = {assignments ← CONS[a, assignments]};
ct: Core.CellType ←
CoreCreate.Cell[name:"DRam",
public: CoreCreate.WireList[
LIST[
"ras",
"cas",
"we",
CoreCreate.Seq["addr",10],
"datain",
"dataout",
"trigger",
"gnd","vdd","cycle"]],
onlyInternal: NIL,
instances: NIL
];
assignments ← NIL;
groups ←
LIST [
[number: 1,
name: "CtlLines",
directionality: force,
format: DNRZ,
delay: 0],
[number: 2,
name: "DataIn",
directionality: force,
format: DNRZ,
delay: 0],
[number: 3,
name: "DataOut",
directionality: acquire,
format: DNRZ,
sample: 5],
[number: 4,
name: "ClockCycle",
directionality: force,
format: RZ,
delay: 0, width: 20]
];
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,18]];
R[["vdd", 0,0,R,AB, A,0,001,001,9]];
R[["ras", 1,0,R,AB, B,0,001,001,3]];
R[["cas", 1,0,R,AB, B,1,001,001,16]];
R[["we", 1,0,R,AB, B,2,001,001,2]];
R[["trigger", 1,0,R,AB, B,3,001,001,100]];
R[["addr[9]", 1,2,R,EF, B,1,001,001,15]];
R[["addr[8]", 1,2,R,EF, B,0,001,001,14]];
R[["addr[7]", 1,1,R,CD, B,7,001,001,13]];
R[["addr[6]", 1,1,R,CD, B,6,001,001,12]];
R[["addr[5]", 1,1,R,CD, B,5,001,001,11]];
R[["addr[4]", 1,1,R,CD, B,4,001,001,10]];
R[["addr[3]", 1,1,R,CD, B,3,001,001,8]];
R[["addr[2]", 1,1,R,CD, B,2,001,001,7]];
R[["addr[1]", 1,1,R,CD, B,1,001,001,6]];
R[["addr[0]", 1,1,R,CD, B,0,001,001,5]];
R[["datain", 2,3,R,GH, B,0,001,001,1]];
R[["dataout", 3,4,R,IJ, B,0,001,001,17]];
R[["cycle", 4,0,R,AB, A,3,001,001,200]];
[] ← Ports.InitPort[ct.public[datain],c];
[] ← Ports.InitPort[ct.public[dataout],c];
[] ← Ports.InitPort[ct.public[addr],c];
[] ← Ports.InitPort[ct.public[ras],c];
[] ← Ports.InitPort[ct.public[cas],c];
[] ← Ports.InitPort[ct.public[we],c];
[] ← Ports.InitPort[ct.public[cycle],b];
[] ← Ports.InitPort[ct.public[trigger],c];
Ports.InitTesterDrive[ct.public[vdd],force];
Ports.InitTesterDrive[ct.public[gnd],force];
Ports.InitTesterDrive[ct.public[cycle],force];
Ports.InitTesterDrive[ct.public[addr],force];
Ports.InitTesterDrive[ct.public[ras],force];
Ports.InitTesterDrive[ct.public[cas],force];
Ports.InitTesterDrive[ct.public[we],force];
Ports.InitTesterDrive[ct.public[datain],force];
Ports.InitTesterDrive[ct.public[dataout],none];
Ports.InitTesterDrive[ct.public[trigger],force];
TestCable.Init[groups, assignments, "cycle"];
ICTest.MakeStandardViewer[
testName: thisTest,
cellType: ct,
clockAName: "cycle",
groups: groups,
assignments: assignments,
period: 250];
};