OpenASIP  2.0
Public Member Functions | List of all members
Bin2nProgramImageWriter Class Reference

#include <Bin2nProgramImageWriter.hh>

Inheritance diagram for Bin2nProgramImageWriter:
Inheritance graph
Collaboration diagram for Bin2nProgramImageWriter:
Collaboration graph

Public Member Functions

 Bin2nProgramImageWriter (const InstructionBitVector &bits)
 
virtual ~Bin2nProgramImageWriter ()
 
virtual void writeImage (std::ostream &stream) const
 
- Public Member Functions inherited from Bin2nImageWriter
 Bin2nImageWriter (const BitVector &bits, int rowLength)
 
virtual ~Bin2nImageWriter ()
 
const BitVectorbits () const
 
void writeSequence (std::ostream &stream, unsigned int length) const
 
- Public Member Functions inherited from BitImageWriter
virtual ~BitImageWriter ()
 

Detailed Description

Writes the program image as binary 1's and 0's to the stream. Pads from the left to the nearest multiple of 2 and reverses the byte endianness. Used for programming FPGA with Jupyter through AlmaIF

Definition at line 45 of file Bin2nProgramImageWriter.hh.

Constructor & Destructor Documentation

◆ Bin2nProgramImageWriter()

Bin2nProgramImageWriter::Bin2nProgramImageWriter ( const InstructionBitVector bits)

The constructor.

Parameters
bitsThe program bits to be written.

Definition at line 44 of file Bin2nProgramImageWriter.cc.

44  :
46 }

◆ ~Bin2nProgramImageWriter()

Bin2nProgramImageWriter::~Bin2nProgramImageWriter ( )
virtual

The destructor.

Definition at line 51 of file Bin2nProgramImageWriter.cc.

51  {
52 }

Member Function Documentation

◆ writeImage()

void Bin2nProgramImageWriter::writeImage ( std::ostream &  stream) const
virtual

Writes the program image to the given output stream.

Parameters
streamThe output stream.

Reimplemented from Bin2nImageWriter.

Definition at line 60 of file Bin2nProgramImageWriter.cc.

60  {
61 
62  const BitVector& bits = this->bits();
63  const InstructionBitVector* programBits =
64  dynamic_cast<const InstructionBitVector*>(&bits);
65 
66  unsigned int previousBoundary(0);
67 
68  // Loop through all insctruction boundaries (missing last instruction)
69  for (unsigned int i = 1; i < programBits->instructionCount(); i++) {
70 
71  unsigned int instructionBoundary =
72  programBits->instructionStartingPoint(i);
73  writeSequence(stream, instructionBoundary - previousBoundary);
74  previousBoundary = instructionBoundary;
75 
76  }
77 
78  // Write last instruction from remaining bits
79  writeSequence(stream, bits.size() - previousBoundary);
80 
81 }

References Bin2nImageWriter::bits(), InstructionBitVector::instructionCount(), InstructionBitVector::instructionStartingPoint(), and Bin2nImageWriter::writeSequence().

Here is the call graph for this function:

The documentation for this class was generated from the following files:
BitVector
Definition: BitVector.hh:44
Bin2nImageWriter::Bin2nImageWriter
Bin2nImageWriter(const BitVector &bits, int rowLength)
Definition: Bin2nImageWriter.cc:40
InstructionBitVector::instructionStartingPoint
unsigned int instructionStartingPoint(unsigned int index) const
Definition: InstructionBitVector.cc:269
Bin2nImageWriter::bits
const BitVector & bits() const
Definition: Bin2nImageWriter.cc:157
InstructionBitVector::instructionCount
unsigned int instructionCount() const
Definition: InstructionBitVector.cc:254
Bin2nImageWriter::writeSequence
void writeSequence(std::ostream &stream, unsigned int length) const
Definition: Bin2nImageWriter.cc:112
InstructionBitVector
Definition: InstructionBitVector.hh:50