Commit 5046855e authored by Lavanya J's avatar Lavanya J Committed by Neel Gala
Browse files

Resolve "manager.sh fix"

parent 95e83521
......@@ -3,6 +3,13 @@ CHANGELOG
This project adheres to `Semantic Versioning <https://semver.org/spec/v2.0.0.html>`_.
[1.1.4] - 2020-05-29
--------------------
- fixed manager.sh resolving clone issue
- fixed data and write strobe alignment in axi2apb and axi2axil bridges, when AXI data width >
target data width.
[1.1.3] - 2020-05-24
--------------------
......
......@@ -101,10 +101,13 @@ module mkaxi2apb(Ifc_axi2apb#(axi_id, axi_addr, axi_data, apb_addr, apb_data, us
Log#(apb_bytes, lg_apb_bytes),
Div#(axi_data, apb_data, child_count),
Add#(d__, apb_bytes, axi_bytes),
Log#(axi_bytes, axi_byte_size),
Add#(a__, TDiv#(apb_data, 8), TDiv#(axi_data, 8)), // strbs are also smaller
Add#(b__, 8, axi_addr),
Mul#(apb_data, c__, axi_data) // Apb is a byte multiple of axi_data
Mul#(apb_data, c__, axi_data), // Apb is a byte multiple of axi_data
Add#(e__, axi_byte_size, axi_addr),
Add#(f__, apb_bytes, TDiv#(axi_data, 8))
);
let v_axi_data = valueOf(axi_data);
......@@ -309,12 +312,15 @@ module mkaxi2apb(Ifc_axi2apb#(axi_id, axi_addr, axi_data, apb_addr, apb_data, us
rule rl_write_frm_axi (rg_state == Idle);
let axi_req <- pop_o(axi_xactor.fifo_side.o_wr_addr);
let axi_wreq = axi_xactor.fifo_side.o_wr_data.first;
Bit#(axi_byte_size) axi4_byte_index = truncate(axi_req.awaddr);
Bit#(apb_bytes) apb_wstrb = truncate(axi_wreq.wstrb >> axi4_byte_index);
Bit#(apb_data) apb_data_ = truncate(axi_wreq.wdata >> {axi4_byte_index, 3'b0});
APB_request #(apb_addr, apb_data, user) apb_request = APB_request {
paddr : truncate(axi_req.awaddr),
prot : axi_req.awprot,
pwrite: True,
pwdata: truncate(axi_wreq.wdata),
pstrb : truncate(axi_wreq.wstrb),
pwdata: apb_data_,
pstrb : apb_wstrb,
puser : axi_req.awuser};
apb_xactor.fifo_side.i_request.enq(apb_request);
rg_wr_request <= axi_req;
......@@ -450,7 +456,9 @@ instance Connectable #(Ifc_axi4_master #(axi_id, axi_addr, axi_data, user),
Add#(a__, TDiv#(apb_data, 8), TDiv#(axi_data, 8)), // strbs are also smaller
Add#(b__, 8, axi_addr),
Mul#(apb_data, c__, axi_data) // Apb is a byte multiple of axi_data
Mul#(apb_data, c__, axi_data), // Apb is a byte multiple of axi_data
Add#(e__, TLog#(axi_bytes), axi_addr),
Add#(f__, apb_bytes, TDiv#(axi_data, 8))
);
module mkConnection #(Ifc_axi4_master #(axi_id, axi_addr, axi_data, user) axi4_side,
Ifc_apb_slave #(apb_addr, apb_data, user) apb_side)
......@@ -475,7 +483,9 @@ instance Connectable #(Ifc_apb_slave #(apb_addr, apb_data, user),
Add#(a__, TDiv#(apb_data, 8), TDiv#(axi_data, 8)), // strbs are also smaller
Add#(b__, 8, axi_addr),
Mul#(apb_data, c__, axi_data) // Apb is a byte multiple of axi_data
Mul#(apb_data, c__, axi_data), // Apb is a byte multiple of axi_data
Add#(e__, TLog#(axi_bytes), axi_addr),
Add#(f__, apb_bytes, TDiv#(axi_data, 8))
);
module mkConnection #(Ifc_apb_slave #(apb_addr, apb_data, user) apb_side,
Ifc_axi4_master #(axi_id, axi_addr, axi_data, user) axi4_side )
......
This diff is collapsed.
......@@ -74,6 +74,9 @@ APB data size. A beat is complete only when its corresponding child-bursts are o
single-beat address is generated based on the burst-mode request and the burst size. Thus, the
bridge can support all AXI4 burst-modes: incr, fixed and wrap.
Also when the source (AXI4 side) data size is larger then the target (APB side), the data bytes and
the write strobes are aligned based on the address to reflect correctly on the target side.
When instantiated with same data-sizes, the child-burst logic is ommitted.
Error mapping
......
......@@ -73,6 +73,9 @@ AXI4-Lite data size. A beat is complete only when its corresponding child-bursts
single-beat address is generated based on the burst-mode request and the burst size. Thus, the
bridge can support all AXI4 burst-modes: incr, fixed and wrap.
Also when the source (AXI4 side) data size is larger then the target (AXI4-Lite side), the data bytes and
the write strobes are aligned based on the address to reflect correctly on the target side.
When instantiated with same data-sizes, the child-burst logic is ommitted.
Error mapping
......
......@@ -39,7 +39,6 @@ usage () {
}
nuke () {
make restore
for i in ${!repo_list[*]}; do
local dirname=$(extract_name "${repo_list[$i]}")
echo "Deleting folder: ${dirname}"
......@@ -74,7 +73,7 @@ update_deps () {
(cd $DEPS_FOLDER/$dirname; git pull origin ${branch_list[$i]})
else
echo "Cloning Repo: " ${repo_list[$i]}
git clone ${repo_list[$i]} $DEPS_FOLDER/$dirname --recursive
git clone ${repo_list[$i]}.git $DEPS_FOLDER/$dirname --recursive
(cd $DEPS_FOLDER/$dirname; git checkout ${branch_list[$i]})
(cd $DEPS_FOLDER/$dirname; git submodule update --init --recursive)
fi
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment