40 lines
1020 B
Systemverilog
40 lines
1020 B
Systemverilog
`timescale 1ns / 1ps
|
|
|
|
import lynxTypes::*;
|
|
|
|
`include "axi_macros.svh"
|
|
|
|
/**
|
|
* Perf local example
|
|
*
|
|
*/
|
|
module perf_local (
|
|
AXI4SR.s axis_sink,
|
|
AXI4SR.m axis_src,
|
|
|
|
input logic aclk,
|
|
input logic aresetn
|
|
);
|
|
|
|
// I/O
|
|
AXI4SR axis_sink_int ();
|
|
AXI4SR axis_src_int ();
|
|
|
|
axisr_reg inst_reg_sink (.aclk(aclk), .aresetn(aresetn), .s_axis(axis_sink), .m_axis(axis_sink_int));
|
|
axisr_reg inst_reg_src (.aclk(aclk), .aresetn(aresetn), .s_axis(axis_src_int), .m_axis(axis_src));
|
|
|
|
// UL
|
|
always_comb begin
|
|
axis_src_int.tvalid = axis_sink_int.tvalid;
|
|
for(int i = 0; i < 16; i++)
|
|
axis_src_int.tdata[i*32+:32] = axis_sink_int.tdata[i*32+:32] + 1;
|
|
axis_src_int.tkeep = axis_sink_int.tkeep;
|
|
axis_src_int.tid = axis_sink_int.tid;
|
|
axis_src_int.tlast = axis_sink_int.tlast;
|
|
axis_src_int.tid = 0;
|
|
|
|
axis_sink_int.tready = axis_src_int.tready;
|
|
end
|
|
|
|
endmodule
|