[Tool] Add heads to bitstream plain text file

This commit is contained in:
tangxifan 2021-06-04 19:48:48 -06:00
parent 27fa15603a
commit cf7addb1a6
1 changed files with 24 additions and 0 deletions

View File

@ -13,6 +13,7 @@
/* Headers from openfpgautil library */
#include "openfpga_digest.h"
#include "openfpga_version.h"
#include "openfpga_naming.h"
@ -24,6 +25,21 @@
/* begin namespace openfpga */
namespace openfpga {
/********************************************************************
* This function write header information to a bitstream file
*******************************************************************/
static
void write_fabric_bitstream_text_file_head(std::fstream& fp) {
valid_file_stream(fp);
auto end = std::chrono::system_clock::now();
std::time_t end_time = std::chrono::system_clock::to_time_t(end);
fp << "// Fabric bitstream" << std::endl;
fp << "// Version: " << openfpga::VERSION << std::endl;
fp << "// Date: " << std::ctime(&end_time) << std::endl;
}
/********************************************************************
* Write a configuration bit into a plain text file
* The format depends on the type of configuration protocol
@ -138,6 +154,11 @@ int write_config_chain_fabric_bitstream_to_text_file(std::fstream& fp,
num_bits_to_skip, regional_bitstream_max_size);
}
/* Output bitstream size information */
fp << "// Bitstream length: " << regional_bitstream_max_size - num_bits_to_skip << std::endl;
fp << "// Bitstream width (LSB -> MSB): " << fabric_bitstream.num_regions() << std::endl;
/* Output bitstream data */
for (size_t ibit = num_bits_to_skip; ibit < regional_bitstream_max_size; ++ibit) {
for (const auto& region_bitstream : regional_bitstreams) {
fp << region_bitstream[ibit];
@ -258,6 +279,9 @@ int write_fabric_bitstream_to_text_file(const BitstreamManager& bitstream_manage
fabric_bitstream);
}
/* Write file head */
write_fabric_bitstream_text_file_head(fp);
/* Output fabric bitstream to the file */
int status = 0;
switch (config_protocol.type()) {