Skip to content

Commit caee57c

Browse files
authored
Merge pull request #70 from siliconcompiler/padring-lib
add clamp and add additional helper signals to poc
2 parents 90b6ee1 + 995d7ef commit caee57c

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

lambdalib/iolib/rtl/la_ioclamp.v

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ module la_ioclamp
1515
parameter RINGW = 8 // width of io ring
1616
)
1717
(// io pad signals
18+
inout pad, // clamp supply
1819
inout vdd, // core supply
1920
inout vss, // core ground
2021
inout vddio, // io supply

lambdalib/iolib/rtl/la_iopoc.v

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ module la_iopoc
1212
#(
1313
parameter PROP = "DEFAULT", // cell property
1414
parameter SIDE = "NO", // "NO", "SO", "EA", "WE"
15+
parameter CFGW = 16, // width of core config bus
1516
parameter RINGW = 8 // width of io ring
1617
)
1718
(
1819
inout vdd, // core supply
1920
inout vss, // core ground
2021
inout vddio, // io supply
2122
inout vssio, // io ground
22-
inout [RINGW-1:0] ioring // generic ioring interface
23+
inout [RINGW-1:0] ioring,// generic ioring interface
24+
input [CFGW-1:0] cfg // generic config interface
2325
);
2426

2527
endmodule

lambdalib/padring/rtl/la_iopadring.vh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ localparam [7:0] LA_VDDA = 8'h14;
2525
localparam [7:0] LA_VSSA = 8'h15;
2626
localparam [7:0] LA_POC = 8'h16;
2727
localparam [7:0] LA_CUT = 8'h17;
28+
localparam [7:0] LA_CLAMP = 8'h18;

lambdalib/padring/rtl/la_ioside.v

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,10 @@ module la_ioside
195195
begin : gpoc
196196
la_iopoc #(.SIDE(SIDE),
197197
.PROP(CELLMAP[(i*40+32)+:8]),
198+
.CFGW(CFGW),
198199
.RINGW(RINGW))
199-
i0 (.vss(vss),
200+
i0 (.cfg(cfg[CELLMAP[(i*40)+:8]*CFGW+:CFGW]),
201+
.vss(vss),
200202
.vdd(vdd[CELLMAP[(i*40+24)+:8]]),
201203
.vddio(vddio[CELLMAP[(i*40+24)+:8]]),
202204
.vssio(vssio[CELLMAP[(i*40+24)+:8]]),
@@ -210,6 +212,7 @@ module la_ioside
210212
.RINGW(RINGW))
211213
i0 (.vss(vss));
212214
end
215+
// LA_VDDIO
213216
if (CELLMAP[(i*40+16)+:8] == LA_VDDIO)
214217
begin : gvddio
215218
la_iovddio #(.SIDE(SIDE),
@@ -282,6 +285,19 @@ module la_ioside
282285
.vssio(vssio[CELLMAP[(i*40+24)+:8]]),
283286
.ioring(ioring[CELLMAP[(i*40+24)+:8]*RINGW+:RINGW]));
284287
end
288+
// LA_CLAMP
289+
if (CELLMAP[(i*40+16)+:8] == LA_CLAMP)
290+
begin : gclamp
291+
la_iovssa #(.SIDE(SIDE),
292+
.PROP(CELLMAP[(i*40+32)+:8]),
293+
.RINGW(RINGW))
294+
i0 (.pad(pad[CELLMAP[(i*40)+:8]]),
295+
.vss(vss),
296+
.vdd(vdd[CELLMAP[(i*40+24)+:8]]),
297+
.vddio(vddio[CELLMAP[(i*40+24)+:8]]),
298+
.vssio(vssio[CELLMAP[(i*40+24)+:8]]),
299+
.ioring(ioring[CELLMAP[(i*40+24)+:8]*RINGW+:RINGW]));
300+
end
285301
end
286302

287303
endmodule

0 commit comments

Comments
 (0)