Generic Technology Cells (API to Cell Library)

September 18, 2025 ยท View on GitHub

Maintainer: Philippe Sauter phsauter@iis.ee.ethz.ch

This repository contains technology related cells like SRAMs, clock-gating cells, power management cells. The description here are:

  • Behavioral: Meant for RTL simulation only.
  • FPGA: Meant for FPGA implementation. Currently we only support Xilinx FPGAs. But we are happy to accept patches for Altera or other devices.

It is the purpose of your technology specific file to include the cells with correct drive strength. We do not make the assumption in the front-end anymore.

As this layer needs to be re-implemented for every new technology keep it thin!

Cell Contents

If you want to get started in your own technology (either an unsupported FPGA or an ASIC technology) please provide implementations for the cells in this repository.

Clock Cells

Clock cells usually are care-fully designed cells which do not exhibit any glitches. Therefore they need to be manually instantiated in ASIC designs. All clock cells can be found in tc_clk.sv.

NameDescriptionStatusXilinx
tc_clk_and2Clock and gateactive:white_check_mark:
tc_clk_bufferClock bufferactive:white_check_mark:
tc_clk_gatingIntegrated clock gating cellactive:white_check_mark:
tc_clk_inverterClock inverteractive:white_check_mark:
tc_clk_mux2Clock Mux with two inputsactive:white_check_mark:
tc_clk_xor2Clock Xoractive:white_check_mark:
tc_clk_or2Clock Oractive:white_check_mark:
tc_clk_delayProgrammable clock-delayactive

Memory

NameDescriptionStatusXilinx
tc_sramConfigurable SRAMactive:white_check_mark:

Power Cells

Power cells are mostly used for advanced power gating features and not used in any of our open-source IPs. However, feel-free to re-use them. All clock cells can be found in tc_pwr.sv.

NameDescriptionStatus
tc_pwr_level_shifter_inLevel Shifteractive
tc_pwr_level_shifter_in_clamp_loLevel Shifter w/ clamp to 1'b0active
tc_pwr_level_shifter_in_clamp_hiLevel Shifter w/ clamp to 1'b1active
tc_pwr_level_shifter_outLevel Shifteractive
tc_pwr_level_shifter_out_clamp_loLevel Shifter w/ clamp to 1'b0active
tc_pwr_level_shifter_out_clamp_hiLevel Shifter w/ clamp to 1'b1active
tc_pwr_power_gatingPower Gate with ctrl and status pinsactive
tc_pwr_isolation_loIsolation Cell w/ isolate to 1'b0active
tc_pwr_isolation_hiIsolation Cell w/ isolate to 1'b1active