Hammer
stable

Contents:

  • 1. Hammer Basics
    • 1.1. Hammer Overview
      • 1.1.1. Main Hammer
      • 1.1.2. Tech Plugins
      • 1.1.3. Tool Plugins
      • 1.1.4. Calling Hammer
      • 1.1.5. Summary
    • 1.2. Hammer Setup
      • 1.2.1. User Setup
        • 1.2.1.1. Installing Hammer as a Source Dependency
      • 1.2.2. Developer Setup
        • 1.2.2.1. Using PyCharm
        • 1.2.2.2. Unit Tests with pytest
        • 1.2.2.3. Type Checking with mypy
        • 1.2.2.4. Testing Different Python Versions with tox
        • 1.2.2.5. Adding / Updating Dependencies
        • 1.2.2.6. Building Documentation
        • 1.2.2.7. Publishing
    • 1.3. Migration Guide
      • 1.3.1. Selecting Plugins
      • 1.3.2. import Statements
      • 1.3.3. Technology JSON
      • 1.3.4. Plugin File Structure
      • 1.3.5. Resource Files
      • 1.3.6. pyproject.toml
  • 2. Hammer Technology Plugins
    • 2.1. Hammer Technologies
      • 2.1.1. HammerTechnology Class
    • 2.2. Hammer Tech JSON
      • 2.2.1. Technology Install
      • 2.2.2. DRC/LVS Deck Setup
      • 2.2.3. Library Setup
        • 2.2.3.1. Library Filters
      • 2.2.4. Stackup
      • 2.2.5. Sites
      • 2.2.6. Special Cells
      • 2.2.7. Don’t Use, Physical-Only Cells
      • 2.2.8. Full Schema
        • 2.2.8.1. TechJSON
    • 2.3. Hammer Tech defaults.yml
    • 2.4. Sky130 Technology Library
      • 2.4.1. PDK Setup
      • 2.4.2. SRAM Macros
      • 2.4.3. NDA Files
      • 2.4.4. Resources
      • 2.4.5. Manual PDK Setup
        • 2.4.5.1. PDK Structure
        • 2.4.5.2. Prerequisites for PDK Setup
        • 2.4.5.3. PDK Install
    • 2.5. ASAP7 Technology Library
      • 2.5.1. Setup and Environment
      • 2.5.2. Dummy SRAMs
      • 2.5.3. Known Issues
    • 2.6. Nangate45 Technology Library
      • 2.6.1. Dummy SRAMs
      • 2.6.2. Supported Tools
  • 3. Hammer Tool Plugins
    • 3.1. Hammer CAD Tools
    • 3.2. Setting up a Hammer CAD Tool Plugin
      • 3.2.1. Tool Class
      • 3.2.2. Steps
      • 3.2.3. Getting Settings
      • 3.2.4. Writing TCL
      • 3.2.5. Executing the Tool
      • 3.2.6. Tool Outputs
      • 3.2.7. defaults.yml
    • 3.3. OpenROAD Place-and-Route Tool Plugin
      • 3.3.1. Tool Setup
      • 3.3.2. Tool Steps
      • 3.3.3. Step Details
        • 3.3.3.1. Macro Placement
        • 3.3.3.2. Write Design
      • 3.3.4. Issue Archiving
    • 3.4. DRC/LVS with IC Validator
  • 4. Hammer Flow Steps
    • 4.1. Hammer Actions
    • 4.2. Synthesis
      • 4.2.1. Synthesis Setup Keys
      • 4.2.2. Synthesis Input Keys
      • 4.2.3. Synthesis Inputs
      • 4.2.4. Synthesis Outputs
      • 4.2.5. Synthesis Commands
    • 4.3. Place-and-Route
      • 4.3.1. P&R Setup Keys
      • 4.3.2. P&R Input Keys
      • 4.3.3. P&R Inputs
      • 4.3.4. P&R Outputs
      • 4.3.5. P&R Commands
    • 4.4. DRC
      • 4.4.1. DRC Setup Keys
      • 4.4.2. DRC Input Keys
      • 4.4.3. DRC Inputs
      • 4.4.4. DRC Outputs
      • 4.4.5. DRC Commands
    • 4.5. LVS
      • 4.5.1. LVS Setup Keys
      • 4.5.2. LVS Input Keys
      • 4.5.3. LVS Inputs
      • 4.5.4. LVS Outputs
      • 4.5.5. LVS Commands
    • 4.6. Simulation
      • 4.6.1. Simulation Setup Keys
      • 4.6.2. Simulation Input Keys
      • 4.6.3. Simulation Inputs
      • 4.6.4. Simulation Outputs
      • 4.6.5. Simulation Commands
    • 4.7. Power
      • 4.7.1. Power Setup Keys
      • 4.7.2. Simulation Input Keys
      • 4.7.3. Power Inputs
      • 4.7.4. Power Outputs
      • 4.7.5. Power Commands
    • 4.8. Formal Verification
      • 4.8.1. Formal Verification Setup Keys
      • 4.8.2. Formal Verification Input Keys
      • 4.8.3. Formal Verification Inputs
      • 4.8.4. Formal Verification Outputs
      • 4.8.5. Formal Verification Commands
    • 4.9. Static Timing Analysis
      • 4.9.1. STA Setup Keys
      • 4.9.2. STA Input Keys
      • 4.9.3. STA Inputs
      • 4.9.4. STA Outputs
      • 4.9.5. STA Commands
  • 5. Hammer Use
    • 5.1. Hammer IR and Meta Variables
      • 5.1.1. Hammer IR
      • 5.1.2. The hammer-config library
      • 5.1.3. Basics
      • 5.1.4. Overriding
      • 5.1.5. Meta actions
      • 5.1.6. Applying multiple meta actions
      • 5.1.7. Common meta actions
      • 5.1.8. Type Checking
      • 5.1.9. Key History
      • 5.1.10. Key Description Lookup
      • 5.1.11. Reference
    • 5.2. Hammer APIs
      • 5.2.1. Power Specification
      • 5.2.2. Timing Constraints
      • 5.2.3. Floorplan & Placement
      • 5.2.4. Bumps
      • 5.2.5. Pins
      • 5.2.6. Power Straps
      • 5.2.7. Special Cells
      • 5.2.8. Submission
    • 5.3. Flow Control
      • 5.3.1. Command-line Interface
    • 5.4. Extending Hammer with Hooks
      • 5.4.1. Hook Methods
      • 5.4.2. Including Hooks
      • 5.4.3. Technology, Tool, and User-Provided Hooks
    • 5.5. Hammer Buildfile
    • 5.6. Hierarchical Hammer Flow
      • 5.6.1. Hierarchical Hammer Config
      • 5.6.2. Flow Management and Actions
      • 5.6.3. Cadence Implementation
      • 5.6.4. Tips for Constraining Hierarchical Modules
      • 5.6.5. Special Notes & Limitations
  • 6. Hammer Examples
    • 6.1. End-to-End Integration Tests
    • 6.2. OpenROAD and Sky130
      • 6.2.1. Instructions
Hammer
  • 1. Hammer Basics
  • Edit on GitHub

1. Hammer Basics

This documentation will give an overview of Hammer, its basic setup, its components, and its structure, as well as some typical project setup.

Hammer Basics:

  • 1.1. Hammer Overview
    • 1.1.1. Main Hammer
    • 1.1.2. Tech Plugins
    • 1.1.3. Tool Plugins
    • 1.1.4. Calling Hammer
    • 1.1.5. Summary
  • 1.2. Hammer Setup
    • 1.2.1. User Setup
    • 1.2.2. Developer Setup
  • 1.3. Migration Guide
    • 1.3.1. Selecting Plugins
    • 1.3.2. import Statements
    • 1.3.3. Technology JSON
    • 1.3.4. Plugin File Structure
    • 1.3.5. Resource Files
    • 1.3.6. pyproject.toml
Previous Next

© Copyright 2023, Berkeley Architecture Research. Revision 419766d8.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: stable
Versions
master
latest
stable
1.1.0
1.0.5
1.0.4
1.0.1
1.0.0
0.1.0
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds