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.1.1. PDK Install
2.4.2. SRAM Macros
2.4.3. IO Library
2.4.4. NDA Files
2.4.5. Resources
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. Cadence Joules RTL Power Tool Plugin
3.4.1. Tool Steps
3.4.2. Known Issues
3.5. DRC/LVS with IC Validator
3.6. DRC/LVS with Pegasus
3.6.1. Pegasus usage notes
3.6.2. Pegasus Design Review usage notes
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. Introduction with Sky130 and OpenROAD
6.1.1. Instructions
6.1.2. Next Steps
6.1.2.1. Commercial flow
6.1.2.2. Chipyard flow
6.2. Hammer End-to-End Integration Tests
6.2.1. Setup
6.2.2. Overview
6.2.2.1. Flow Selection
6.2.2.2. Configs
6.2.3. Run the Flow
6.2.3.1. Flow Customization
6.2.4. Custom Setups
6.2.4.1. ASAP7 Install
6.2.4.2. Sky130 Install
Hammer
Search
Please activate JavaScript to enable the search functionality.