@@ -11,36 +11,6 @@ set_instance_parameter_value axi_dmac_0 {CYCLIC} {0}
1111set_instance_parameter_value axi_dmac_0 {DMA_DATA_WIDTH_SRC} {32}
1212set_instance_parameter_value axi_dmac_0 {DMA_DATA_WIDTH_DEST} {128}
1313
14- # axi_spi_engine
15-
16- add_instance axi_spi_engine_0 axi_spi_engine
17- set_instance_parameter_value axi_spi_engine_0 {ASYNC_SPI_CLK} {1}
18- set_instance_parameter_value axi_spi_engine_0 {DATA_WIDTH} {32}
19- set_instance_parameter_value axi_spi_engine_0 {MM_IF_TYPE} {0}
20- set_instance_parameter_value axi_spi_engine_0 {NUM_OF_SDI} {1}
21- set_instance_parameter_value axi_spi_engine_0 {NUM_OFFLOAD} {1}
22-
23- # spi_engine_execution
24-
25- add_instance spi_engine_execution_0 spi_engine_execution
26- set_instance_parameter_value spi_engine_execution_0 {DATA_WIDTH} {32}
27- set_instance_parameter_value spi_engine_execution_0 {NUM_OF_SDI} {1}
28- set_instance_parameter_value spi_engine_execution_0 {SDI_DELAY} {0}
29-
30- # spi_engine_interconnect
31-
32- add_instance spi_engine_interconnect_0 spi_engine_interconnect
33- set_instance_parameter_value spi_engine_interconnect_0 {DATA_WIDTH} {32}
34- set_instance_parameter_value spi_engine_interconnect_0 {NUM_OF_SDI} {1}
35-
36- # spi_engine_offload
37-
38- add_instance spi_engine_offload_0 spi_engine_offload
39- set_instance_parameter_value spi_engine_offload_0 {ASYNC_TRIG} {1}
40- set_instance_parameter_value spi_engine_offload_0 {ASYNC_SPI_CLK} {0}
41- set_instance_parameter_value spi_engine_offload_0 {DATA_WIDTH} {32}
42- set_instance_parameter_value spi_engine_offload_0 {NUM_OF_SDI} {1}
43-
4414# axi_pwm_gen
4515
4616add_instance pwm_trigger axi_pwm_gen
@@ -87,6 +57,26 @@ set_connection_parameter_value spi_clk_pll.reconfig_to_pll/spi_clk_pll_reconfig.
8757set_connection_parameter_value spi_clk_pll.reconfig_to_pll/spi_clk_pll_reconfig.reconfig_to_pll startPortLSB {0}
8858set_connection_parameter_value spi_clk_pll.reconfig_to_pll/spi_clk_pll_reconfig.reconfig_to_pll width {0}
8959
60+ # spi engine
61+ source $ad_hdl_dir /library/spi_engine/scripts/spi_engine.tcl
62+
63+ set spi_engine_hier spi_ad4052
64+
65+ set data_width 32
66+ set async_spi_clk 1
67+ set num_cs 1
68+ set num_sdi 1
69+ set num_sdo 1
70+ set sdi_delay 0
71+ set echo_sclk 0
72+ set sdo_streaming 0
73+
74+ set axi_clk sys_clk.clk
75+ set axi_reset sys_clk.clk_reset
76+ set spi_clk spi_clk_pll.outclk0
77+
78+ spi_engine_create $spi_engine_hier $axi_clk $axi_reset $spi_clk $data_width $async_spi_clk $num_cs $num_sdi $num_sdo $sdi_delay $echo_sclk $sdo_streaming
79+ set_instance_parameter_value ${spi_engine_hier} _offload {ASYNC_TRIG} {1}
9080# exported interface
9181
9282add_interface adc_spi_sclk clock source
@@ -95,27 +85,21 @@ add_interface adc_spi_sdo conduit end
9585add_interface adc_spi_cs conduit end
9686add_interface adc_drdy conduit end
9787
98- set_interface_property adc_spi_sclk EXPORT_OF spi_engine_execution_0 .if_sclk
99- set_interface_property adc_spi_sdi EXPORT_OF spi_engine_execution_0 .if_sdi
100- set_interface_property adc_spi_sdo EXPORT_OF spi_engine_execution_0 .if_sdo
101- set_interface_property adc_spi_cs EXPORT_OF spi_engine_execution_0 .if_cs
102- set_interface_property adc_drdy_trigger EXPORT_OF spi_engine_offload_0 .if_trigger
88+ set_interface_property adc_spi_sclk EXPORT_OF ${spi_engine_hier} _execution .if_sclk
89+ set_interface_property adc_spi_sdi EXPORT_OF ${spi_engine_hier} _execution .if_sdi
90+ set_interface_property adc_spi_sdo EXPORT_OF ${spi_engine_hier} _execution .if_sdo
91+ set_interface_property adc_spi_cs EXPORT_OF ${spi_engine_hier} _execution .if_cs
92+ set_interface_property adc_drdy_trigger EXPORT_OF ${spi_engine_hier} _offload .if_trigger
10393set_interface_property adc_cnv EXPORT_OF pwm_trigger.if_pwm_0
10494
10595# clocks
10696
10797add_connection sys_clk.clk spi_clk_pll.refclk
10898add_connection sys_clk.clk spi_clk_pll_reconfig.mgmt_clk
109- add_connection sys_clk.clk axi_spi_engine_0.s_axi_clock
11099add_connection sys_clk.clk axi_dmac_0.s_axi_clock
111100add_connection sys_clk.clk pwm_trigger.s_axi_clock
112101
113102add_connection spi_clk_pll.outclk0 pwm_trigger.if_ext_clk
114- add_connection spi_clk_pll.outclk0 spi_engine_execution_0.if_clk
115- add_connection spi_clk_pll.outclk0 spi_engine_interconnect_0.if_clk
116- add_connection spi_clk_pll.outclk0 axi_spi_engine_0.if_spi_clk
117- add_connection spi_clk_pll.outclk0 spi_engine_offload_0.if_ctrl_clk
118- add_connection spi_clk_pll.outclk0 spi_engine_offload_0.if_spi_clk
119103add_connection spi_clk_pll.outclk0 axi_dmac_0.if_s_axis_aclk
120104
121105add_connection sys_dma_clk.clk axi_dmac_0.m_dest_axi_clock
@@ -124,47 +108,19 @@ add_connection sys_dma_clk.clk axi_dmac_0.m_dest_axi_clock
124108
125109add_connection sys_clk.clk_reset spi_clk_pll.reset
126110add_connection sys_clk.clk_reset spi_clk_pll_reconfig.mgmt_reset
127- add_connection sys_clk.clk_reset axi_spi_engine_0.s_axi_reset
128111add_connection sys_clk.clk_reset axi_dmac_0.s_axi_reset
129112add_connection sys_clk.clk_reset pwm_trigger.s_axi_reset
130113
131- add_connection axi_spi_engine_0.if_spi_resetn spi_engine_execution_0.if_resetn
132- add_connection axi_spi_engine_0.if_spi_resetn spi_engine_interconnect_0.if_resetn
133- add_connection axi_spi_engine_0.if_spi_resetn spi_engine_offload_0.if_spi_resetn
134-
135114add_connection sys_dma_clk.clk_reset axi_dmac_0.m_dest_axi_reset
136115
137116# interfaces
138117
139- add_connection spi_engine_interconnect_0.m_cmd spi_engine_execution_0.cmd
140- add_connection spi_engine_execution_0.sdi_data spi_engine_interconnect_0.m_sdi
141- add_connection spi_engine_interconnect_0.m_sdo spi_engine_execution_0.sdo_data
142- add_connection spi_engine_execution_0.sync spi_engine_interconnect_0.m_sync
143-
144- add_connection axi_spi_engine_0.cmd spi_engine_interconnect_0.s1_cmd
145- add_connection spi_engine_interconnect_0.s1_sdi axi_spi_engine_0.sdi_data
146- add_connection axi_spi_engine_0.sdo_data spi_engine_interconnect_0.s1_sdo
147- add_connection spi_engine_interconnect_0.s1_sync axi_spi_engine_0.sync
148-
149- add_connection spi_engine_offload_0.cmd spi_engine_interconnect_0.s0_cmd
150- add_connection spi_engine_interconnect_0.s0_sdi spi_engine_offload_0.sdi_data
151- add_connection spi_engine_offload_0.sdo_data spi_engine_interconnect_0.s0_sdo
152- add_connection spi_engine_interconnect_0.s0_sync spi_engine_offload_0.sync
153- add_connection spi_engine_offload_0.m_interconnect_ctrl spi_engine_interconnect_0.s_interconnect_ctrl
154-
155- add_connection spi_engine_offload_0.ctrl_cmd_wr axi_spi_engine_0.offload0_cmd
156- add_connection spi_engine_offload_0.ctrl_sdo_wr axi_spi_engine_0.offload0_sdo
157- add_connection spi_engine_offload_0.if_ctrl_enable axi_spi_engine_0.if_offload0_enable
158- add_connection spi_engine_offload_0.if_ctrl_enabled axi_spi_engine_0.if_offload0_enabled
159- add_connection spi_engine_offload_0.if_ctrl_mem_reset axi_spi_engine_0.if_offload0_mem_reset
160- add_connection spi_engine_offload_0.status_sync axi_spi_engine_0.offload_sync
161-
162- add_connection spi_engine_offload_0.offload_sdi axi_dmac_0.s_axis
118+ add_connection ${spi_engine_hier} _offload.offload_sdi axi_dmac_0.s_axis
163119
164120# cpu interconnects
165121
166122ad_cpu_interconnect 0x00020000 axi_dmac_0.s_axi
167- ad_cpu_interconnect 0x00030000 axi_spi_engine_0 .s_axi
123+ ad_cpu_interconnect 0x00030000 ${spi_engine_hier} _axi_regmap .s_axi
168124ad_cpu_interconnect 0x00040000 pwm_trigger.s_axi
169125ad_cpu_interconnect 0x00050000 spi_clk_pll_reconfig.mgmt_avalon_slave
170126
@@ -175,4 +131,4 @@ ad_dma_interconnect axi_dmac_0.m_dest_axi
175131# interrupts
176132
177133ad_cpu_interrupt 4 axi_dmac_0.interrupt_sender
178- ad_cpu_interrupt 5 axi_spi_engine_0 .interrupt_sender
134+ ad_cpu_interrupt 5 ${spi_engine_hier} _axi_regmap .interrupt_sender
0 commit comments