Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial support for Artix 100t parts #1515

Merged
merged 4 commits into from
Jun 19, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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
)