Kactus2

Kactus2: A graphical EDA tool built on the IP-XACT standard - Published in JOSS (2017)

https://github.com/kactus2/kactus2dev

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

design eda fpga hardware hdl ip-xact mpsoc reuse system-on-chip
Last synced: 6 months ago · JSON representation

Repository

Kactus2 is a graphical EDA tool based on the IP-XACT standard.

Basic Info
Statistics
  • Stars: 226
  • Watchers: 24
  • Forks: 41
  • Open Issues: 32
  • Releases: 14
Topics
design eda fpga hardware hdl ip-xact mpsoc reuse system-on-chip
Created about 9 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

                            README : Kactus2
               Copyright (c) 2012-2025 Tampere University
              https://research.tuni.fi/system-on-chip/tools

Summary

Kactus2 logo

Kactus2 is a toolset for designing SoCs. The aim is easier IP reusability and integration for both hardware and software. The tool supports both the IEEE 1685-2014 and IEEE 1685-2022 "IP-XACT" standards.

Windows installer and tar-package for Linux are available in SourceForge

Guidelines for issue reporting and contributing are given in the wiki page Contributing to Kactus2.

Other support is provided by email: kactus2@tuni.fi

What you can do with Kactus2

Package IPs for reuse and exchange * Import your existing IPs as IP-XACT components * Create new IP-XACT components and generate their HDL module headers * Reuse IP-XACT files from any standard compatible vendor * Reuse the IPs in your designs and connect them with wires and busses

Create HW designs with hierarchy * Create multilevel hierarchies, where a design has multiple sub-designs * Configure component instances in designs, including the sub-designs * Use generator plugins to create HDL with wiring and parameterization

Integrate HW and SW * Use memory designer to preview memory maps and address spaces in your hierarchy * Package software to IP-XACT components and map them to hardware * Generate makefiles that build executables with rules defined in IP-XACT components

What you cannot do with Kactus2

  • Behavioral logic: Neither Kactus2 nor IP-XACT handles module implementations
  • Synthesis or simulation: These require tools that are specificly created for the purpose

Examples and tutorials

Example IPs are available in GitHub here.

Video tutorials are available in Youtube.

Windows install

An installer (SourceForge link above) will guide you through the installation on Windows platforms.

If you want to build Kactus2 on Windows, see separate instructions in our project wiki.

Linux install

On Linux systems Kactus2 must be built from source. Instructions can be found in the wiki.

Settings and configurations

Kactus2 uses a settings file for storing user-specific tool settings. The file default location is ~/.config/TUT/Kactus2.ini in Linux and C:\Users\<username>\AppData\Roaming\TUT\Kactus2.ini in Windows. The location can be checked on the general settings page in Kactus2.

A system wide default settings file is located in /etc/xdg and C:\ProgramData, respectively. This will be used as a base for any new user-specific settings and a fallback mechanism, if the user's file is missing a requested value.

Modifying the settings files manually is not recommended and should be done only by advanced users. Most of the time all required changes can be applied in the Kactus2 GUI.

In addition, Kactus2 uses the file configure.cfgfor updating the users' settings when new setting options are introduced in the tool. Please do not modify this file as it will break the compatibility with earlier versions.

Contributors

Antti Kamppi, Joni-Matti Määttä, Lauri Matilainen, Timo D. Hämäläinen, Mikko Teuho, Juho Järvinen, Esko Pekkarinen, Janne Virtanen, Anton Hagqvist, Vasilii Feshchenko

Kactus2 uses Icons8 provided by Icons8 LLC.

Licensing

This software is licensed under the GPL2 General Public License.

Kactus2 is also available for dual licensing. Please contact kactus2@tuni.fi to purchase a commercial license.

Kactus2 is dynamically linked using Qt 6.2.4 open source libraries (LGPL), copyright The Qt Company.

Kactus2 uses the Python language and interpreter for automating design tasks.
Python is a registered trademark of the Python Software Foundation. See also the PSF license.

Owner

  • Name: kactus2
  • Login: kactus2
  • Kind: organization
  • Email: kactus2@cs.tut.fi
  • Location: Tampere, Finland

JOSS Publication

Kactus2: A graphical EDA tool built on the IP-XACT standard
Published
May 02, 2017
Volume 2, Issue 13, Page 151
Authors
Antti Kamppi
Tampere University of Technology
Esko Pekkarinen
Tampere University of Technology
Janne Virtanen
Tampere University of Technology
Joni-Matti Määttä
Tampere University of Technology
Juho Järvinen
Tampere University of Technology
Lauri Matilainen
Tampere University of Technology
Mikko Teuho
Tampere University of Technology
Timo D. Hämäläinen
Tampere University of Technology
Editor
Lorena A Barba ORCID
Tags
IP-XACT EDA Design FPGA Hardware Intellectual Property reuse mpsoc

GitHub Events

Total
  • Issues event: 12
  • Watch event: 28
  • Delete event: 7
  • Member event: 1
  • Issue comment event: 10
  • Push event: 62
  • Gollum event: 1
  • Fork event: 6
  • Create event: 4
Last Year
  • Issues event: 12
  • Watch event: 28
  • Delete event: 7
  • Member event: 1
  • Issue comment event: 10
  • Push event: 63
  • Gollum event: 1
  • Fork event: 6
  • Create event: 4

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 4,242
  • Total Committers: 21
  • Avg Commits per committer: 202.0
  • Development Distribution Score (DDS): 0.75
Past Year
  • Commits: 80
  • Committers: 2
  • Avg Commits per committer: 40.0
  • Development Distribution Score (DDS): 0.25
Top Committers
Name Email Commits
Esko Pekkarinen e****n@t****i 1,061
Mikko Teuho m****o@t****i 697
Joni-Matti Määttä j****a@t****i 535
hagantsa a****g@g****m 502
epekkar e****n@t****i 498
Antti Kamppi a****i@t****i 425
Janne Virtanen j****n@t****i 389
Lauri Matilainen l****n@t****i 27
Dan Chianucci c****i@x****m 24
VasiliiFeshchenko v****3@g****m 17
Erno Salminen e****n@t****i 15
Huang Rui v****r@g****m 14
Antti Sillanpää a****a@t****i 11
Timo Korpela t****a@o****i 9
Ameya Vikram Singh a****h@g****m 5
Gwenhael Goavec-Merou g****u@t****m 4
Olof Kindgren o****n@g****m 3
Lasse Laukkanen l****n@t****i 2
Timo Hämäläinen t****n@t****i 2
Michał Kruszewski m****u@p****m 1
Wilfried Chauveau w****u@i****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 84
  • Total pull requests: 17
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 38
  • Total pull request authors: 5
  • Average comments per issue: 1.63
  • Average comments per pull request: 1.29
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 11
  • Pull requests: 0
  • Average time to close issues: 19 days
  • Average time to close pull requests: N/A
  • Issue authors: 8
  • Pull request authors: 0
  • Average comments per issue: 0.64
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Kyrhe (17)
  • TonyReinberger (10)
  • vowstar (5)
  • AmeyaVS (5)
  • epekkar (4)
  • DenizzzGuzell (4)
  • olofk (4)
  • 0tti (3)
  • rsiddharth-TT (2)
  • Ryuji-Yatahagane (2)
  • polyxemus (1)
  • Paul-Chaffey (1)
  • maloo (1)
  • jm4rtin (1)
  • CalamaroS (1)
Pull Request Authors
  • vowstar (9)
  • AmeyaVS (4)
  • epekkar (2)
  • DanChianucci (1)
  • olofk (1)
Top Labels
Issue Labels
bug (25) feature request (7) enhancement (7) standard (2) Plugin (2) help wanted (1) wontfix (1)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 15
proxy.golang.org: github.com/kactus2/kactus2dev
  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago

Dependencies

.github/workflows/check_build.yml actions
  • actions/checkout v1 composite
  • jurplel/install-qt-action v2 composite
.github/workflows/code_analysis.yml actions
  • Warchant/setup-sonar-scanner v3 composite
  • actions/checkout v2 composite
  • jurplel/install-qt-action v2 composite