Giter VIP home page Giter VIP logo

pueda's Introduction

PuEDA

A collection of Python tools for micro-Electronics Design Automation.

PuEDA in an acronym, but also stands for a conjugate for of the Spanish verb "poder" which means "can". The project was born as part of a group of scripts to test the cryptech ecdsa256 IP.

Install (from pypi)

pip3 install pueda

Install (from github)

pip3 install git+https://github.com/bat52/pueda.git@master

Example of simple simulation with Icarus Verilog

from pueda.edalize import icarus
icarus(simname='hello', top='hello_tb', src_dirs = ['./hello'])

Example of simulation with Icarus Verilog

from pueda.edalize import icarus
icarus(simname='counter', top='counter_tb', src_dirs = ['./counter/rtl','./counter/tb'], iverilog_options=['-g2005-sv'])

Example of simulation with pyverilator

from pueda.pyverilator import pyverilator_wrapper
pv = pyverilator_wrapper(fname='./counter/rtl/counter.v', src_dirs=['./counter/rtl'], command_args = [], dump_en = False)

for _ in range(16):
    pv.sim.clock.tick()
    print('count = %d' % pv.sim.io.count)
assert(pv.sim.io.count == 0)

Example of synthesys with yosys

from pueda.yosys import yosys
yosys(top='counter', src_dirs = ['./counter/rtl'], synth_en=True)
# gate count available in ./work_yosys/yosys.log

Common functions

from pueda.common import * 

# list2str : convert a list of strings into a single string
# get_source_files_alldir : returns a file list from a list of directories
# get_source_files: gets all rtl source files from a directory
# get_inc_list: returns a string appending -I to the input list of directories
# get_remote_files: donwload files from an internet url
# vcd_view: visualize a vcd or fst file with gtkwave
# get_clean_work: generate a clean work direactory for a specific tool
# write_file_lines: print a file to screen

pueda's People

Contributors

bat52 avatar

Stargazers

 avatar  avatar David Diaz avatar

Watchers

 avatar Kostas Georgiou 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.