From fd3a5d8babcb0a4aef662c670a2b59dea5312f43 Mon Sep 17 00:00:00 2001 From: Rick Altherr Date: Fri, 8 Dec 2017 19:33:07 -0800 Subject: [PATCH] lib: xc7series: ostream overload for BlockType Makes debugging a bit easier. Signed-off-by: Rick Altherr Signed-off-by: Tim 'mithro' Ansell --- lib/CMakeLists.txt | 1 + .../prjxray/xilinx/xc7series/block_type.h | 6 ++++- lib/xilinx/xc7series/block_type.cc | 25 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 lib/xilinx/xc7series/block_type.cc diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 8a90ce7c..7fbde849 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -3,6 +3,7 @@ add_library(libprjxray memory_mapped_file.cc segbits_file_reader.cc xilinx/xc7series/bitstream_reader.cc + xilinx/xc7series/block_type.cc xilinx/xc7series/configuration_frame_address.cc xilinx/xc7series/configuration_packet.cc xilinx/xc7series/configuration_register.cc diff --git a/lib/include/prjxray/xilinx/xc7series/block_type.h b/lib/include/prjxray/xilinx/xc7series/block_type.h index b44aec29..2779b9f3 100644 --- a/lib/include/prjxray/xilinx/xc7series/block_type.h +++ b/lib/include/prjxray/xilinx/xc7series/block_type.h @@ -1,6 +1,8 @@ #ifndef PRJXRAY_LIB_XILINX_XC7SERIES_BLOCK_TYPE_H_ #define PRJXRAY_LIB_XILINX_XC7SERIES_BLOCK_TYPE_H_ +#include + namespace prjxray { namespace xilinx { namespace xc7series { @@ -11,7 +13,9 @@ enum class BlockType : unsigned int { CFG_CLB = 0b010, /* reserved = 0b011, */ }; - + +std::ostream &operator<<(std::ostream &o, BlockType value); + } // namespace xc7series } // namespace xilinx } // namespace prjxray diff --git a/lib/xilinx/xc7series/block_type.cc b/lib/xilinx/xc7series/block_type.cc new file mode 100644 index 00000000..ef76229f --- /dev/null +++ b/lib/xilinx/xc7series/block_type.cc @@ -0,0 +1,25 @@ +#include + +namespace prjxray { +namespace xilinx { +namespace xc7series { + +std::ostream &operator<<(std::ostream &o, BlockType value) { + switch (value) { + case BlockType::CLB_IO_CLK: + o << "CLB/IO/CLK"; + break; + case BlockType::BLOCK_RAM: + o << "Block RAM"; + break; + case BlockType::CFG_CLB: + o << "Config CLB"; + break; + } + + return o; +} + +} // namespace xc7series +} // namespace xilinx +} // namespace prjxray