Skip to content

Commit

Permalink
Merge pull request f4pga#1515 from tcal-x/staging100T
Browse files Browse the repository at this point in the history
Initial support for Artix 100t parts
  • Loading branch information
tcal-x committed Jun 19, 2020
2 parents a2ab741 + a8c60d9 commit 9d0b8f2
Show file tree
Hide file tree
Showing 32 changed files with 24,830 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,7 @@ add_dependencies(all_xc7_demos
all_arty-swbut_bin
all_arty-uart_bin
all_arty-full_bin
all_arty100t-full_bin
all_basys3_bin
all_basys3-full_bin
#all_basys3-bottom_bin
Expand All @@ -303,6 +304,7 @@ add_custom_target(all_xc7_diff_fasm)
if (NOT DEFINED ENV{CI} OR NOT $ENV{CI})
add_dependencies(all_xc7_diff_fasm
all_artix7_diff_fasm
all_artix7_100t_diff_fasm
all_zynq7_diff_fasm
)
endif()
Expand Down
1 change: 1 addition & 0 deletions xc/xc7/archs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
add_subdirectory(artix7)
add_subdirectory(artix7_100t)
add_subdirectory(artix7_200t)
add_subdirectory(zynq7)
22 changes: 22 additions & 0 deletions xc/xc7/archs/artix7_100t/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
project_ray_prepare_database(
PRJRAY_ARCH artix7
PRJRAY_DIR ${PRJXRAY_DIR}
PRJRAY_DB_DIR ${PRJXRAY_DB_DIR}
PROTOTYPE_PART xc7a100tfgg676-1
PARTS xc7a100tfgg676-1 xc7a100tcsg324-1
)

add_xc_arch_define(
ARCH artix7_100t
FAMILY xc7
PRJRAY_DIR ${PRJXRAY_DIR}
PRJRAY_DB_DIR ${PRJXRAY_DB_DIR}
PRJRAY_NAME prjxray
PRJRAY_ARCH artix7
PROTOTYPE_PART xc7a100tfgg676-1
YOSYS_SYNTH_SCRIPT ${symbiflow-arch-defs_SOURCE_DIR}/xc/xc7/yosys/synth.tcl
YOSYS_CONV_SCRIPT ${symbiflow-arch-defs_SOURCE_DIR}/xc/xc7/yosys/conv.tcl
)

add_subdirectory(tiles)
add_subdirectory(devices)
5 changes: 5 additions & 0 deletions xc/xc7/archs/artix7_100t/devices/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
add_xc_device_define(
ARCH artix7_100t
PART xc7a100tfgg676-1
DEVICES xc7a100t
)
31 changes: 31 additions & 0 deletions xc/xc7/archs/artix7_100t/devices/xc7a100t-virt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
add_xc_device_define_type(
ARCH artix7_100t
DEVICE xc7a100t
TILE_TYPES
CLBLL_L
CLBLL_R
CLBLM_L
CLBLM_R
BRAM_L
LIOPAD_M
LIOPAD_S
LIOPAD_SING
RIOPAD_M
RIOPAD_S
RIOPAD_SING
CLK_BUFG_BOT_R
CLK_BUFG_TOP_R
CMT_TOP_L_UPPER_T
CMT_TOP_R_UPPER_T
HCLK_IOI3
PB_TYPES
SLICEL
SLICEM
BRAM_L
IOPAD
IOPAD_M
IOPAD_S
BUFGCTRL
PLLE2_ADV
HCLK_IOI3
)
33 changes: 33 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
add_subdirectory(bram_l)
add_subdirectory(bram_r)
add_subdirectory(clbll_l)
add_subdirectory(clbll_r)
add_subdirectory(clblm_l)
add_subdirectory(clblm_r)
add_subdirectory(slicel)
add_subdirectory(slicem)
add_subdirectory(clk_bufg_top_r)
add_subdirectory(clk_bufg_bot_r)
add_subdirectory(bufgctrl)
add_subdirectory(hclk_ioi3)

set(IOPAD_SITES IOB33 IDELAYE2 ILOGICE3 OLOGICE3)
set(IOPAD_S_SITES IOB33S IDELAYE2 ILOGICE3 OLOGICE3)
set(IOPAD_M_SITES IOB33M IDELAYE2 ILOGICE3 OLOGICE3)

project_ray_equiv_tile(
ARCH artix7_100t
TILES RIOPAD_M RIOPAD_S RIOPAD_SING LIOPAD_M LIOPAD_S LIOPAD_SING
PB_TYPES IOPAD IOPAD_S IOPAD_M
PB_TYPE_SITES IOPAD_SITES IOPAD_S_SITES IOPAD_M_SITES
SITE_EQUIV IOB33M=IOB33 IOB33S=IOB33
)

set(PLLE2_ADV_SITES PLLE2_ADV)

project_ray_equiv_tile(
ARCH artix7_100t
TILES CMT_TOP_L_UPPER_T CMT_TOP_R_UPPER_T
PB_TYPES PLLE2_ADV
PB_TYPE_SITES PLLE2_ADV_SITES
)
7 changes: 7 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/bram_l/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project_ray_tile(
ARCH artix7_100t
TILE BRAM_L
SITE_TYPES BRAM_L/BRAM_L
FUSED_SITES
EQUIVALENT_SITES BRAM_L
)
7 changes: 7 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/bram_r/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project_ray_tile(
ARCH artix7_100t
TILE BRAM_R
SITE_TYPES BRAM_R/BRAM_R
FUSED_SITES
EQUIVALENT_SITES BRAM_R
)
21 changes: 21 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/bufgctrl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
set(DEPS "")
append_file_dependency(DEPS ${symbiflow-arch-defs_SOURCE_DIR}/xc/common/primitives/bufgctrl/bufgctrl.pb_type.xml)
get_file_location(BUFGCTRL_PB_TYPE ${symbiflow-arch-defs_SOURCE_DIR}/xc/common/primitives/bufgctrl/bufgctrl.pb_type.xml)

add_custom_command(
OUTPUT bufgctrl.pb_type.xml
COMMAND ${CMAKE_COMMAND} -E copy ${BUFGCTRL_PB_TYPE} ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS ${DEPS}
)
add_file_target(FILE bufgctrl.pb_type.xml GENERATED)

set(DEPS "")
append_file_dependency(DEPS ${symbiflow-arch-defs_SOURCE_DIR}/xc/common/primitives/bufgctrl/bufgctrl.model.xml)
get_file_location(BUFGCTRL_MODEL ${symbiflow-arch-defs_SOURCE_DIR}/xc/common/primitives/bufgctrl/bufgctrl.model.xml)

add_custom_command(
OUTPUT bufgctrl.model.xml
COMMAND ${CMAKE_COMMAND} -E copy ${BUFGCTRL_MODEL} ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS ${DEPS}
)
add_file_target(FILE bufgctrl.model.xml GENERATED)
5 changes: 5 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/clbll_l/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project_ray_tile_capacity(
ARCH artix7_100t
TILE CLBLL_L
SITE_TYPES SLICEL
)
6 changes: 6 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/clbll_r/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
project_ray_tile_capacity(
ARCH artix7_100t
TILE CLBLL_R
SITE_TYPES SLICEL
)

5 changes: 5 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/clblm_l/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project_ray_tile_capacity(
ARCH artix7_100t
TILE CLBLM_L
SITE_TYPES SLICEM/SLICEL SLICEL
)
5 changes: 5 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/clblm_r/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project_ray_tile_capacity(
ARCH artix7_100t
TILE CLBLM_R
SITE_TYPES SLICEM/SLICEL SLICEL
)
5 changes: 5 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/clk_bufg_bot_r/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project_ray_tile_capacity(
ARCH artix7_100t
TILE CLK_BUFG_BOT_R
SITE_TYPES BUFGCTRL
)
5 changes: 5 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/clk_bufg_top_r/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project_ray_tile_capacity(
ARCH artix7_100t
TILE CLK_BUFG_TOP_R
SITE_TYPES BUFGCTRL
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project_ray_tile(
ARCH artix7_100t
TILE CMT_TOP_L_UPPER_T
SITE_TYPES PLLE2_ADV/PLLE2_ADV
EQUIVALENT_SITES CMT_TOP_L_UPPER_T
NO_FASM_PREFIX
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project_ray_tile(
ARCH artix7_100t
TILE CMT_TOP_R_UPPER_T
SITE_TYPES PLLE2_ADV/PLLE2_ADV
EQUIVALENT_SITES CMT_TOP_R_UPPER_T
NO_FASM_PREFIX
)
7 changes: 7 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/hclk_ioi3/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project_ray_tile(
ARCH artix7_100t
TILE HCLK_IOI3
SITE_TYPES IDELAYCTRL/IDELAYCTRL
EQUIVALENT_SITES HCLK_IOI3
SITE_COORDS Y
)
5 changes: 5 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/liob33_sing/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project_ray_tile(
ARCH artix7_100t
TILE LIOB33_SING
SITE_TYPES IOB33
)
7 changes: 7 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/riopad_m/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project_ray_tile(
ARCH artix7_100t
TILE RIOPAD_M
SITE_TYPES IOB33M/IOB33M ILOGICE3/ILOGICE3 OLOGICE3/OLOGICE3 IDELAYE2/IDELAYE2
USE_DATABASE
EQUIVALENT_SITES RIOPAD_M
)
7 changes: 7 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/slicel/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project_ray_tile(
ARCH artix7_100t
TILE SLICEL
SITE_AS_TILE
SITE_TYPES SLICEL/SLICEL0
EQUIVALENT_SITES SLICEL
)
7 changes: 7 additions & 0 deletions xc/xc7/archs/artix7_100t/tiles/slicem/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
project_ray_tile(
ARCH artix7_100t
TILE SLICEM
SITE_AS_TILE
SITE_TYPES SLICEM/SLICEM
EQUIVALENT_SITES SLICEM SLICEL
)
9 changes: 9 additions & 0 deletions xc/xc7/boards.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,15 @@ add_xc_board(
PART xc7a35tcsg324-1
)

add_xc_board(
BOARD arty100t-full
DEVICE xc7a100t
PACKAGE test
PROG_TOOL ${OPENOCD_TARGET}
PROG_CMD "${OPENOCD} -f ${PRJXRAY_DIR}/utils/openocd/board-digilent-basys3.cfg -c \\\"init $<SEMICOLON> pld load 0 \${OUT_BIN} $<SEMICOLON> exit\\\""
PART xc7a100tcsg324-1
)

# TODO: https://github.com/SymbiFlow/symbiflow-arch-defs/issues/344
add_xc_board(
BOARD zybo
Expand Down
13 changes: 13 additions & 0 deletions xc/xc7/tests/buttons/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ add_fpga_target(
EXPLICIT_ADD_FILE_TARGET
)

add_fpga_target(
NAME buttons_arty100t
BOARD arty100t-full
SOURCES buttons_arty.v
INPUT_IO_FILE ${COMMON}/arty_swbut.pcf
EXPLICIT_ADD_FILE_TARGET
)

add_vivado_target(
NAME buttons_arty100t_vivado
PARENT_NAME buttons_arty100t
)

add_file_target(FILE buttons_basys3.v SCANNER_TYPE verilog)
add_fpga_target(
NAME buttons_basys3
Expand Down
15 changes: 15 additions & 0 deletions xc/xc7/tests/counter/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,21 @@ add_fpga_target(
EXPLICIT_ADD_FILE_TARGET
)

add_file_target(FILE counter_arty_bufg.v SCANNER_TYPE verilog)
add_fpga_target(
NAME counter_arty100t
BOARD arty100t-full
SOURCES counter_arty_bufg.v
INPUT_IO_FILE ${COMMON}/arty_swbut.pcf
EXPLICIT_ADD_FILE_TARGET
)

add_vivado_target(
NAME counter_arty100t_vivado
PARENT_NAME counter_arty100t
)


add_file_target(FILE counter_nexys_video.v SCANNER_TYPE verilog)
add_fpga_target(
NAME counter_nexys_video
Expand Down
21 changes: 21 additions & 0 deletions xc/xc7/tests/counter/counter_arty_bufg.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module top (
input wire clk,

input wire [7:0] sw,
output wire [7:0] led
);

localparam BITS = 8;
localparam LOG2DELAY = 28;

reg [BITS+LOG2DELAY-1:0] counter = 0;

IBUF clk_ibuf(.I(clk), .O(clk_ibuf));
BUFG clk_bufg(.I(clk_ibuf), .O(clk_b));

always @(posedge clk_b) begin
counter <= counter + 1;
end

assign led = counter >> LOG2DELAY;
endmodule
17 changes: 17 additions & 0 deletions xc/xc7/tests/ddr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,20 @@ add_vivado_target(
PARENT_NAME ddr_uart_arty
XDC arty_clocks.xdc
)

add_file_target(FILE ddr_uart_100t.v SCANNER_TYPE verilog)
add_fpga_target(
NAME ddr_uart_arty100t
BOARD arty100t-full
SOURCES
ddr_uart_100t.v
INPUT_IO_FILE arty.pcf
INPUT_XDC_FILE arty.xdc
SDC_FILE arty.sdc
EXPLICIT_ADD_FILE_TARGET
)

add_vivado_target(
NAME ddr_uart_arty100t_vivado
PARENT_NAME ddr_uart_arty100t
)

0 comments on commit 9d0b8f2

Please sign in to comment.