Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Add AXI DMA backend #110

Closed
wants to merge 14 commits into from
Closed

WIP: Add AXI DMA backend #110

wants to merge 14 commits into from

Conversation

thommythomaso
Copy link
Collaborator

AXI DMA backend can execute arbitrary 1D data movement operations on an AXI4 bus.

This PR includes:

  • data path
  • data mover
  • burst reshaper
  • backend
    and the test infrastructure:
  • fixture_axi_dma_backend
  • tb_axi_dma_backend

The interface of the backend is documented with inline docstrings. An additional architectural description including block diagrams will be supplied later.

Copy link
Collaborator

@WRoenninger WRoenninger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you Thomas for this valuable contribution to the AXI infrastructure.

Overall I think this is a really good architecture for a high performance AXI DMA backend.

  • I added some suggestions to bring the parameterization in line with the Styleguide.
    The suggestions are general and should be done on all parameters/constants.
  • There are some instances where I think that the design intend would be clearer if some additional typedefs are used. (axi_dam_data_path)
  • I think it would be a good idea to add some assertions where wrong stearing of the backend leads to unexpected behavior.

src/dma/axi_dma_data_path.sv Outdated Show resolved Hide resolved
Bender.yml Outdated Show resolved Hide resolved
Bender.yml Outdated Show resolved Hide resolved
Bender.yml Outdated Show resolved Hide resolved
Bender.yml Show resolved Hide resolved
// top level of the simulation for the AXI DMA backend

`timescale 1ns/1ns
module tb_axi_dma_backend;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some sort of comment on what the idea with the testbench / fixture construct is would be nice.

test/tb_axi_dma_backend.sv Outdated Show resolved Hide resolved
test/fixture_axi_dma_backend.sv Show resolved Hide resolved
test/fixture_axi_dma_backend.sv Outdated Show resolved Hide resolved
Comment on lines +1 to +10
// Copyright (c) 2019 ETH Zurich, University of Bologna
// All rights reserved.
//
// This code is under development and not yet released to the public.
// Until it is released, the code is under the copyright of ETH Zurich and
// the University of Bologna, and may contain confidential and/or unpublished
// work. Any reuse/redistribution is strictly forbidden without written
// permission from ETH Zurich.
//
// Thomas Benz <tbenz@ethz.ch>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Licence header.

@andreaskurth
Copy link
Contributor

I am closing this PR, as agreed with @thommythomaso, to focus work on integrating the successor version as soon as possible. This state will remain available under the tag archive/2020-11-20_axi_dma_tbenz.

@micprog micprog deleted the axi_dma_tbenz branch August 26, 2022 09:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants