Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion cmake/sim/cadence/xcelium.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,8 @@ function(xcelium IP_LIB)
set_property(TARGET ${ARG_RUN_TARGET_NAME} PROPERTY DESCRIPTION ${DESCRIPTION})
set_property(TARGET ${ARG_RUN_TARGET_NAME} APPEND PROPERTY ADDITIONAL_CLEAN_FILES ${__clean_files})
endif()
set(SOCMAKE_SIM_RUN_CMD cd ${OUTDIR} && ${run_sim_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_CMD ${run_sim_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_DIR ${OUTDIR} PARENT_SCOPE)
set(SOCMAKE_COMPILE_TARGET ${compile_target} PARENT_SCOPE)
set(SOCMAKE_ELABORATE_TARGET ${elaborate_target} PARENT_SCOPE)
if(NOT ARG_NO_RUN_TARGET)
Expand Down
59 changes: 42 additions & 17 deletions cmake/sim/cocotb/cocotb.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ function(cocotb IP_LIB)
RUN_ARGS -M${COCOTB_LIB_DIR} -m${COCOTB_LIB_NAME}
)

set(sim_run_cmd ${SIM_RUN_CMD} ${ARG_RUN_ARGS})
set(sim_run_cmd ${SOCMAKE_SIM_RUN_CMD} ${ARG_RUN_ARGS})
set(sim_build_dep ${IP_LIB}_iverilog)
message(DEBUG "COCOTB: Icarus verilog run command: ${sim_run_cmd}")
elseif(${ARG_SIM} STREQUAL verilator)
Expand Down Expand Up @@ -197,7 +197,7 @@ function(cocotb IP_LIB)
ELABORATE_ARGS -access +rwc -timescale ${ARG_TIMESCALE} -loadvpi ${COCOTB_VPI_PATH}:vlog_startup_routines_bootstrap -loadvhpi ${COCOTB_VHPI_PATH}:cocotbvhpi_entry_point
SV_COMPILE_ARGS -DCOCOTB_SIM=1
)
set(sim_run_cmd ${SIM_RUN_CMD} ${ARG_RUN_ARGS})
set(sim_run_cmd ${SOCMAKE_SIM_RUN_CMD} ${ARG_RUN_ARGS})
set(sim_build_dep ${IP_LIB}_xcelium)
message(DEBUG "COCOTB: Xcelium run command: ${sim_run_cmd}")
elseif(${ARG_SIM} STREQUAL modelsim OR ${ARG_SIM} STREQUAL questa)
Expand Down Expand Up @@ -233,7 +233,7 @@ function(cocotb IP_LIB)
SV_COMPILE_ARGS +define+COCOTB_SIM=1
RUN_ARGS +define+COCOTB_SIM=1
)
set(sim_run_cmd ${SIM_RUN_CMD} ${ARG_RUN_ARGS})
set(sim_run_cmd ${SOCMAKE_SIM_RUN_CMD} ${ARG_RUN_ARGS})
set(sim_build_dep ${IP_LIB}_vcs)
message(DEBUG "COCOTB: VCS run command: ${sim_run_cmd}")
else()
Expand All @@ -249,12 +249,23 @@ function(cocotb IP_LIB)
# Default parameters based on cocotb Makefile.inc
set(COCOTB_RESULTS_FILE ${OUTDIR}/results.xml)

set(__sim_run_cmd
PYTHONPATH=${PYTHONPATH}
MODULE=${ARG_COCOTB_MODULE}
COCOTB_RESULTS_FILE=${COCOTB_RESULTS_FILE}
${sim_run_cmd}
)
set(__sim_run_cmd ${sim_run_cmd})
list(FIND __sim_run_cmd "&&" _and_index)
if(_and_index GREATER -1)
math(EXPR _insert_index "${_and_index} + 1")
list(INSERT __sim_run_cmd ${_insert_index}
PYTHONPATH=${PYTHONPATH}
MODULE=${ARG_COCOTB_MODULE}
COCOTB_RESULTS_FILE=${COCOTB_RESULTS_FILE}
)
else()
set(__sim_run_cmd
PYTHONPATH=${PYTHONPATH}
MODULE=${ARG_COCOTB_MODULE}
COCOTB_RESULTS_FILE=${COCOTB_RESULTS_FILE}
${sim_run_cmd}
)
endif()

if(NOT ARG_NO_RUN_TARGET)
if(ARG_RUN_TARGET_NAME)
Expand Down Expand Up @@ -293,12 +304,25 @@ function(cocotb IP_LIB)
# Default parameters based on cocotb Makefile.inc
set(COCOTB_RESULTS_FILE ${OUTDIR}/results.xml)

set(__sim_run_cmd
PYTHONPATH=${PYTHONPATH}
MODULE=${ARG_COCOTB_MODULE}
COCOTB_RESULTS_FILE=${COCOTB_RESULTS_FILE}
${sim_run_cmd}
)
set(__sim_run_cmd ${sim_run_cmd})
list(FIND __sim_run_cmd "&&" _and_index)
if(_and_index GREATER -1)
math(EXPR _insert_index "${_and_index} + 1")
list(INSERT __sim_run_cmd ${_insert_index}
PYTHONPATH=${PYTHONPATH}
MODULE=${ARG_COCOTB_MODULE}
COCOTB_RESULTS_FILE=${COCOTB_RESULTS_FILE}
TESTCASE=${ARG_COCOTB_MODULE}_test_${test_num}
)
else()
set(__sim_run_cmd
PYTHONPATH=${PYTHONPATH}
MODULE=${ARG_COCOTB_MODULE}
COCOTB_RESULTS_FILE=${COCOTB_RESULTS_FILE}
TESTCASE=${ARG_COCOTB_MODULE}_test_${test_num}
${sim_run_cmd}
)
endif()

if(NOT ARG_NO_RUN_TARGET)
if(ARG_RUN_TARGET_NAME)
Expand All @@ -311,7 +335,7 @@ function(cocotb IP_LIB)
# Add a custom target that depends on the executable and stamp file
add_custom_target(${CUSTOM_TARGET_NAME}
COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTDIR}
COMMAND TESTCASE=${ARG_COCOTB_MODULE}_test_${test_num} ${__sim_run_cmd}
COMMAND ${__sim_run_cmd}
BYPRODUCTS ${COCOTB_RESULTS_FILE}
DEPENDS ${sim_build_dep} ${cocotb_custom_sim_deps}
COMMENT ${DESCRIPTION}
Expand All @@ -321,7 +345,8 @@ function(cocotb IP_LIB)
endforeach()
endif() # ARG_COCOTB_TESTCASE

set(SIM_RUN_CMD ${sim_run_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_CMD ${sim_run_cmd} PARENT_SCOPE)
set(SIM_BUILD_DEP ${sim_build_dep} PARENT_SCOPE)

endfunction()

2 changes: 1 addition & 1 deletion cmake/sim/ghdl/ghdl.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ function(ghdl IP_LIB)
)
set_property(TARGET ${ARG_RUN_TARGET_NAME} PROPERTY DESCRIPTION ${DESCRIPTION})
endif()
set(SIM_RUN_CMD ${__ghdl_run_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_CMD ${__ghdl_run_cmd} PARENT_SCOPE)

endfunction()

Expand Down
2 changes: 1 addition & 1 deletion cmake/sim/iverilog/iverilog.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ function(iverilog IP_LIB)
)
set_property(TARGET ${ARG_RUN_TARGET_NAME} PROPERTY DESCRIPTION ${DESCRIPTION})
endif()
set(SIM_RUN_CMD ${__sim_run_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_CMD ${__sim_run_cmd} PARENT_SCOPE)

endfunction()

3 changes: 2 additions & 1 deletion cmake/sim/siemens/modelsim.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,8 @@ function(modelsim IP_LIB)
set_property(TARGET ${run_target} PROPERTY DESCRIPTION ${DESCRIPTION})
endif()

set(SOCMAKE_SIM_RUN_CMD cd ${OUTDIR} && ${run_sim_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_CMD ${run_sim_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_DIR ${OUTDIR} PARENT_SCOPE)
set(SOCMAKE_COMPILE_TARGET ${compile_target} PARENT_SCOPE)
if(NOT ARG_NO_RUN_TARGET)
set(SOCMAKE_ELABORATE_TARGET ${run_target} PARENT_SCOPE)
Expand Down
6 changes: 3 additions & 3 deletions cmake/sim/synopsys/vcs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,9 @@ function(vcs IP_LIB)
)
set_property(TARGET ${run_target} PROPERTY DESCRIPTION ${DESCRIPTION})
endif()
set(SIM_RUN_CMD ${run_sim_cmd} PARENT_SCOPE)

set(SOCMAKE_SIM_RUN_CMD cd ${OUTDIR} && ${run_sim_cmd} PARENT_SCOPE)

set(SOCMAKE_SIM_RUN_CMD ${run_sim_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_DIR ${OUTDIR} PARENT_SCOPE)
set(SOCMAKE_COMPILE_TARGET ${compile_target} PARENT_SCOPE)
set(SOCMAKE_ELABORATE_TARGET ${elaborate_target} PARENT_SCOPE)
if(NOT ARG_NO_RUN_TARGET)
Expand Down
2 changes: 1 addition & 1 deletion cmake/sim/xilinx/vivado_sim.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ function(vivado_sim IP_LIB)
)
set_property(TARGET ${ARG_RUN_TARGET_NAME} PROPERTY DESCRIPTION ${DESCRIPTION})
endif()
set(SIM_RUN_CMD ${__xsim_cmd} PARENT_SCOPE)
set(SOCMAKE_SIM_RUN_CMD ${__xsim_cmd} PARENT_SCOPE)

endfunction()

Expand Down