Coder Social home page Coder Social logo

arturum1 / py2hwsw Goto Github PK

View Code? Open in Web Editor NEW

This project forked from iobundle/py2hwsw

0.0 0.0 0.0 19.58 MB

a Python framework for managing embedded HW/SW projects

License: MIT License

Shell 0.41% Python 79.89% Tcl 8.01% TeX 4.10% SystemVerilog 0.29% Makefile 7.14% Verilog 0.16%

py2hwsw's Introduction

py2hwsw

A Python framework for embedded HW/SW projects

In this project, we propose to develop a Python framework to (1) manage the files of an embedded hardware/software (HW/SW) codesign project and (2) generate the Verilog code of the hardware components. The framework will be tested on the OpenCrypto system created in previously NGI-supported projects. The flow will use only open-source tools.

An embedded HW/SW project requires that various source files be conveniently organized in a directory tree so that the build scripts can produce the needed artifacts. Typically, Makefiles and different scripting languages are employed, which is often a barrier for new developers. The proposed Python framework will raise developer accessibility by providing a single cockpit for the design process.

Hardware Design Languages such as Verilog and VHDL give a lot of flexibility to users. Still, the design tools reject most of their features and force users to use a small, low-level subset if we want the code to be human-readable and portable to both FPGAs and ASICs. The result is a very tedious and error-prone hardware design process. So, we'd like to propose a tool to generate portable Verilog code using a Python API.

This project will benefit from a significant body of work constructed over the years, which is described in the following links.

Useful Links

IOb-SoC is a System-on-Chip (SoC) template comprising an open-source RISC-V processor, a memory subsystem, and a UART. IOb-SoC is the departing repository; it already uses a collection of Python scripts to create a build directory for compiling and running various tools.

IOb-Lib contains a set of Python scripts, Verilog, and C sources to simplify the development of subsystem IP cores. It is used as a submodule in the IOb-SoC repository and associated projects.

IOb-SoC-OpenCryptoHW is a reconfigurable cryptographic hardware IP core for Next Generation Internet. Security and privacy are more important than ever with the Internet of Things.

IOb-Py2HW aims to develop a Python generator of portable Verilog code. Py2HW is not a High-Level Synthesis (HLS) language. It is instead a tool to help hardware designers produce readable, lint-clean, and portable Verilog code that can be used seamlessly in any FPGA or ASIC.

Install with pip

Use the following command to install the py2hwsw program with pip globally: pip install git+https://github.com/IObundle/py2hwsw#egg=py2hwsw

Usage examples

Since this project started recently, usage examples are still being constructed and will be available soon.

py2hwsw's People

Contributors

arturum1 avatar agrevin avatar jjts avatar edw590 avatar

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.