blob: d90f415b896617998f69b880699923f87e5e0f1b [file] [log] [blame]
diff --git a/src/Plugins/VerilatorPlugin/VerilatorIntegrationLibrary/hdl/modules/axi/renode_axi_if.sv b/src/Plugins/VerilatorPlugin/VerilatorIntegrationLibrary/hdl/modules/axi/renode_axi_if.sv
index 9b4d0318..3ccc5f64 100644
--- a/src/Plugins/VerilatorPlugin/VerilatorIntegrationLibrary/hdl/modules/axi/renode_axi_if.sv
+++ b/src/Plugins/VerilatorPlugin/VerilatorIntegrationLibrary/hdl/modules/axi/renode_axi_if.sv
@@ -7,7 +7,7 @@
interface renode_axi_if #(
int unsigned AddressWidth = 32,
- int unsigned DataWidth = 32,
+ int unsigned DataWidth = 128,
int unsigned TransactionIdWidth = 8
) (
input logic aclk
diff --git a/src/Plugins/VerilatorPlugin/VerilatorIntegrationLibrary/src/buses/axi.cpp b/src/Plugins/VerilatorPlugin/VerilatorIntegrationLibrary/src/buses/axi.cpp
index 4df493fb..29cf25e3 100644
--- a/src/Plugins/VerilatorPlugin/VerilatorIntegrationLibrary/src/buses/axi.cpp
+++ b/src/Plugins/VerilatorPlugin/VerilatorIntegrationLibrary/src/buses/axi.cpp
@@ -9,8 +9,8 @@
BaseAxi::BaseAxi(uint32_t dataWidth, uint32_t addrWidth)
{
- if(dataWidth != 32)
- throw "Unsupported AXI data width";
+ if(dataWidth > 128)
+ throw "Unsupported AXI data width";
this->dataWidth = dataWidth;
@@ -90,9 +90,9 @@ uint64_t Axi::read(int width, uint64_t addr)
{
uint64_t result;
*arvalid = 1;
*arlen = 0; // TODO: Variable read length
- *arsize = 2; // TODO: Variable read width
+ *arsize = std::log2(width);
*arburst = static_cast<uint8_t>(AxiBurstType::INCR);
*araddr = addr;