diff options
Diffstat (limited to 'fpga/usrp3/lib/vivado_ipi/interfaces')
18 files changed, 1575 insertions, 0 deletions
diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_rd.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_rd.xml new file mode 100644 index 000000000..66d44bdbd --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_rd.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>analog.com</spirit:vendor> + <spirit:library>interface</spirit:library> + <spirit:name>fifo_rd</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:extends spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="fifo_read" spirit:version="1.0"/> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> + <spirit:description>FIFO Read Interface</spirit:description> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_rd_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_rd_rtl.xml new file mode 100644 index 000000000..3c15f7203 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_rd_rtl.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>analog.com</spirit:vendor> + <spirit:library>interface</spirit:library> + <spirit:name>fifo_rd_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="analog.com" spirit:library="interface" spirit:name="fifo_rd" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>DATA</spirit:logicalName> + <spirit:description>FIFO Read Data</spirit:description> + <spirit:wire> + <spirit:qualifier> + <spirit:isData>true</spirit:isData> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + <spirit:defaultValue>0</spirit:defaultValue> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>EN</spirit:logicalName> + <spirit:description>FIFO Read Enable</spirit:description> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + <spirit:defaultValue>0</spirit:defaultValue> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>UNDERFLOW</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:width>1</spirit:width> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>VALID</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_wr.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_wr.xml new file mode 100644 index 000000000..8e1f4d781 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_wr.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>analog.com</spirit:vendor> + <spirit:library>interface</spirit:library> + <spirit:name>fifo_wr</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:extends spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="fifo_write" spirit:version="1.0"/> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> + <spirit:description>FIFO Write Interface</spirit:description> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_wr_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_wr_rtl.xml new file mode 100644 index 000000000..49509dbfa --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/fifo_wr_rtl.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>analog.com</spirit:vendor> + <spirit:library>interface</spirit:library> + <spirit:name>fifo_wr_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="analog.com" spirit:library="interface" spirit:name="fifo_wr" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>DATA</spirit:logicalName> + <spirit:description/> + <spirit:wire> + <spirit:qualifier> + <spirit:isData>true</spirit:isData> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + <spirit:defaultValue>0</spirit:defaultValue> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>EN</spirit:logicalName> + <spirit:description/> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + <spirit:defaultValue>0</spirit:defaultValue> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>OVERFLOW</spirit:logicalName> + <spirit:description/> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>optional</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>optional</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + <spirit:defaultValue>0</spirit:defaultValue> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>SYNC</spirit:logicalName> + <spirit:description/> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>optional</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>optional</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + <spirit:defaultValue>0</spirit:defaultValue> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>XFER_REQ</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_pll.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_pll.xml new file mode 100644 index 000000000..583c1f242 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_pll.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_pll</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_pll_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_pll_rtl.xml new file mode 100644 index 000000000..58d14d2f7 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_pll_rtl.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_pll_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="ADI" spirit:library="user" spirit:name="if_gt_pll" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>cpll_rst_m</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>cpll_ref_clk_in</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isClock>true</spirit:isClock> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_qpll.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_qpll.xml new file mode 100644 index 000000000..12e43a4c0 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_qpll.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_qpll</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_qpll_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_qpll_rtl.xml new file mode 100644 index 000000000..486cb8b61 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_qpll_rtl.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_qpll_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="ADI" spirit:library="user" spirit:name="if_gt_qpll" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>qpll_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>qpll_ref_clk</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isClock>true</spirit:isClock> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx.xml new file mode 100644 index 000000000..24e435073 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_rx</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_ksig.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_ksig.xml new file mode 100644 index 000000000..a8cae5ade --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_ksig.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_rx_ksig</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_ksig_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_ksig_rtl.xml new file mode 100644 index 000000000..4e09e7982 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_ksig_rtl.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_rx_ksig_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="ADI" spirit:library="user" spirit:name="if_gt_rx_ksig" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>rx_gt_ilas_f</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_gt_ilas_q</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_gt_ilas_a</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_gt_ilas_r</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_gt_cgs_k</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_rtl.xml new file mode 100644 index 000000000..e2e49d1c3 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_rx_rtl.xml @@ -0,0 +1,409 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_rx_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="ADI" spirit:library="user" spirit:name="if_gt_rx" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>rx_p</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_n</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_rst_m</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_pll_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_gt_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_gt_rst_m</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_pll_locked</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_pll_locked_m</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_user_ready</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_user_ready_m</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_rst_done</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_rst_done_m</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_out_clk</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isClock>true</spirit:isClock> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_clk</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isClock>true</spirit:isClock> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_sysref</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_sync</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_sof</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_data</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>32</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>32</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_ip_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_ip_sof</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>4</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_ip_data</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>32</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>32</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_ip_sysref</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_ip_sync</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rx_ip_rst_done</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_tx.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_tx.xml new file mode 100644 index 000000000..50eca29d0 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_tx.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_tx</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_tx_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_tx_rtl.xml new file mode 100644 index 000000000..faaa387f2 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_gt_tx_rtl.xml @@ -0,0 +1,379 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_gt_tx_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="ADI" spirit:library="user" spirit:name="if_gt_tx" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>tx_p</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_n</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_rst_m</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_pll_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_gt_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_gt_rst_m</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_pll_locked</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_pll_locked_m</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_user_ready</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_user_ready_m</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_rst_done</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_rst_done_m</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_out_clk</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isClock>true</spirit:isClock> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_clk</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isClock>true</spirit:isClock> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_sysref</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_sync</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_data</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>32</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>32</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_ip_rst</spirit:logicalName> + <spirit:wire> + <spirit:qualifier> + <spirit:isReset>true</spirit:isReset> + </spirit:qualifier> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_ip_data</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>32</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>32</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_ip_sysref</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_ip_sync</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>tx_ip_rst_done</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_ch.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_ch.xml new file mode 100644 index 000000000..32a225486 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_ch.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_xcvr_ch</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_ch_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_ch_rtl.xml new file mode 100644 index 000000000..ba01aef9c --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_ch_rtl.xml @@ -0,0 +1,235 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_xcvr_ch_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="ADI" spirit:library="user" spirit:name="if_xcvr_ch" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>pll_locked</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rst</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>user_ready</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rst_done</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>lpm_dfe_n</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rate</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>3</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>3</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>sys_clk_sel</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>2</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>2</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>out_clk_sel</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>3</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>3</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>sel</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>8</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>8</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>enb</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>addr</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>12</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>12</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>wr</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>wdata</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>16</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>16</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rdata</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>16</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>16</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>ready</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_cm.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_cm.xml new file mode 100644 index 000000000..218fd3686 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_cm.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:busDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_xcvr_cm</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:directConnection>false</spirit:directConnection> + <spirit:isAddressable>false</spirit:isAddressable> + <spirit:maxMasters>1</spirit:maxMasters> + <spirit:maxSlaves>1</spirit:maxSlaves> +</spirit:busDefinition> diff --git a/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_cm_rtl.xml b/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_cm_rtl.xml new file mode 100644 index 000000000..beb223077 --- /dev/null +++ b/fpga/usrp3/lib/vivado_ipi/interfaces/if_xcvr_cm_rtl.xml @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:abstractionDefinition xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>ADI</spirit:vendor> + <spirit:library>user</spirit:library> + <spirit:name>if_xcvr_cm_rtl</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busType spirit:vendor="ADI" spirit:library="user" spirit:name="if_xcvr_cm" spirit:version="1.0"/> + <spirit:ports> + <spirit:port> + <spirit:logicalName>sel</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>8</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>8</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>enb</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>addr</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>12</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>12</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>wr</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>wdata</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>16</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>16</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>rdata</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>16</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>16</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:logicalName>ready</spirit:logicalName> + <spirit:wire> + <spirit:onMaster> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>in</spirit:direction> + </spirit:onMaster> + <spirit:onSlave> + <spirit:presence>required</spirit:presence> + <spirit:width>1</spirit:width> + <spirit:direction>out</spirit:direction> + </spirit:onSlave> + </spirit:wire> + </spirit:port> + </spirit:ports> +</spirit:abstractionDefinition> |