[Tool] Add heads to bitstream plain text file
This commit is contained in:
parent
27fa15603a
commit
cf7addb1a6
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
/* Headers from openfpgautil library */
|
/* Headers from openfpgautil library */
|
||||||
#include "openfpga_digest.h"
|
#include "openfpga_digest.h"
|
||||||
|
#include "openfpga_version.h"
|
||||||
|
|
||||||
#include "openfpga_naming.h"
|
#include "openfpga_naming.h"
|
||||||
|
|
||||||
|
@ -24,6 +25,21 @@
|
||||||
/* begin namespace openfpga */
|
/* begin namespace openfpga */
|
||||||
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
|
* Write a configuration bit into a plain text file
|
||||||
* The format depends on the type of configuration protocol
|
* 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);
|
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 (size_t ibit = num_bits_to_skip; ibit < regional_bitstream_max_size; ++ibit) {
|
||||||
for (const auto& region_bitstream : regional_bitstreams) {
|
for (const auto& region_bitstream : regional_bitstreams) {
|
||||||
fp << region_bitstream[ibit];
|
fp << region_bitstream[ibit];
|
||||||
|
@ -258,6 +279,9 @@ int write_fabric_bitstream_to_text_file(const BitstreamManager& bitstream_manage
|
||||||
fabric_bitstream);
|
fabric_bitstream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Write file head */
|
||||||
|
write_fabric_bitstream_text_file_head(fp);
|
||||||
|
|
||||||
/* Output fabric bitstream to the file */
|
/* Output fabric bitstream to the file */
|
||||||
int status = 0;
|
int status = 0;
|
||||||
switch (config_protocol.type()) {
|
switch (config_protocol.type()) {
|
||||||
|
|
Loading…
Reference in New Issue