commit
3f0ad5915a
@ -5,8 +5,9 @@ task:
|
||||
memory: 16
|
||||
dockerfile: .cirrus/Dockerfile.ubuntu16.04
|
||||
|
||||
build_script: mkdir build && cd build && cmake .. -DARCH=all -DTRELLIS_ROOT=/usr/local/src/prjtrellis -DBUILD_TESTS=on && make -j $(nproc)
|
||||
build_script: mkdir build && cd build && cmake .. -DARCH=all -DTRELLIS_ROOT=/usr/local/src/prjtrellis -DTORC_ROOT=/usr/local/src/torc -DBUILD_TESTS=on && make -j $(nproc)
|
||||
test_generic_script: cd build && ./nextpnr-generic-test
|
||||
test_ice40_script: cd build && ./nextpnr-ice40-test
|
||||
smoketest_ice40_script: export NEXTPNR=$(pwd)/build/nextpnr-ice40 && cd ice40/smoketest/attosoc && ./smoketest.sh
|
||||
test_ecp5_script: cd build && ./nextpnr-ecp5-test
|
||||
test_ecp5_script: cd build && ./nextpnr-ecp5-test
|
||||
test_xc7_script: cd build && ./nextpnr-xc7-test
|
||||
|
@ -52,4 +52,10 @@ RUN set -e -x ;\
|
||||
make -j $(nproc) ;\
|
||||
make install
|
||||
|
||||
|
||||
RUN set -e -x ;\
|
||||
mkdir -p /usr/local/src ;\
|
||||
cd /usr/local/src ;\
|
||||
git clone --recursive https://github.com/eddiehung/torc.git ;\
|
||||
cd torc ;\
|
||||
git reset --hard 90874d1293fbeba77bae41b5c38168cd91e1bf00 ;\
|
||||
make -j $(nproc) -C src/torc
|
||||
|
@ -1 +0,0 @@
|
||||
include_directories(/opt/torc/src)
|
2
torc
2
torc
@ -1 +1 @@
|
||||
Subproject commit a5a4ec057eae3ed07ed2acb9da13404808e37211
|
||||
Subproject commit 90874d1293fbeba77bae41b5c38168cd91e1bf00
|
12
xc7/arch.cc
12
xc7/arch.cc
@ -349,7 +349,9 @@ void IdString::initialize_arch(const BaseCtx *ctx)
|
||||
|
||||
Arch::Arch(ArchArgs args) : args(args)
|
||||
{
|
||||
torc::common::DirectoryTree directoryTree("/opt/torc/src/torc");
|
||||
std::stringstream ss;
|
||||
ss << TORC_ROOT << "/src/torc";
|
||||
torc::common::DirectoryTree directoryTree(ss.str().c_str());
|
||||
if (args.type == ArchArgs::Z020) {
|
||||
torc_info = std::unique_ptr<TorcInfo>(new TorcInfo(this, "xc7z020", args.package));
|
||||
} else if (args.type == ArchArgs::VX980) {
|
||||
@ -358,8 +360,10 @@ Arch::Arch(ArchArgs args) : args(args)
|
||||
log_error("Unsupported XC7 chip type.\n");
|
||||
}
|
||||
|
||||
width = torc_info->width;
|
||||
height = torc_info->height;
|
||||
// TODO: FIXME
|
||||
width = torc_info->width;
|
||||
height = torc_info->height;
|
||||
|
||||
/*if (getCtx()->verbose)*/ {
|
||||
log_info("Number of bels: %d\n", torc_info->num_bels);
|
||||
log_info("Number of wires: %d\n", torc_info->num_wires);
|
||||
@ -442,6 +446,8 @@ BelId Arch::getBelByLocation(Loc loc) const
|
||||
BelRange Arch::getBelsByTile(int x, int y) const
|
||||
{
|
||||
BelRange br;
|
||||
br.b.cursor = 0;
|
||||
br.e.cursor = 0;
|
||||
NPNR_ASSERT("TODO");
|
||||
return br;
|
||||
}
|
||||
|
167
xc7/family.cmake
167
xc7/family.cmake
@ -1,73 +1,108 @@
|
||||
add_dependencies(nextpnr-${family} torc)
|
||||
add_custom_target(torc ALL
|
||||
COMMAND $(MAKE) > /dev/null 2> /dev/null
|
||||
COMMENT "Building torc (may take some time...)"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/torc/src)
|
||||
find_package(Boost REQUIRED COMPONENTS serialization iostreams ${boost_libs} ${boost_python_lib})
|
||||
if (NOT DEFINED TORC_ROOT)
|
||||
# Adapted from https://cliutils.gitlab.io/modern-cmake/chapters/projects/submodule.html
|
||||
find_package(Git QUIET)
|
||||
if(GIT_FOUND AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.gitmodules")
|
||||
# Update submodules as needed
|
||||
option(GIT_SUBMODULE "Check submodules during build" ON)
|
||||
if(GIT_SUBMODULE)
|
||||
message(STATUS "Submodule update")
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
||||
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
|
||||
message(FATAL_ERROR "git submodule update --init failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include_directories(torc/src)
|
||||
target_link_libraries(
|
||||
nextpnr-${family} PRIVATE
|
||||
add_dependencies(nextpnr-${family} torc)
|
||||
if (BUILD_TESTS)
|
||||
add_dependencies(nextpnr-${family}-test torc)
|
||||
endif()
|
||||
add_custom_target(torc ALL
|
||||
COMMAND $(MAKE) > /dev/null 2> /dev/null
|
||||
COMMENT "Building torc (may take some time...)"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/torc/src)
|
||||
set(TORC_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/torc)
|
||||
endif()
|
||||
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Arc.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/ArcUsage.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Array.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/DDB.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/DDBConsoleStreams.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/DDBStreamHelper.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/DigestStream.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/ExtendedWireInfo.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/InstancePin.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/OutputStreamHelpers.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Package.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Pad.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/PrimitiveConn.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/PrimitiveDef.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/PrimitiveElement.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/PrimitiveElementPin.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/PrimitivePin.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Segments.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Site.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Sites.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Tiles.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/TileInfo.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Tilewire.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/Versions.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/VprExporter.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/WireInfo.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/WireUsage.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/XdlImporter.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/architecture/XilinxDatabaseTypes.o
|
||||
find_package(Boost REQUIRED COMPONENTS regex ${boost_libs} ${boost_python_lib})
|
||||
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/common/Annotated.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/common/DeviceDesignator.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/common/Devices.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/common/DirectoryTree.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/common/DottedVersion.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/common/NullOutputStream.o
|
||||
target_compile_definitions(nextpnr-${family} PRIVATE -DTORC_ROOT="${TORC_ROOT}")
|
||||
target_include_directories(nextpnr-${family} PUBLIC ${TORC_ROOT}/src)
|
||||
if (BUILD_TESTS)
|
||||
target_compile_definitions(nextpnr-${family}-test PRIVATE -DTORC_ROOT="${TORC_ROOT}")
|
||||
target_include_directories(nextpnr-${family}-test PUBLIC ${TORC_ROOT}/src)
|
||||
endif()
|
||||
if (BUILD_GUI)
|
||||
target_include_directories(gui_${family} PUBLIC ${TORC_ROOT}/src)
|
||||
endif()
|
||||
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/externals/zlib/zfstream.o
|
||||
set(TORC_OBJS
|
||||
${TORC_ROOT}/src/torc/architecture/Arc.o
|
||||
${TORC_ROOT}/src/torc/architecture/ArcUsage.o
|
||||
${TORC_ROOT}/src/torc/architecture/Array.o
|
||||
${TORC_ROOT}/src/torc/architecture/DDB.o
|
||||
${TORC_ROOT}/src/torc/architecture/DDBConsoleStreams.o
|
||||
${TORC_ROOT}/src/torc/architecture/DDBStreamHelper.o
|
||||
${TORC_ROOT}/src/torc/architecture/DigestStream.o
|
||||
${TORC_ROOT}/src/torc/architecture/ExtendedWireInfo.o
|
||||
${TORC_ROOT}/src/torc/architecture/InstancePin.o
|
||||
${TORC_ROOT}/src/torc/architecture/OutputStreamHelpers.o
|
||||
${TORC_ROOT}/src/torc/architecture/Package.o
|
||||
${TORC_ROOT}/src/torc/architecture/Pad.o
|
||||
${TORC_ROOT}/src/torc/architecture/PrimitiveConn.o
|
||||
${TORC_ROOT}/src/torc/architecture/PrimitiveDef.o
|
||||
${TORC_ROOT}/src/torc/architecture/PrimitiveElement.o
|
||||
${TORC_ROOT}/src/torc/architecture/PrimitiveElementPin.o
|
||||
${TORC_ROOT}/src/torc/architecture/PrimitivePin.o
|
||||
${TORC_ROOT}/src/torc/architecture/Segments.o
|
||||
${TORC_ROOT}/src/torc/architecture/Site.o
|
||||
${TORC_ROOT}/src/torc/architecture/Sites.o
|
||||
${TORC_ROOT}/src/torc/architecture/Tiles.o
|
||||
${TORC_ROOT}/src/torc/architecture/TileInfo.o
|
||||
${TORC_ROOT}/src/torc/architecture/Tilewire.o
|
||||
${TORC_ROOT}/src/torc/architecture/Versions.o
|
||||
${TORC_ROOT}/src/torc/architecture/VprExporter.o
|
||||
${TORC_ROOT}/src/torc/architecture/WireInfo.o
|
||||
${TORC_ROOT}/src/torc/architecture/WireUsage.o
|
||||
${TORC_ROOT}/src/torc/architecture/XdlImporter.o
|
||||
${TORC_ROOT}/src/torc/architecture/XilinxDatabaseTypes.o
|
||||
|
||||
${TORC_ROOT}/src/torc/common/Annotated.o
|
||||
${TORC_ROOT}/src/torc/common/DeviceDesignator.o
|
||||
${TORC_ROOT}/src/torc/common/Devices.o
|
||||
${TORC_ROOT}/src/torc/common/DirectoryTree.o
|
||||
${TORC_ROOT}/src/torc/common/DottedVersion.o
|
||||
${TORC_ROOT}/src/torc/common/NullOutputStream.o
|
||||
|
||||
${TORC_ROOT}/src/torc/externals/zlib/zfstream.o
|
||||
z
|
||||
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Circuit.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/ConfigMap.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Config.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Design.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Factory.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Instance.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/InstancePin.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/InstanceReference.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Module.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/ModuleTransformer.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Named.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Net.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/OutputStreamHelpers.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Pip.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Port.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Progenitor.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Progeny.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Renamable.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/Routethrough.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/TilewirePlaceholder.o
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/torc/src/torc/physical/XdlExporter.o
|
||||
${TORC_ROOT}/src/torc/physical/Circuit.o
|
||||
${TORC_ROOT}/src/torc/physical/ConfigMap.o
|
||||
${TORC_ROOT}/src/torc/physical/Config.o
|
||||
${TORC_ROOT}/src/torc/physical/Design.o
|
||||
${TORC_ROOT}/src/torc/physical/Factory.o
|
||||
${TORC_ROOT}/src/torc/physical/Instance.o
|
||||
${TORC_ROOT}/src/torc/physical/InstancePin.o
|
||||
${TORC_ROOT}/src/torc/physical/InstanceReference.o
|
||||
${TORC_ROOT}/src/torc/physical/Module.o
|
||||
${TORC_ROOT}/src/torc/physical/ModuleTransformer.o
|
||||
${TORC_ROOT}/src/torc/physical/Named.o
|
||||
${TORC_ROOT}/src/torc/physical/Net.o
|
||||
${TORC_ROOT}/src/torc/physical/OutputStreamHelpers.o
|
||||
${TORC_ROOT}/src/torc/physical/Pip.o
|
||||
${TORC_ROOT}/src/torc/physical/Port.o
|
||||
${TORC_ROOT}/src/torc/physical/Progenitor.o
|
||||
${TORC_ROOT}/src/torc/physical/Progeny.o
|
||||
${TORC_ROOT}/src/torc/physical/Renamable.o
|
||||
${TORC_ROOT}/src/torc/physical/Routethrough.o
|
||||
${TORC_ROOT}/src/torc/physical/TilewirePlaceholder.o
|
||||
${TORC_ROOT}/src/torc/physical/XdlExporter.o
|
||||
)
|
||||
|
||||
target_link_libraries(nextpnr-${family} PRIVATE ${TORC_OBJS})
|
||||
if (BUILD_TESTS)
|
||||
target_link_libraries(nextpnr-${family}-test PRIVATE ${TORC_OBJS})
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user