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);