1
1
add_library (yosys_passes_pmgen INTERFACE )
2
2
3
- function (pmgen_command _name _path )
3
+ set (PMGEN_TARGETS "" )
4
+
5
+ function (pmgen_command _name _path )
6
+ set (GENERATED_HEADER ${yosys_BINARY_DIR} /${_path}/${_name}_pm.h )
7
+ set (CUSTOM_TARGET_NAME ${_name} _pm_gen )
8
+
4
9
add_custom_command (
5
- OUTPUT ${yosys_BINARY_DIR} /${_path}/${_name}_pm.h
6
- COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} /pmgen.py -o ${yosys_BINARY_DIR} /${_path}/${_name}_pm.h -p ${_name} ${yosys_SOURCE_DIR} /${_path}/${_name}.pmg
10
+ OUTPUT ${GENERATED_HEADER}
11
+ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} /pmgen.py -o ${GENERATED_HEADER} -p ${_name} ${yosys_SOURCE_DIR} /${_path}/${_name}.pmg
7
12
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /pmgen.py ${yosys_SOURCE_DIR} /${_path}/${_name}.pmg
8
13
COMMENT "Generating ${_path} /${_name} _pm.h..."
9
14
)
15
+ add_custom_target (${CUSTOM_TARGET_NAME} DEPENDS ${GENERATED_HEADER} )
16
+ list (APPEND PMGEN_TARGETS ${CUSTOM_TARGET_NAME} )
10
17
endfunction ()
11
18
12
19
pmgen_command (test_pmgen passes/pmgen )
@@ -21,9 +28,10 @@ pmgen_command(microchip_dsp_CREG techlibs/microchip)
21
28
pmgen_command (microchip_dsp_cascade techlibs/microchip )
22
29
pmgen_command (xilinx_srl techlibs/xilinx )
23
30
31
+ set (PEEPOPT_HEADER ${yosys_BINARY_DIR} /passes/opt/peepopt_pm.h )
24
32
add_custom_command (
25
- OUTPUT ${yosys_BINARY_DIR} /passes/opt/peepopt_pm.h
26
- COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} /pmgen.py -o ${yosys_BINARY_DIR} /passes/opt/peepopt_pm.h -p peepopt
33
+ OUTPUT ${PEEPOPT_HEADER}
34
+ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} /pmgen.py -o ${PEEPOPT_HEADER} -p peepopt
27
35
${yosys_SOURCE_DIR} /passes/opt/peepopt_shiftmul_right.pmg
28
36
${yosys_SOURCE_DIR} /passes/opt/peepopt_shiftmul_left.pmg
29
37
${yosys_SOURCE_DIR} /passes/opt/peepopt_shiftadd.pmg
@@ -39,9 +47,13 @@ add_custom_command(
39
47
${yosys_SOURCE_DIR} /passes/opt/peepopt_formal_clockgateff.pmg
40
48
COMMENT "Generating passes/pmgen/peepopt_pm.h..."
41
49
)
50
+ add_custom_target (peepopt_pm_gen DEPENDS ${PEEPOPT_HEADER} )
51
+ list (APPEND PMGEN_TARGETS peepopt_pm_gen )
52
+
53
+
42
54
43
55
target_sources (yosys_passes_pmgen INTERFACE
44
- test_pmgen.cc
56
+ ${CMAKE_CURRENT_SOURCE_DIR} / test_pmgen.cc
45
57
${yosys_SOURCE_DIR} /techlibs/ice40/ice40_dsp.cc
46
58
${yosys_SOURCE_DIR} /techlibs/ice40/ice40_wrapcarry.cc
47
59
${yosys_SOURCE_DIR} /techlibs/xilinx/xilinx_dsp.cc
@@ -50,22 +62,13 @@ target_sources(yosys_passes_pmgen INTERFACE
50
62
${yosys_SOURCE_DIR} /techlibs/xilinx/xilinx_srl.cc
51
63
)
52
64
53
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /passes/pmgen/test_pmgen_pm.h )
54
-
55
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/ice40/ice40_dsp_pm.h )
56
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/ice40/ice40_wrapcarry_pm.h )
57
-
58
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/xilinx/xilinx_dsp_pm.h )
59
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/xilinx/xilinx_dsp48a_pm.h )
60
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/xilinx/xilinx_dsp_CREG_pm.h )
61
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/xilinx/xilinx_dsp_cascade_pm.h )
62
-
63
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/microchip/microchip_dsp_pm.h )
64
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/microchip/microchip_dsp_CREG_pm.h )
65
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/microchip/microchip_dsp_cascade_pm.h )
66
-
67
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /passes/opt/peepopt_pm.h )
68
-
69
- target_sources (yosys_passes_pmgen PUBLIC ${yosys_BINARY_DIR} /techlibs/xilinx/xilinx_srl_pm.h )
65
+ target_include_directories (yosys_passes_pmgen INTERFACE
66
+ ${yosys_BINARY_DIR} /passes/pmgen
67
+ ${yosys_BINARY_DIR} /techlibs/ice40
68
+ ${yosys_BINARY_DIR} /techlibs/xilinx
69
+ ${yosys_BINARY_DIR} /techlibs/microchip
70
+ ${yosys_BINARY_DIR} /passes/opt
71
+ )
70
72
71
- target_link_libraries (yosys PUBLIC yosys_passes_pmgen )
73
+ add_dependencies (yosys_passes_pmgen ${PMGEN_TARGETS} )
74
+ target_link_libraries (yosys PUBLIC yosys_passes_pmgen )
0 commit comments