wiki:WikiStart

Origami HLS - the art of (circuit) folding

Origami is an open-source project at the University of Kassel that allows the automatic generation of highly optimized hardware architectures from Matlab Simulink model description. This allows an easy creation, testing and evaluating of algorithms from digital signal processing and control theory. To do so, origami provides a couple of tools that transform the model into a model that fits to the target hardware. One of the most powerful transformation that allows to trade between throughput and resources is folding (see Parhi's book on VLSI Digital Signal Processing Systems). Folding is a systematic way to share and, thus, save FPGA hardware resources by time-multiplexing. This is possible, when the input sample rate is lower than the system clock frequency. We put a special focus on the automatic search and selection of common subcircuits that are best suited for sharing (research still in progress). Besides folding, we are looking into several directions including the optimization of linear systems, FPGA-specific optimizations, pipelining & retiming as well as the use of sequential arithmetic (among other topics). Origami HLS provides a platform for researcher wanting to investigate algorithms for model-based (hardware) design flow.

The general toolflow can be found in the following figure, while the folding transformation flow can be found at the bottom of this page. A good description of folding can be found in the origami kick off slides and the other presentations presentations belonging to origami.

In addition, you will find the research related ideas in the following papers:

  • P. Sittel, J. Wickerson, M. Kumm and P. Zipf: "Modulo Scheduling with Rational Initiation Intervals in Custom Hardware Design"
    Accepted for presentation at: 25th Asia and South Pacific Design Automation Conference (ASP-DAC), January 2020.
  • P. Sittel, N. Fiege , M. Kumm and P. Zipf: "Isomorphic Subgraph-based Problem Reduction for Resource Minimal Modulo Scheduling"
    International Conference on Reconfigurable Computing and FPGAs (ReConFig?), Cancun 2019.
  • P.Sittel, M.Kumm, J. Oppermann, K. Möller, P. Zipf and A. Koch: "ILP-based Modulo Scheduling and Binding for Register Minimization"
    Presented at the 28th International Conference on Field Programmable Logic and Application (FPL), August 2018.
  • P. Sittel, M. Kumm, K. Möller, P. Zipf, B. Pasca and M. Jervis: "Model-Based Hardware Design based on Compatible Sets of Isomorphic Subgraphs"
    Presented at the Int. Conf. on Field Programmable Technology (ICFPT), Melbourne 2017.
  • P. Sittel, M. Kumm, K. Möller, M. Hardieck and P. Zipf: "High-Level Synthesis for Model-Based Design with Automatic Folding including Combined Common Subcircuits"
    Presented at the Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen (MBMV), pp. 103–113, 2017 (preprint)
  • K. Möller, M. Kumm, C.-F. Müller, P. Zipf: "Model-based Hardware Design for FPGAs using Folding Transformations based on Subcircuits"
    In: FPGAs for Software Programmers (FSP), 2015 (preprint)

Origami source code

origami Git repository:

https://digidev.digi.e-technik.uni-kassel.de/git/origami.git

Cloning Origami works without authentication:

git clone https://digidev.digi.e-technik.uni-kassel.de/git/origami.git

If you wish to contribute to Origami HLS, please contact Patrick Sittel <sittel@…>.

To get startet, see the Quickstart Guide

Before you start to work on this project, enter your full name and your E-Mail address in "Preferences".
If you encounter problems using this system, please contact Daniel Bischof <bischof@…>.

People Contribute(d) to Origami

The following people contribute or contributed to the origami project (ordered by topics):

Project Management: Martin Kumm, Konrad Moeller, Patrick Sittel

Simulink Parser and Interfaces : Patrick Sittel

Subgraph Enumeration and Selection : Patrick Sittel, Vincent Weyell

Scheduling : Patrick Sittel

FPGA Optimizations: Martin Kumm, Jakoba Petri-König

Benchmarking: Jakoba Petri-König

Lua: Thomas Schönwälder, Patrick Sittel

VHDL-Generation using FloPoCo: Konrad Moeller, Martin Kumm, Patrick Sittel, Florian Wagner, Nicolai Fiege, Nigel Kretschmer

Sequential Arithmetic: Daniel Stracke

Pipelining & Retiming: Patrick Piasecki, Patrick Sittel

Linear System Optimization: Martin Kumm, Johannes Kappauf

origami folding flow

Getting started with Trac and Subversion

For a complete list of local wiki pages, see TitleIndex.

Acceptable Use and Privacy Policy

Please be aware of the Acceptable Use and Privacy Policy of this system.

Last modified 4 years ago Last modified on 12/13/19 00:44:32

Attachments (7)

Download all attachments as: .zip