Git Product home page Git Product logo

hammer's Introduction

Logo design by @kenhoberkeley

Hammer PR CI Hammer publish CI

Highly Agile Masks Made Effortlessly from RTL (Hammer)

This is the master (unstable) development branch.

Documentation

The documentation is found at https://hammer-vlsi.readthedocs.io Doc sources are available at doc/ for offline reading.

Hammer currently requires Python 3.9+.

For a deeper dive into available options and environment configuration:

Hammer is an integral component of UC Berkeley Architecture Research's Chipyard framework. Useful documentation for how an example block is pushed through the VLSI flow with Hammer in the free ASAP7 and Sky130 PDKs is at https://chipyard.readthedocs.io/en/latest/VLSI.

History

The list of contributors can be found in the Git history of the project, or online at https://github.com/ucb-bar/hammer/graphs/contributors

The Hammer project builds upon the legacy of the PLSI project by Palmer Dabbelt, a previous project which aimed to build a portable VLSI flow. The Hammer project is grateful for the feedback and lessons learned which provided valuable insight that ultimately led to the design and software architecture of Hammer as it is now.

Below is the list of Hammer publications in reverse chronological order:

hammer's People

Contributors

abejgonzalez avatar bdngo avatar cadeberkeley avatar colinschmidt avatar derrickqi2003 avatar donggyukim avatar dpgrubb13 avatar edwardcwang avatar elamdf avatar ethanwu10 avatar grebe avatar growly avatar harrisonliew avatar jerryz123 avatar jingyi99 avatar joshsweaterguy avatar jwright6323 avatar kenhoberkeley avatar nayiri-k avatar nazlidenizurenli avatar odxa20 avatar pkerichang avatar rahulk29 avatar rezaasjd avatar rohanku avatar sequencer avatar vighneshiyer avatar vikramjain236 avatar waxpple avatar yolowiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hammer's Issues

Travis support

I think the unit tests don't need anything special so could be run on each PR to master

Support combinational designs

Currently, a purely combinational design (no clocks) throws an error in PAR (specifically Innovus) because it can't find any clocks. This isn't a showstopper or common use case but would be nice to support in general.

**ERROR: (TCLCMD-917): Cannot find 'clocks' that match '*'

No license file

Hi Palmer. This project looks incredibly interesting - I was curious what the intended license is?

Get rid of X-to-Y steps

Is it possible to get rid of the X-to-Y steps? They felt very cumbersome to me when I was using hammer and I mostly ended up not using them.

This needs some discussion but wanted to put the idea here as I think it would lead to a smoother experience.

Add hooks to hooks

If I add a hook I would like to be able to then add more hooks relative to the previously added one?

pin placement API for floorplan

For each module you place you should be able to specify where the pins go.

Simple API would just be which side(s) but you some tools give you much more detail than that.

PLSI can't run with make 3.81

EDIT: When I ran make syn-verilog with my own core-generator definition based on rules.mk, vars.mk in counter with empty simulation testbench and macro verilog files, it ran nothing.

Make version: 3.81.

tech json should support mmmc better

Currently there is a lot of redundancy when you define a component with MMMC.
Several of the files do not change when the corner changes, so we should try to represent that more concisely.

Power Strap API

I'm not sure how difficult it will be to make this tech/tool agnostic

Feature Request: PCB Outputs

Moving this from an EAGLE issue to hammer. It would be nice if there were hooks/modules that produced outputs consumable by PCB tools, like a schematic symbol, PCB footprint, bump map, etc.

Call tech-specific memory compiler

After running MacroCompiler, it's possible we want to run a technology-specific memory compiler if the memories are not pre-compiled. We should add functionality to do this.

Clock-gating API

I think at first it can be a binary switch but sometimes you might need to name which cells you want.
Not confident in what the API would look like past the binary option.

Report API

I think we should have an API to specify the kind of reports you would like. A simple list of enum values seems like a good first attempt

Support GDS merging

In order to support IP better hammer should be able to merge GDS files.
This means the tech library should also have them.
This can often be done in either the PNR tool or the signoff tool.

Retiming API

API to express some set of modules to retime, perhaps informed from a chisel annotation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.