forked from f4pga/f4pga-arch-defs
-
Notifications
You must be signed in to change notification settings - Fork 2
/
CMakeLists.txt
55 lines (48 loc) · 1.3 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
add_subdirectory(layouts)
add_subdirectory(top-routing-virt)
function(DEFINE_ICE40_DEVICE)
set(options)
set(oneValueArgs DEVICE DEVICE_TYPE PACKAGES)
set(multiValueArgs)
cmake_parse_arguments(
DEFINE_ICE40_DEVICE
"${options}"
"${oneValueArgs}"
"${multiValueArgs}"
${ARGN}
)
define_device(
DEVICE ${DEFINE_ICE40_DEVICE_DEVICE}
ARCH ice40
DEVICE_TYPE ${DEFINE_ICE40_DEVICE_DEVICE_TYPE}
PACKAGES ${DEFINE_ICE40_DEVICE_PACKAGES}
CACHE_PLACE_DELAY
CACHE_ARGS
--route_chan_width 100
--clock_modeling route
--allow_unrelated_clustering off
--target_ext_pin_util 0.7
--router_init_wirelength_abort_threshold 2
--congested_routing_iteration_threshold 0.8
)
add_icebox_layouts(
DEVICE
${DEFINE_ICE40_DEVICE_DEVICE}
PACKAGES
${DEFINE_ICE40_DEVICE_PACKAGES}
)
endfunction()
define_ice40_device(
DEVICE
hx1k
DEVICE_TYPE
top-routing-virt
PACKAGES
tq144;ct256
)
define_ice40_device(DEVICE lp1k DEVICE_TYPE top-routing-virt PACKAGES qn84)
if (NOT LIGHT_BUILD)
define_ice40_device(DEVICE hx8k DEVICE_TYPE top-routing-virt PACKAGES ct256)
define_ice40_device(DEVICE lp8k DEVICE_TYPE top-routing-virt PACKAGES cm81)
define_ice40_device(DEVICE up5k DEVICE_TYPE top-routing-virt PACKAGES sg48)
endif (NOT LIGHT_BUILD)