AXI Burst ReadΒΆ
Save the following script as axi_burst_read.py
from ta_py_lib.ta.app import *
from ta_py_lib.td.logic import *
from ta_py_lib.td.commands import *
td = new_timing_diagram(taApp)
start_script(td)
aclk = add_digital_clock(td, "ACLK", "H", 100.0e6)
set_rise_time(aclk, 0)
set_fall_time(aclk, 0)
araddr = add_digital_bus(td, "ARADDR[39:0]", "X", "Hex")
arvalid = add_digital_signal(td, "ARVALID", "L")
arready = add_digital_signal(td, "ARREADY", "X")
rdata = add_digital_bus(td, "RDATA[31:0]", "X", "Text")
rlast = add_digital_signal(td, "RLAST", "L")
rvalid = add_digital_signal(td, "RVALID", "L")
rready = add_digital_signal(td, "RREADY", "L")
add_edge(araddr, 103.0, "A")
add_edge(araddr, 123.0, "X")
add_edge_margin(arvalid, 102.0, 103.0, "H")
add_edge_margin(arvalid, 122.0, 123.0, "L")
add_edge(arready, 103.0, "L")
add_edge_margin(arready, 112.0, 113.0, "H")
add_edge(arready, 123.0, "X")
add_edge(rdata, 154.0, "D(A0)")
add_edge(rdata, 162.0, "X")
add_edge(rdata, 184.0, "D(A1)")
add_edge(rdata, 192.0, "X")
add_edge(rdata, 194.0, "D(A2)")
add_edge(rdata, 202.0, "X")
add_edge(rdata, 224.0, "D(A3)")
add_edge(rdata, 232.0, "X")
add_edge_margin(rlast, 223.0, 224.0, "H")
add_edge_margin(rlast, 231.0, 232.0, "L")
add_edge_margin(rvalid, 153.0, 154.0, "H")
add_edge_margin(rvalid, 161.0, 162.0, "L")
add_edge_margin(rvalid, 183.0, 184.0, "H")
add_edge_margin(rvalid, 191.0, 192.0, "L")
add_edge_margin(rvalid, 193.0, 194.0, "H")
add_edge_margin(rvalid, 201.0, 202.0, "L")
add_edge_margin(rvalid, 223.0, 224.0, "H")
add_edge_margin(rvalid, 231.0, 232.0, "L")
add_edge_margin(rready, 133.0, 134.0, "H")
add_edge_margin(rready, 161.0, 162.0, "L")
add_edge_margin(rready, 173.0, 174.0, "H")
add_edge_margin(rready, 191.0, 192.0, "L")
add_edge_margin(rready, 193.0, 194.0, "H")
add_edge_margin(rready, 211.0, 212.0, "L")
add_edge_margin(rready, 223.0, 224.0, "H")
add_edge_margin(rready, 231.0, 232.0, "L")
set_end_time(td, 300)
stop_script(td)
