54 #include "axi_protocol_converter.h"
63 #ifdef XILINX_SIMULATOR
64 design_1_auto_pc_1::design_1_auto_pc_1(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_1_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_awid(
"s_axi_awid"),
s_axi_awaddr(
"s_axi_awaddr"),
s_axi_awlen(
"s_axi_awlen"),
s_axi_awsize(
"s_axi_awsize"),
s_axi_awburst(
"s_axi_awburst"),
s_axi_awlock(
"s_axi_awlock"),
s_axi_awcache(
"s_axi_awcache"),
s_axi_awprot(
"s_axi_awprot"),
s_axi_awqos(
"s_axi_awqos"),
s_axi_awvalid(
"s_axi_awvalid"),
s_axi_awready(
"s_axi_awready"),
s_axi_wid(
"s_axi_wid"),
s_axi_wdata(
"s_axi_wdata"),
s_axi_wstrb(
"s_axi_wstrb"),
s_axi_wlast(
"s_axi_wlast"),
s_axi_wvalid(
"s_axi_wvalid"),
s_axi_wready(
"s_axi_wready"),
s_axi_bid(
"s_axi_bid"),
s_axi_bresp(
"s_axi_bresp"),
s_axi_bvalid(
"s_axi_bvalid"),
s_axi_bready(
"s_axi_bready"),
s_axi_arid(
"s_axi_arid"),
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_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rid(
"s_axi_rid"),
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_awaddr(
"m_axi_awaddr"),
m_axi_awprot(
"m_axi_awprot"),
m_axi_awvalid(
"m_axi_awvalid"),
m_axi_awready(
"m_axi_awready"),
m_axi_wdata(
"m_axi_wdata"),
m_axi_wstrb(
"m_axi_wstrb"),
m_axi_wvalid(
"m_axi_wvalid"),
m_axi_wready(
"m_axi_wready"),
m_axi_bresp(
"m_axi_bresp"),
m_axi_bvalid(
"m_axi_bvalid"),
m_axi_bready(
"m_axi_bready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arprot(
"m_axi_arprot"),
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_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready")
72 mp_S_AXI_transactor = NULL;
73 mp_s_axi_awlen_converter = NULL;
74 mp_s_axi_awlock_converter = NULL;
75 mp_s_axi_arlen_converter = NULL;
76 mp_s_axi_arlock_converter = NULL;
77 mp_M_AXI_transactor = NULL;
83 void design_1_auto_pc_1::before_end_of_elaboration()
87 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"S_AXI_TLM_MODE") != 1)
92 xsc::common_cpp::properties S_AXI_transactor_param_props;
93 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
94 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
95 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"12");
96 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
97 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
98 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
99 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
100 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
101 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
102 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
103 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
104 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
105 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
106 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
107 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
108 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
109 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
110 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
111 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
112 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
113 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
114 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
115 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
116 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
117 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
118 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
119 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
120 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
121 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
122 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
123 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
124 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
126 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<32,32,12,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
132 mp_s_axi_awlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_awlen_converter");
134 mp_s_axi_awlen_converter->vector_out(m_s_axi_awlen_converter_signal);
135 mp_S_AXI_transactor->AWLEN(m_s_axi_awlen_converter_signal);
138 mp_s_axi_awlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_awlock_converter");
140 mp_s_axi_awlock_converter->scalar_out(m_s_axi_awlock_converter_signal);
141 mp_S_AXI_transactor->AWLOCK(m_s_axi_awlock_converter_signal);
158 mp_s_axi_arlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_arlen_converter");
160 mp_s_axi_arlen_converter->vector_out(m_s_axi_arlen_converter_signal);
161 mp_S_AXI_transactor->ARLEN(m_s_axi_arlen_converter_signal);
164 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_arlock_converter");
166 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
167 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
179 mp_S_AXI_transactor->CLK(aclk);
180 mp_S_AXI_transactor->RST(
aresetn);
184 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
185 mp_impl->target_wr_socket->bind(*(mp_S_AXI_transactor->wr_socket));
193 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"M_AXI_TLM_MODE") != 1)
198 xsc::common_cpp::properties M_AXI_transactor_param_props;
199 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
200 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
201 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
202 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
203 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
204 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
205 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
206 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
207 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
208 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"0");
209 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"0");
210 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
211 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"0");
212 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"0");
213 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
214 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
215 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
216 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
217 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
218 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
219 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
220 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"1");
221 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
222 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
223 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
224 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
225 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"0");
226 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
227 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
228 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4LITE");
229 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
230 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
232 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<32,32,12,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
255 mp_M_AXI_transactor->CLK(aclk);
256 mp_M_AXI_transactor->RST(
aresetn);
260 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
261 mp_impl->initiator_wr_socket->bind(*(mp_M_AXI_transactor->wr_socket));
269 #endif // XILINX_SIMULATOR
275 design_1_auto_pc_1::design_1_auto_pc_1(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_1_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_awid(
"s_axi_awid"),
s_axi_awaddr(
"s_axi_awaddr"),
s_axi_awlen(
"s_axi_awlen"),
s_axi_awsize(
"s_axi_awsize"),
s_axi_awburst(
"s_axi_awburst"),
s_axi_awlock(
"s_axi_awlock"),
s_axi_awcache(
"s_axi_awcache"),
s_axi_awprot(
"s_axi_awprot"),
s_axi_awqos(
"s_axi_awqos"),
s_axi_awvalid(
"s_axi_awvalid"),
s_axi_awready(
"s_axi_awready"),
s_axi_wid(
"s_axi_wid"),
s_axi_wdata(
"s_axi_wdata"),
s_axi_wstrb(
"s_axi_wstrb"),
s_axi_wlast(
"s_axi_wlast"),
s_axi_wvalid(
"s_axi_wvalid"),
s_axi_wready(
"s_axi_wready"),
s_axi_bid(
"s_axi_bid"),
s_axi_bresp(
"s_axi_bresp"),
s_axi_bvalid(
"s_axi_bvalid"),
s_axi_bready(
"s_axi_bready"),
s_axi_arid(
"s_axi_arid"),
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_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rid(
"s_axi_rid"),
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_awaddr(
"m_axi_awaddr"),
m_axi_awprot(
"m_axi_awprot"),
m_axi_awvalid(
"m_axi_awvalid"),
m_axi_awready(
"m_axi_awready"),
m_axi_wdata(
"m_axi_wdata"),
m_axi_wstrb(
"m_axi_wstrb"),
m_axi_wvalid(
"m_axi_wvalid"),
m_axi_wready(
"m_axi_wready"),
m_axi_bresp(
"m_axi_bresp"),
m_axi_bvalid(
"m_axi_bvalid"),
m_axi_bready(
"m_axi_bready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arprot(
"m_axi_arprot"),
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_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready")
283 mp_S_AXI_transactor = NULL;
284 mp_s_axi_awlen_converter = NULL;
285 mp_s_axi_awlock_converter = NULL;
286 mp_s_axi_arlen_converter = NULL;
287 mp_s_axi_arlock_converter = NULL;
288 mp_M_AXI_transactor = NULL;
294 void design_1_auto_pc_1::before_end_of_elaboration()
298 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"S_AXI_TLM_MODE") != 1)
303 xsc::common_cpp::properties S_AXI_transactor_param_props;
304 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
305 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
306 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"12");
307 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
308 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
309 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
310 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
311 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
312 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
313 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
314 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
315 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
316 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
317 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
318 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
319 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
320 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
321 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
322 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
323 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
324 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
325 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
326 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
327 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
328 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
329 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
330 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
331 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
332 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
333 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
334 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
335 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
337 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<32,32,12,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
343 mp_s_axi_awlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_awlen_converter");
345 mp_s_axi_awlen_converter->vector_out(m_s_axi_awlen_converter_signal);
346 mp_S_AXI_transactor->AWLEN(m_s_axi_awlen_converter_signal);
349 mp_s_axi_awlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_awlock_converter");
351 mp_s_axi_awlock_converter->scalar_out(m_s_axi_awlock_converter_signal);
352 mp_S_AXI_transactor->AWLOCK(m_s_axi_awlock_converter_signal);
369 mp_s_axi_arlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_arlen_converter");
371 mp_s_axi_arlen_converter->vector_out(m_s_axi_arlen_converter_signal);
372 mp_S_AXI_transactor->ARLEN(m_s_axi_arlen_converter_signal);
375 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_arlock_converter");
377 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
378 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
390 mp_S_AXI_transactor->CLK(aclk);
391 mp_S_AXI_transactor->RST(
aresetn);
395 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
396 mp_impl->target_wr_socket->bind(*(mp_S_AXI_transactor->wr_socket));
404 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"M_AXI_TLM_MODE") != 1)
409 xsc::common_cpp::properties M_AXI_transactor_param_props;
410 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
411 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
412 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
413 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
414 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
415 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
416 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
417 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
418 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
419 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"0");
420 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"0");
421 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
422 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"0");
423 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"0");
424 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
425 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
426 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
427 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
428 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
429 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
430 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
431 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"1");
432 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
433 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
434 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
435 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
436 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"0");
437 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
438 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
439 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4LITE");
440 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
441 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
443 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<32,32,12,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
466 mp_M_AXI_transactor->CLK(aclk);
467 mp_M_AXI_transactor->RST(
aresetn);
471 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
472 mp_impl->initiator_wr_socket->bind(*(mp_M_AXI_transactor->wr_socket));
486 design_1_auto_pc_1::design_1_auto_pc_1(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_1_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_awid(
"s_axi_awid"),
s_axi_awaddr(
"s_axi_awaddr"),
s_axi_awlen(
"s_axi_awlen"),
s_axi_awsize(
"s_axi_awsize"),
s_axi_awburst(
"s_axi_awburst"),
s_axi_awlock(
"s_axi_awlock"),
s_axi_awcache(
"s_axi_awcache"),
s_axi_awprot(
"s_axi_awprot"),
s_axi_awqos(
"s_axi_awqos"),
s_axi_awvalid(
"s_axi_awvalid"),
s_axi_awready(
"s_axi_awready"),
s_axi_wid(
"s_axi_wid"),
s_axi_wdata(
"s_axi_wdata"),
s_axi_wstrb(
"s_axi_wstrb"),
s_axi_wlast(
"s_axi_wlast"),
s_axi_wvalid(
"s_axi_wvalid"),
s_axi_wready(
"s_axi_wready"),
s_axi_bid(
"s_axi_bid"),
s_axi_bresp(
"s_axi_bresp"),
s_axi_bvalid(
"s_axi_bvalid"),
s_axi_bready(
"s_axi_bready"),
s_axi_arid(
"s_axi_arid"),
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_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rid(
"s_axi_rid"),
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_awaddr(
"m_axi_awaddr"),
m_axi_awprot(
"m_axi_awprot"),
m_axi_awvalid(
"m_axi_awvalid"),
m_axi_awready(
"m_axi_awready"),
m_axi_wdata(
"m_axi_wdata"),
m_axi_wstrb(
"m_axi_wstrb"),
m_axi_wvalid(
"m_axi_wvalid"),
m_axi_wready(
"m_axi_wready"),
m_axi_bresp(
"m_axi_bresp"),
m_axi_bvalid(
"m_axi_bvalid"),
m_axi_bready(
"m_axi_bready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arprot(
"m_axi_arprot"),
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_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready")
494 mp_S_AXI_transactor = NULL;
495 mp_s_axi_awlen_converter = NULL;
496 mp_s_axi_awlock_converter = NULL;
497 mp_s_axi_arlen_converter = NULL;
498 mp_s_axi_arlock_converter = NULL;
499 mp_M_AXI_transactor = NULL;
505 void design_1_auto_pc_1::before_end_of_elaboration()
509 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"S_AXI_TLM_MODE") != 1)
514 xsc::common_cpp::properties S_AXI_transactor_param_props;
515 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
516 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
517 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"12");
518 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
519 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
520 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
521 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
522 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
523 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
524 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
525 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
526 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
527 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
528 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
529 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
530 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
531 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
532 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
533 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
534 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
535 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
536 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
537 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
538 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
539 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
540 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
541 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
542 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
543 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
544 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
545 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
546 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
548 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<32,32,12,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
554 mp_s_axi_awlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_awlen_converter");
556 mp_s_axi_awlen_converter->vector_out(m_s_axi_awlen_converter_signal);
557 mp_S_AXI_transactor->AWLEN(m_s_axi_awlen_converter_signal);
560 mp_s_axi_awlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_awlock_converter");
562 mp_s_axi_awlock_converter->scalar_out(m_s_axi_awlock_converter_signal);
563 mp_S_AXI_transactor->AWLOCK(m_s_axi_awlock_converter_signal);
580 mp_s_axi_arlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_arlen_converter");
582 mp_s_axi_arlen_converter->vector_out(m_s_axi_arlen_converter_signal);
583 mp_S_AXI_transactor->ARLEN(m_s_axi_arlen_converter_signal);
586 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_arlock_converter");
588 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
589 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
601 mp_S_AXI_transactor->CLK(aclk);
602 mp_S_AXI_transactor->RST(
aresetn);
606 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
607 mp_impl->target_wr_socket->bind(*(mp_S_AXI_transactor->wr_socket));
615 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"M_AXI_TLM_MODE") != 1)
620 xsc::common_cpp::properties M_AXI_transactor_param_props;
621 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
622 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
623 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
624 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
625 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
626 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
627 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
628 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
629 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
630 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"0");
631 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"0");
632 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
633 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"0");
634 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"0");
635 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
636 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
637 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
638 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
639 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
640 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
641 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
642 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"1");
643 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
644 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
645 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
646 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
647 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"0");
648 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
649 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
650 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4LITE");
651 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
652 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
654 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<32,32,12,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
677 mp_M_AXI_transactor->CLK(aclk);
678 mp_M_AXI_transactor->RST(
aresetn);
682 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
683 mp_impl->initiator_wr_socket->bind(*(mp_M_AXI_transactor->wr_socket));
697 design_1_auto_pc_1::design_1_auto_pc_1(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_1_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_awid(
"s_axi_awid"),
s_axi_awaddr(
"s_axi_awaddr"),
s_axi_awlen(
"s_axi_awlen"),
s_axi_awsize(
"s_axi_awsize"),
s_axi_awburst(
"s_axi_awburst"),
s_axi_awlock(
"s_axi_awlock"),
s_axi_awcache(
"s_axi_awcache"),
s_axi_awprot(
"s_axi_awprot"),
s_axi_awqos(
"s_axi_awqos"),
s_axi_awvalid(
"s_axi_awvalid"),
s_axi_awready(
"s_axi_awready"),
s_axi_wid(
"s_axi_wid"),
s_axi_wdata(
"s_axi_wdata"),
s_axi_wstrb(
"s_axi_wstrb"),
s_axi_wlast(
"s_axi_wlast"),
s_axi_wvalid(
"s_axi_wvalid"),
s_axi_wready(
"s_axi_wready"),
s_axi_bid(
"s_axi_bid"),
s_axi_bresp(
"s_axi_bresp"),
s_axi_bvalid(
"s_axi_bvalid"),
s_axi_bready(
"s_axi_bready"),
s_axi_arid(
"s_axi_arid"),
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_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rid(
"s_axi_rid"),
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_awaddr(
"m_axi_awaddr"),
m_axi_awprot(
"m_axi_awprot"),
m_axi_awvalid(
"m_axi_awvalid"),
m_axi_awready(
"m_axi_awready"),
m_axi_wdata(
"m_axi_wdata"),
m_axi_wstrb(
"m_axi_wstrb"),
m_axi_wvalid(
"m_axi_wvalid"),
m_axi_wready(
"m_axi_wready"),
m_axi_bresp(
"m_axi_bresp"),
m_axi_bvalid(
"m_axi_bvalid"),
m_axi_bready(
"m_axi_bready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arprot(
"m_axi_arprot"),
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_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready")
704 mp_S_AXI_transactor = NULL;
705 mp_s_axi_awlen_converter = NULL;
706 mp_s_axi_awlock_converter = NULL;
707 mp_s_axi_arlen_converter = NULL;
708 mp_s_axi_arlock_converter = NULL;
709 mp_M_AXI_transactor = NULL;
714 xsc::common_cpp::properties S_AXI_transactor_param_props;
715 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
716 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
717 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"12");
718 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
719 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
720 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
721 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
722 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
723 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
724 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
725 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
726 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
727 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
728 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
729 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
730 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
731 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
732 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
733 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
734 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
735 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
736 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
737 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
738 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
739 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
740 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
741 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
742 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
743 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
744 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
745 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
746 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
748 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<32,32,12,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
751 mp_s_axi_awlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_awlen_converter");
753 mp_s_axi_awlen_converter->vector_out(m_s_axi_awlen_converter_signal);
754 mp_S_AXI_transactor->AWLEN(m_s_axi_awlen_converter_signal);
757 mp_s_axi_awlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_awlock_converter");
759 mp_s_axi_awlock_converter->scalar_out(m_s_axi_awlock_converter_signal);
760 mp_S_AXI_transactor->AWLOCK(m_s_axi_awlock_converter_signal);
777 mp_s_axi_arlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_arlen_converter");
779 mp_s_axi_arlen_converter->vector_out(m_s_axi_arlen_converter_signal);
780 mp_S_AXI_transactor->ARLEN(m_s_axi_arlen_converter_signal);
783 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_arlock_converter");
785 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
786 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
798 mp_S_AXI_transactor->CLK(aclk);
799 mp_S_AXI_transactor->RST(
aresetn);
801 xsc::common_cpp::properties M_AXI_transactor_param_props;
802 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
803 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
804 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
805 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
806 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
807 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
808 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
809 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
810 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
811 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"0");
812 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"0");
813 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
814 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"0");
815 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"0");
816 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
817 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
818 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
819 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
820 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
821 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
822 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
823 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"1");
824 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
825 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
826 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
827 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
828 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"0");
829 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
830 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
831 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4LITE");
832 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
833 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
835 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<32,32,12,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
855 mp_M_AXI_transactor->CLK(aclk);
856 mp_M_AXI_transactor->RST(
aresetn);
859 S_AXI_transactor_target_wr_socket_stub =
nullptr;
860 S_AXI_transactor_target_rd_socket_stub =
nullptr;
861 M_AXI_transactor_initiator_wr_socket_stub =
nullptr;
862 M_AXI_transactor_initiator_rd_socket_stub =
nullptr;
866 void design_1_auto_pc_1::before_end_of_elaboration()
869 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"S_AXI_TLM_MODE") != 1)
871 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
872 mp_impl->target_wr_socket->bind(*(mp_S_AXI_transactor->wr_socket));
877 S_AXI_transactor_target_wr_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"wr_socket",0);
878 S_AXI_transactor_target_wr_socket_stub->bind(*(mp_S_AXI_transactor->wr_socket));
879 S_AXI_transactor_target_rd_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"rd_socket",0);
880 S_AXI_transactor_target_rd_socket_stub->bind(*(mp_S_AXI_transactor->rd_socket));
881 mp_S_AXI_transactor->disable_transactor();
885 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"M_AXI_TLM_MODE") != 1)
887 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
888 mp_impl->initiator_wr_socket->bind(*(mp_M_AXI_transactor->wr_socket));
893 M_AXI_transactor_initiator_wr_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"wr_socket",0);
894 M_AXI_transactor_initiator_wr_socket_stub->bind(*(mp_M_AXI_transactor->wr_socket));
895 M_AXI_transactor_initiator_rd_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"rd_socket",0);
896 M_AXI_transactor_initiator_rd_socket_stub->bind(*(mp_M_AXI_transactor->rd_socket));
897 mp_M_AXI_transactor->disable_transactor();
908 design_1_auto_pc_1::design_1_auto_pc_1(
const sc_core::sc_module_name& nm) :
design_1_auto_pc_1_sc(nm), aclk(
"aclk"),
aresetn(
"aresetn"),
s_axi_awid(
"s_axi_awid"),
s_axi_awaddr(
"s_axi_awaddr"),
s_axi_awlen(
"s_axi_awlen"),
s_axi_awsize(
"s_axi_awsize"),
s_axi_awburst(
"s_axi_awburst"),
s_axi_awlock(
"s_axi_awlock"),
s_axi_awcache(
"s_axi_awcache"),
s_axi_awprot(
"s_axi_awprot"),
s_axi_awqos(
"s_axi_awqos"),
s_axi_awvalid(
"s_axi_awvalid"),
s_axi_awready(
"s_axi_awready"),
s_axi_wid(
"s_axi_wid"),
s_axi_wdata(
"s_axi_wdata"),
s_axi_wstrb(
"s_axi_wstrb"),
s_axi_wlast(
"s_axi_wlast"),
s_axi_wvalid(
"s_axi_wvalid"),
s_axi_wready(
"s_axi_wready"),
s_axi_bid(
"s_axi_bid"),
s_axi_bresp(
"s_axi_bresp"),
s_axi_bvalid(
"s_axi_bvalid"),
s_axi_bready(
"s_axi_bready"),
s_axi_arid(
"s_axi_arid"),
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_arqos(
"s_axi_arqos"),
s_axi_arvalid(
"s_axi_arvalid"),
s_axi_arready(
"s_axi_arready"),
s_axi_rid(
"s_axi_rid"),
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_awaddr(
"m_axi_awaddr"),
m_axi_awprot(
"m_axi_awprot"),
m_axi_awvalid(
"m_axi_awvalid"),
m_axi_awready(
"m_axi_awready"),
m_axi_wdata(
"m_axi_wdata"),
m_axi_wstrb(
"m_axi_wstrb"),
m_axi_wvalid(
"m_axi_wvalid"),
m_axi_wready(
"m_axi_wready"),
m_axi_bresp(
"m_axi_bresp"),
m_axi_bvalid(
"m_axi_bvalid"),
m_axi_bready(
"m_axi_bready"),
m_axi_araddr(
"m_axi_araddr"),
m_axi_arprot(
"m_axi_arprot"),
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_rvalid(
"m_axi_rvalid"),
m_axi_rready(
"m_axi_rready")
915 mp_S_AXI_transactor = NULL;
916 mp_s_axi_awlen_converter = NULL;
917 mp_s_axi_awlock_converter = NULL;
918 mp_s_axi_arlen_converter = NULL;
919 mp_s_axi_arlock_converter = NULL;
920 mp_M_AXI_transactor = NULL;
925 xsc::common_cpp::properties S_AXI_transactor_param_props;
926 S_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
927 S_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
928 S_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"12");
929 S_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
930 S_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
931 S_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
932 S_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
933 S_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
934 S_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
935 S_AXI_transactor_param_props.addLong(
"HAS_BURST",
"1");
936 S_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"1");
937 S_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
938 S_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"1");
939 S_AXI_transactor_param_props.addLong(
"HAS_QOS",
"1");
940 S_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
941 S_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
942 S_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
943 S_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
944 S_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
945 S_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
946 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
947 S_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"16");
948 S_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
949 S_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
950 S_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
951 S_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
952 S_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"1");
953 S_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
954 S_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
955 S_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI3");
956 S_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
957 S_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
959 mp_S_AXI_transactor =
new xtlm::xaximm_pin2xtlm_t<32,32,12,1,1,1,1,1>(
"S_AXI_transactor", S_AXI_transactor_param_props);
962 mp_s_axi_awlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_awlen_converter");
964 mp_s_axi_awlen_converter->vector_out(m_s_axi_awlen_converter_signal);
965 mp_S_AXI_transactor->AWLEN(m_s_axi_awlen_converter_signal);
968 mp_s_axi_awlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_awlock_converter");
970 mp_s_axi_awlock_converter->scalar_out(m_s_axi_awlock_converter_signal);
971 mp_S_AXI_transactor->AWLOCK(m_s_axi_awlock_converter_signal);
988 mp_s_axi_arlen_converter =
new xsc::common::vector2vector_converter<4,8>(
"s_axi_arlen_converter");
990 mp_s_axi_arlen_converter->vector_out(m_s_axi_arlen_converter_signal);
991 mp_S_AXI_transactor->ARLEN(m_s_axi_arlen_converter_signal);
994 mp_s_axi_arlock_converter =
new xsc::common::vectorN2scalar_converter<2>(
"s_axi_arlock_converter");
996 mp_s_axi_arlock_converter->scalar_out(m_s_axi_arlock_converter_signal);
997 mp_S_AXI_transactor->ARLOCK(m_s_axi_arlock_converter_signal);
1009 mp_S_AXI_transactor->CLK(aclk);
1010 mp_S_AXI_transactor->RST(
aresetn);
1012 xsc::common_cpp::properties M_AXI_transactor_param_props;
1013 M_AXI_transactor_param_props.addLong(
"DATA_WIDTH",
"32");
1014 M_AXI_transactor_param_props.addLong(
"FREQ_HZ",
"125000000");
1015 M_AXI_transactor_param_props.addLong(
"ID_WIDTH",
"0");
1016 M_AXI_transactor_param_props.addLong(
"ADDR_WIDTH",
"32");
1017 M_AXI_transactor_param_props.addLong(
"AWUSER_WIDTH",
"0");
1018 M_AXI_transactor_param_props.addLong(
"ARUSER_WIDTH",
"0");
1019 M_AXI_transactor_param_props.addLong(
"WUSER_WIDTH",
"0");
1020 M_AXI_transactor_param_props.addLong(
"RUSER_WIDTH",
"0");
1021 M_AXI_transactor_param_props.addLong(
"BUSER_WIDTH",
"0");
1022 M_AXI_transactor_param_props.addLong(
"HAS_BURST",
"0");
1023 M_AXI_transactor_param_props.addLong(
"HAS_LOCK",
"0");
1024 M_AXI_transactor_param_props.addLong(
"HAS_PROT",
"1");
1025 M_AXI_transactor_param_props.addLong(
"HAS_CACHE",
"0");
1026 M_AXI_transactor_param_props.addLong(
"HAS_QOS",
"0");
1027 M_AXI_transactor_param_props.addLong(
"HAS_REGION",
"0");
1028 M_AXI_transactor_param_props.addLong(
"HAS_WSTRB",
"1");
1029 M_AXI_transactor_param_props.addLong(
"HAS_BRESP",
"1");
1030 M_AXI_transactor_param_props.addLong(
"HAS_RRESP",
"1");
1031 M_AXI_transactor_param_props.addLong(
"SUPPORTS_NARROW_BURST",
"0");
1032 M_AXI_transactor_param_props.addLong(
"NUM_READ_OUTSTANDING",
"8");
1033 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_OUTSTANDING",
"8");
1034 M_AXI_transactor_param_props.addLong(
"MAX_BURST_LENGTH",
"1");
1035 M_AXI_transactor_param_props.addLong(
"NUM_READ_THREADS",
"4");
1036 M_AXI_transactor_param_props.addLong(
"NUM_WRITE_THREADS",
"4");
1037 M_AXI_transactor_param_props.addLong(
"RUSER_BITS_PER_BYTE",
"0");
1038 M_AXI_transactor_param_props.addLong(
"WUSER_BITS_PER_BYTE",
"0");
1039 M_AXI_transactor_param_props.addLong(
"HAS_SIZE",
"0");
1040 M_AXI_transactor_param_props.addLong(
"HAS_RESET",
"1");
1041 M_AXI_transactor_param_props.addFloat(
"PHASE",
"0.000");
1042 M_AXI_transactor_param_props.addString(
"PROTOCOL",
"AXI4LITE");
1043 M_AXI_transactor_param_props.addString(
"READ_WRITE_MODE",
"READ_WRITE");
1044 M_AXI_transactor_param_props.addString(
"CLK_DOMAIN",
"design_1_processing_system7_0_0_FCLK_CLK0");
1046 mp_M_AXI_transactor =
new xtlm::xaximm_xtlm2pin_t<32,32,12,1,1,1,1,1>(
"M_AXI_transactor", M_AXI_transactor_param_props);
1066 mp_M_AXI_transactor->CLK(aclk);
1067 mp_M_AXI_transactor->RST(
aresetn);
1070 S_AXI_transactor_target_wr_socket_stub =
nullptr;
1071 S_AXI_transactor_target_rd_socket_stub =
nullptr;
1072 M_AXI_transactor_initiator_wr_socket_stub =
nullptr;
1073 M_AXI_transactor_initiator_rd_socket_stub =
nullptr;
1077 void design_1_auto_pc_1::before_end_of_elaboration()
1080 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"S_AXI_TLM_MODE") != 1)
1082 mp_impl->target_rd_socket->bind(*(mp_S_AXI_transactor->rd_socket));
1083 mp_impl->target_wr_socket->bind(*(mp_S_AXI_transactor->wr_socket));
1088 S_AXI_transactor_target_wr_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"wr_socket",0);
1089 S_AXI_transactor_target_wr_socket_stub->bind(*(mp_S_AXI_transactor->wr_socket));
1090 S_AXI_transactor_target_rd_socket_stub =
new xtlm::xtlm_aximm_target_stub(
"rd_socket",0);
1091 S_AXI_transactor_target_rd_socket_stub->bind(*(mp_S_AXI_transactor->rd_socket));
1092 mp_S_AXI_transactor->disable_transactor();
1096 if (xsc::utils::xsc_sim_manager::getInstanceParameterInt(
"design_1_auto_pc_1",
"M_AXI_TLM_MODE") != 1)
1098 mp_impl->initiator_rd_socket->bind(*(mp_M_AXI_transactor->rd_socket));
1099 mp_impl->initiator_wr_socket->bind(*(mp_M_AXI_transactor->wr_socket));
1104 M_AXI_transactor_initiator_wr_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"wr_socket",0);
1105 M_AXI_transactor_initiator_wr_socket_stub->bind(*(mp_M_AXI_transactor->wr_socket));
1106 M_AXI_transactor_initiator_rd_socket_stub =
new xtlm::xtlm_aximm_initiator_stub(
"rd_socket",0);
1107 M_AXI_transactor_initiator_rd_socket_stub->bind(*(mp_M_AXI_transactor->rd_socket));
1108 mp_M_AXI_transactor->disable_transactor();
1113 #endif // MTI_SYSTEMC
1118 design_1_auto_pc_1::~design_1_auto_pc_1()
1120 delete mp_S_AXI_transactor;
1121 delete mp_s_axi_awlen_converter;
1122 delete mp_s_axi_awlock_converter;
1123 delete mp_s_axi_arlen_converter;
1124 delete mp_s_axi_arlock_converter;
1126 delete mp_M_AXI_transactor;
1131 SC_MODULE_EXPORT(design_1_auto_pc_1);
1135 XMSC_MODULE_EXPORT(design_1_auto_pc_1);
1139 SC_MODULE_EXPORT(design_1_auto_pc_1);