Skip to content

Commit e2ca5a9

Browse files
authored
spi_engine: Create interface_ip.tcl (#1251)
Use tcl script instead of static xmls for the interface. Easier to maintain and are not gitignored. Rename spi_master to spi_engine because every interface should be prefixed by the IP name; in this case, spi_engine. Also, remove interface/*.sv files on make clean and git ignore them. Signed-off-by: Jorge Marques <[email protected]>
1 parent be0e280 commit e2ca5a9

File tree

39 files changed

+243
-642
lines changed

39 files changed

+243
-642
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,4 @@ _build
108108
.github/CODEOWNERS
109109
.github/PULL_REQUEST_TEMPLATE.md
110110
library/**/.lock
111+
library/**/interfaces/*.sv

docs/library/spi_engine/spi-bus-interface.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Files
1313

1414
* - Name
1515
- Description
16-
* - :git-hdl:`library/spi_engine/interfaces/spi_master_rtl.xml`
16+
* - :git-hdl:`library/spi_engine/interfaces/spi_engine_rtl.xml`
1717
- Interface definition file
1818

1919
Signal Pins

library/axi_ad5766/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
####################################################################################
2-
## Copyright (c) 2018 - 2023 Analog Devices, Inc.
2+
## Copyright (c) 2018 - 2024 Analog Devices, Inc.
33
### SPDX short identifier: BSD-1-Clause
44
## Auto-generated, do not modify!
55
####################################################################################
@@ -25,4 +25,6 @@ XILINX_DEPS += ../spi_engine/interfaces/spi_engine_offload_ctrl_rtl.xml
2525

2626
XILINX_LIB_DEPS += util_cdc
2727

28+
XILINX_INTERFACE_DEPS += spi_engine/interfaces
29+
2830
include ../scripts/library.mk

library/interfaces/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ M_VIVADO := vivado -mode batch -source
1616

1717
M_FLIST := *.log
1818
M_FLIST += *.jou
19+
M_FLIST += *.sv
1920
M_FLIST += if_xcvr_cm.xml
2021
M_FLIST += if_xcvr_cm_rtl.xml
2122
M_FLIST += if_xcvr_ch.xml

library/jesd204/interfaces/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ XML_FLIST += jesd204_rx_event_rtl.xml
3333

3434
M_FLIST := *.log
3535
M_FLIST += *.jou
36+
M_FLIST += *.sv
3637
M_FLIST += $(XML_FLIST)
3738

3839
.PHONY: all xilinx clean clean-all

library/spi_engine/axi_spi_engine/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
####################################################################################
2-
## Copyright (c) 2018 - 2023 Analog Devices, Inc.
2+
## Copyright (c) 2018 - 2024 Analog Devices, Inc.
33
### SPDX short identifier: BSD-1-Clause
44
## Auto-generated, do not modify!
55
####################################################################################
@@ -22,6 +22,8 @@ XILINX_DEPS += ../../spi_engine/interfaces/spi_engine_offload_ctrl_rtl.xml
2222
XILINX_LIB_DEPS += util_axis_fifo
2323
XILINX_LIB_DEPS += util_cdc
2424

25+
XILINX_INTERFACE_DEPS += spi_engine/interfaces
26+
2527
INTEL_DEPS += ../../common/ad_mem.v
2628
INTEL_DEPS += ../../intel/common/up_rst_constr.sdc
2729
INTEL_DEPS += ../../util_axis_fifo/util_axis_fifo.v

library/spi_engine/axi_spi_engine/axi_spi_engine_ip.tcl

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
###############################################################################
2-
## Copyright (C) 2015-2023 Analog Devices, Inc. All rights reserved.
2+
## Copyright (C) 2015-2024 Analog Devices, Inc. All rights reserved.
33
### SPDX short identifier: ADIBSD
44
###############################################################################
55

@@ -34,37 +34,36 @@ adi_add_bus "spi_engine_ctrl" "master" \
3434
"analog.com:interface:spi_engine_ctrl_rtl:1.0" \
3535
"analog.com:interface:spi_engine_ctrl:1.0" \
3636
{
37-
{"cmd_ready" "CMD_READY"} \
38-
{"cmd_valid" "CMD_VALID"} \
39-
{"cmd_data" "CMD_DATA"} \
40-
{"sdo_data_ready" "SDO_READY"} \
41-
{"sdo_data_valid" "SDO_VALID"} \
42-
{"sdo_data" "SDO_DATA"} \
43-
{"sdi_data_ready" "SDI_READY"} \
44-
{"sdi_data_valid" "SDI_VALID"} \
45-
{"sdi_data" "SDI_DATA"} \
46-
{"sync_ready" "SYNC_READY"} \
47-
{"sync_valid" "SYNC_VALID"} \
48-
{"sync_data" "SYNC_DATA"} \
37+
{"cmd_ready" "cmd_ready"} \
38+
{"cmd_valid" "cmd_valid"} \
39+
{"cmd_data" "cmd_data"} \
40+
{"sdo_data_ready" "sdo_ready"} \
41+
{"sdo_data_valid" "sdo_valid"} \
42+
{"sdo_data" "sdo_data"} \
43+
{"sdi_data_ready" "sdi_ready"} \
44+
{"sdi_data_valid" "sdi_valid"} \
45+
{"sdi_data" "sdi_data"} \
46+
{"sync_ready" "sync_ready"} \
47+
{"sync_valid" "sync_valid"} \
48+
{"sync_data" "sync_data"} \
4949
}
5050
adi_add_bus_clock "spi_clk" "spi_engine_ctrl" "spi_resetn" "master"
5151

5252
adi_add_bus "spi_engine_offload_ctrl0" "master" \
5353
"analog.com:interface:spi_engine_offload_ctrl_rtl:1.0" \
5454
"analog.com:interface:spi_engine_offload_ctrl:1.0" \
5555
{ \
56-
{ "offload0_cmd_wr_en" "CMD_WR_EN"} \
57-
{ "offload0_cmd_wr_data" "CMD_WR_DATA"} \
58-
{ "offload0_sdo_wr_en" "SDO_WR_EN"} \
59-
{ "offload0_sdo_wr_data" "SDO_WR_DATA"} \
60-
{ "offload0_enable" "ENABLE"} \
61-
{ "offload0_enabled" "ENABLED"} \
62-
{ "offload0_mem_reset" "MEM_RESET"} \
63-
{ "offload_sync_ready" "SYNC_READY"} \
64-
{ "offload_sync_valid" "SYNC_VALID"} \
65-
{ "offload_sync_data" "SYNC_DATA"} \
56+
{ "offload0_cmd_wr_en" "cmd_wr_en"} \
57+
{ "offload0_cmd_wr_data" "cmd_wr_data"} \
58+
{ "offload0_sdo_wr_en" "sdo_wr_en"} \
59+
{ "offload0_sdo_wr_data" "sdo_wr_data"} \
60+
{ "offload0_enable" "enable"} \
61+
{ "offload0_enabled" "enabled"} \
62+
{ "offload0_mem_reset" "mem_reset"} \
63+
{ "offload_sync_ready" "sync_ready"} \
64+
{ "offload_sync_valid" "sync_valid"} \
65+
{ "offload_sync_data" "sync_data"} \
6666
}
67-
6867
adi_add_bus_clock "s_axi_aclk" "spi_engine_offload_ctrl0:s_axi" "s_axi_aresetn"
6968

7069
foreach port {"up_clk" "up_rstn" "up_wreq" "up_waddr" "up_wdata" "up_rreq" "up_raddr"} {
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
####################################################################################
2+
####################################################################################
3+
## Copyright (c) 2018 - 2024 Analog Devices, Inc.
4+
### SPDX short identifier: BSD-1-Clause
5+
## Auto-generated, do not modify!
6+
####################################################################################
7+
####################################################################################
8+
9+
M_DEPS := interfaces_ip.tcl
10+
M_DEPS += ../../../scripts/adi_env.tcl
11+
M_DEPS += ../../scripts/adi_ip_xilinx.tcl
12+
13+
M_VIVADO := vivado -mode batch -source
14+
15+
XML_FLIST := spi_engine.xml
16+
XML_FLIST += spi_engine_rtl.xml
17+
XML_FLIST += spi_engine_ctrl.xml
18+
XML_FLIST += spi_engine_ctrl_rtl.xml
19+
XML_FLIST += spi_engine_offload_ctrl.xml
20+
XML_FLIST += spi_engine_offload_ctrl_rtl.xml
21+
22+
M_FLIST := *.log
23+
M_FLIST += *.jou
24+
M_FLIST += *.sv
25+
M_FLIST += $(XML_FLIST)
26+
27+
.PHONY: all xilinx clean clean-all
28+
all: xilinx
29+
30+
xilinx: $(XML_FLIST)
31+
32+
clean:clean-all
33+
34+
clean-all:
35+
rm -rf $(M_FLIST)
36+
37+
%.xml: $(M_DEPS)
38+
$(M_VIVADO) interfaces_ip.tcl >> interfaces_ip.log 2>&1
39+
40+
####################################################################################
41+
####################################################################################
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
###############################################################################
2+
## Copyright (C) 2024 Analog Devices, Inc. All rights reserved.
3+
### SPDX short identifier: ADIBSD
4+
###############################################################################
5+
6+
source ../../../scripts/adi_env.tcl
7+
source $ad_hdl_dir/library/scripts/adi_ip_xilinx.tcl
8+
9+
# SPI interface
10+
11+
adi_if_define "spi_engine"
12+
adi_if_ports output 1 sclk
13+
adi_if_ports output 1 sdo
14+
adi_if_ports output 1 sdo_t
15+
adi_if_ports input -1 sdi
16+
adi_if_ports output -1 cs
17+
adi_if_ports output 1 three_wire
18+
19+
# Control interface
20+
21+
adi_if_define "spi_engine_ctrl"
22+
adi_if_ports input 1 cmd_ready
23+
adi_if_ports output 1 cmd_valid
24+
adi_if_ports output 16 cmd_data
25+
adi_if_ports input 1 sdo_data_ready
26+
adi_if_ports output 1 sdo_data_valid
27+
adi_if_ports output -1 sdo_data
28+
adi_if_ports output 1 sdi_data_ready
29+
adi_if_ports input 1 sdi_data_valid
30+
adi_if_ports input -1 sdi_data
31+
adi_if_ports output 1 sync_ready
32+
adi_if_ports input 1 sync_valid
33+
adi_if_ports input 8 sync_data
34+
35+
# Offload control interface
36+
37+
adi_if_define "spi_engine_offload_ctrl"
38+
adi_if_ports output 1 cmd_wr_en
39+
adi_if_ports output 16 cmd_wr_data
40+
adi_if_ports output 1 sdo_wr_en
41+
adi_if_ports output -1 sdo_wr_data
42+
adi_if_ports output 1 mem_reset
43+
adi_if_ports output 1 enable
44+
adi_if_ports input 1 enabled
45+
adi_if_ports output 1 sync_ready
46+
adi_if_ports input 1 sync_valid
47+
adi_if_ports input 8 sync_data

library/spi_engine/interfaces/spi_engine_ctrl.xml

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)