lambdapdk 0.2.7__tar.gz → 0.2.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lambdapdk-0.2.7/lambdapdk.egg-info → lambdapdk-0.2.9}/PKG-INFO +198 -18
- lambdapdk-0.2.9/README.md +206 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/__init__.py +7 -2
- lambdapdk-0.2.9/lambdapdk/asap7/libs/fakepll7.py +42 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9/lambdapdk.egg-info}/PKG-INFO +198 -18
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk.egg-info/SOURCES.txt +1 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk.egg-info/requires.txt +1 -1
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/pyproject.toml +1 -1
- lambdapdk-0.2.7/README.md +0 -26
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/LICENSE +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/MANIFEST.in +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/asap7/__init__.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/asap7/libs/asap7sc7p5t.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/asap7/libs/fakeio7.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/asap7/libs/fakekit7.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/asap7/libs/fakeram7.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/freepdk45/__init__.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/freepdk45/libs/fakeram45.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/freepdk45/libs/nangate45.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/gf180/__init__.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/gf180/libs/gf180io.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/gf180/libs/gf180mcu.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/gf180/libs/gf180sram.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/ihp130/__init__.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/ihp130/libs/sg13g2_io.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/ihp130/libs/sg13g2_sram.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/ihp130/libs/sg13g2_stdcell.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/interposer/__init__.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/interposer/_generator.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/interposer/libs/bumps.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/sky130/__init__.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/sky130/libs/sky130io.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/sky130/libs/sky130sc.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/sky130/libs/sky130sram.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk/utils.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk.egg-info/dependency_links.txt +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk.egg-info/entry_points.txt +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/lambdapdk.egg-info/top_level.txt +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/setup.cfg +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/tests/test_getters.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/tests/test_lambda.py +0 -0
- {lambdapdk-0.2.7 → lambdapdk-0.2.9}/tests/test_paths.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lambdapdk
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.9
|
|
4
4
|
Summary: Library of open source Process Design Kits
|
|
5
5
|
Author: Zero ASIC
|
|
6
6
|
License: Apache License
|
|
@@ -199,7 +199,7 @@ Requires-Python: >=3.8
|
|
|
199
199
|
Description-Content-Type: text/markdown
|
|
200
200
|
License-File: LICENSE
|
|
201
201
|
Requires-Dist: siliconcompiler>=0.35.0
|
|
202
|
-
Requires-Dist: lambdalib>=0.
|
|
202
|
+
Requires-Dist: lambdalib>=0.10.0
|
|
203
203
|
Provides-Extra: test
|
|
204
204
|
Requires-Dist: flake8==7.3.0; extra == "test"
|
|
205
205
|
Requires-Dist: pytest==9.0.2; extra == "test"
|
|
@@ -209,29 +209,209 @@ Requires-Dist: sc-leflib==0.5.1; extra == "test"
|
|
|
209
209
|
Requires-Dist: Jinja2==3.1.6; extra == "test"
|
|
210
210
|
Dynamic: license-file
|
|
211
211
|
|
|
212
|
-
# Lambdapdk
|
|
212
|
+
# Lambdapdk
|
|
213
213
|
|
|
214
|
-
|
|
214
|
+
[](https://github.com/siliconcompiler/lambdapdk/actions/workflows/ci.yml)
|
|
215
|
+
[](https://github.com/siliconcompiler/lambdapdk/actions/workflows/wheels.yml)
|
|
216
|
+
[](https://pypi.org/project/lambdapdk/)
|
|
217
|
+
[](https://pepy.tech/project/lambdapdk)
|
|
218
|
+
[](https://github.com/siliconcompiler/lambdapdk/stargazers)
|
|
219
|
+
[](https://github.com/siliconcompiler/lambdapdk/issues)
|
|
220
|
+
[](LICENSE)
|
|
215
221
|
|
|
216
|
-
Lambdapdk is supported by the [SiliconCompiler](https://github.com/siliconcompiler/siliconcompiler) project.
|
|
217
222
|
|
|
223
|
+
Lambdapdk is a collection of open-source Process Design Kits (PDKs) that enable chip design across multiple technology nodes. Each PDK includes standard cell libraries, I/O libraries, and memory compilers with full integration into the [SiliconCompiler](https://github.com/siliconcompiler/siliconcompiler) build system and [Lambdalib](https://github.com/siliconcompiler/lambdalib) Verilog hardware abstraction library.
|
|
218
224
|
|
|
219
|
-
|
|
225
|
+
<!-- TODO: Add architecture diagram showing PDK relationship to design flow -->
|
|
220
226
|
|
|
221
|
-
|
|
222
|
-
* [FreePDK45](lambdapdk/freepdk45/base/README.md)
|
|
223
|
-
* [IHP 130](https://github.com/IHP-GmbH/IHP-Open-PDK)
|
|
224
|
-
* [Skywater130](lambdapdk/sky130/README.md)
|
|
225
|
-
* [Global Foundries 180](lambdapdk/gf180/README.md)
|
|
226
|
-
* [interposer](lambdapdk/interposer/README.md)
|
|
227
|
+
## Why Lambdapdk?
|
|
227
228
|
|
|
228
|
-
|
|
229
|
+
### Challenges
|
|
229
230
|
|
|
230
|
-
|
|
231
|
+
- PDK setup is complex and error-prone
|
|
232
|
+
- Technology-specific designs limit portability
|
|
233
|
+
- Commercial PDKs have restrictive licenses
|
|
234
|
+
- Scattered PDK sources with inconsistent interfaces
|
|
231
235
|
|
|
232
|
-
|
|
236
|
+
### Solution
|
|
233
237
|
|
|
234
|
-
|
|
238
|
+
- Pre-configured PDKs ready for immediate use
|
|
239
|
+
- [Lambdalib](https://github.com/siliconcompiler/lambdalib) mapping enables design portability
|
|
240
|
+
- Fully open-source PDKs for research and education
|
|
241
|
+
- Unified API across all supported technologies
|
|
235
242
|
|
|
236
|
-
|
|
237
|
-
|
|
243
|
+
<!-- TODO: Add flow diagram showing design portability across PDKs -->
|
|
244
|
+
|
|
245
|
+
## Supported PDKs
|
|
246
|
+
|
|
247
|
+
| PDK | Node | Libraries | Source |
|
|
248
|
+
|-----|------|-----------|--------|
|
|
249
|
+
| [ASAP7](lambdapdk/asap7/README.md) | 7nm FinFET | Standard cells (RVT/LVT/SLVT), I/O, SRAM | Arizona State University |
|
|
250
|
+
| [FreePDK45](lambdapdk/freepdk45/base/README.md) | 45nm | Nangate standard cells, SRAM | NC State / Nangate |
|
|
251
|
+
| [Sky130](lambdapdk/sky130/README.md) | 130nm | Standard cells (HD/HDLL), I/O, SRAM | Google / Skywater |
|
|
252
|
+
| [GF180](lambdapdk/gf180/README.md) | 180nm | Standard cells (7T/9T), I/O, SRAM | Google / GlobalFoundries |
|
|
253
|
+
| [IHP130](https://github.com/IHP-GmbH/IHP-Open-PDK) | 130nm SiGe | Standard cells, I/O, SRAM | IHP GmbH |
|
|
254
|
+
| [Interposer](lambdapdk/interposer/README.md) | Multi-layer | Bump cells for chiplet integration | ZeroASIC |
|
|
255
|
+
|
|
256
|
+
## Quick Start
|
|
257
|
+
|
|
258
|
+
### Installation
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
pip install lambdapdk
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Basic Usage
|
|
265
|
+
|
|
266
|
+
```python
|
|
267
|
+
from siliconcompiler import ASIC, Design
|
|
268
|
+
from siliconcompiler.targets import skywater130_demo
|
|
269
|
+
|
|
270
|
+
# Create design and add source files
|
|
271
|
+
design = Design("mydesign")
|
|
272
|
+
design.set_topmodule("mydesign", fileset="rtl")
|
|
273
|
+
design.add_file("mydesign.v", fileset="rtl")
|
|
274
|
+
design.add_file("mydesign.sdc", fileset="sdc")
|
|
275
|
+
|
|
276
|
+
# Create ASIC project and load target
|
|
277
|
+
project = ASIC(design)
|
|
278
|
+
project.add_fileset(["rtl", "sdc"])
|
|
279
|
+
skywater130_demo(project)
|
|
280
|
+
|
|
281
|
+
# Run the flow
|
|
282
|
+
project.run()
|
|
283
|
+
project.summary()
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Available targets: `asap7_demo`, `freepdk45_demo`, `skywater130_demo`, `gf180_demo`, `ihp130_demo`, `interposer_demo`
|
|
287
|
+
|
|
288
|
+
## Cell Library Inventory
|
|
289
|
+
|
|
290
|
+
### ASAP7 (7nm)
|
|
291
|
+
|
|
292
|
+
Standard cell libraries with three threshold voltage variants:
|
|
293
|
+
|
|
294
|
+
| Library | Type | Cells | Verilog |
|
|
295
|
+
|---------|------|-------|---------|
|
|
296
|
+
| [asap7sc7p5t_rvt](lambdapdk/asap7/libs/asap7sc7p5t_rvt) | Regular Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_rvt/verilog) |
|
|
297
|
+
| [asap7sc7p5t_lvt](lambdapdk/asap7/libs/asap7sc7p5t_lvt) | Low Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_lvt/verilog) |
|
|
298
|
+
| [asap7sc7p5t_slvt](lambdapdk/asap7/libs/asap7sc7p5t_slvt) | Super Low Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_slvt/verilog) |
|
|
299
|
+
|
|
300
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, Adder, Tie, Filler, Decap, Tap
|
|
301
|
+
|
|
302
|
+
**Memory macros ([fakeram7](lambdapdk/asap7/libs/fakeram7)):**
|
|
303
|
+
|
|
304
|
+
| Configuration | Verilog |
|
|
305
|
+
|--------------|---------|
|
|
306
|
+
| Single-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
307
|
+
| Dual-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
308
|
+
| True dual-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
309
|
+
|
|
310
|
+
### FreePDK45 (45nm)
|
|
311
|
+
|
|
312
|
+
| Library | Type | Verilog |
|
|
313
|
+
|---------|------|---------|
|
|
314
|
+
| [nangate45](lambdapdk/freepdk45/libs/nangate45) | Standard cells | [lambda](lambdapdk/freepdk45/libs/nangate45/lambda/stdlib) |
|
|
315
|
+
|
|
316
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Tie, Filler, Tap
|
|
317
|
+
|
|
318
|
+
**Memory macros ([fakeram45](lambdapdk/freepdk45/libs/fakeram45)):**
|
|
319
|
+
|
|
320
|
+
| Configuration | Verilog |
|
|
321
|
+
|--------------|---------|
|
|
322
|
+
| 64x32 to 512x64 | [verilog](lambdapdk/freepdk45/libs/fakeram45/verilog) |
|
|
323
|
+
|
|
324
|
+
### Sky130 (130nm)
|
|
325
|
+
|
|
326
|
+
| Library | Type | Cells | Verilog |
|
|
327
|
+
|---------|------|-------|---------|
|
|
328
|
+
| [sky130hd](lambdapdk/sky130/libs/sky130hd) | High Density | ~430 unique | [verilog](lambdapdk/sky130/libs/sky130hd/verilog) |
|
|
329
|
+
| [sky130hdll](lambdapdk/sky130/libs/sky130hdll) | High Density Low Leakage | ~140 unique | [verilog](lambdapdk/sky130/libs/sky130hdll/verilog) |
|
|
330
|
+
| [sky130io](lambdapdk/sky130/libs/sky130io) | I/O cells | Various | [verilog](lambdapdk/sky130/libs/sky130io/verilog) |
|
|
331
|
+
|
|
332
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Delay, Tie, Filler, Decap, Tap, Antenna
|
|
333
|
+
|
|
334
|
+
**Memory macros ([sky130sram](lambdapdk/sky130/libs/sky130sram)):**
|
|
335
|
+
|
|
336
|
+
| Configuration | Verilog |
|
|
337
|
+
|--------------|---------|
|
|
338
|
+
| 1RW1R 64x256 | [verilog](lambdapdk/sky130/libs/sky130sram/sky130_sram_1rw1r_64x256_8/verilog) |
|
|
339
|
+
|
|
340
|
+
### GF180 (180nm)
|
|
341
|
+
|
|
342
|
+
| Library | Type | Cells | Verilog |
|
|
343
|
+
|---------|------|-------|---------|
|
|
344
|
+
| [gf180mcu_fd_sc_mcu7t5v0](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0) | 7-track | ~230 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/verilog) |
|
|
345
|
+
| [gf180mcu_fd_sc_mcu9t5v0](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0) | 9-track | ~230 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/verilog) |
|
|
346
|
+
| [gf180mcu_fd_io](lambdapdk/gf180/libs/gf180mcu_fd_io) | I/O cells | Various | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_io/verilog) |
|
|
347
|
+
|
|
348
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Tristate, Delay, Tie, Filler, Decap, Tap, Antenna
|
|
349
|
+
|
|
350
|
+
**Memory macros ([gf180sram](lambdapdk/gf180/libs/gf180mcu_fd_ip_sram)):**
|
|
351
|
+
|
|
352
|
+
| Configuration | Verilog |
|
|
353
|
+
|--------------|---------|
|
|
354
|
+
| 64x8 to 512x8 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_ip_sram/verilog) |
|
|
355
|
+
|
|
356
|
+
### IHP130 (130nm SiGe)
|
|
357
|
+
|
|
358
|
+
| Library | Type | Verilog |
|
|
359
|
+
|---------|------|---------|
|
|
360
|
+
| [sg13g2_stdcell](lambdapdk/ihp130/libs/sg13g2_stdcell) | Standard cells | [lambda](lambdapdk/ihp130/libs/sg13g2_stdcell/lambda/stdlib) |
|
|
361
|
+
| [sg13g2_io](lambdapdk/ihp130/libs/sg13g2_io) | I/O cells | [blackbox](lambdapdk/ihp130/libs/sg13g2_io/blackbox) |
|
|
362
|
+
|
|
363
|
+
Note: IHP130 cell views are provided by the [IHP Open PDK](https://github.com/IHP-GmbH/IHP-Open-PDK).
|
|
364
|
+
|
|
365
|
+
### Interposer
|
|
366
|
+
|
|
367
|
+
| Library | Type | Description |
|
|
368
|
+
|---------|------|-------------|
|
|
369
|
+
| [bumps](lambdapdk/interposer/libs/bumps) | Bump cells | Micro-bump cells for chiplet integration |
|
|
370
|
+
|
|
371
|
+
Stackup variants: 3ML, 4ML, 5ML with 400um, 800um, and 2000um bump pitches.
|
|
372
|
+
|
|
373
|
+
## Architecture
|
|
374
|
+
|
|
375
|
+
```
|
|
376
|
+
lambdapdk/
|
|
377
|
+
├── asap7/ # 7nm FinFET PDK
|
|
378
|
+
│ ├── base/ # Technology files, DRC rules
|
|
379
|
+
│ └── libs/ # Standard cells, I/O, memory
|
|
380
|
+
├── freepdk45/ # 45nm PDK
|
|
381
|
+
│ ├── base/
|
|
382
|
+
│ └── libs/
|
|
383
|
+
├── sky130/ # 130nm PDK
|
|
384
|
+
│ ├── base/
|
|
385
|
+
│ └── libs/
|
|
386
|
+
├── gf180/ # 180nm PDK
|
|
387
|
+
│ ├── base/
|
|
388
|
+
│ └── libs/
|
|
389
|
+
├── ihp130/ # 130nm SiGe PDK
|
|
390
|
+
│ ├── base/
|
|
391
|
+
│ └── libs/
|
|
392
|
+
└── interposer/ # Passive interposer
|
|
393
|
+
├── base/
|
|
394
|
+
└── libs/
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
## Contributing
|
|
398
|
+
|
|
399
|
+
We welcome contributions! Please report issues and submit pull requests at:
|
|
400
|
+
https://github.com/siliconcompiler/lambdapdk/issues
|
|
401
|
+
|
|
402
|
+
## License
|
|
403
|
+
|
|
404
|
+
This project is licensed under the [Apache License 2.0](LICENSE).
|
|
405
|
+
|
|
406
|
+
Individual PDKs may have additional license terms:
|
|
407
|
+
|
|
408
|
+
| PDK | License | Details |
|
|
409
|
+
|-----|---------|---------|
|
|
410
|
+
| ASAP7 | BSD 3-Clause | [LICENSE](lambdapdk/asap7/libs/asap7sc7p5t_rvt/LICENSE) |
|
|
411
|
+
| Nangate45 | Nangate Open Cell Library License | [LICENSE](lambdapdk/freepdk45/libs/nangate45/LICENSE) (non-commercial use) |
|
|
412
|
+
| Sky130 | Apache 2.0 | Via [open_pdks](https://github.com/RTimothyEdwards/open_pdks) |
|
|
413
|
+
| GF180 | Apache 2.0 | Via [gf180mcu-pdk](https://github.com/google/gf180mcu-pdk) |
|
|
414
|
+
| IHP130 | Apache 2.0 | Via [IHP-Open-PDK](https://github.com/IHP-GmbH/IHP-Open-PDK) |
|
|
415
|
+
| Interposer | Apache 2.0 | Copyright 2024 ZeroASIC Corp |
|
|
416
|
+
|
|
417
|
+
Copyright 2023 Zero ASIC Corporation
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# Lambdapdk
|
|
2
|
+
|
|
3
|
+
[](https://github.com/siliconcompiler/lambdapdk/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/siliconcompiler/lambdapdk/actions/workflows/wheels.yml)
|
|
5
|
+
[](https://pypi.org/project/lambdapdk/)
|
|
6
|
+
[](https://pepy.tech/project/lambdapdk)
|
|
7
|
+
[](https://github.com/siliconcompiler/lambdapdk/stargazers)
|
|
8
|
+
[](https://github.com/siliconcompiler/lambdapdk/issues)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Lambdapdk is a collection of open-source Process Design Kits (PDKs) that enable chip design across multiple technology nodes. Each PDK includes standard cell libraries, I/O libraries, and memory compilers with full integration into the [SiliconCompiler](https://github.com/siliconcompiler/siliconcompiler) build system and [Lambdalib](https://github.com/siliconcompiler/lambdalib) Verilog hardware abstraction library.
|
|
13
|
+
|
|
14
|
+
<!-- TODO: Add architecture diagram showing PDK relationship to design flow -->
|
|
15
|
+
|
|
16
|
+
## Why Lambdapdk?
|
|
17
|
+
|
|
18
|
+
### Challenges
|
|
19
|
+
|
|
20
|
+
- PDK setup is complex and error-prone
|
|
21
|
+
- Technology-specific designs limit portability
|
|
22
|
+
- Commercial PDKs have restrictive licenses
|
|
23
|
+
- Scattered PDK sources with inconsistent interfaces
|
|
24
|
+
|
|
25
|
+
### Solution
|
|
26
|
+
|
|
27
|
+
- Pre-configured PDKs ready for immediate use
|
|
28
|
+
- [Lambdalib](https://github.com/siliconcompiler/lambdalib) mapping enables design portability
|
|
29
|
+
- Fully open-source PDKs for research and education
|
|
30
|
+
- Unified API across all supported technologies
|
|
31
|
+
|
|
32
|
+
<!-- TODO: Add flow diagram showing design portability across PDKs -->
|
|
33
|
+
|
|
34
|
+
## Supported PDKs
|
|
35
|
+
|
|
36
|
+
| PDK | Node | Libraries | Source |
|
|
37
|
+
|-----|------|-----------|--------|
|
|
38
|
+
| [ASAP7](lambdapdk/asap7/README.md) | 7nm FinFET | Standard cells (RVT/LVT/SLVT), I/O, SRAM | Arizona State University |
|
|
39
|
+
| [FreePDK45](lambdapdk/freepdk45/base/README.md) | 45nm | Nangate standard cells, SRAM | NC State / Nangate |
|
|
40
|
+
| [Sky130](lambdapdk/sky130/README.md) | 130nm | Standard cells (HD/HDLL), I/O, SRAM | Google / Skywater |
|
|
41
|
+
| [GF180](lambdapdk/gf180/README.md) | 180nm | Standard cells (7T/9T), I/O, SRAM | Google / GlobalFoundries |
|
|
42
|
+
| [IHP130](https://github.com/IHP-GmbH/IHP-Open-PDK) | 130nm SiGe | Standard cells, I/O, SRAM | IHP GmbH |
|
|
43
|
+
| [Interposer](lambdapdk/interposer/README.md) | Multi-layer | Bump cells for chiplet integration | ZeroASIC |
|
|
44
|
+
|
|
45
|
+
## Quick Start
|
|
46
|
+
|
|
47
|
+
### Installation
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pip install lambdapdk
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Basic Usage
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from siliconcompiler import ASIC, Design
|
|
57
|
+
from siliconcompiler.targets import skywater130_demo
|
|
58
|
+
|
|
59
|
+
# Create design and add source files
|
|
60
|
+
design = Design("mydesign")
|
|
61
|
+
design.set_topmodule("mydesign", fileset="rtl")
|
|
62
|
+
design.add_file("mydesign.v", fileset="rtl")
|
|
63
|
+
design.add_file("mydesign.sdc", fileset="sdc")
|
|
64
|
+
|
|
65
|
+
# Create ASIC project and load target
|
|
66
|
+
project = ASIC(design)
|
|
67
|
+
project.add_fileset(["rtl", "sdc"])
|
|
68
|
+
skywater130_demo(project)
|
|
69
|
+
|
|
70
|
+
# Run the flow
|
|
71
|
+
project.run()
|
|
72
|
+
project.summary()
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Available targets: `asap7_demo`, `freepdk45_demo`, `skywater130_demo`, `gf180_demo`, `ihp130_demo`, `interposer_demo`
|
|
76
|
+
|
|
77
|
+
## Cell Library Inventory
|
|
78
|
+
|
|
79
|
+
### ASAP7 (7nm)
|
|
80
|
+
|
|
81
|
+
Standard cell libraries with three threshold voltage variants:
|
|
82
|
+
|
|
83
|
+
| Library | Type | Cells | Verilog |
|
|
84
|
+
|---------|------|-------|---------|
|
|
85
|
+
| [asap7sc7p5t_rvt](lambdapdk/asap7/libs/asap7sc7p5t_rvt) | Regular Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_rvt/verilog) |
|
|
86
|
+
| [asap7sc7p5t_lvt](lambdapdk/asap7/libs/asap7sc7p5t_lvt) | Low Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_lvt/verilog) |
|
|
87
|
+
| [asap7sc7p5t_slvt](lambdapdk/asap7/libs/asap7sc7p5t_slvt) | Super Low Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_slvt/verilog) |
|
|
88
|
+
|
|
89
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, Adder, Tie, Filler, Decap, Tap
|
|
90
|
+
|
|
91
|
+
**Memory macros ([fakeram7](lambdapdk/asap7/libs/fakeram7)):**
|
|
92
|
+
|
|
93
|
+
| Configuration | Verilog |
|
|
94
|
+
|--------------|---------|
|
|
95
|
+
| Single-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
96
|
+
| Dual-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
97
|
+
| True dual-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
98
|
+
|
|
99
|
+
### FreePDK45 (45nm)
|
|
100
|
+
|
|
101
|
+
| Library | Type | Verilog |
|
|
102
|
+
|---------|------|---------|
|
|
103
|
+
| [nangate45](lambdapdk/freepdk45/libs/nangate45) | Standard cells | [lambda](lambdapdk/freepdk45/libs/nangate45/lambda/stdlib) |
|
|
104
|
+
|
|
105
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Tie, Filler, Tap
|
|
106
|
+
|
|
107
|
+
**Memory macros ([fakeram45](lambdapdk/freepdk45/libs/fakeram45)):**
|
|
108
|
+
|
|
109
|
+
| Configuration | Verilog |
|
|
110
|
+
|--------------|---------|
|
|
111
|
+
| 64x32 to 512x64 | [verilog](lambdapdk/freepdk45/libs/fakeram45/verilog) |
|
|
112
|
+
|
|
113
|
+
### Sky130 (130nm)
|
|
114
|
+
|
|
115
|
+
| Library | Type | Cells | Verilog |
|
|
116
|
+
|---------|------|-------|---------|
|
|
117
|
+
| [sky130hd](lambdapdk/sky130/libs/sky130hd) | High Density | ~430 unique | [verilog](lambdapdk/sky130/libs/sky130hd/verilog) |
|
|
118
|
+
| [sky130hdll](lambdapdk/sky130/libs/sky130hdll) | High Density Low Leakage | ~140 unique | [verilog](lambdapdk/sky130/libs/sky130hdll/verilog) |
|
|
119
|
+
| [sky130io](lambdapdk/sky130/libs/sky130io) | I/O cells | Various | [verilog](lambdapdk/sky130/libs/sky130io/verilog) |
|
|
120
|
+
|
|
121
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Delay, Tie, Filler, Decap, Tap, Antenna
|
|
122
|
+
|
|
123
|
+
**Memory macros ([sky130sram](lambdapdk/sky130/libs/sky130sram)):**
|
|
124
|
+
|
|
125
|
+
| Configuration | Verilog |
|
|
126
|
+
|--------------|---------|
|
|
127
|
+
| 1RW1R 64x256 | [verilog](lambdapdk/sky130/libs/sky130sram/sky130_sram_1rw1r_64x256_8/verilog) |
|
|
128
|
+
|
|
129
|
+
### GF180 (180nm)
|
|
130
|
+
|
|
131
|
+
| Library | Type | Cells | Verilog |
|
|
132
|
+
|---------|------|-------|---------|
|
|
133
|
+
| [gf180mcu_fd_sc_mcu7t5v0](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0) | 7-track | ~230 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/verilog) |
|
|
134
|
+
| [gf180mcu_fd_sc_mcu9t5v0](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0) | 9-track | ~230 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/verilog) |
|
|
135
|
+
| [gf180mcu_fd_io](lambdapdk/gf180/libs/gf180mcu_fd_io) | I/O cells | Various | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_io/verilog) |
|
|
136
|
+
|
|
137
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Tristate, Delay, Tie, Filler, Decap, Tap, Antenna
|
|
138
|
+
|
|
139
|
+
**Memory macros ([gf180sram](lambdapdk/gf180/libs/gf180mcu_fd_ip_sram)):**
|
|
140
|
+
|
|
141
|
+
| Configuration | Verilog |
|
|
142
|
+
|--------------|---------|
|
|
143
|
+
| 64x8 to 512x8 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_ip_sram/verilog) |
|
|
144
|
+
|
|
145
|
+
### IHP130 (130nm SiGe)
|
|
146
|
+
|
|
147
|
+
| Library | Type | Verilog |
|
|
148
|
+
|---------|------|---------|
|
|
149
|
+
| [sg13g2_stdcell](lambdapdk/ihp130/libs/sg13g2_stdcell) | Standard cells | [lambda](lambdapdk/ihp130/libs/sg13g2_stdcell/lambda/stdlib) |
|
|
150
|
+
| [sg13g2_io](lambdapdk/ihp130/libs/sg13g2_io) | I/O cells | [blackbox](lambdapdk/ihp130/libs/sg13g2_io/blackbox) |
|
|
151
|
+
|
|
152
|
+
Note: IHP130 cell views are provided by the [IHP Open PDK](https://github.com/IHP-GmbH/IHP-Open-PDK).
|
|
153
|
+
|
|
154
|
+
### Interposer
|
|
155
|
+
|
|
156
|
+
| Library | Type | Description |
|
|
157
|
+
|---------|------|-------------|
|
|
158
|
+
| [bumps](lambdapdk/interposer/libs/bumps) | Bump cells | Micro-bump cells for chiplet integration |
|
|
159
|
+
|
|
160
|
+
Stackup variants: 3ML, 4ML, 5ML with 400um, 800um, and 2000um bump pitches.
|
|
161
|
+
|
|
162
|
+
## Architecture
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
lambdapdk/
|
|
166
|
+
├── asap7/ # 7nm FinFET PDK
|
|
167
|
+
│ ├── base/ # Technology files, DRC rules
|
|
168
|
+
│ └── libs/ # Standard cells, I/O, memory
|
|
169
|
+
├── freepdk45/ # 45nm PDK
|
|
170
|
+
│ ├── base/
|
|
171
|
+
│ └── libs/
|
|
172
|
+
├── sky130/ # 130nm PDK
|
|
173
|
+
│ ├── base/
|
|
174
|
+
│ └── libs/
|
|
175
|
+
├── gf180/ # 180nm PDK
|
|
176
|
+
│ ├── base/
|
|
177
|
+
│ └── libs/
|
|
178
|
+
├── ihp130/ # 130nm SiGe PDK
|
|
179
|
+
│ ├── base/
|
|
180
|
+
│ └── libs/
|
|
181
|
+
└── interposer/ # Passive interposer
|
|
182
|
+
├── base/
|
|
183
|
+
└── libs/
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Contributing
|
|
187
|
+
|
|
188
|
+
We welcome contributions! Please report issues and submit pull requests at:
|
|
189
|
+
https://github.com/siliconcompiler/lambdapdk/issues
|
|
190
|
+
|
|
191
|
+
## License
|
|
192
|
+
|
|
193
|
+
This project is licensed under the [Apache License 2.0](LICENSE).
|
|
194
|
+
|
|
195
|
+
Individual PDKs may have additional license terms:
|
|
196
|
+
|
|
197
|
+
| PDK | License | Details |
|
|
198
|
+
|-----|---------|---------|
|
|
199
|
+
| ASAP7 | BSD 3-Clause | [LICENSE](lambdapdk/asap7/libs/asap7sc7p5t_rvt/LICENSE) |
|
|
200
|
+
| Nangate45 | Nangate Open Cell Library License | [LICENSE](lambdapdk/freepdk45/libs/nangate45/LICENSE) (non-commercial use) |
|
|
201
|
+
| Sky130 | Apache 2.0 | Via [open_pdks](https://github.com/RTimothyEdwards/open_pdks) |
|
|
202
|
+
| GF180 | Apache 2.0 | Via [gf180mcu-pdk](https://github.com/google/gf180mcu-pdk) |
|
|
203
|
+
| IHP130 | Apache 2.0 | Via [IHP-Open-PDK](https://github.com/IHP-GmbH/IHP-Open-PDK) |
|
|
204
|
+
| Interposer | Apache 2.0 | Copyright 2024 ZeroASIC Corp |
|
|
205
|
+
|
|
206
|
+
Copyright 2023 Zero ASIC Corporation
|
|
@@ -11,7 +11,7 @@ from siliconcompiler.tools.openroad import OpenROADStdCellLibrary
|
|
|
11
11
|
from siliconcompiler.tools.bambu import BambuStdCellLibrary
|
|
12
12
|
from siliconcompiler.tools.klayout import KLayoutLibrary
|
|
13
13
|
|
|
14
|
-
__version__ = "0.2.
|
|
14
|
+
__version__ = "0.2.9"
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class _LambdaPath(PathSchema):
|
|
@@ -189,7 +189,10 @@ def get_libs():
|
|
|
189
189
|
FakeRAM7_dp_8192x64, FakeRAM7_tdp_8192x64, \
|
|
190
190
|
FakeRAM7_sp_8192x64, \
|
|
191
191
|
FakeRAM7Lambdalib_SinglePort, \
|
|
192
|
-
FakeRAM7Lambdalib_DoublePort
|
|
192
|
+
FakeRAM7Lambdalib_DoublePort, \
|
|
193
|
+
FakeRAM7Lambdalib_TrueDoublePort
|
|
194
|
+
from lambdapdk.asap7.libs.fakepll7 import FakePLL7Library, \
|
|
195
|
+
FakePLL7Lambdalib_la_pll
|
|
193
196
|
from lambdapdk.freepdk45.libs.nangate45 import Nangate45
|
|
194
197
|
from lambdapdk.freepdk45.libs.fakeram45 import \
|
|
195
198
|
FakeRAM45_64x32, \
|
|
@@ -336,6 +339,8 @@ def get_libs():
|
|
|
336
339
|
FakeRAM7_sp_8192x64(),
|
|
337
340
|
FakeRAM7Lambdalib_SinglePort(),
|
|
338
341
|
FakeRAM7Lambdalib_DoublePort(),
|
|
342
|
+
FakeRAM7Lambdalib_TrueDoublePort(),
|
|
343
|
+
FakePLL7Library(), FakePLL7Lambdalib_la_pll(),
|
|
339
344
|
Nangate45(),
|
|
340
345
|
FakeRAM45_64x32(),
|
|
341
346
|
FakeRAM45_128x32(),
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from lambdalib import LambalibTechLibrary
|
|
4
|
+
from lambdapdk import LambdaLibrary, _LambdaPath
|
|
5
|
+
from lambdapdk.asap7 import ASAP7PDK
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class FakePLL7Library(LambdaLibrary):
|
|
9
|
+
'''
|
|
10
|
+
ASAP7 Fake PLL library.
|
|
11
|
+
'''
|
|
12
|
+
def __init__(self):
|
|
13
|
+
super().__init__()
|
|
14
|
+
self.set_name("fakepll7")
|
|
15
|
+
|
|
16
|
+
self.add_asic_pdk(ASAP7PDK())
|
|
17
|
+
|
|
18
|
+
path_base = Path("lambdapdk", "asap7", "libs", "fakepll7")
|
|
19
|
+
|
|
20
|
+
with self.active_dataroot("lambdapdk"):
|
|
21
|
+
with self.active_fileset("models.physical"):
|
|
22
|
+
self.add_file(path_base / "lef" / "fakepll7.lef")
|
|
23
|
+
self.add_asic_aprfileset()
|
|
24
|
+
|
|
25
|
+
with self.active_fileset("models.blackbox"):
|
|
26
|
+
self.add_file(path_base / "model" / "fakepll7.v")
|
|
27
|
+
self.add_yosys_blackbox_fileset("models.blackbox")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class FakePLL7Lambdalib_la_pll(LambalibTechLibrary, _LambdaPath):
|
|
31
|
+
def __init__(self):
|
|
32
|
+
super().__init__("la_pll", [FakePLL7Library])
|
|
33
|
+
self.set_name("fakepll7_la_pll")
|
|
34
|
+
|
|
35
|
+
# version
|
|
36
|
+
self.package.set_version("v1")
|
|
37
|
+
|
|
38
|
+
lib_path = Path("lambdapdk", "asap7", "libs", "fakepll7")
|
|
39
|
+
|
|
40
|
+
with self.active_dataroot("lambdapdk"):
|
|
41
|
+
with self.active_fileset("rtl"):
|
|
42
|
+
self.add_file(lib_path / "lambda" / "la_pll.v")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lambdapdk
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.9
|
|
4
4
|
Summary: Library of open source Process Design Kits
|
|
5
5
|
Author: Zero ASIC
|
|
6
6
|
License: Apache License
|
|
@@ -199,7 +199,7 @@ Requires-Python: >=3.8
|
|
|
199
199
|
Description-Content-Type: text/markdown
|
|
200
200
|
License-File: LICENSE
|
|
201
201
|
Requires-Dist: siliconcompiler>=0.35.0
|
|
202
|
-
Requires-Dist: lambdalib>=0.
|
|
202
|
+
Requires-Dist: lambdalib>=0.10.0
|
|
203
203
|
Provides-Extra: test
|
|
204
204
|
Requires-Dist: flake8==7.3.0; extra == "test"
|
|
205
205
|
Requires-Dist: pytest==9.0.2; extra == "test"
|
|
@@ -209,29 +209,209 @@ Requires-Dist: sc-leflib==0.5.1; extra == "test"
|
|
|
209
209
|
Requires-Dist: Jinja2==3.1.6; extra == "test"
|
|
210
210
|
Dynamic: license-file
|
|
211
211
|
|
|
212
|
-
# Lambdapdk
|
|
212
|
+
# Lambdapdk
|
|
213
213
|
|
|
214
|
-
|
|
214
|
+
[](https://github.com/siliconcompiler/lambdapdk/actions/workflows/ci.yml)
|
|
215
|
+
[](https://github.com/siliconcompiler/lambdapdk/actions/workflows/wheels.yml)
|
|
216
|
+
[](https://pypi.org/project/lambdapdk/)
|
|
217
|
+
[](https://pepy.tech/project/lambdapdk)
|
|
218
|
+
[](https://github.com/siliconcompiler/lambdapdk/stargazers)
|
|
219
|
+
[](https://github.com/siliconcompiler/lambdapdk/issues)
|
|
220
|
+
[](LICENSE)
|
|
215
221
|
|
|
216
|
-
Lambdapdk is supported by the [SiliconCompiler](https://github.com/siliconcompiler/siliconcompiler) project.
|
|
217
222
|
|
|
223
|
+
Lambdapdk is a collection of open-source Process Design Kits (PDKs) that enable chip design across multiple technology nodes. Each PDK includes standard cell libraries, I/O libraries, and memory compilers with full integration into the [SiliconCompiler](https://github.com/siliconcompiler/siliconcompiler) build system and [Lambdalib](https://github.com/siliconcompiler/lambdalib) Verilog hardware abstraction library.
|
|
218
224
|
|
|
219
|
-
|
|
225
|
+
<!-- TODO: Add architecture diagram showing PDK relationship to design flow -->
|
|
220
226
|
|
|
221
|
-
|
|
222
|
-
* [FreePDK45](lambdapdk/freepdk45/base/README.md)
|
|
223
|
-
* [IHP 130](https://github.com/IHP-GmbH/IHP-Open-PDK)
|
|
224
|
-
* [Skywater130](lambdapdk/sky130/README.md)
|
|
225
|
-
* [Global Foundries 180](lambdapdk/gf180/README.md)
|
|
226
|
-
* [interposer](lambdapdk/interposer/README.md)
|
|
227
|
+
## Why Lambdapdk?
|
|
227
228
|
|
|
228
|
-
|
|
229
|
+
### Challenges
|
|
229
230
|
|
|
230
|
-
|
|
231
|
+
- PDK setup is complex and error-prone
|
|
232
|
+
- Technology-specific designs limit portability
|
|
233
|
+
- Commercial PDKs have restrictive licenses
|
|
234
|
+
- Scattered PDK sources with inconsistent interfaces
|
|
231
235
|
|
|
232
|
-
|
|
236
|
+
### Solution
|
|
233
237
|
|
|
234
|
-
|
|
238
|
+
- Pre-configured PDKs ready for immediate use
|
|
239
|
+
- [Lambdalib](https://github.com/siliconcompiler/lambdalib) mapping enables design portability
|
|
240
|
+
- Fully open-source PDKs for research and education
|
|
241
|
+
- Unified API across all supported technologies
|
|
235
242
|
|
|
236
|
-
|
|
237
|
-
|
|
243
|
+
<!-- TODO: Add flow diagram showing design portability across PDKs -->
|
|
244
|
+
|
|
245
|
+
## Supported PDKs
|
|
246
|
+
|
|
247
|
+
| PDK | Node | Libraries | Source |
|
|
248
|
+
|-----|------|-----------|--------|
|
|
249
|
+
| [ASAP7](lambdapdk/asap7/README.md) | 7nm FinFET | Standard cells (RVT/LVT/SLVT), I/O, SRAM | Arizona State University |
|
|
250
|
+
| [FreePDK45](lambdapdk/freepdk45/base/README.md) | 45nm | Nangate standard cells, SRAM | NC State / Nangate |
|
|
251
|
+
| [Sky130](lambdapdk/sky130/README.md) | 130nm | Standard cells (HD/HDLL), I/O, SRAM | Google / Skywater |
|
|
252
|
+
| [GF180](lambdapdk/gf180/README.md) | 180nm | Standard cells (7T/9T), I/O, SRAM | Google / GlobalFoundries |
|
|
253
|
+
| [IHP130](https://github.com/IHP-GmbH/IHP-Open-PDK) | 130nm SiGe | Standard cells, I/O, SRAM | IHP GmbH |
|
|
254
|
+
| [Interposer](lambdapdk/interposer/README.md) | Multi-layer | Bump cells for chiplet integration | ZeroASIC |
|
|
255
|
+
|
|
256
|
+
## Quick Start
|
|
257
|
+
|
|
258
|
+
### Installation
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
pip install lambdapdk
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Basic Usage
|
|
265
|
+
|
|
266
|
+
```python
|
|
267
|
+
from siliconcompiler import ASIC, Design
|
|
268
|
+
from siliconcompiler.targets import skywater130_demo
|
|
269
|
+
|
|
270
|
+
# Create design and add source files
|
|
271
|
+
design = Design("mydesign")
|
|
272
|
+
design.set_topmodule("mydesign", fileset="rtl")
|
|
273
|
+
design.add_file("mydesign.v", fileset="rtl")
|
|
274
|
+
design.add_file("mydesign.sdc", fileset="sdc")
|
|
275
|
+
|
|
276
|
+
# Create ASIC project and load target
|
|
277
|
+
project = ASIC(design)
|
|
278
|
+
project.add_fileset(["rtl", "sdc"])
|
|
279
|
+
skywater130_demo(project)
|
|
280
|
+
|
|
281
|
+
# Run the flow
|
|
282
|
+
project.run()
|
|
283
|
+
project.summary()
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Available targets: `asap7_demo`, `freepdk45_demo`, `skywater130_demo`, `gf180_demo`, `ihp130_demo`, `interposer_demo`
|
|
287
|
+
|
|
288
|
+
## Cell Library Inventory
|
|
289
|
+
|
|
290
|
+
### ASAP7 (7nm)
|
|
291
|
+
|
|
292
|
+
Standard cell libraries with three threshold voltage variants:
|
|
293
|
+
|
|
294
|
+
| Library | Type | Cells | Verilog |
|
|
295
|
+
|---------|------|-------|---------|
|
|
296
|
+
| [asap7sc7p5t_rvt](lambdapdk/asap7/libs/asap7sc7p5t_rvt) | Regular Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_rvt/verilog) |
|
|
297
|
+
| [asap7sc7p5t_lvt](lambdapdk/asap7/libs/asap7sc7p5t_lvt) | Low Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_lvt/verilog) |
|
|
298
|
+
| [asap7sc7p5t_slvt](lambdapdk/asap7/libs/asap7sc7p5t_slvt) | Super Low Vt | ~200 | [verilog](lambdapdk/asap7/libs/asap7sc7p5t_slvt/verilog) |
|
|
299
|
+
|
|
300
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, Adder, Tie, Filler, Decap, Tap
|
|
301
|
+
|
|
302
|
+
**Memory macros ([fakeram7](lambdapdk/asap7/libs/fakeram7)):**
|
|
303
|
+
|
|
304
|
+
| Configuration | Verilog |
|
|
305
|
+
|--------------|---------|
|
|
306
|
+
| Single-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
307
|
+
| Dual-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
308
|
+
| True dual-port 64x32 to 8192x64 | [verilog](lambdapdk/asap7/libs/fakeram7/verilog) |
|
|
309
|
+
|
|
310
|
+
### FreePDK45 (45nm)
|
|
311
|
+
|
|
312
|
+
| Library | Type | Verilog |
|
|
313
|
+
|---------|------|---------|
|
|
314
|
+
| [nangate45](lambdapdk/freepdk45/libs/nangate45) | Standard cells | [lambda](lambdapdk/freepdk45/libs/nangate45/lambda/stdlib) |
|
|
315
|
+
|
|
316
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Tie, Filler, Tap
|
|
317
|
+
|
|
318
|
+
**Memory macros ([fakeram45](lambdapdk/freepdk45/libs/fakeram45)):**
|
|
319
|
+
|
|
320
|
+
| Configuration | Verilog |
|
|
321
|
+
|--------------|---------|
|
|
322
|
+
| 64x32 to 512x64 | [verilog](lambdapdk/freepdk45/libs/fakeram45/verilog) |
|
|
323
|
+
|
|
324
|
+
### Sky130 (130nm)
|
|
325
|
+
|
|
326
|
+
| Library | Type | Cells | Verilog |
|
|
327
|
+
|---------|------|-------|---------|
|
|
328
|
+
| [sky130hd](lambdapdk/sky130/libs/sky130hd) | High Density | ~430 unique | [verilog](lambdapdk/sky130/libs/sky130hd/verilog) |
|
|
329
|
+
| [sky130hdll](lambdapdk/sky130/libs/sky130hdll) | High Density Low Leakage | ~140 unique | [verilog](lambdapdk/sky130/libs/sky130hdll/verilog) |
|
|
330
|
+
| [sky130io](lambdapdk/sky130/libs/sky130io) | I/O cells | Various | [verilog](lambdapdk/sky130/libs/sky130io/verilog) |
|
|
331
|
+
|
|
332
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Delay, Tie, Filler, Decap, Tap, Antenna
|
|
333
|
+
|
|
334
|
+
**Memory macros ([sky130sram](lambdapdk/sky130/libs/sky130sram)):**
|
|
335
|
+
|
|
336
|
+
| Configuration | Verilog |
|
|
337
|
+
|--------------|---------|
|
|
338
|
+
| 1RW1R 64x256 | [verilog](lambdapdk/sky130/libs/sky130sram/sky130_sram_1rw1r_64x256_8/verilog) |
|
|
339
|
+
|
|
340
|
+
### GF180 (180nm)
|
|
341
|
+
|
|
342
|
+
| Library | Type | Cells | Verilog |
|
|
343
|
+
|---------|------|-------|---------|
|
|
344
|
+
| [gf180mcu_fd_sc_mcu7t5v0](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0) | 7-track | ~230 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/verilog) |
|
|
345
|
+
| [gf180mcu_fd_sc_mcu9t5v0](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0) | 9-track | ~230 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/verilog) |
|
|
346
|
+
| [gf180mcu_fd_io](lambdapdk/gf180/libs/gf180mcu_fd_io) | I/O cells | Various | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_io/verilog) |
|
|
347
|
+
|
|
348
|
+
**Cell categories:** AND, OR, NAND, NOR, XOR, INV, BUF, MUX, DFF, Latch, AOI, OAI, Tristate, Delay, Tie, Filler, Decap, Tap, Antenna
|
|
349
|
+
|
|
350
|
+
**Memory macros ([gf180sram](lambdapdk/gf180/libs/gf180mcu_fd_ip_sram)):**
|
|
351
|
+
|
|
352
|
+
| Configuration | Verilog |
|
|
353
|
+
|--------------|---------|
|
|
354
|
+
| 64x8 to 512x8 | [verilog](lambdapdk/gf180/libs/gf180mcu_fd_ip_sram/verilog) |
|
|
355
|
+
|
|
356
|
+
### IHP130 (130nm SiGe)
|
|
357
|
+
|
|
358
|
+
| Library | Type | Verilog |
|
|
359
|
+
|---------|------|---------|
|
|
360
|
+
| [sg13g2_stdcell](lambdapdk/ihp130/libs/sg13g2_stdcell) | Standard cells | [lambda](lambdapdk/ihp130/libs/sg13g2_stdcell/lambda/stdlib) |
|
|
361
|
+
| [sg13g2_io](lambdapdk/ihp130/libs/sg13g2_io) | I/O cells | [blackbox](lambdapdk/ihp130/libs/sg13g2_io/blackbox) |
|
|
362
|
+
|
|
363
|
+
Note: IHP130 cell views are provided by the [IHP Open PDK](https://github.com/IHP-GmbH/IHP-Open-PDK).
|
|
364
|
+
|
|
365
|
+
### Interposer
|
|
366
|
+
|
|
367
|
+
| Library | Type | Description |
|
|
368
|
+
|---------|------|-------------|
|
|
369
|
+
| [bumps](lambdapdk/interposer/libs/bumps) | Bump cells | Micro-bump cells for chiplet integration |
|
|
370
|
+
|
|
371
|
+
Stackup variants: 3ML, 4ML, 5ML with 400um, 800um, and 2000um bump pitches.
|
|
372
|
+
|
|
373
|
+
## Architecture
|
|
374
|
+
|
|
375
|
+
```
|
|
376
|
+
lambdapdk/
|
|
377
|
+
├── asap7/ # 7nm FinFET PDK
|
|
378
|
+
│ ├── base/ # Technology files, DRC rules
|
|
379
|
+
│ └── libs/ # Standard cells, I/O, memory
|
|
380
|
+
├── freepdk45/ # 45nm PDK
|
|
381
|
+
│ ├── base/
|
|
382
|
+
│ └── libs/
|
|
383
|
+
├── sky130/ # 130nm PDK
|
|
384
|
+
│ ├── base/
|
|
385
|
+
│ └── libs/
|
|
386
|
+
├── gf180/ # 180nm PDK
|
|
387
|
+
│ ├── base/
|
|
388
|
+
│ └── libs/
|
|
389
|
+
├── ihp130/ # 130nm SiGe PDK
|
|
390
|
+
│ ├── base/
|
|
391
|
+
│ └── libs/
|
|
392
|
+
└── interposer/ # Passive interposer
|
|
393
|
+
├── base/
|
|
394
|
+
└── libs/
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
## Contributing
|
|
398
|
+
|
|
399
|
+
We welcome contributions! Please report issues and submit pull requests at:
|
|
400
|
+
https://github.com/siliconcompiler/lambdapdk/issues
|
|
401
|
+
|
|
402
|
+
## License
|
|
403
|
+
|
|
404
|
+
This project is licensed under the [Apache License 2.0](LICENSE).
|
|
405
|
+
|
|
406
|
+
Individual PDKs may have additional license terms:
|
|
407
|
+
|
|
408
|
+
| PDK | License | Details |
|
|
409
|
+
|-----|---------|---------|
|
|
410
|
+
| ASAP7 | BSD 3-Clause | [LICENSE](lambdapdk/asap7/libs/asap7sc7p5t_rvt/LICENSE) |
|
|
411
|
+
| Nangate45 | Nangate Open Cell Library License | [LICENSE](lambdapdk/freepdk45/libs/nangate45/LICENSE) (non-commercial use) |
|
|
412
|
+
| Sky130 | Apache 2.0 | Via [open_pdks](https://github.com/RTimothyEdwards/open_pdks) |
|
|
413
|
+
| GF180 | Apache 2.0 | Via [gf180mcu-pdk](https://github.com/google/gf180mcu-pdk) |
|
|
414
|
+
| IHP130 | Apache 2.0 | Via [IHP-Open-PDK](https://github.com/IHP-GmbH/IHP-Open-PDK) |
|
|
415
|
+
| Interposer | Apache 2.0 | Copyright 2024 ZeroASIC Corp |
|
|
416
|
+
|
|
417
|
+
Copyright 2023 Zero ASIC Corporation
|
|
@@ -14,6 +14,7 @@ lambdapdk/asap7/__init__.py
|
|
|
14
14
|
lambdapdk/asap7/libs/asap7sc7p5t.py
|
|
15
15
|
lambdapdk/asap7/libs/fakeio7.py
|
|
16
16
|
lambdapdk/asap7/libs/fakekit7.py
|
|
17
|
+
lambdapdk/asap7/libs/fakepll7.py
|
|
17
18
|
lambdapdk/asap7/libs/fakeram7.py
|
|
18
19
|
lambdapdk/freepdk45/__init__.py
|
|
19
20
|
lambdapdk/freepdk45/libs/fakeram45.py
|
lambdapdk-0.2.7/README.md
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Lambdapdk Introduction
|
|
2
|
-
|
|
3
|
-
The Lambdapdk project includes a number of open source Process Design Kits (PDKs). The original source of these PDKs is documented in the README file for each PDK. Cell level mapping is included to the generic technology independent [Lambdalib](https://github.com/siliconcompiler/lambdalib) library.
|
|
4
|
-
|
|
5
|
-
Lambdapdk is supported by the [SiliconCompiler](https://github.com/siliconcompiler/siliconcompiler) project.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Supported PDKs:
|
|
9
|
-
|
|
10
|
-
* [ASAP7](lambdapdk/asap7/README.md)
|
|
11
|
-
* [FreePDK45](lambdapdk/freepdk45/base/README.md)
|
|
12
|
-
* [IHP 130](https://github.com/IHP-GmbH/IHP-Open-PDK)
|
|
13
|
-
* [Skywater130](lambdapdk/sky130/README.md)
|
|
14
|
-
* [Global Foundries 180](lambdapdk/gf180/README.md)
|
|
15
|
-
* [interposer](lambdapdk/interposer/README.md)
|
|
16
|
-
|
|
17
|
-
# License
|
|
18
|
-
|
|
19
|
-
[Apache License 2.0](LICENSE)
|
|
20
|
-
|
|
21
|
-
Specific PDK licences can be found in their respective folders.
|
|
22
|
-
|
|
23
|
-
# Issues / Bugs
|
|
24
|
-
|
|
25
|
-
We use [GitHub Issues](https://github.com/siliconcompiler/lambdapdk/issues)
|
|
26
|
-
for tracking requests and bugs.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|