54 #include "axi_protocol_converter.h"
63 #ifdef XILINX_SIMULATOR
64 design_1_auto_pc_0::design_1_auto_pc_0(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_0_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_araddr(
"s_axi_araddr"),
s_axi_arlen(
"s_axi_arlen"),
s_axi_arsize(
"s_axi_arsize"),
s_axi_arburst(
"s_axi_arburst"),
s_axi_arlock(
"s_axi_arlock"),
s_axi_arcache(
"s_axi_arcache"),
s_axi_arprot(
"s_axi_arprot"),
s_axi_arregion(
"s_axi_arregion"),
s_axi_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rdata(
"s_axi_rdata"),
s_axi_rresp(
"s_axi_rresp"),
s_axi_rlast(
"s_axi_rlast"),
s_axi_rvalid(
"s_axi_rvalid"),
s_axi_rready(
"s_axi_rready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arlen(
"m_axi_arlen"),
m_axi_arsize(
"m_axi_arsize"),
m_axi_arburst(
"m_axi_arburst"),
m_axi_arlock(
"m_axi_arlock"),
m_axi_arcache(
"m_axi_arcache"),
m_axi_arprot(
"m_axi_arprot"),
m_axi_arqos(
"m_axi_arqos"),
m_axi_arvalid(
"m_axi_arvalid"),
m_axi_arready(
"m_axi_arready"),
m_axi_rdata(
"m_axi_rdata"),
m_axi_rresp(
"m_axi_rresp"),
m_axi_rlast(
"m_axi_rlast"),
m_axi_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready"),mp_S_AXI_wr_socket_stub(nullptr),mp_M_AXI_wr_socket_stub(nullptr)
72 mp_S_AXI_transactor = NULL;
73 mp_s_axi_arlock_converter = NULL;
74 mp_M_AXI_transactor = NULL;
75 mp_m_axi_arlen_converter = NULL;
76 mp_m_axi_arlock_converter = NULL;
79 mp_S_AXI_wr_socket_stub = NULL;
80 mp_M_AXI_wr_socket_stub = NULL;
84 void design_1_auto_pc_0::before_end_of_elaboration()
88 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"S_AXI_TLM_MODE") != 1)
91 mp_S_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"wr_socket", 0);
94 xsc::common_cpp::properties S_AXI_transactor_param_props;
95 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
96 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
97 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
98 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
99 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
100 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
101 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
102 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
103 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
104 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
105 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
106 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
107 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
108 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
109 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"1");
110 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
111 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
112 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
113 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
114 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
115 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
116 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"256");
117 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
118 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
119 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
120 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
121 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
122 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
123 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
124 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4");
125 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
126 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
128 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<64,32,1,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
136 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<1>(
"s_axi_arlock_converter");
138 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
139 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
151 mp_S_AXI_transactor->CLK(aclk);
152 mp_S_AXI_transactor->RST(
aresetn);
156 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
157 mp_impl->target_wr_socket->bind(mp_S_AXI_wr_socket_stub->initiator_socket);
165 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"M_AXI_TLM_MODE") != 1)
168 mp_M_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"wr_socket", 0);
171 xsc::common_cpp::properties M_AXI_transactor_param_props;
172 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
173 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
174 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
175 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
176 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
177 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
178 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
179 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
180 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
181 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
182 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
183 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
184 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
185 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
186 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
187 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
188 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
189 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
190 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
191 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
192 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
193 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
194 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
195 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
196 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
197 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
198 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
199 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
200 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
201 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
202 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
203 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
205 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<64,32,1,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
210 mp_m_axi_arlen_converter =
new xsc::common::vector2vector_converter<8,4>(
"m_axi_arlen_converter");
211 mp_m_axi_arlen_converter->vector_in(m_m_axi_arlen_converter_signal);
213 mp_M_AXI_transactor->ARLEN(m_m_axi_arlen_converter_signal);
216 mp_m_axi_arlock_converter =
new xsc::common::scalar2vectorN_converter<2>(
"m_axi_arlock_converter");
217 mp_m_axi_arlock_converter->scalar_in(m_m_axi_arlock_converter_signal);
219 mp_M_AXI_transactor->ARLOCK(m_m_axi_arlock_converter_signal);
230 mp_M_AXI_transactor->CLK(aclk);
231 mp_M_AXI_transactor->RST(
aresetn);
235 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
236 mp_impl->initiator_wr_socket->bind(mp_M_AXI_wr_socket_stub->target_socket);
244 #endif // XILINX_SIMULATOR
250 design_1_auto_pc_0::design_1_auto_pc_0(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_0_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_araddr(
"s_axi_araddr"),
s_axi_arlen(
"s_axi_arlen"),
s_axi_arsize(
"s_axi_arsize"),
s_axi_arburst(
"s_axi_arburst"),
s_axi_arlock(
"s_axi_arlock"),
s_axi_arcache(
"s_axi_arcache"),
s_axi_arprot(
"s_axi_arprot"),
s_axi_arregion(
"s_axi_arregion"),
s_axi_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rdata(
"s_axi_rdata"),
s_axi_rresp(
"s_axi_rresp"),
s_axi_rlast(
"s_axi_rlast"),
s_axi_rvalid(
"s_axi_rvalid"),
s_axi_rready(
"s_axi_rready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arlen(
"m_axi_arlen"),
m_axi_arsize(
"m_axi_arsize"),
m_axi_arburst(
"m_axi_arburst"),
m_axi_arlock(
"m_axi_arlock"),
m_axi_arcache(
"m_axi_arcache"),
m_axi_arprot(
"m_axi_arprot"),
m_axi_arqos(
"m_axi_arqos"),
m_axi_arvalid(
"m_axi_arvalid"),
m_axi_arready(
"m_axi_arready"),
m_axi_rdata(
"m_axi_rdata"),
m_axi_rresp(
"m_axi_rresp"),
m_axi_rlast(
"m_axi_rlast"),
m_axi_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready"),mp_S_AXI_wr_socket_stub(nullptr),mp_M_AXI_wr_socket_stub(nullptr)
258 mp_S_AXI_transactor = NULL;
259 mp_s_axi_arlock_converter = NULL;
260 mp_M_AXI_transactor = NULL;
261 mp_m_axi_arlen_converter = NULL;
262 mp_m_axi_arlock_converter = NULL;
265 mp_S_AXI_wr_socket_stub = NULL;
266 mp_M_AXI_wr_socket_stub = NULL;
270 void design_1_auto_pc_0::before_end_of_elaboration()
274 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"S_AXI_TLM_MODE") != 1)
277 mp_S_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"wr_socket", 0);
280 xsc::common_cpp::properties S_AXI_transactor_param_props;
281 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
282 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
283 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
284 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
285 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
286 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
287 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
288 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
289 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
290 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
291 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
292 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
293 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
294 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
295 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"1");
296 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
297 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
298 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
299 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
300 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
301 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
302 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"256");
303 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
304 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
305 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
306 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
307 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
308 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
309 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
310 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4");
311 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
312 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
314 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<64,32,1,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
322 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<1>(
"s_axi_arlock_converter");
324 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
325 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
337 mp_S_AXI_transactor->CLK(aclk);
338 mp_S_AXI_transactor->RST(
aresetn);
342 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
343 mp_impl->target_wr_socket->bind(mp_S_AXI_wr_socket_stub->initiator_socket);
351 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"M_AXI_TLM_MODE") != 1)
354 mp_M_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"wr_socket", 0);
357 xsc::common_cpp::properties M_AXI_transactor_param_props;
358 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
359 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
360 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
361 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
362 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
363 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
364 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
365 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
366 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
367 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
368 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
369 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
370 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
371 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
372 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
373 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
374 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
375 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
376 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
377 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
378 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
379 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
380 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
381 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
382 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
383 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
384 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
385 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
386 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
387 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
388 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
389 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
391 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<64,32,1,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
396 mp_m_axi_arlen_converter =
new xsc::common::vector2vector_converter<8,4>(
"m_axi_arlen_converter");
397 mp_m_axi_arlen_converter->vector_in(m_m_axi_arlen_converter_signal);
399 mp_M_AXI_transactor->ARLEN(m_m_axi_arlen_converter_signal);
402 mp_m_axi_arlock_converter =
new xsc::common::scalar2vectorN_converter<2>(
"m_axi_arlock_converter");
403 mp_m_axi_arlock_converter->scalar_in(m_m_axi_arlock_converter_signal);
405 mp_M_AXI_transactor->ARLOCK(m_m_axi_arlock_converter_signal);
416 mp_M_AXI_transactor->CLK(aclk);
417 mp_M_AXI_transactor->RST(
aresetn);
421 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
422 mp_impl->initiator_wr_socket->bind(mp_M_AXI_wr_socket_stub->target_socket);
436 design_1_auto_pc_0::design_1_auto_pc_0(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_0_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_araddr(
"s_axi_araddr"),
s_axi_arlen(
"s_axi_arlen"),
s_axi_arsize(
"s_axi_arsize"),
s_axi_arburst(
"s_axi_arburst"),
s_axi_arlock(
"s_axi_arlock"),
s_axi_arcache(
"s_axi_arcache"),
s_axi_arprot(
"s_axi_arprot"),
s_axi_arregion(
"s_axi_arregion"),
s_axi_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rdata(
"s_axi_rdata"),
s_axi_rresp(
"s_axi_rresp"),
s_axi_rlast(
"s_axi_rlast"),
s_axi_rvalid(
"s_axi_rvalid"),
s_axi_rready(
"s_axi_rready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arlen(
"m_axi_arlen"),
m_axi_arsize(
"m_axi_arsize"),
m_axi_arburst(
"m_axi_arburst"),
m_axi_arlock(
"m_axi_arlock"),
m_axi_arcache(
"m_axi_arcache"),
m_axi_arprot(
"m_axi_arprot"),
m_axi_arqos(
"m_axi_arqos"),
m_axi_arvalid(
"m_axi_arvalid"),
m_axi_arready(
"m_axi_arready"),
m_axi_rdata(
"m_axi_rdata"),
m_axi_rresp(
"m_axi_rresp"),
m_axi_rlast(
"m_axi_rlast"),
m_axi_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready"),mp_S_AXI_wr_socket_stub(nullptr),mp_M_AXI_wr_socket_stub(nullptr)
444 mp_S_AXI_transactor = NULL;
445 mp_s_axi_arlock_converter = NULL;
446 mp_M_AXI_transactor = NULL;
447 mp_m_axi_arlen_converter = NULL;
448 mp_m_axi_arlock_converter = NULL;
451 mp_S_AXI_wr_socket_stub = NULL;
452 mp_M_AXI_wr_socket_stub = NULL;
456 void design_1_auto_pc_0::before_end_of_elaboration()
460 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"S_AXI_TLM_MODE") != 1)
463 mp_S_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"wr_socket", 0);
466 xsc::common_cpp::properties S_AXI_transactor_param_props;
467 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
468 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
469 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
470 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
471 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
472 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
473 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
474 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
475 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
476 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
477 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
478 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
479 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
480 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
481 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"1");
482 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
483 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
484 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
485 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
486 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
487 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
488 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"256");
489 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
490 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
491 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
492 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
493 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
494 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
495 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
496 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4");
497 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
498 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
500 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<64,32,1,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
508 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<1>(
"s_axi_arlock_converter");
510 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
511 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
523 mp_S_AXI_transactor->CLK(aclk);
524 mp_S_AXI_transactor->RST(
aresetn);
528 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
529 mp_impl->target_wr_socket->bind(mp_S_AXI_wr_socket_stub->initiator_socket);
537 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"M_AXI_TLM_MODE") != 1)
540 mp_M_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"wr_socket", 0);
543 xsc::common_cpp::properties M_AXI_transactor_param_props;
544 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
545 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
546 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
547 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
548 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
549 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
550 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
551 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
552 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
553 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
554 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
555 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
556 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
557 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
558 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
559 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
560 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
561 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
562 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
563 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
564 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
565 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
566 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
567 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
568 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
569 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
570 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
571 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
572 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
573 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
574 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
575 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
577 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<64,32,1,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
582 mp_m_axi_arlen_converter =
new xsc::common::vector2vector_converter<8,4>(
"m_axi_arlen_converter");
583 mp_m_axi_arlen_converter->vector_in(m_m_axi_arlen_converter_signal);
585 mp_M_AXI_transactor->ARLEN(m_m_axi_arlen_converter_signal);
588 mp_m_axi_arlock_converter =
new xsc::common::scalar2vectorN_converter<2>(
"m_axi_arlock_converter");
589 mp_m_axi_arlock_converter->scalar_in(m_m_axi_arlock_converter_signal);
591 mp_M_AXI_transactor->ARLOCK(m_m_axi_arlock_converter_signal);
602 mp_M_AXI_transactor->CLK(aclk);
603 mp_M_AXI_transactor->RST(
aresetn);
607 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
608 mp_impl->initiator_wr_socket->bind(mp_M_AXI_wr_socket_stub->target_socket);
622 design_1_auto_pc_0::design_1_auto_pc_0(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_0_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_araddr(
"s_axi_araddr"),
s_axi_arlen(
"s_axi_arlen"),
s_axi_arsize(
"s_axi_arsize"),
s_axi_arburst(
"s_axi_arburst"),
s_axi_arlock(
"s_axi_arlock"),
s_axi_arcache(
"s_axi_arcache"),
s_axi_arprot(
"s_axi_arprot"),
s_axi_arregion(
"s_axi_arregion"),
s_axi_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rdata(
"s_axi_rdata"),
s_axi_rresp(
"s_axi_rresp"),
s_axi_rlast(
"s_axi_rlast"),
s_axi_rvalid(
"s_axi_rvalid"),
s_axi_rready(
"s_axi_rready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arlen(
"m_axi_arlen"),
m_axi_arsize(
"m_axi_arsize"),
m_axi_arburst(
"m_axi_arburst"),
m_axi_arlock(
"m_axi_arlock"),
m_axi_arcache(
"m_axi_arcache"),
m_axi_arprot(
"m_axi_arprot"),
m_axi_arqos(
"m_axi_arqos"),
m_axi_arvalid(
"m_axi_arvalid"),
m_axi_arready(
"m_axi_arready"),
m_axi_rdata(
"m_axi_rdata"),
m_axi_rresp(
"m_axi_rresp"),
m_axi_rlast(
"m_axi_rlast"),
m_axi_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready"),mp_S_AXI_wr_socket_stub(nullptr),mp_M_AXI_wr_socket_stub(nullptr)
629 mp_S_AXI_transactor = NULL;
630 mp_s_axi_arlock_converter = NULL;
631 mp_M_AXI_transactor = NULL;
632 mp_m_axi_arlen_converter = NULL;
633 mp_m_axi_arlock_converter = NULL;
636 mp_S_AXI_wr_socket_stub = NULL;
637 mp_M_AXI_wr_socket_stub = NULL;
640 xsc::common_cpp::properties S_AXI_transactor_param_props;
641 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
642 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
643 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
644 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
645 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
646 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
647 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
648 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
649 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
650 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
651 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
652 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
653 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
654 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
655 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"1");
656 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
657 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
658 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
659 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
660 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
661 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
662 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"256");
663 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
664 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
665 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
666 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
667 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
668 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
669 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
670 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4");
671 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
672 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
674 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<64,32,1,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
679 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<1>(
"s_axi_arlock_converter");
681 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
682 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
694 mp_S_AXI_transactor->CLK(aclk);
695 mp_S_AXI_transactor->RST(
aresetn);
697 xsc::common_cpp::properties M_AXI_transactor_param_props;
698 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
699 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
700 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
701 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
702 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
703 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
704 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
705 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
706 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
707 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
708 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
709 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
710 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
711 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
712 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
713 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
714 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
715 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
716 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
717 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
718 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
719 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
720 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
721 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
722 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
723 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
724 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
725 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
726 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
727 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
728 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
729 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
731 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<64,32,1,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
733 mp_m_axi_arlen_converter =
new xsc::common::vector2vector_converter<8,4>(
"m_axi_arlen_converter");
734 mp_m_axi_arlen_converter->vector_in(m_m_axi_arlen_converter_signal);
736 mp_M_AXI_transactor->ARLEN(m_m_axi_arlen_converter_signal);
739 mp_m_axi_arlock_converter =
new xsc::common::scalar2vectorN_converter<2>(
"m_axi_arlock_converter");
740 mp_m_axi_arlock_converter->scalar_in(m_m_axi_arlock_converter_signal);
742 mp_M_AXI_transactor->ARLOCK(m_m_axi_arlock_converter_signal);
753 mp_M_AXI_transactor->CLK(aclk);
754 mp_M_AXI_transactor->RST(
aresetn);
757 S_AXI_transactor_target_rd_socket_stub =
nullptr;
758 M_AXI_transactor_initiator_rd_socket_stub =
nullptr;
762 void design_1_auto_pc_0::before_end_of_elaboration()
765 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"S_AXI_TLM_MODE") != 1)
767 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
768 mp_S_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"wr_socket", 0);
769 mp_impl->target_wr_socket->bind(mp_S_AXI_wr_socket_stub->initiator_socket);
774 S_AXI_transactor_target_rd_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"rd_socket",0);
775 S_AXI_transactor_target_rd_socket_stub->bind(*(mp_S_AXI_transactor->rd_socket));
776 mp_S_AXI_transactor->disable_transactor();
780 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"M_AXI_TLM_MODE") != 1)
782 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
783 mp_M_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"wr_socket", 0);
784 mp_impl->initiator_wr_socket->bind(mp_M_AXI_wr_socket_stub->target_socket);
789 M_AXI_transactor_initiator_rd_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"rd_socket",0);
790 M_AXI_transactor_initiator_rd_socket_stub->bind(*(mp_M_AXI_transactor->rd_socket));
791 mp_M_AXI_transactor->disable_transactor();
802 design_1_auto_pc_0::design_1_auto_pc_0(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_0_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_araddr(
"s_axi_araddr"),
s_axi_arlen(
"s_axi_arlen"),
s_axi_arsize(
"s_axi_arsize"),
s_axi_arburst(
"s_axi_arburst"),
s_axi_arlock(
"s_axi_arlock"),
s_axi_arcache(
"s_axi_arcache"),
s_axi_arprot(
"s_axi_arprot"),
s_axi_arregion(
"s_axi_arregion"),
s_axi_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rdata(
"s_axi_rdata"),
s_axi_rresp(
"s_axi_rresp"),
s_axi_rlast(
"s_axi_rlast"),
s_axi_rvalid(
"s_axi_rvalid"),
s_axi_rready(
"s_axi_rready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arlen(
"m_axi_arlen"),
m_axi_arsize(
"m_axi_arsize"),
m_axi_arburst(
"m_axi_arburst"),
m_axi_arlock(
"m_axi_arlock"),
m_axi_arcache(
"m_axi_arcache"),
m_axi_arprot(
"m_axi_arprot"),
m_axi_arqos(
"m_axi_arqos"),
m_axi_arvalid(
"m_axi_arvalid"),
m_axi_arready(
"m_axi_arready"),
m_axi_rdata(
"m_axi_rdata"),
m_axi_rresp(
"m_axi_rresp"),
m_axi_rlast(
"m_axi_rlast"),
m_axi_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready"),mp_S_AXI_wr_socket_stub(nullptr),mp_M_AXI_wr_socket_stub(nullptr)
809 mp_S_AXI_transactor = NULL;
810 mp_s_axi_arlock_converter = NULL;
811 mp_M_AXI_transactor = NULL;
812 mp_m_axi_arlen_converter = NULL;
813 mp_m_axi_arlock_converter = NULL;
816 mp_S_AXI_wr_socket_stub = NULL;
817 mp_M_AXI_wr_socket_stub = NULL;
820 xsc::common_cpp::properties S_AXI_transactor_param_props;
821 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
822 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
823 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
824 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
825 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
826 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
827 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
828 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
829 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
830 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
831 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
832 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
833 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
834 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
835 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"1");
836 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
837 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
838 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
839 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
840 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
841 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
842 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"256");
843 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
844 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
845 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
846 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
847 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
848 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
849 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
850 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4");
851 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
852 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
854 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<64,32,1,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
859 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<1>(
"s_axi_arlock_converter");
861 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
862 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
874 mp_S_AXI_transactor->CLK(aclk);
875 mp_S_AXI_transactor->RST(
aresetn);
877 xsc::common_cpp::properties M_AXI_transactor_param_props;
878 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"64");
879 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
880 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
881 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
882 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
883 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
884 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
885 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
886 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
887 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
888 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
889 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
890 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
891 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
892 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
893 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"0");
894 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"0");
895 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
896 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"1");
897 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
898 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
899 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
900 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"1");
901 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"1");
902 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
903 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
904 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
905 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
906 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
907 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
908 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_ONLY");
909 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
911 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<64,32,1,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
913 mp_m_axi_arlen_converter =
new xsc::common::vector2vector_converter<8,4>(
"m_axi_arlen_converter");
914 mp_m_axi_arlen_converter->vector_in(m_m_axi_arlen_converter_signal);
916 mp_M_AXI_transactor->ARLEN(m_m_axi_arlen_converter_signal);
919 mp_m_axi_arlock_converter =
new xsc::common::scalar2vectorN_converter<2>(
"m_axi_arlock_converter");
920 mp_m_axi_arlock_converter->scalar_in(m_m_axi_arlock_converter_signal);
922 mp_M_AXI_transactor->ARLOCK(m_m_axi_arlock_converter_signal);
933 mp_M_AXI_transactor->CLK(aclk);
934 mp_M_AXI_transactor->RST(
aresetn);
937 S_AXI_transactor_target_rd_socket_stub =
nullptr;
938 M_AXI_transactor_initiator_rd_socket_stub =
nullptr;
942 void design_1_auto_pc_0::before_end_of_elaboration()
945 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"S_AXI_TLM_MODE") != 1)
947 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
948 mp_S_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"wr_socket", 0);
949 mp_impl->target_wr_socket->bind(mp_S_AXI_wr_socket_stub->initiator_socket);
954 S_AXI_transactor_target_rd_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"rd_socket",0);
955 S_AXI_transactor_target_rd_socket_stub->bind(*(mp_S_AXI_transactor->rd_socket));
956 mp_S_AXI_transactor->disable_transactor();
960 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"M_AXI_TLM_MODE") != 1)
962 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
963 mp_M_AXI_wr_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"wr_socket", 0);
964 mp_impl->initiator_wr_socket->bind(mp_M_AXI_wr_socket_stub->target_socket);
969 M_AXI_transactor_initiator_rd_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"rd_socket",0);
970 M_AXI_transactor_initiator_rd_socket_stub->bind(*(mp_M_AXI_transactor->rd_socket));
971 mp_M_AXI_transactor->disable_transactor();
976 #endif // MTI_SYSTEMC
981 design_1_auto_pc_0::~design_1_auto_pc_0()
983 delete mp_S_AXI_transactor;
984 delete mp_s_axi_arlock_converter;
985 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"S_AXI_TLM_MODE") != 1)
987 delete mp_S_AXI_wr_socket_stub;
990 delete mp_M_AXI_transactor;
991 delete mp_m_axi_arlen_converter;
992 delete mp_m_axi_arlock_converter;
993 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_0",
"M_AXI_TLM_MODE") != 1)
995 delete mp_M_AXI_wr_socket_stub;
1001 SC_MODULE_EXPORT(design_1_auto_pc_0);
1005 XMSC_MODULE_EXPORT(design_1_auto_pc_0);
1009 SC_MODULE_EXPORT(design_1_auto_pc_0);