diff --git a/libs/libopenfpgacapnproto/CMakeLists.txt b/libs/libopenfpgacapnproto/CMakeLists.txt index e6041acb3e..8824d969f9 100644 --- a/libs/libopenfpgacapnproto/CMakeLists.txt +++ b/libs/libopenfpgacapnproto/CMakeLists.txt @@ -44,6 +44,10 @@ add_custom_command( -O ${JAVA_SCHEMA} ) +add_custom_target( + get_java_capnp_schema_openfpga + DEPENDS ${JAVA_SCHEMA} +) set(CAPNPC_IMPORT_DIRS) list(APPEND CAPNPC_IMPORT_DIRS ${CMAKE_CURRENT_BINARY_DIR}/schema) @@ -76,7 +80,9 @@ add_library(libopenfpgacapnproto STATIC add_dependencies(libopenfpgacapnproto - get_java_capnp_schema) + get_java_capnp_schema_openfpga + generate_unique_block_capnp + ) target_include_directories(libopenfpgacapnproto PUBLIC @@ -97,7 +103,7 @@ add_custom_target( COMMAND ${CMAKE_COMMAND} -E chdir unique_blocks_capnproto_generate git clone https://github.com/duck2/uxsdcxx COMMAND python3 -mpip install --user -r unique_blocks_capnproto_generate/uxsdcxx/requirements.txt COMMAND ${CMAKE_COMMAND} -E chdir unique_blocks_capnproto_generate python3 uxsdcxx/uxsdcxx.py ${CMAKE_CURRENT_SOURCE_DIR}/gen/unique_blocks.xsd - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E chdir unique_blocks_capnproto_generate python3 uxsdcxx/uxsdcap.py ${CMAKE_CURRENT_SOURCE_DIR}/gen/unique_blocks.xsd unique_blocks_capnproto_generate/unique_blocks_uxsdcxx.h unique_blocks_capnproto_generate/unique_blocks_uxsdcxx_capnp.h unique_blocks_capnproto_generate/unique_blocks_uxsdcxx_interface.h diff --git a/libs/libopenfpgacapnproto/gen/unique_blocks.xsd b/libs/libopenfpgacapnproto/gen/unique_blocks.xsd index ebf4310bed..7d10bcce8a 100644 --- a/libs/libopenfpgacapnproto/gen/unique_blocks.xsd +++ b/libs/libopenfpgacapnproto/gen/unique_blocks.xsd @@ -1,30 +1,6 @@ - - - + @@ -34,48 +10,35 @@ - + - - - - - + + + - + - - - - + + - + - - - - - - - + - - - - - - - - - - - - + + + + + + + + + diff --git a/libs/libopenfpgacapnproto/gen/unique_blocks_uxsdcxx_pre.capnp b/libs/libopenfpgacapnproto/gen/unique_blocks_uxsdcxx_pre.capnp deleted file mode 100644 index 1a44cfc9de..0000000000 --- a/libs/libopenfpgacapnproto/gen/unique_blocks_uxsdcxx_pre.capnp +++ /dev/null @@ -1,38 +0,0 @@ -# This file is generated by uxsdcap 0.1.0. -# https://github.com/duck2/uxsdcxx -# Modify only if your build process doesn't involve regenerating this file. -# -# Cmdline: /home/talaeikh/uxsdcxx/uxsdcap.py /home/talaeikh/vtr-verilog-to-routing/libs/librrgraph/src/io/rr_graph.xsd -# Input file: /home/talaeikh/vtr-verilog-to-routing/libs/librrgraph/src/io/rr_graph.xsd -# md5sum of input file: 9c14a0ddd3c6bc1e690ca6abf467bae6 - -@0xa136dddfdd48783b; -using Cxx = import "/capnp/c++.capnp"; -$Cxx.namespace("uniqueblockcap"); - -enum BlockType { - cbx @0; - cby @1; - sb @2; -} - -struct BlockInfo { - type @0: BlockType; - x @1: UInt32; - y @2: UInt32; -} - -struct InstanceInfo { - x @0: UInt32; - y @1: UInt32; -} - - -struct UniqueBlockPacked { - blockInfo @0: BlockInfo; - instanceList @1: List(InstanceInfo); -} - -struct UniqueBlockCompactInfo { - atomInfo @0: List(UniqueBlockPacked); -} diff --git a/openfpga/src/annotation/read_unique_blocks.cpp b/openfpga/src/annotation/read_unique_blocks.cpp index e3da54ee22..8e390279ea 100644 --- a/openfpga/src/annotation/read_unique_blocks.cpp +++ b/openfpga/src/annotation/read_unique_blocks.cpp @@ -196,7 +196,7 @@ int read_bin_unique_blocks(DeviceRRGSB& device_rr_gsb, const char* file_name, device_rr_gsb.reserve_unique_modules(); MmapFile f(file_name); ::capnp::FlatArrayMessageReader reader(f.getData()); - auto root = reader.getRoot(); + auto root = reader.getRoot(); if (root.hasAtomInfo()) { auto block_list = root.getAtomInfo(); for (auto unique_block : block_list) { diff --git a/openfpga/src/annotation/write_unique_blocks.cpp b/openfpga/src/annotation/write_unique_blocks.cpp index a7d48eb500..18d263714c 100644 --- a/openfpga/src/annotation/write_unique_blocks.cpp +++ b/openfpga/src/annotation/write_unique_blocks.cpp @@ -212,7 +212,7 @@ int write_bin_unique_blocks(const DeviceRRGSB& device_rr_gsb, const char* fname, bool verbose_output) { ::capnp::MallocMessageBuilder builder; auto unique_blocks = - builder.initRoot(); + builder.initRoot(); int num_unique_blocks = device_rr_gsb.get_num_sb_unique_module() + device_rr_gsb.get_num_cb_unique_module(CHANX) + device_rr_gsb.get_num_cb_unique_module(CHANY);