aolofsson / oh

Verilog library for ASIC and FPGA designers
MIT License
1.17k stars 285 forks source link

=======

OH! Open Hardware for Chip Designers

Introduction

!!! WARNING!!!


OH! is an open-source library of hardware building blocks based on silicon proven design practices at 0.35um to 28nm. The library is being used by Adapteva in designing its next generation ASIC.

The library is written in standard Verilog (2005) and contains over 25,000 lines of Verilog code, over 150 separate modules. Examples of functionality include: FIFOs, SPI (master/slave), GPIO, high speed links, memories, clock circuits, synchronization primitives,interrupt controller, DMA.

alt tag

Content

  1. Philosophy
  2. Modules
  3. How to Simulate
  4. How to Build
  5. Design Guide
  6. Coding Guide
  7. Documentation Guide
  8. Design Checklist
  9. Recommended Reading
  10. License

Philosophy

  1. Make it work
  2. Make it simple
  3. Make it modular

Modules

FOLDER STATUS DESCRIPTION
accelerator FPGA Accelerator tutorial
axi FPGA AXI master and slave interfaces
chip SI Chip design reference flow
common SI Library of basic components
edma HH DMA engine
elink SI Point to point LVDS link
emailbox FPGA Mailbox with interrupt output
emesh SI Emesh interface circuits
emmu FPGA Memory translation unit
etrace HH Logic Analyzer
gpio HH General Purpose IO
mio HH Lightweight parallel link
pic SI Interrupt controller
parallella FPGA Parallella FPGA logic
risc-v HH RISC-V implementation
spi HH SPI master/slave
xilibs FPGA Xilinx simulation models

NOTES:


How to simulate

Scripts are located in the './scripts' directory.

./scripts/build.sh gpio/dv/dut_gpio.v         # compile gpio testbench (example)
./scripts/sim.sh gpio/dv/tests/test_basic.emf # run "test_basic.emf" test
./scripts/view.sh                             # open the waveform with gtkwave

Short-cut:

./run.sh accelerator  # Run accelerator simulation
./run.sh elink        # Run elink simulation
./run.sh emailbox     # Run emailbox simulation
./run.sh emmu         # Run emmu simulation
./run.sh gpio         # Run gpio simulation
./run.sh mio          # run mio simulation
./run.sh spi          # Run spi simulation
./run.sh pic          # Run pic simulation

How to build

TBD

Design Guide

Coding Guide

Documentation Guide

Tapeout Checklist

Recommended Reading

License

The OH! repository source code is licensed under the MIT license unless otherwise specified. See LICENSE for MIT copyright terms. Design specific licenses can be found in the folder root (eg: aes/LICENSE)


picture-license