|
rogue
|
PRBS generator/checker that can act as both stream master and slave. More...
#include <Prbs.h>
Public Member Functions | |
| Prbs () | |
| Constructs a PRBS instance with default taps and width. | |
| ~Prbs () | |
| Destroys the PRBS instance and stops background generation. | |
| void | setWidth (uint32_t width) |
| Sets generator/checker data width. | |
| void | setTaps (uint32_t tapCnt, uint8_t *taps) |
| Configures LFSR taps. | |
| void | setTapsPy (boost::python::object p) |
| Configures LFSR taps from a Python sequence. | |
| void | sendCount (bool state) |
| Enables or disables transmission of sequence counters in payload. | |
| void | genFrame (uint32_t size) |
| Generates and transmits one PRBS frame. | |
| void | enable (uint32_t size) |
| Enables periodic background frame generation. | |
| void | disable () |
| Disables periodic background frame generation. | |
| bool | getRxEnable () |
| Returns whether RX checking is enabled. | |
| void | setRxEnable (bool state) |
| Enables or disables RX checking. | |
| uint32_t | getRxErrors () |
| Returns RX error count. | |
| uint32_t | getRxCount () |
| Returns RX frame count. | |
| uint64_t | getRxBytes () |
| Returns RX byte count. | |
| double | getRxRate () |
| Returns computed RX frame rate. | |
| double | getRxBw () |
| Returns computed RX bandwidth. | |
| double | getTxRate () |
| Returns computed TX frame rate. | |
| void | setTxPeriod (uint32_t txPeriod) |
| Sets background TX period. | |
| uint32_t | getTxPeriod () |
| Returns configured background TX period. | |
| double | getTxBw () |
| Returns computed TX bandwidth. | |
| uint32_t | getTxErrors () |
| Returns TX error count. | |
| uint32_t | getTxCount () |
| Returns TX frame count. | |
| uint64_t | getTxBytes () |
| Returns TX byte count. | |
| void | checkPayload (bool state) |
| Enables or disables payload checking. | |
| void | genPayload (bool state) |
| Enables or disables payload generation. | |
| void | resetCount () |
| Resets RX/TX counters and statistics. | |
| void | acceptFrame (std::shared_ptr< rogue::interfaces::stream::Frame > frame) |
| Accepts a frame from an upstream master. | |
Public Member Functions inherited from rogue::interfaces::stream::Slave | |
| Slave () | |
| Constructs a stream slave. | |
| virtual | ~Slave () |
| Destroys the stream slave. | |
| virtual void | stop () |
| Shuts down threads associated with this object. | |
| void | setDebug (uint32_t debug, std::string name) |
| Sets debug message verbosity and logger name. | |
| uint64_t | getFrameCount () |
| Returns frame counter. | |
| uint64_t | getByteCount () |
| Returns byte counter. | |
| bool | ensureSingleBuffer (std::shared_ptr< rogue::interfaces::stream::Frame > &frame, bool reqEn) |
| Ensures frame is backed by a single buffer. | |
| std::shared_ptr< rogue::interfaces::stream::Frame > | reqLocalFrame (uint32_t size, bool zeroCopyEn) |
| Services a local frame allocation request through this object's pool interface. | |
| boost::python::object | lshiftPy (boost::python::object p) |
Supports << operator usage from Python. | |
| std::shared_ptr< rogue::interfaces::stream::Master > & | operator<< (std::shared_ptr< rogue::interfaces::stream::Master > &other) |
| Connects this slave to a master via stream chaining operator. | |
Public Member Functions inherited from rogue::interfaces::stream::Pool | |
| Pool () | |
| Constructs a pool with default allocation behavior enabled. | |
| virtual | ~Pool () |
| Destroys the pool and releases any cached buffer storage. | |
| uint32_t | getAllocBytes () |
| Returns total currently allocated bytes. | |
| uint32_t | getAllocCount () |
| Returns total currently allocated buffer count. | |
| virtual std::shared_ptr< rogue::interfaces::stream::Frame > | acceptReq (uint32_t size, bool zeroCopyEn) |
| Services a frame allocation request from a master. | |
| virtual void | retBuffer (uint8_t *data, uint32_t meta, uint32_t size) |
| Returns buffer data to the allocator. | |
| void | setFixedSize (uint32_t size) |
| Sets fixed-size mode. | |
| uint32_t | getFixedSize () |
| Returns fixed-size allocation setting. | |
| void | setPoolSize (uint32_t size) |
| Sets buffer pool size. | |
| uint32_t | getPoolSize () |
| Returns configured maximum number of cached pool entries. | |
Public Member Functions inherited from rogue::EnableSharedFromThis< rogue::interfaces::stream::Pool > | |
| std::shared_ptr< rogue::interfaces::stream::Pool > | shared_from_this () |
Returns a shared_ptr<T> for this instance. | |
Public Member Functions inherited from rogue::EnableSharedFromThisBase | |
| virtual | ~EnableSharedFromThisBase () |
| Virtual destructor for polymorphic base usage. | |
Public Member Functions inherited from rogue::EnableSharedFromThis< rogue::interfaces::stream::Slave > | |
| std::shared_ptr< rogue::interfaces::stream::Slave > | shared_from_this () |
Returns a shared_ptr<T> for this instance. | |
Public Member Functions inherited from rogue::interfaces::stream::Master | |
| Master () | |
| Constructs a stream master. | |
| virtual | ~Master () |
| Destroys the stream master. | |
| uint32_t | slaveCount () |
| Returns the number of attached slaves. | |
| void | addSlave (std::shared_ptr< rogue::interfaces::stream::Slave > slave) |
| Attaches a downstream slave. | |
| std::shared_ptr< rogue::interfaces::stream::Frame > | reqFrame (uint32_t size, bool zeroCopyEn) |
| Requests allocation of a new frame from the primary slave. | |
| void | sendFrame (std::shared_ptr< rogue::interfaces::stream::Frame > frame) |
| Sends a frame to all attached slaves. | |
| bool | ensureSingleBuffer (std::shared_ptr< rogue::interfaces::stream::Frame > &frame, bool reqEn) |
| Ensures a frame is represented by a single buffer. | |
| virtual void | stop () |
| Stops frame generation and shuts down associated threads. | |
| void | equalsPy (boost::python::object p) |
Supports == operator usage from Python. | |
| boost::python::object | rshiftPy (boost::python::object p) |
Supports >> operator usage from Python. | |
| void | operator== (std::shared_ptr< rogue::interfaces::stream::Slave > &other) |
Supports == operator usage in C++. | |
| std::shared_ptr< rogue::interfaces::stream::Slave > & | operator>> (std::shared_ptr< rogue::interfaces::stream::Slave > &other) |
| Connects this master to a slave via stream chaining operator. | |
Public Member Functions inherited from rogue::EnableSharedFromThis< rogue::interfaces::stream::Master > | |
| std::shared_ptr< rogue::interfaces::stream::Master > | shared_from_this () |
Returns a shared_ptr<T> for this instance. | |
Static Public Member Functions | |
| static std::shared_ptr< rogue::utilities::Prbs > | create () |
| Creates a PRBS generator/checker instance. | |
| static void | setup_python () |
| Registers Python bindings for this class. | |
Static Public Member Functions inherited from rogue::interfaces::stream::Slave | |
| static std::shared_ptr< rogue::interfaces::stream::Slave > | create () |
| Creates a new stream slave. | |
| static void | setup_python () |
| Registers this type with Python bindings. | |
Static Public Member Functions inherited from rogue::interfaces::stream::Pool | |
| static void | setup_python () |
| Registers this type with Python bindings. | |
Static Public Member Functions inherited from rogue::interfaces::stream::Master | |
| static std::shared_ptr< rogue::interfaces::stream::Master > | create () |
| Creates a stream master. | |
| static void | setup_python () |
| Registers this type with Python bindings. | |
Additional Inherited Members | |
Protected Member Functions inherited from rogue::interfaces::stream::Pool | |
| std::shared_ptr< rogue::interfaces::stream::Buffer > | allocBuffer (uint32_t size, uint32_t *total) |
| Allocate a buffer passed size. | |
| std::shared_ptr< rogue::interfaces::stream::Buffer > | createBuffer (void *data, uint32_t meta, uint32_t size, uint32_t alloc) |
| Creates a Buffer with a pre-allocated data block. | |
| void | decCounter (uint32_t alloc) |
| Decrements allocation counter. | |
PRBS generator/checker that can act as both stream master and slave.
The engine can transmit deterministic pseudo-random patterns and verify received patterns for bit-error testing. It supports one-shot frame generation and optional background transmit mode.
Threading model:
acceptFrame().enable()) runs in an internal TX thread that repeatedly calls genFrame().| rogue::utilities::Prbs::Prbs | ( | ) |
| rogue::utilities::Prbs::~Prbs | ( | ) |
|
virtual |
Accepts a frame from an upstream master.
Accept a frame from master.
| frame | Received stream frame. |
Reimplemented from rogue::interfaces::stream::Slave.
| void rogue::utilities::Prbs::checkPayload | ( | bool | state | ) |
|
static |
Creates a PRBS generator/checker instance.
Class creation.
This static factory is the preferred construction path when the object is shared across Rogue graph connections or exposed to Python. It returns std::shared_ptr ownership compatible with Rogue pointer typedefs.
Description :
This file is part of the rogue software platform. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of the rogue software platform, including this file, may be copied, modified, propagated, or distributed except according to the terms
| void rogue::utilities::Prbs::disable | ( | ) |
| void rogue::utilities::Prbs::enable | ( | uint32_t | size | ) |
Enables periodic background frame generation.
Auto run data generation.
Starts an internal TX worker thread if one is not already running. Generated frames use the configured TX period from setTxPeriod().
| size | Payload size in bytes for generated frames. |
| void rogue::utilities::Prbs::genFrame | ( | uint32_t | size | ) |
| void rogue::utilities::Prbs::genPayload | ( | bool | state | ) |
| double rogue::utilities::Prbs::getRxBw | ( | ) |
| uint64_t rogue::utilities::Prbs::getRxBytes | ( | ) |
| uint32_t rogue::utilities::Prbs::getRxCount | ( | ) |
| bool rogue::utilities::Prbs::getRxEnable | ( | ) |
| uint32_t rogue::utilities::Prbs::getRxErrors | ( | ) |
| double rogue::utilities::Prbs::getRxRate | ( | ) |
| double rogue::utilities::Prbs::getTxBw | ( | ) |
| uint64_t rogue::utilities::Prbs::getTxBytes | ( | ) |
| uint32_t rogue::utilities::Prbs::getTxCount | ( | ) |
| uint32_t rogue::utilities::Prbs::getTxErrors | ( | ) |
| uint32_t rogue::utilities::Prbs::getTxPeriod | ( | ) |
| double rogue::utilities::Prbs::getTxRate | ( | ) |
| void rogue::utilities::Prbs::resetCount | ( | ) |
| void rogue::utilities::Prbs::sendCount | ( | bool | state | ) |
| void rogue::utilities::Prbs::setRxEnable | ( | bool | state | ) |
| void rogue::utilities::Prbs::setTaps | ( | uint32_t | tapCnt, |
| uint8_t * | taps | ||
| ) |
| void rogue::utilities::Prbs::setTapsPy | ( | boost::python::object | p | ) |
| void rogue::utilities::Prbs::setTxPeriod | ( | uint32_t | txPeriod | ) |
|
static |
| void rogue::utilities::Prbs::setWidth | ( | uint32_t | width | ) |