Skip to content

Commit

Permalink
frontend: Update descriptor-based frontend (#18, #26)
Browse files Browse the repository at this point in the history
* frontend: Create a dataflow-oriented descriptor-based iDMA frontend supporting prefetching. #18

* systems/cva6_desc: Various fixes #26

---------

Co-authored-by: Axel Vanoni <[email protected]>

Co-authored-by: iburaky-ids
  • Loading branch information
thommythomaso committed Oct 27, 2023
1 parent 2edb5bb commit 0ba9334
Show file tree
Hide file tree
Showing 30 changed files with 3,675 additions and 1,506 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ nonfree
working_dir
bender
morty
todo
16 changes: 12 additions & 4 deletions Bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ sources:
- src/future/idma_improved_fifo.sv
- src/future/idma_legalizer_page_splitter.sv
- src/future/idma_legalizer_pow2_splitter.sv
- src/future/idma_reg_to_axi.sv

# Midends
- target: rtl
Expand All @@ -56,30 +57,37 @@ sources:
- target: rtl
files:
# Level 0
- src/frontend/desc64/idma_desc64_shared_counter.sv
- src/frontend/desc64/idma_desc64_ar_gen.sv
- src/frontend/desc64/idma_desc64_ar_gen_prefetch.sv
- src/frontend/desc64/idma_desc64_reader.sv
- src/frontend/desc64/idma_desc64_reader_gater.sv
- src/frontend/desc64/idma_desc64_reshaper.sv
- src/frontend/idma_transfer_id_gen.sv
# Level 1
- src/frontend/desc64/idma_desc64_reg_wrapper.sv
# Level 2
- src/frontend/desc64/idma_desc64.sv

- src/frontend/desc64/idma_desc64_top.sv
- src/frontend/desc64/idma_desc64_cva6_wrap.sv

# Synthesis wrappers
- target: synth
files:
# Level 0
- src/frontend/desc64/idma_desc64_synth_pkg.sv
- src/frontend/desc64/idma_desc64_cva6_synth_pkg.sv
- src/synth/idma_nd_backend_synth.sv
# Level 1
- src/frontend/desc64/idma_desc64_synth.sv
- src/frontend/desc64/idma_desc64_cva6_synth.sv

# Testbenches
- target: test
files:
# Level 0
- test/tb_idma_improved_fifo.sv
- test/tb_idma_nd_backend.sv
- test/frontend/tb_idma_desc64.sv
- test/frontend/tb_idma_desc64_top.sv
- test/frontend/tb_idma_desc64_bench.sv
- test/future/idma_tb_per2axi.sv
- test/future/idma_obi_asserter.sv
- test/future/TLToAXI4.v
Expand Down
4 changes: 2 additions & 2 deletions doc/src/frontend.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ Currently the following three frontends are planned and in development:

- :doc:`Register Frontends <frontends/register_fe>`: Register-based configuration interface
- :doc:`Snitch <frontends/snitch_fe>`: Snitch integration
- :doc:`Ariane/Linux <frontends/ariane_fe>`: An Ariane interface to allow use in a Linux system (not a priority yet)
- :doc:`Ariane/Linux <frontends/descriptor_fe>`: An Ariane interface to allow use in a Linux system (not a priority yet)

.. toctree::
:hidden:

frontends/register_fe.rst
frontends/snitch_fe.rst
frontends/ariane_fe.rst
frontends/descriptor_fe.rst
8 changes: 0 additions & 8 deletions doc/src/frontends/ariane_fe.rst

This file was deleted.

17 changes: 17 additions & 0 deletions doc/src/frontends/descriptor_fe.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Linux Frontend
=====================

Frontend for Ariane (CVA6) ready for Linux use.

.. only:: html

- `descriptor-based frontend <../regs/idma_desc64.html>`_

Morty docs:

.. only:: html

- `Morty docs <../idma_desc64_synth/index.html>`_

.. image:: ../../fig/graph/idma_desc64_synth.png
:width: 600
3 changes: 1 addition & 2 deletions doc/src/frontends/register_fe.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,5 @@ Currently supported are:

.. only:: html

- `32bit 2D register frontend <../regs/idma_reg32_2d.html>`_
- `64bit register frontend <../regs/idma_reg64.html>`_
- `32bit 3D register frontend <../regs/idma_reg32_3d.html>`_
- `64bit 2D register frontend <../regs/idma_reg64_2d.html>`_
5 changes: 5 additions & 0 deletions idma.mk
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,11 @@ IDMA_RTL_DOC_ALL += $(IDMA_DOC_FIG_DIR)/graph/idma_nd_backend_synth.png
IDMA_RTL_DOC_ALL += $(IDMA_HTML_DIR)/idma_nd_backend_synth/index.html
IDMA_PICKLE_ALL += $(IDMA_PICKLE_DIR)/idma_nd_backend_synth.sv

# descriptor-based frontend
IDMA_RTL_DOC_ALL += $(IDMA_DOC_FIG_DIR)/graph/idma_desc64_synth.png
IDMA_RTL_DOC_ALL += $(IDMA_HTML_DIR)/idma_desc64_synth/index.html
IDMA_PICKLE_ALL += $(IDMA_PICKLE_DIR)/idma_desc64_synth.sv


# --------------
# QuestaSim
Expand Down
20 changes: 20 additions & 0 deletions jobs/jobs.json
Original file line number Diff line number Diff line change
Expand Up @@ -131,5 +131,25 @@
"proc_id" : "rw_axi",
"testbench": "tb_idma_nd_backend",
"synth_top": "idma_nd_backend_synth"
},
"desc64": {
"jobs" : {
"simple" : "jobs.json"
},
"params" : {
},
"proc_id" : "rw_axi",
"testbench" : "tb_idma_desc64_top",
"synth_top" : "idma_desc64_synth"
},
"desc64_dma": {
"jobs" : {
"simple" : "jobs.json"
},
"params" : {
},
"proc_id" : "rw_axi",
"testbench" : "tb_idma_desc64_bench",
"synth_top" : "idma_desc64_synth"
}
}
4 changes: 2 additions & 2 deletions src/frontend/desc64/idma_desc64.hjson
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Copyright 2022 ETH Zurich and University of Bologna.
// Copyright 2023 ETH Zurich and University of Bologna.
// Solderpad Hardware License, Version 0.51, see LICENSE for details.
// SPDX-License-Identifier: SHL-0.51

// Authors:
// - Axel Vanoni <axvanoni@student.ethz.ch>
// - Axel Vanoni <[email protected]>

{
name: idma_desc64
Expand Down
Loading

0 comments on commit 0ba9334

Please sign in to comment.