OpenCores
URL https://opencores.org/ocsvn/s80186/s80186/trunk

Subversion Repositories s80186

[/] [s80186/] [trunk/] [CMake/] [Quartus.cmake] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 jamieiles
function(add_fpga)
2
    set(options "")
3
    set(oneValueArgs PROJECT FAMILY PART)
4
    set(multiValueArgs SOURCES DEPENDS)
5
    cmake_parse_arguments(add_fpga "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
6
 
7
    foreach(source ${add_fpga_SOURCES})
8
        list(APPEND SOURCE_ARGS --source=${source})
9
        get_source_file_property(res ${source} COMPILE_FLAGS)
10
        if(NOT res STREQUAL "NOTFOUND")
11
            list(APPEND extra_compile_flags ${res})
12
        endif()
13
    endforeach(source)
14
 
15
    # Use a relative path for the SDC file otherwise Quartus will add it in a
16
    # second time as a relative path and then that causes delays to be added
17
    # twice
18
    file(RELATIVE_PATH sdc_file ${CMAKE_CURRENT_BINARY_DIR}
19
         ${CMAKE_CURRENT_SOURCE_DIR}/${add_fpga_PROJECT}.sdc)
20
 
21
    add_custom_command(OUTPUT ${add_fpga_PROJECT}.qpf
22
                       COMMAND ${QUARTUS_SH_EXECUTABLE} --prepare -f ${add_fpga_FAMILY} -t ${add_fpga_PROJECT} ${add_fpga_PROJECT}
23
                       DEPENDS ${add_fpga_PROJECT}.qsf)
24
    add_custom_command(OUTPUT ${add_fpga_PROJECT}.map.rpt
25
                       COMMAND ${QUARTUS_MAP_EXECUTABLE} ${SOURCE_ARGS} ${extra_compile_flags} --family ${add_fpga_FAMILY} --optimize=speed ${add_fpga_PROJECT}
26
                       DEPENDS ${add_fpga_DEPENDS} ${add_fpga_SOURCES} ${add_fpga_PROJECT}.qpf ${add_fpga_PROJECT}.qsf)
27
    add_custom_command(OUTPUT ${add_fpga_PROJECT}.fit.rpt
28
                       COMMAND ${QUARTUS_FIT_EXECUTABLE} --part=${add_fpga_PART} --read_settings_file=on --set=SDC_FILE=${sdc_file} ${add_fpga_PROJECT}
29
                       DEPENDS ${add_fpga_PROJECT}.map.rpt ${add_fpga_PROJECT}.sdc)
30
    add_custom_command(OUTPUT ${add_fpga_PROJECT}.asm.rpt
31
                       COMMAND ${QUARTUS_ASM_EXECUTABLE} ${add_fpga_PROJECT}
32
                       DEPENDS ${add_fpga_PROJECT}.fit.rpt)
33
    add_custom_command(OUTPUT ${add_fpga_PROJECT}.sta.rpt ${add_fpga_PROJECT}.sof
34
                       COMMAND ${QUARTUS_STA_EXECUTABLE} ${add_fpga_PROJECT}
35
                       DEPENDS ${add_fpga_PROJECT}.asm.rpt)
36
endfunction()

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.