Giter Site home page Giter Site logo

ament_vitis's Introduction

ament_vitis

CMake macros and utilities to include Vitis platform into the ROS 2 build system (ament) and its development flows.

NOTE: ament_vitis has a direct runtime Non-ROS dependency with Vitis unified software platform. Download and install Vitis here.

Usage examples

Synthesize C++ with Vitis HLS into an acceleration kernel
# example 1: resize_accel kernel
vitis_acceleration_kernel(
    NAME resize_accel
    FILE src/image_proc/xf_resize_accel.cpp
    CONFIG cfg/kv260.cfg
    INCLUDE
    include/image_proc
    ${CMAKE_INSTALL_PREFIX}/include
    TYPE hw
)

# example 2: rectify_accel kernel
vitis_acceleration_kernel(
    NAME rectify_accel
    FILE src/image_proc/xf_rectify_accel.cpp
    CONFIG cfg/kv260.cfg
    INCLUDE
    include/image_proc
    ${CMAKE_INSTALL_PREFIX}/include
    TYPE hw
)
Link and implement (place & route) a previously synthesized acceleration kernel with Vitis
# example 3: image_proc kernel
vitis_link_kernel(
    OUTPUT image_proc
    KERNELS resize_accel rectify_accel
    CONFIG cfg/kv260_image_proc.cfg
)
Synthesize, place & route an acceleration kernel with Vitis
# example 4: vadd kernel
vitis_acceleration_kernel(
    NAME vadd_faster
    FILE src/vadd.cpp
    CONFIG src/kv260.cfg
    CLOCK 100000000:vadd_faster
    DTSI src/vadd_faster.dtsi
    INCLUDE
    include
    TYPE
    hw
    LINK
    PACKAGE
)
Advanced: generate TCL scripts for C simulation and synthesis customizing the Vitis or Vivado flows
# C simulation and synthesis
vitis_hls_generate_tcl(
    PROJECT
    project_faster_doublevadd_publisher
    SRC
    src/vadd.cpp
    HEADERS
    include
    TESTBENCH
    src/testbench.cpp
    TOPFUNCTION
    vadd
    CLOCK
    4
    SYNTHESIS
)

Quality Declaration

This package claims to be in the Quality Level 4 category, see the Quality Declaration for more details.

ament_vitis's People

Contributors

vmayoral avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ament_vitis's Issues

Release Process! (ROLLING LIVE ON JAMMY) :green_circle: :honey_pot:

[STATUS: RELEASED - LIVE ON JAMMY]

Buildfarm Status

  • Build Status dev (ubuntu_jammy_amd64)
  • Build Status doc (ubuntu_jammy_amd64)
  • Build Status src (rhel_8)
  • Build Status src (ubuntu_jammy)
  • Build Status bin (ubuntu_jammy_amd64)
  • Build Status bin (rhel_8_x86_64)
  • Build Status bin (ubuntu_jammy_arm64)

Description

This issue tracks the status for the release of this repository into rosdistro and making it available for installation as .deb via the ROS 2 repositories.

It will detail the steps that need to be taken, and what recommended changes are good to have.

Personal Note

I think this is ready for release, we just need to go through the release process. No changes required in the source that stand out to me.

Release Process

Steps

  • Create a release tag corresponding to the version specified in package.xml @vmayoral
  • Create release repo (pending ros2-gbp/ros2-gbp-github-org#22)
  • Wait for rosdistro merge of ament_acceleration
  • Create rolling and humble branches
  • Do bloom release
  • rosdistro team to review package and merge PR (1-2 days, 1 month to get apt installable)
  • Monitor build and release status on repo page and buildfarm

Recommendations

  • It would be good to include some usage examples in the README.md for any downstream users of this package.

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.