Instruction Tracing#3071
Conversation
More testing in real conditions pinpointed some bugs: * `iretire` value was sometimes off by 1 because `counter_o` was not cleared correctly in instr_to_trace * A dimension was redundant in the `itype` field of iti_to_encoder * `valid_o` in cva6_iti was not being cleared when the output was not valid * Reset value fix for enum itype and priv
* Added modularity to the ITI module to ensure compatibility with an instruction-by-instruction encoder configuration (`block_mode = 0`) * Moved the code to corev_apu/instr_tracing/ITI for better project structure * Modified the `iti_test.sh` to accept an executable as an argument * ITI is integrated into `ariane_xilinx.sv` and `ariane_testharness.sv`
* Add `dpti_ctrl.vhd` from Digilent in the `ariane_xilinx.sv` platform * Add in the fpga flow the tcl files to build `xlnx_dpti_clk` needed for the dpti_ctrl * Add `slicer_DPTI.sv` to convert encapsulated packet (320 bits) into slices (8 bits) * Add constraints in `ariane.xdc` and `genesy-2.xdc` to correctly synthesize with Vivado 2018.2 * Modify the Makefile to add dpti in the fpga build
* Adding script for debug and format conversion in /Decapsuler * Adding in /SW the Receiver_DPTI that catch slices, reconstruct encapsulated packet and decapsulate them * Adding json files in /SW/FPGA_auto to custom Vscode in order to automate remote debugging (with openocd, gdb)
* Add Documentation about Instruction Tracing, the work done, the choice made, the work that remains to be done * Upgrading the previous CI Test using the referenceFlow from the E-Trace Specification for greater robustness and modularity
| assign rvfi_csr_o.``CSR_NAME``.wdata = CSR_ENABLE_COND ? { {{CVA6Cfg.XLEN-$bits(CSR_SOURCE_NAME)}, CSR_SOURCE_NAME} } : 0; \ | ||
| assign rvfi_csr_o.``CSR_NAME``.rmask = CSR_ENABLE_COND ? 1 : 0; \ | ||
| assign rvfi_csr_o.``CSR_NAME``.wmask = (rvfi_csr_o.``CSR_NAME``.rdata != {{CVA6Cfg.XLEN - $bits(CSR_SOURCE_NAME)}, CSR_SOURCE_NAME}) && CSR_ENABLE_COND; | ||
| `define CONNECT_RVFI_FULL(CSR_ENABLE_COND, CSR_NAME, CSR_SOURCE_NAME) \ |
There was a problem hiding this comment.
[verible-verilog-format] reported by reviewdog 🐶
| `define CONNECT_RVFI_FULL(CSR_ENABLE_COND, CSR_NAME, CSR_SOURCE_NAME) \ | |
| `define CONNECT_RVFI_FULL(CSR_ENABLE_COND, CSR_NAME, | |
| CSR_SOURCE_NAME) \ |
|
|
||
| `CONNECT_RVFI_FULL(CVA6Cfg.RVS, sstatus, | ||
| csr.mstatus_extended & SMODE_STATUS_READ_MASK[CVA6Cfg.XLEN-1:0]) | ||
| `CONNECT_RVFI_FULL(CVA6Cfg.RVS, sstatus, csr.mstatus_extended & SMODE_STATUS_READ_MASK[CVA6Cfg.XLEN-1:0]) |
There was a problem hiding this comment.
[verible-verilog-format] reported by reviewdog 🐶
| `CONNECT_RVFI_FULL(CVA6Cfg.RVS, sstatus, csr.mstatus_extended & SMODE_STATUS_READ_MASK[CVA6Cfg.XLEN-1:0]) | |
| `CONNECT_RVFI_FULL(CVA6Cfg.RVS, sstatus, | |
| csr.mstatus_extended & SMODE_STATUS_READ_MASK[CVA6Cfg.XLEN-1:0]) |
| for (i = 0; i < 16; i++) begin | ||
| `CONNECT_RVFI_FULL(1'b1, pmpaddr[i], { | ||
| csr.pmpaddr_q[i][CVA6Cfg.PLEN-3:1], pmpcfg_q[i].addr_mode[1]}) | ||
| `CONNECT_RVFI_FULL(1'b1, pmpaddr[i], {csr.pmpaddr_q[i][CVA6Cfg.PLEN-3:1], pmpcfg_q[i].addr_mode[1]}) |
There was a problem hiding this comment.
[verible-verilog-format] reported by reviewdog 🐶
| `CONNECT_RVFI_FULL(1'b1, pmpaddr[i], {csr.pmpaddr_q[i][CVA6Cfg.PLEN-3:1], pmpcfg_q[i].addr_mode[1]}) | |
| `CONNECT_RVFI_FULL(1'b1, pmpaddr[i], { | |
| csr.pmpaddr_q[i][CVA6Cfg.PLEN-3:1], pmpcfg_q[i].addr_mode[1]}) |
|
❌ failed run, report available here. |
5257789 to
7fd2aa3
Compare
|
❌ failed run, report available here. |
2 similar comments
|
❌ failed run, report available here. |
|
❌ failed run, report available here. |
Co-authored-by: ALLART Come <come.allart@thalesgroup.com>
|
❌ failed run, report available here. |
3 similar comments
|
❌ failed run, report available here. |
|
❌ failed run, report available here. |
|
❌ failed run, report available here. |
|
@MaxCThales The PR breaks the GitHub CI. It cannot be integrated. Any ideas ? |
|
❌ failed run, report available here. |
|
👋 Hi there! This pull request seems inactive. Need more help or have updates? Feel free to let us know. If there are no updates within the next few days, we'll go ahead and close this PR. 😊 |
# Conflicts: # corev_apu/instr_tracing/ITI/cva6_iti/iti.sv
8f27f99 to
46cf1ac
Compare
4ec8741 to
14a65ac
Compare
6c6346a to
0c81893
Compare
0ab76ea to
e6123e7
Compare
|
❌ failed run, report available here. |
|
Great work @MaxCThales ! Thanks a lot |
Integration of instr_tracing in corev_apu --------- Co-authored-by: ALLART Come <come.allart@thalesgroup.com> Co-authored-by: Guillaume Chauvon <guillaume.chauvon@thalesgroup.com> Co-authored-by: Coulon Jean Roch <jean-roch.coulon@thalesgroup.com>
Integration of instr_tracing in corev_apu --------- Co-authored-by: ALLART Come <come.allart@thalesgroup.com> Co-authored-by: Guillaume Chauvon <guillaume.chauvon@thalesgroup.com> Co-authored-by: Coulon Jean Roch <jean-roch.coulon@thalesgroup.com>
Integration of instr_tracing in corev_apu