diff --git a/fpga/01_get_redpitaya.sh b/fpga/01_get_redpitaya.sh new file mode 100755 index 0000000..82992ac --- /dev/null +++ b/fpga/01_get_redpitaya.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +git clone https://github.com/RedPitaya/RedPitaya-FPGA.git --single-branch --branch Release_2024.1 + diff --git a/fpga/01_build_bitfile.sh b/fpga/11_build_bitfile.sh similarity index 100% rename from fpga/01_build_bitfile.sh rename to fpga/11_build_bitfile.sh diff --git a/fpga/vivado/nonproject.tcl b/fpga/vivado/nonproject.tcl index 362c033..54e3be7 100644 --- a/fpga/vivado/nonproject.tcl +++ b/fpga/vivado/nonproject.tcl @@ -9,6 +9,9 @@ # This is used by "synth_design". set_part xc7z010clg400-1 +# Specify path to RedPitaya board definition. +set_param board.repoPaths [list "RedPitaya-FPGA/brd"] + # Specify board type. # Unclear whether this is required. set_property board_part redpitaya.com:redpitaya:part0:1.1 [current_project] diff --git a/fpga/vivado/redpitaya_puzzlefw.srcs/sources_1/bd/puzzlefw/puzzlefw.bd b/fpga/vivado/redpitaya_puzzlefw.srcs/sources_1/bd/puzzlefw/puzzlefw.bd index f6f894b..99cce7c 100644 --- a/fpga/vivado/redpitaya_puzzlefw.srcs/sources_1/bd/puzzlefw/puzzlefw.bd +++ b/fpga/vivado/redpitaya_puzzlefw.srcs/sources_1/bd/puzzlefw/puzzlefw.bd @@ -14,16 +14,11 @@ "processing_system7_0": "", "proc_sys_reset_0": "", "axi_interconnect_0": { - "xbar": "", "s00_couplers": { "auto_pc": "" - }, - "m00_couplers": {}, - "m01_couplers": {} + } }, - "axi_apb_bridge_0": "", - "axi_bram_ctrl_0": "", - "blk_mem_gen_0": "" + "axi_apb_bridge_0": "" }, "interface_ports": { "DDR_0": { @@ -1324,8 +1319,11 @@ "inst_hier_path": "axi_interconnect_0", "xci_name": "puzzlefw_axi_interconnect_0_0", "parameters": { + "ENABLE_ADVANCED_OPTIONS": { + "value": "0" + }, "NUM_MI": { - "value": "2" + "value": "1" } }, "interface_ports": { @@ -1336,10 +1334,6 @@ "M00_AXI": { "mode": "Master", "vlnv": "xilinx.com:interface:aximm_rtl:1.0" - }, - "M01_AXI": { - "mode": "Master", - "vlnv": "xilinx.com:interface:aximm_rtl:1.0" } }, "ports": { @@ -1387,51 +1381,9 @@ "M00_ARESETN": { "type": "rst", "direction": "I" - }, - "M01_ACLK": { - "type": "clk", - "direction": "I", - "parameters": { - "ASSOCIATED_BUSIF": { - "value": "M01_AXI" - }, - "ASSOCIATED_RESET": { - "value": "M01_ARESETN" - } - } - }, - "M01_ARESETN": { - "type": "rst", - "direction": "I" } }, "components": { - "xbar": { - "vlnv": "xilinx.com:ip:axi_crossbar:2.1", - "xci_name": "puzzlefw_xbar_0", - "xci_path": "ip/puzzlefw_xbar_0/puzzlefw_xbar_0.xci", - "inst_hier_path": "axi_interconnect_0/xbar", - "parameters": { - "NUM_MI": { - "value": "2" - }, - "NUM_SI": { - "value": "1" - }, - "STRATEGY": { - "value": "0" - } - }, - "interface_ports": { - "S00_AXI": { - "mode": "Slave", - "bridges": [ - "M00_AXI", - "M01_AXI" - ] - } - } - }, "s00_couplers": { "interface_ports": { "M_AXI": { @@ -1529,127 +1481,13 @@ ] } } - }, - "m00_couplers": { - "interface_ports": { - "M_AXI": { - "mode": "Master", - "vlnv": "xilinx.com:interface:aximm_rtl:1.0" - }, - "S_AXI": { - "mode": "Slave", - "vlnv": "xilinx.com:interface:aximm_rtl:1.0" - } - }, - "ports": { - "M_ACLK": { - "type": "clk", - "direction": "I", - "parameters": { - "ASSOCIATED_BUSIF": { - "value": "M_AXI" - }, - "ASSOCIATED_RESET": { - "value": "M_ARESETN" - } - } - }, - "M_ARESETN": { - "type": "rst", - "direction": "I" - }, - "S_ACLK": { - "type": "clk", - "direction": "I", - "parameters": { - "ASSOCIATED_BUSIF": { - "value": "S_AXI" - }, - "ASSOCIATED_RESET": { - "value": "S_ARESETN" - } - } - }, - "S_ARESETN": { - "type": "rst", - "direction": "I" - } - }, - "interface_nets": { - "m00_couplers_to_m00_couplers": { - "interface_ports": [ - "S_AXI", - "M_AXI" - ] - } - } - }, - "m01_couplers": { - "interface_ports": { - "M_AXI": { - "mode": "Master", - "vlnv": "xilinx.com:interface:aximm_rtl:1.0" - }, - "S_AXI": { - "mode": "Slave", - "vlnv": "xilinx.com:interface:aximm_rtl:1.0" - } - }, - "ports": { - "M_ACLK": { - "type": "clk", - "direction": "I", - "parameters": { - "ASSOCIATED_BUSIF": { - "value": "M_AXI" - }, - "ASSOCIATED_RESET": { - "value": "M_ARESETN" - } - } - }, - "M_ARESETN": { - "type": "rst", - "direction": "I" - }, - "S_ACLK": { - "type": "clk", - "direction": "I", - "parameters": { - "ASSOCIATED_BUSIF": { - "value": "S_AXI" - }, - "ASSOCIATED_RESET": { - "value": "S_ARESETN" - } - } - }, - "S_ARESETN": { - "type": "rst", - "direction": "I" - } - }, - "interface_nets": { - "m01_couplers_to_m01_couplers": { - "interface_ports": [ - "S_AXI", - "M_AXI" - ] - } - } } }, "interface_nets": { - "m00_couplers_to_axi_interconnect_0": { + "s00_couplers_to_axi_interconnect_0": { "interface_ports": [ "M00_AXI", - "m00_couplers/M_AXI" - ] - }, - "s00_couplers_to_xbar": { - "interface_ports": [ - "s00_couplers/M_AXI", - "xbar/S00_AXI" + "s00_couplers/M_AXI" ] }, "axi_interconnect_0_to_s00_couplers": { @@ -1657,43 +1495,19 @@ "S00_AXI", "s00_couplers/S_AXI" ] - }, - "xbar_to_m01_couplers": { - "interface_ports": [ - "xbar/M01_AXI", - "m01_couplers/S_AXI" - ] - }, - "m01_couplers_to_axi_interconnect_0": { - "interface_ports": [ - "M01_AXI", - "m01_couplers/M_AXI" - ] - }, - "xbar_to_m00_couplers": { - "interface_ports": [ - "xbar/M00_AXI", - "m00_couplers/S_AXI" - ] } }, "nets": { "axi_interconnect_0_ACLK_net": { "ports": [ - "ACLK", - "xbar/aclk", - "s00_couplers/M_ACLK", - "m00_couplers/S_ACLK", - "m01_couplers/S_ACLK" + "M00_ACLK", + "s00_couplers/M_ACLK" ] }, "axi_interconnect_0_ARESETN_net": { "ports": [ - "ARESETN", - "xbar/aresetn", - "s00_couplers/M_ARESETN", - "m00_couplers/S_ARESETN", - "m01_couplers/S_ARESETN" + "M00_ARESETN", + "s00_couplers/M_ARESETN" ] }, "S00_ACLK_1": { @@ -1707,30 +1521,6 @@ "S00_ARESETN", "s00_couplers/S_ARESETN" ] - }, - "M00_ACLK_1": { - "ports": [ - "M00_ACLK", - "m00_couplers/M_ACLK" - ] - }, - "M00_ARESETN_1": { - "ports": [ - "M00_ARESETN", - "m00_couplers/M_ARESETN" - ] - }, - "M01_ACLK_1": { - "ports": [ - "M01_ACLK", - "m01_couplers/M_ACLK" - ] - }, - "M01_ARESETN_1": { - "ports": [ - "M01_ARESETN", - "m01_couplers/M_ARESETN" - ] } } }, @@ -1755,67 +1545,31 @@ ] } } - }, - "axi_bram_ctrl_0": { - "vlnv": "xilinx.com:ip:axi_bram_ctrl:4.1", - "xci_name": "puzzlefw_axi_bram_ctrl_0_0", - "xci_path": "ip/puzzlefw_axi_bram_ctrl_0_0/puzzlefw_axi_bram_ctrl_0_0.xci", - "inst_hier_path": "axi_bram_ctrl_0", - "parameters": { - "PROTOCOL": { - "value": "AXI4LITE" - }, - "SINGLE_PORT_BRAM": { - "value": "1" - } - }, - "hdl_attributes": { - "BMM_INFO_ADDRESS_SPACE": { - "value": "byte 0x40000000 32 > puzzlefw blk_mem_gen_0", - "value_src": "default" - }, - "KEEP_HIERARCHY": { - "value": "yes", - "value_src": "default" - } - } - }, - "blk_mem_gen_0": { - "vlnv": "xilinx.com:ip:blk_mem_gen:8.4", - "xci_name": "puzzlefw_blk_mem_gen_0_0", - "xci_path": "ip/puzzlefw_blk_mem_gen_0_0/puzzlefw_blk_mem_gen_0_0.xci", - "inst_hier_path": "blk_mem_gen_0" } }, "interface_nets": { + "processing_system7_0_DDR": { + "interface_ports": [ + "DDR_0", + "processing_system7_0/DDR" + ] + }, "S_AXI_HP0_0_1": { "interface_ports": [ "S_AXI_HP0_0", "processing_system7_0/S_AXI_HP0" ] }, - "axi_bram_ctrl_0_BRAM_PORTA": { - "interface_ports": [ - "axi_bram_ctrl_0/BRAM_PORTA", - "blk_mem_gen_0/BRAM_PORTA" - ] - }, - "axi_interconnect_0_M01_AXI": { - "interface_ports": [ - "axi_bram_ctrl_0/S_AXI", - "axi_interconnect_0/M01_AXI" - ] - }, "axi_interconnect_0_M00_AXI": { "interface_ports": [ "axi_interconnect_0/M00_AXI", "axi_apb_bridge_0/AXI4_LITE" ] }, - "processing_system7_0_DDR": { + "processing_system7_0_FIXED_IO": { "interface_ports": [ - "DDR_0", - "processing_system7_0/DDR" + "FIXED_IO_0", + "processing_system7_0/FIXED_IO" ] }, "processing_system7_0_M_AXI_GP0": { @@ -1829,12 +1583,6 @@ "APB_M_0", "axi_apb_bridge_0/APB_M" ] - }, - "processing_system7_0_FIXED_IO": { - "interface_ports": [ - "FIXED_IO_0", - "processing_system7_0/FIXED_IO" - ] } }, "nets": { @@ -1849,9 +1597,7 @@ "proc_sys_reset_0/peripheral_aresetn", "axi_interconnect_0/S00_ARESETN", "axi_interconnect_0/M00_ARESETN", - "axi_apb_bridge_0/s_axi_aresetn", - "axi_bram_ctrl_0/s_axi_aresetn", - "axi_interconnect_0/M01_ARESETN" + "axi_apb_bridge_0/s_axi_aresetn" ] }, "proc_sys_reset_0_interconnect_aresetn": { @@ -1881,9 +1627,7 @@ "axi_interconnect_0/ACLK", "axi_interconnect_0/S00_ACLK", "axi_interconnect_0/M00_ACLK", - "axi_apb_bridge_0/s_axi_aclk", - "axi_bram_ctrl_0/s_axi_aclk", - "axi_interconnect_0/M01_ACLK" + "axi_apb_bridge_0/s_axi_aclk" ] }, "processing_system7_0_FCLK_CLK0": { @@ -1929,11 +1673,6 @@ "address_block": "/APB_M_0/Reg", "offset": "0x43000000", "range": "2M" - }, - "SEG_axi_bram_ctrl_0_Mem0": { - "address_block": "/axi_bram_ctrl_0/S_AXI/Mem0", - "offset": "0x40000000", - "range": "8K" } } } diff --git a/fpga/vivado/redpitaya_puzzlefw.xpr b/fpga/vivado/redpitaya_puzzlefw.xpr index 4fe72d7..6719bff 100644 --- a/fpga/vivado/redpitaya_puzzlefw.xpr +++ b/fpga/vivado/redpitaya_puzzlefw.xpr @@ -32,7 +32,7 @@