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)
_images/axi_burst_read.png