netchipguy / opencos

OpenCOS -- the Open Chip Operating System
Mozilla Public License 2.0
0 stars 0 forks source link

Open Chip Operating System

(aka OpenChip/OpenCOS)

Main Documentation is here

An open framework for creating chips

Documentation right now is basically RTFC, contact netchipguy@gmail.com for info.

The philosophy behind OpenCOS is to try to emulate the path set by modern operating systems, separating the management of hardware ("kernel space" in Linux lingo) from the application ("user space" in the Linux lingo). OpenChip can be thought of as the "kernel".

The main pain points that OpenCOS aims to address are:

Chip Manufacturers

Chip manufacturers such as FPGA vendors (Xilinx, etc) and ASIC vendors (Broadcom, etc) can port OpenCOS to one or more "targets", including whatever IPs they desire. The target (such as u55n) defines the clock inputs and maps target-specific pin names onto the generic OpenCOS top level (op_top). Each target has a set of defines (OC_TARGET_*) which will conditionally include various IPs in op_top.

Application Developers

Application developers write their code to standard interfaces (AXI) at the ports of the oc_user module, which is instantiated by oc_top. The top level expects various parameters and pins to be present on oc_user. SystemVerilog doesn't support optional pins, so there may be many unused pins -- that is OK. One of the philosophies of OpenCOS is to keep code simple, and rely on compile time optimizations to strip out anything unnecessary. The top level will push parameters (number of AXI memory ports, etc) to the application... the application can adapt itself to the target, and/or assert that the target meets it's requirements.

Integrators

Integrators (often the application developer) choose a target, and an application, and make any choices that remain (for example, the target may support four DDR4 memory interfaces, and the application may support 1..N, and the integrator may decide to create a "lightweight" version supporting only one interface, for initial debug).

Organization

License

OpenCOS is licensed under the Mozilla Public License, v2. The reasoning behind that is:

About the authors

netchipguy (aka Simon L. Sabato) is currently a hardware architect at F5, and a long time ASIC/FPGA developer who enjoys enabling high-quality design, but hates recreating the wheel.