Home

Awesome

IPgen

IP-core package generator for AXI4/Avalon

Copyright (C) 2015, Shinya Takamaeda-Yamazaki

E-mail: takamaeda_at_ist.hokudai.ac.jp

License

Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

Publication

If you use IPgen in your research, please cite my paper about Pyverilog. (IPgen is constructed on Pyverilog.)

@inproceedings{Takamaeda:2015:ARC:Pyverilog,
title={Pyverilog: A Python-Based Hardware Design Processing Toolkit for Verilog HDL},
author={Takamaeda-Yamazaki, Shinya},
booktitle={Applied Reconfigurable Computing},
month={Apr},
year={2015},
pages={451-460},
volume={9040},
series={Lecture Notes in Computer Science},
publisher={Springer International Publishing},
doi={10.1007/978-3-319-16214-0_42},
url={http://dx.doi.org/10.1007/978-3-319-16214-0_42},
}

What's IPgen?

IPgen is a lightweight IP-core package synthesizer from abstract RTL sources. You can implement both AXI4 and Avalon IP-core by using the provided abstract interfaces.

Installation

Requirements

sudo apt install iverilog
pip3 install jinja2 pyverilog

Install

Install IPgen.

python3 setup.py install

Getting Started

You can use the ipgen command from your console.

ipgen

You can find the sample projects in 'tests'. Now let's see 'tests/memcpy'. There is an input source code.

Then type 'make' and 'make run' to simulate sample system.

make build
make sim

Or type commands as below directly.

ipgen default.config -t memcpy -I include tests/memcpy/memcpy.v
iverilog -I memcpy_ip_v1_00_a/hdl/verilog/ memcpy_ip_v1_00_a/test/test_memcpy_ip.v 
./a.out

IPgen compiler generates a directory for IP-core (memcpy_ip_v1_00_a, in this example).

'memcpy_ip_v1_00_a.v' includes

A bit-stream can be synthesized by using Xilinx Platform Studio, Xilinx Vivado, and Altera Qsys. In case of XPS, please copy the generated IP-core into 'pcores' directory of XPS project.

IPgen Command Options

Command

ipgen [config] [-t topmodule] [--ipname=ipname] [--memimg=memimg_name] [--usertest=usertest_name] [-I include]+ [-D define]+ [file]+

Description

Related Project

Pyverilog

Veriloggen