Skip to content

Gate Library Files

julianspeith edited this page Sep 29, 2026 · 9 revisions

While HAL also supports standard cell libraries provided in liberty format, it comes with a number of custom HAL Gate Library (HGL) files for common standard cell libraries by default. Notably, these libraries cannot be used for hardware design and are optimized for use within HAL. These files are currently located in the gate_libraries plugin (plugins/gate_libraries/definitions/) and are parsed into internal gate libraries on demand, i.e., when a netlist is imported using that library. If a netlist is parsed without specifying a gate library, HAL loads all available gate library files and tries each of them until the netlist can be instantiated.

Warning: While we do provide these gate library files for convenience, we do not claim or guarantee completeness or correctness. The following gate libraries are provided with the standard installation of HAL:

  • Xilinx UNISIM (XILINX_UNISIM.hgl)
  • Xilinx UNISIM extended by generic HAL gate types (XILINX_UNISIM_hal.hgl)
  • Xilinx SIMPRIM (XILINX_SIMPRIM.hgl)
  • ICE40 Ultra (ice40ultra.hgl)
  • ICE40 Ultra extended by generic HAL gate types (ice40ultra_hal.hgl)
  • Nangate Open Cell Library (NangateOpenCellLibrary.hgl)
  • NanGate 15nm Open Cell Library (NanGate_15nm_OCL.hgl)
  • LSI 10k (lsi_10k.hgl)
  • A small example library (example_library.hgl)

In addition, the helper_libs subdirectory contains the helper libraries aoixm_hal_i4.hgl and im_hal_i4.hgl consisting of generic HAL gate types.

You may add additional gate libraries as desired. For a guide on how to produce a gate library file that can be read by HAL, please refer to the article on Creating a Gate Library.

See also

Clone this wiki locally