GSoC19 Phase 2 Week 1

Weekly Report

Posted by Bowen on July 7, 2019

Hi, this is my weekly report this week.


Progress this week

I created a new block named verilog_axi_ii. This block is a sync block with a simplified AXI4-Stream interface. You can find this new block here.

In detail, I incorporated the functionality of the generate_verilator_file() into generate_so(). Because I found that I could do both things at once with just one Makefile.

I also finished and tested the Makefile template axi_module_cl.mk for the AXI-stream interface, this file could call Verilator to compile the Verilog file then generate the shared library. You can find this Makefile here. Here, in order to simplify the process, I fixed the module name generated by Verilator to Vaxi_module. User Verilog module should have following interface.

/*
 * AXI signals:
 * ACLK               input
 * ARESETn            input
 * TVALID_IN          input
 * TREADY_IN          output
 * TVALID_OUT         output
 * TREADY_OUT         input
 * TDATA_IN[31:0]     input
 * TDATA_OUT[31:0]    output
 */

I finished the template of the shared library code axi_module.h and axi_module.cpp, but I did not test them yet. The shared library interface is as below. You could find axi_module.h here and axi_module.cpp here.

void AXI_init();

void AXI_reset();

void AXI_transfer(const unsigned int &gr_input,
                  unsigned int &gr_output,
                  unsigned int &time);

void AXI_nop();

void AXI_close();

Plan next week

I think I have completed the main part of this block. I plan to let verilog_axi_ii run next week and test it with a small Verilog module.

Issue(s)


See you next week.