Continuous-time comparator
The public GDS is an abstract; ChipFoundry substitutes protected full geometry at tapeout.
This package ships an SRAM-style PG wrap CF_CMP_CT around analog leaf
CF_CMP_CT_core.
CF_CMP_CT is a SkyWater 130 nm hard-macro continuous-time comparator. Instantiate CF_CMP_CT.
Macro size is 195.12 × 120.87 µm (15 µm halo around analog leaf 165.12 × 90.87 µm).
Customer PG for chip PDN is vpwr / vgnd. Analog supplies stay wrap ports and
are routed as signals.
pip install cf-ipm
ipm install CF_CMP_CT --version 0.2.0Use hdl/gl/CF_CMP_CT.v as the customer blackbox, layout/lef/CF_CMP_CT.lef
for P&R, and layout/gds/CF_CMP_CT.gds / layout/mag/CF_CMP_CT.mag for the
public wrap. CF_CMP_CT_core is the analog leaf (empty Verilog, pin-only
abstract). ChipFoundry substitutes vault GDS into CF_CMP_CT_core at tapeout.
P&R uses the wrap LEF (vpwr / vgnd for chip PDN).
Functional sim compiles verify/beh_model/CF_CMP_CT_core.v instead of the empty hdl/gl/CF_CMP_CT_core.v stub. See verify/beh_model/README.md.
- Differential inputs
inpandinn - Outputs
outandout_tr - Enable
enand power-downPD - Analog supplies
vpwre,vpwr_ka,vpbe, andvpb_ka - Ideal Verilog behavioral model under
verify/beh_model/for functional sim - Customer cell
CF_CMP_CT195.12 × 120.87 µm (15 µm halo around analog leaf 165.12 × 90.87 µm) - Chip PDN is
vpwr/vgnd
Customer documentation includes a pinout of the integration cell only. Internal schematics and architecture block diagrams are not published.
Pin names and directions match the public wrap (layout/lef/CF_CMP_CT.lef)
and the blackbox stub (hdl/gl/CF_CMP_CT.v).
Directions and widths are taken from the shipped Verilog in hdl/gl/CF_CMP_CT.v.
| Name | Direction | Width | Description |
|---|---|---|---|
trimA |
input | 5 | Trim code. Not modeled. |
bypass_cmp_mux |
input | 1 | Mux bypass. Not modeled. |
trimB |
input | 5 | Trim code. Not modeled. |
inn |
input | 1 | Negative analog input. |
vpb_ka |
input | 1 | Analog well tap. Route as a signal; not on chip PDN. |
en |
input | 1 | Enable. Low clears the ideal model. |
iref |
input | 1 | Bias current. Route as a signal; not on chip PDN. |
vpwr |
input | 1 | Digital supply for chip PDN. |
vgnd |
input | 1 | Ground for chip PDN. |
out |
output | 1 | High in the ideal model when inp is high and inn is low. |
out_tr |
output | 1 | Complement of out while the ideal model is running. |
vpwr_ka |
input | 1 | Analog supply. Route as a signal; not on chip PDN. |
cal_en |
input | 1 | Calibration enable. Not modeled. |
hyst |
input | 1 | Hysteresis control. Not modeled. |
PD |
input | 1 | Power-down. High clears the ideal model. |
filt |
input | 1 | Filter control. Not modeled. |
PD_override |
input | 1 | Power-down override. Not modeled. |
hold_n |
input | 1 | Active-low hold. Not modeled. |
enable_hv |
input | 1 | High-voltage enable. Not modeled. |
vpbe |
input | 1 | Analog well tap. Route as a signal and tie it to vpwre. Not on chip PDN. |
vpwre |
input | 1 | Analog supply. Route as a signal; not on chip PDN. |
sel1 |
input | 1 | Select. Not modeled. |
sel0 |
input | 1 | Select. Not modeled. |
inp |
input | 1 | Positive analog input. |
CF_CMP_CT_core also has well taps vpb and vnb. The wrap ties .vpb(vpwr)
and .vnb(vgnd). Do not connect those pins at chip level. vpbe stays a wrap
port. Tie vpbe to vpwre in the customer design. Both are routed as signals,
not on chip PDN.
In OpenLane / LibreLane, hook chip PDN with
PDN_MACRO_CONNECTIONS: "u_cf_cmp_ct vccd1 vssd1 vpwr vgnd" and connect
.vpwr(vccd1), .vgnd(vssd1) under USE_POWER_PINS. Route inp, inn,
vpwre, vpwr_ka, vpbe, vpb_ka, and iref onto analog_io.
"SYNTH_ELABORATE_ONLY": true,
"SYNTH_USE_PG_PINS_DEFINES": "USE_POWER_PINS",
"FP_PDN_ENABLE_RAILS": false,
"RUN_TAP_ENDCAP_INSERTION": false,
"FP_PDN_HORIZONTAL_HALO": 10,
"FP_PDN_VERTICAL_HALO": 10,
"PDN_MACRO_CONNECTIONS": ["u_cf_cmp_ct vccd1 vssd1 vpwr vgnd"],
"MAGIC_EXT_USE_GDS": false,
"MAGIC_EXT_ABSTRACT_CELLS": ["^CF_CMP_CT_core$"],
"PRIMARY_GDSII_STREAMOUT_TOOL": "magic",
"MAGIC_MACRO_STD_CELL_SOURCE": "macro",
"MAGIC_CAPTURE_ERRORS": false,
"RUN_MAGIC_DRC": falseThis macro is the catalog continuous-time comparator. No Liberty timing file
ships with this package. This README does not invent PVT tables. The ideal
model is a digital comparison of inp and inn.
The ideal model in verify/beh_model/ is the functional timing reference for
simulation. PD high clears out and out_tr. With PD low and en high,
out is high when inp is high and inn is low, and out_tr is its
complement. That model is not silicon-verified.
- Verilog in
hdl/gl/CF_CMP_CT.vis a structural wrap around an emptyCF_CMP_CT_coreblackbox. Functional sim usesverify/beh_model/CF_CMP_CT_core.v(ideal model, not SPICE). - Liberty is not in this package. P&R uses the wrap LEF.
- Trim, hysteresis, calibration, filter, and mux behavior are not modeled.
| Version | Date | Notes |
|---|---|---|
| 0.2.0 | 2026-09-28 | First SRAM-style PG-wrapped package. Ideal behavioral model. Core fill-exclude covers. |
This hard macro has high-volume commercial production history (millions of units). Catalog and IPM maturity is Production. ChipFoundry substitutes protected full layout at tapeout. The chipIgnite delivery of this package is not marked shuttle-proven until a run returns.