Bitstream Interpretation Library (BIL)
0.1
|
Configuration address layout of a Virtex-5 device. More...
#include <configuration/V5AddressLayout.hpp>
Public Member Functions | |
V5AddressLayout () | |
Constructs a new V5AddressLayout instance. | |
V5AddressLayout (unsigned upperRowCount, unsigned lowerRowCount, const V5CfgColumnSequence &columnSequence) | |
Constructs a new V5AddressLayout instance. | |
void | upperRowCount (unsigned count) |
Sets number of rows in upper half of the FPGA. | |
unsigned | upperRowCount () const |
Gets number of rows in upper half of the FPGA. | |
void | lowerRowCount (unsigned count) |
Sets number of rows in lower half of the FPGA. | |
unsigned | lowerRowCount () const |
Gets number of rows in lower half of the FPGA. | |
void | columnSequence (const V5CfgColumnSequence &columns) |
Sets column sequence. | |
const V5CfgColumnSequence & | columnSequence () const |
Gets column sequence. | |
unsigned | rowCount (bool lowerHalf) const |
Gets number of rows in upper or lower half of the FPGA. | |
unsigned | columnCount (V5CfgBlock::block_t block) const |
Gets number of columns in the specified block. | |
unsigned | frameCount (V5CfgBlock::block_t block, V5CfgColumn::column_t column) const |
Gets number of frames a resource of specified column type in specified block is configured with. | |
V5CfgColumn::column_t | columnType (V5CfgBlock::block_t block, size_t columnIndex) const |
Gets type of specified column in specified block. |
Static Public Attributes | |
static const unsigned | ROWCOUNT_MAX = 31 |
Maximum allowed value for upper and lower row count. | |
static const unsigned | COLUMNCOUNT_MAX = 255 |
Maximum allowed value for column count. |
Protected Member Functions | |
unsigned | countBRAMs (const V5CfgColumnSequence &columns) const |
Counts the number of block RAM columns in given row. |
Friends | |
bool | operator== (const V5AddressLayout &al1, const V5AddressLayout &al2) |
Tests two V5AddressLayout instances for memberwise equality. | |
void | writeBinary (const V5AddressLayout &data, std::ostream &outputStream) |
Writes data from a V5AddressLayout into a binary stream. | |
void | readBinary (V5AddressLayout &data, std::istream &inputStream) |
Reads data into a V5AddressLayout from a binary stream. |
Configuration address layout of a Virtex-5 device.
All devices in the Virtex-5 series share the same configuration memory addressing concept, but number and addressing/placement of the resources to configure differ. This class can be filled with data describing how configuration memory of a specific device is laid out: i.e. which resources are located at which addresses, and which addresses are valid.
Definition at line 26 of file V5AddressLayout.hpp.
V5AddressLayout::V5AddressLayout | ( | ) |
Constructs a new V5AddressLayout instance.
Definition at line 28 of file V5AddressLayout.cpp.
V5AddressLayout::V5AddressLayout | ( | unsigned | upperRowCount, |
unsigned | lowerRowCount, | ||
const V5CfgColumnSequence & | columnSequence | ||
) |
Constructs a new V5AddressLayout instance.
upperRowCount | See upperRowCount(). |
lowerRowCount | See lowerRowCount(). |
columnSequence | See columnSequence(). |
Definition at line 38 of file V5AddressLayout.cpp.
void V5AddressLayout::upperRowCount | ( | unsigned | count | ) |
Sets number of rows in upper half of the FPGA.
Upper rows are indexed from 0 to number of upper rows - 1. They start in the FPGA's middle and run to the upper border.
count | Number of upper rows. |
. |
Definition at line 56 of file V5AddressLayout.cpp.
unsigned V5AddressLayout::upperRowCount | ( | ) | const |
Gets number of rows in upper half of the FPGA.
Definition at line 65 of file V5AddressLayout.cpp.
void V5AddressLayout::lowerRowCount | ( | unsigned | count | ) |
Sets number of rows in lower half of the FPGA.
Lower rows are indexed from 0 to number of lower rows - 1. They start in the FPGA's middle and run to the lower border.
count | Number of lower rows. |
. |
Definition at line 71 of file V5AddressLayout.cpp.
unsigned V5AddressLayout::lowerRowCount | ( | ) | const |
Gets number of rows in lower half of the FPGA.
Definition at line 80 of file V5AddressLayout.cpp.
void V5AddressLayout::columnSequence | ( | const V5CfgColumnSequence & | columns | ) |
Sets column sequence.
The given column sequence is copied and then interpreted as if it was in INTERCONNECT_AND_CFG block. Column sequences for the other blocks are deduced from this.
columns | Column sequence. |
. |
Definition at line 86 of file V5AddressLayout.cpp.
const V5CfgColumnSequence & V5AddressLayout::columnSequence | ( | ) | const |
Gets column sequence.
Result is a read only reference to the V5CfgColumnSequence instance owned by the V5AddressLayout.
Definition at line 96 of file V5AddressLayout.cpp.
unsigned V5AddressLayout::rowCount | ( | bool | lowerHalf | ) | const |
Gets number of rows in upper or lower half of the FPGA.
The total row count equals rowCount(false) + rowCount(true).
lowerHalf | Flag designating upper or lower half. |
Definition at line 102 of file V5AddressLayout.cpp.
unsigned V5AddressLayout::columnCount | ( | V5CfgBlock::block_t | block | ) | const |
Gets number of columns in the specified block.
block | Block to query. |
Definition at line 109 of file V5AddressLayout.cpp.
unsigned V5AddressLayout::frameCount | ( | V5CfgBlock::block_t | block, |
V5CfgColumn::column_t | column | ||
) | const |
Gets number of frames a resource of specified column type in specified block is configured with.
block | Block the column/resource is in. |
column | Column type of the resource. |
Definition at line 128 of file V5AddressLayout.cpp.
V5CfgColumn::column_t V5AddressLayout::columnType | ( | V5CfgBlock::block_t | block, |
size_t | columnIndex | ||
) | const |
Gets type of specified column in specified block.
block | Block the column is in. |
columnIndex | Index of column to query. |
. |
Definition at line 177 of file V5AddressLayout.cpp.
|
protected |
Counts the number of block RAM columns in given row.
columns | Row in which to count. |
Definition at line 202 of file V5AddressLayout.cpp.
|
friend |
Tests two V5AddressLayout instances for memberwise equality.
Definition at line 181 of file V5AddressLayout.hpp.
|
friend |
Writes data from a V5AddressLayout into a binary stream.
data | The V5AddressLayout to write. |
outputStream | The stream to write into. |
. |
|
friend |
Reads data into a V5AddressLayout from a binary stream.
data | The V5AddressLayout to read into. |
inputStream | The stream to read from. |
. |
|
static |
Maximum allowed value for upper and lower row count.
Definition at line 52 of file V5AddressLayout.hpp.
|
static |
Maximum allowed value for column count.
Definition at line 95 of file V5AddressLayout.hpp.