|
HAL
v4.5.0-83-g30c8f0afc
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
|


Public Types | |
| enum | NetType { RegularNet , InputNet , OutputNet , ClockNet , BooleanNet , TriggerTime , NetGroup } |
| enum | LoadPolicy { TooBigToLoad , LoadTimeframe , LoadAllData } |
Public Member Functions | |
| WaveData (const WaveData &other) | |
| WaveData (u32 id_, const QString &nam, NetType tp=RegularNet, const QMap< u64, int > &dat=QMap< u64, int >()) | |
| WaveData (const Net *n, NetType tp=RegularNet) | |
| virtual | ~WaveData () |
| u32 | id () const |
| QString | name () const |
| NetType | netType () const |
| virtual int | bits () const |
| bool | isDirty () const |
| const QMap< u64, int > & | data () const |
| int | fileIndex () const |
| u64 | fileSize () const |
| int | valueBase () const |
| std::string | fileName () const |
| SaleaeDirectoryNetEntry::Type | composedType () const |
| void | setId (u32 id_) |
| bool | rename (const QString &nam) |
| void | setBits (int bts) |
| void | setDirty (bool dty) |
| void | setFileIndex (int saleaIndex) |
| void | setFileSize (u64 siz) |
| void | setTimeframeSize (u64 siz) |
| void | setWaveDataList (WaveDataList *wdList) |
| virtual LoadPolicy | loadPolicy () const |
| int | dataIndex () const |
| virtual u64 | neighborTransition (double t, bool next) const |
| void | loadDataUnlessAlreadyLoaded () |
| bool | loadSaleae (const WaveDataTimeframe &tframe=WaveDataTimeframe()) |
| void | saveSaleae () |
| void | setData (const QMap< u64, int > &dat) |
| virtual int | intValue (double t) const |
| int | get_value_at (u64 t) |
| std::string | get_name () const |
| std::vector< std::pair< u64, int > > | get_events (u64 t0=0) const |
| std::vector< std::pair< u64, int > > | get_triggered_events (const WaveDataTrigger *wdTrig, u64 t0=0) |
| u64 | maxTime () const |
| void | clear () |
| void | insert (u64 t, int val) |
| void | insertBooleanValueWithoutSync (u64 t, BooleanFunction::Value bval) |
| QString | strValue (int val) const |
| QString | strValue (double t) const |
| QString | strValue (const QMap< u64, int >::const_iterator &it) const |
| void | setValueBase (int bas) |
| bool | isEqual (const WaveData &other, int tolerance=0) const |
| bool | hasSubscriber () const |
| void | addSubscriber () |
| void | removeSubscriber () |
Static Public Member Functions | |
| static QString | stringValue (int val, int bits, int base) |
Protected Member Functions | |
| QMap< u64, int >::const_iterator | timeIterator (double t) const |
| void | resetWave () |
Protected Attributes | |
| int | mValueBase |
| QMap< u64, int > | mData |
| bool | mDirty |
| WaveDataList * | mWaveDataList |
The waveform of a single net, i.e., the sequence of value changes over time together with its display properties.
Definition at line 75 of file wave_data.h.
| Enumerator | |
|---|---|
| TooBigToLoad | |
| LoadTimeframe | |
| LoadAllData | |
Definition at line 79 of file wave_data.h.
| Enumerator | |
|---|---|
| RegularNet | |
| InputNet | |
| OutputNet | |
| ClockNet | |
| BooleanNet | |
| TriggerTime | |
| NetGroup | |
Definition at line 78 of file wave_data.h.
| hal::WaveData::WaveData | ( | const WaveData & | other | ) |
Definition at line 48 of file wave_data.cpp.
Referenced by hal::WaveDataGroup::addNet(), and hal::WaveDataGroup::WaveDataGroup().
| hal::WaveData::WaveData | ( | u32 | id_, |
| const QString & | nam, | ||
| NetType | tp = RegularNet, |
||
| const QMap< u64, int > & | dat = QMap<u64,int>() |
||
| ) |
Definition at line 54 of file wave_data.cpp.
| hal::WaveData::WaveData | ( | const Net * | n, |
| NetType | tp = RegularNet |
||
| ) |
Definition at line 58 of file wave_data.cpp.
|
inlinevirtual |
Definition at line 102 of file wave_data.h.
|
inline |
Definition at line 146 of file wave_data.h.
Referenced by hal::WaveItem::WaveItem().
|
inlinevirtual |
Reimplemented in hal::WaveDataGroup.
Definition at line 106 of file wave_data.h.
Referenced by hal::WaveEditTable::flags(), hal::WaveLoaderThread::run(), hal::WaveItem::startGeneratePainted(), stringValue(), strValue(), hal::WaveDataGroup::WaveDataGroup(), and hal::WaveEditDialog::WaveEditDialog().
|
inline |
Definition at line 136 of file wave_data.h.
References QMap::clear(), and mData.
Referenced by hal::WaveDataList::setUserTimeframe().
| SaleaeDirectoryNetEntry::Type hal::WaveData::composedType | ( | ) | const |
Definition at line 132 of file wave_data.cpp.
References hal::SaleaeDirectoryNetEntry::Boolean, BooleanNet, hal::SaleaeDirectoryNetEntry::Group, NetGroup, hal::SaleaeDirectoryNetEntry::None, hal::SaleaeDirectoryNetEntry::Trigger, and TriggerTime.
Referenced by hal::WaveDataRoot::dump(), and hal::WaveDataTrigger::set_filter_wave().
Definition at line 108 of file wave_data.h.
References mData.
Referenced by hal::WaveItem::cursorValue(), hal::WaveItem::dump(), hal::WaveDataTrigger::intValue(), hal::WaveDataBoolean::recalcData(), hal::WaveDataTrigger::recalcData(), hal::WaveDataGroup::recalcData(), hal::WaveLoaderThread::run(), hal::WaveLoaderBackbone::run(), hal::WaveItem::startGeneratePainted(), hal::WaveDataGroup::WaveDataGroup(), and hal::WaveEditTable::WaveEditTable().
| int hal::WaveData::dataIndex | ( | ) | const |
Definition at line 178 of file wave_data.cpp.
References mWaveDataList, and hal::WaveDataList::waveIndexByNetId().
Referenced by hal::WaveFormPainted::generateBoolean().
|
inline |
Definition at line 109 of file wave_data.h.
Referenced by hal::WaveItem::handleWaveLoaderFinished(), hal::WaveLoaderThread::run(), hal::WaveValueThread::run(), and hal::WaveItem::startLoader().
| std::string hal::WaveData::fileName | ( | ) | const |
Definition at line 519 of file wave_data.cpp.
References hal::SaleaeDirectory::get_datafile_path(), mWaveDataList, and hal::WaveDataList::saleaeDirectory().
Referenced by hal::WaveEditTable::WaveEditTable().
|
inline |
Definition at line 110 of file wave_data.h.
Referenced by hal::WaveWidget::addableEntries(), hal::WaveDataGroup::recalcData(), hal::WaveLoaderThread::run(), hal::WaveLoaderBackbone::run(), hal::WaveItem::startGeneratePainted(), and hal::WaveEditTable::WaveEditTable().
Definition at line 194 of file wave_data.cpp.
References BooleanNet, hal::WaveDataBoolean::children(), hal::WaveDataTrigger::children(), hal::WaveDataGroup::children(), QMap::constEnd(), hal::SaleaeInputFile::get_buffered_data(), hal::SaleaeDirectory::get_datafile_path(), hal::SaleaeInputFile::get_file_position(), hal::SaleaeDirectory::get_filename(), hal::WaveDataTrigger::get_filter_wave(), LoadAllData, loadPolicy(), QMap::lowerBound(), hal::SaleaeDataBuffer::mCount, mData, hal::SaleaeDataTuple::mTime, hal::SaleaeDataBuffer::mTimeArray, hal::SaleaeDataTuple::mValue, hal::SaleaeDataBuffer::mValueArray, mWaveDataList, NetGroup, hal::WaveDataProvider::nextPoint(), hal::WaveDataList::saleaeDirectory(), hal::SaleaeDataTuple::sReadError, hal::NetlistSimulatorControllerPlugin::sSimulationSettings, hal::WaveDataProvider::startValue(), hal::WaveDataTrigger::toValueList(), TriggerTime, and hal::WaveDataBoolean::truthTable().
Referenced by hal::PerfTestPlugin::cmp_sim_data(), get_triggered_events(), isEqual(), and hal::PYBIND11_PLUGIN().
|
inline |
Definition at line 132 of file wave_data.h.
References QString::toStdString().
Referenced by hal::PYBIND11_PLUGIN(), and hal::WaveDataGroup::restoreIndex().
| std::vector< std::pair< u64, int > > hal::WaveData::get_triggered_events | ( | const WaveDataTrigger * | wdTrig, |
| u64 | t0 = 0 |
||
| ) |
Definition at line 183 of file wave_data.cpp.
References get_events(), and intValue().
Referenced by hal::PYBIND11_PLUGIN().
| int hal::WaveData::get_value_at | ( | u64 | t | ) |
Definition at line 125 of file wave_data.cpp.
References intValue(), LoadAllData, loadDataUnlessAlreadyLoaded(), and loadPolicy().
Referenced by hal::PYBIND11_PLUGIN(), and hal::WaveDataBoolean::recalcData().
|
inline |
Definition at line 145 of file wave_data.h.
|
inline |
Definition at line 103 of file wave_data.h.
Referenced by hal::WaveDataList::add(), hal::NetlistSimulatorController::add_boolean_accept_list_waveform(), hal::NetlistSimulatorController::add_boolean_expression_waveform(), hal::NetlistSimulatorController::add_trigger_time(), hal::NetlistSimulatorController::add_waveform_group(), hal::WaveWidget::addableEntries(), hal::WaveDataList::addOrReplace(), hal::WaveTreeModel::addWaves(), hal::BooleanDialog::BooleanDialog(), hal::WaveTreeModel::booleanId(), hal::WaveTreeModel::data(), hal::WaveDataRoot::dump(), hal::WaveItem::dump(), hal::VcdSerializer::exportCsv(), hal::VcdSerializer::exportVcd(), hal::WaveFormPainted::generateGroup(), hal::WaveTreeModel::groupId(), hal::WaveTreeModel::handleBooleanAdded(), hal::WaveTreeModel::handleGroupAboutToBeRemoved(), hal::WaveTreeModel::handleGroupAdded(), hal::WaveTreeModel::handleTriggerAdded(), hal::WaveTreeModel::hashIndex(), hal::WaveTreeModel::insertExisting(), hal::WaveTreeModel::insertItem(), hal::PYBIND11_PLUGIN(), hal::WaveWidget::refreshNetNames(), hal::WaveDataGroup::remove_waveform(), hal::WaveTreeModel::removeGroup(), hal::WaveTreeModel::removeItemFromHash(), hal::NetlistSimulatorController::rename_waveform(), hal::WaveTreeModel::restore(), hal::WaveTreeView::selectionChanged(), hal::WaveDataTrigger::set_filter_wave(), hal::TriggerDialog::TriggerDialog(), hal::WaveTreeModel::triggerId(), hal::WaveDataList::updateWaveData(), hal::WaveDataList::waveDataById(), hal::WaveDataGroupIndex::WaveDataGroupIndex(), hal::WaveTreeModel::waveDataIndexSet(), hal::WaveDataProviderGroup::WaveDataProviderGroup(), hal::WaveDataProviderTrigger::WaveDataProviderTrigger(), and hal::WaveTreeModel::waveIndex().
|
inline |
Definition at line 137 of file wave_data.h.
References QMap::insert(), and mData.
| void hal::WaveData::insertBooleanValueWithoutSync | ( | u64 | t, |
| BooleanFunction::Value | bval | ||
| ) |
Definition at line 103 of file wave_data.cpp.
References QMap::constBegin(), QMap::insert(), QMap::isEmpty(), mData, mDirty, and QMap::upperBound().
Referenced by hal::WaveDataList::insertBooleanValue(), and hal::NetlistSimulatorController::set_input().
|
virtual |
Reimplemented in hal::WaveDataGroup, hal::WaveDataTrigger, and hal::WaveDataBoolean.
Definition at line 454 of file wave_data.cpp.
References QMap::firstKey(), hal::SaleaeDirectory::get_datafile_path(), hal::SaleaeInputFile::get_int_value(), QMap::isEmpty(), QMap::lastKey(), LoadAllData, loadPolicy(), LoadTimeframe, mData, mWaveDataList, hal::WaveDataList::saleaeDirectory(), timeIterator(), and QMap::value().
Referenced by hal::WaveItem::cursorValue(), get_triggered_events(), get_value_at(), hal::WaveDataBoolean::intValue(), and hal::WaveDataTrigger::recalcData().
|
inline |
Definition at line 107 of file wave_data.h.
References mDirty.
| bool hal::WaveData::isEqual | ( | const WaveData & | other, |
| int | tolerance = 0 |
||
| ) | const |
Definition at line 144 of file wave_data.cpp.
References QMap::begin(), QMap::constBegin(), QMap::end(), get_events(), LoadAllData, loadPolicy(), mData, and QMap::size().
| void hal::WaveData::loadDataUnlessAlreadyLoaded | ( | ) |
Definition at line 264 of file wave_data.cpp.
References loadSaleae(), mData, and QMap::size().
Referenced by hal::WaveItem::cursorValue(), get_value_at(), hal::WaveDataTrigger::intValue(), hal::WaveDataBoolean::recalcData(), hal::WaveDataTrigger::recalcData(), and hal::WaveDataList::waveDataByNet().
|
virtual |
Reimplemented in hal::WaveDataGroup, hal::WaveDataTrigger, and hal::WaveDataBoolean.
Definition at line 75 of file wave_data.cpp.
References LoadAllData, LoadTimeframe, hal::SimulationSettings::maxSizeLoadable(), hal::NetlistSimulatorControllerPlugin::sSimulationSettings, and TooBigToLoad.
Referenced by hal::WaveItem::cursorValue(), get_events(), get_value_at(), intValue(), isEqual(), hal::WaveDataBoolean::loadPolicy(), hal::WaveDataTrigger::loadPolicy(), neighborTransition(), hal::WaveDataGroup::recalcData(), hal::WaveLoaderThread::run(), hal::WaveDataList::setUserTimeframe(), hal::WaveItem::startGeneratePainted(), hal::WaveDataList::updateFromSaleae(), and hal::WaveDataList::waveDataByNet().
| bool hal::WaveData::loadSaleae | ( | const WaveDataTimeframe & | tframe = WaveDataTimeframe() | ) |
Definition at line 270 of file wave_data.cpp.
References hal::SaleaeInputFile::get_buffered_data(), hal::SaleaeDirectory::get_datafile_path(), hal::WaveDataTimeframe::hasUserTimeframe(), QMap::insert(), hal::SaleaeDataBuffer::mCount, mData, mDirty, hal::SaleaeDataBuffer::mTimeArray, hal::SaleaeDataBuffer::mValueArray, mWaveDataList, resetWave(), hal::WaveDataList::saleaeDirectory(), hal::WaveDataTimeframe::sceneMaxTime(), hal::WaveDataTimeframe::sceneMinTime(), hal::NetlistSimulatorControllerPlugin::sSimulationSettings, and hal::BooleanFunction::X.
Referenced by hal::WaveWidget::addSelectedResults(), loadDataUnlessAlreadyLoaded(), hal::WaveItem::loadSaleae(), hal::WaveDataGroup::recalcData(), hal::WaveDataList::updateFromSaleae(), hal::WaveDataList::waveDataByNet(), and hal::WaveEditTable::WaveEditTable().
| u64 hal::WaveData::maxTime | ( | ) | const |
Definition at line 525 of file wave_data.cpp.
References QMap::isEmpty(), QMap::lastKey(), and mData.
Referenced by saveSaleae().
|
inline |
Definition at line 104 of file wave_data.h.
Referenced by hal::WaveWidget::addableEntries(), hal::BooleanDialog::BooleanDialog(), hal::PerfTestPlugin::cmp_sim_data(), hal::WaveTreeModel::data(), hal::WaveDataRoot::dump(), hal::WaveItem::dump(), hal::VcdSerializer::exportCsv(), hal::VcdSerializer::exportVcd(), hal::VcdSerializerElement::name(), hal::WaveTreeModel::netName(), hal::WaveWidget::refreshNetNames(), hal::WaveDataTrigger::set_filter_wave(), hal::TriggerDialog::TriggerDialog(), hal::WaveDataList::updateFromSaleae(), hal::WaveDataList::waveDataByName(), hal::WaveDataGroup::WaveDataGroup(), hal::WaveDataProviderGroup::WaveDataProviderGroup(), hal::WaveDataProviderTrigger::WaveDataProviderTrigger(), and hal::WaveEditDialog::WaveEditDialog().
|
virtual |
Reimplemented in hal::WaveDataTrigger.
Definition at line 360 of file wave_data.cpp.
References QMap::begin(), BooleanNet, hal::WaveDataBoolean::children(), hal::WaveDataGroup::children(), QMap::end(), QMap::firstKey(), hal::SaleaeDirectory::get_datafile_path(), hal::SaleaeInputFile::get_file_position(), hal::SaleaeInputFile::get_next_value(), hal::SaleaeInputFile::header(), QMap::isEmpty(), QList::isEmpty(), QMap::key(), QMap::lastKey(), LoadAllData, loadPolicy(), LoadTimeframe, QMap::lowerBound(), mData, hal::SaleaeDataTuple::mTime, mWaveDataList, NetGroup, hal::SaleaeHeader::numTransitions(), hal::SaleaeDataTuple::readError(), hal::WaveDataList::saleaeDirectory(), hal::SaleaeInputFile::set_file_position(), and QMap::upperBound().
|
inline |
Definition at line 105 of file wave_data.h.
Referenced by hal::WaveItem::cursorValue(), hal::WaveTreeModel::hashIndex(), hal::WaveTreeModel::insertExisting(), hal::WaveTreeModel::insertItem(), hal::WaveItem::isBoolean(), hal::WaveItem::isGroup(), hal::WaveItem::isTrigger(), hal::WaveTreeModel::removeItemFromHash(), hal::WaveLoaderThread::run(), hal::WaveLoaderBackbone::run(), hal::WaveDataTrigger::set_filter_wave(), hal::WaveItem::startGeneratePainted(), and hal::WaveEditDialog::WaveEditDialog().
|
inline |
Definition at line 147 of file wave_data.h.
Referenced by hal::WaveItem::~WaveItem().
| bool hal::WaveData::rename | ( | const QString & | nam | ) |
Definition at line 89 of file wave_data.cpp.
References mDirty.
Referenced by hal::NetlistSimulatorController::rename_waveform(), hal::WaveDataList::updateGroupName(), hal::WaveDataBoolean::WaveDataBoolean(), hal::WaveDataGroup::WaveDataGroup(), and hal::WaveDataTrigger::WaveDataTrigger().
|
protected |
Definition at line 64 of file wave_data.cpp.
References QMap::clear(), and mData.
Referenced by loadSaleae(), and hal::WaveDataClock::setMaxTime().
| void hal::WaveData::saveSaleae | ( | ) |
Definition at line 320 of file wave_data.cpp.
References QDir::absolutePath(), hal::SaleaeDirectory::add_or_replace_net(), hal::SaleaeDirectoryNetEntry::addIndex(), QMap::constBegin(), QMap::constEnd(), QDir::exists(), QString::fromStdString(), hal::SaleaeDirectory::get_datafile_index(), hal::SaleaeDirectory::get_datafile_path(), hal::SaleaeDirectory::get_directory(), hal::SaleaeDirectory::get_next_available_index(), maxTime(), mData, QDir::mkpath(), hal::SaleaeDataBuffer::mTimeArray, hal::SaleaeDataBuffer::mValueArray, mWaveDataList, hal::SaleaeOutputFile::put_data(), hal::WaveDataList::saleaeDirectory(), hal::gate_library_manager::save(), QMap::size(), and QString::toStdString().
Referenced by hal::WaveDataList::add(), hal::WaveDataList::insertBooleanValue(), and hal::WaveDataList::updateWaveData().
| void hal::WaveData::setBits | ( | int | bts | ) |
Definition at line 97 of file wave_data.cpp.
References mDirty.
Referenced by hal::WaveDataGroup::WaveDataGroup().
Definition at line 119 of file wave_data.cpp.
Referenced by hal::WaveLoaderThread::run().
|
inline |
Definition at line 117 of file wave_data.h.
References mDirty.
Referenced by hal::WaveItem::setState().
|
inline |
Definition at line 118 of file wave_data.h.
Referenced by hal::WaveDataList::updateFromSaleae().
| void hal::WaveData::setFileSize | ( | u64 | siz | ) |
Definition at line 69 of file wave_data.cpp.
Referenced by hal::WaveDataList::updateFromSaleae().
| void hal::WaveData::setId | ( | u32 | id_ | ) |
Definition at line 83 of file wave_data.cpp.
References mDirty.
|
inline |
Definition at line 120 of file wave_data.h.
Referenced by hal::WaveLoaderThread::run(), and hal::WaveDataList::setUserTimeframe().
|
inline |
Definition at line 142 of file wave_data.h.
References mValueBase.
|
inline |
Definition at line 121 of file wave_data.h.
References mWaveDataList.
Referenced by hal::WaveDataList::add().
|
static |
Definition at line 489 of file wave_data.cpp.
References QString::arg(), bits(), and QString::number().
Referenced by hal::WaveFormPrimitiveValue::paint(), and strValue().
Definition at line 478 of file wave_data.cpp.
References QMap::constEnd(), mData, strValue(), and QMap::value().
| QString hal::WaveData::strValue | ( | double | t | ) | const |
Definition at line 471 of file wave_data.cpp.
References QMap::isEmpty(), mData, strValue(), and timeIterator().
| QString hal::WaveData::strValue | ( | int | val | ) | const |
Definition at line 484 of file wave_data.cpp.
References bits(), mValueBase, and stringValue().
Referenced by hal::WaveEditTable::data(), hal::WaveTreeModel::data(), and strValue().
Definition at line 352 of file wave_data.cpp.
References QMap::constBegin(), QMap::constEnd(), mData, and QMap::upperBound().
Referenced by intValue(), and strValue().
|
inline |
Definition at line 111 of file wave_data.h.
References mValueBase.
Referenced by hal::WaveFormPainted::generateGroup(), hal::WaveLoaderThread::run(), and hal::WaveItem::startGeneratePainted().
Definition at line 91 of file wave_data.h.
Referenced by clear(), data(), get_events(), insert(), insertBooleanValueWithoutSync(), intValue(), isEqual(), loadDataUnlessAlreadyLoaded(), loadSaleae(), maxTime(), neighborTransition(), hal::WaveDataTrigger::neighborTransition(), hal::WaveDataBoolean::recalcData(), hal::WaveDataTrigger::recalcData(), hal::WaveDataGroup::recalcData(), resetWave(), saveSaleae(), setData(), strValue(), and timeIterator().
|
protected |
Definition at line 92 of file wave_data.h.
Referenced by insertBooleanValueWithoutSync(), isDirty(), loadSaleae(), hal::WaveDataGroup::recalcData(), rename(), setBits(), setData(), setDirty(), and setId().
|
protected |
Definition at line 90 of file wave_data.h.
Referenced by setValueBase(), strValue(), and valueBase().
|
protected |
Definition at line 93 of file wave_data.h.
Referenced by hal::WaveDataGroup::add_waveform(), hal::WaveDataGroup::addNet(), hal::WaveDataGroup::childrenWaveIndex(), dataIndex(), fileName(), get_events(), intValue(), loadSaleae(), neighborTransition(), hal::WaveDataGroup::recalcData(), hal::WaveDataGroup::remove_waveform(), hal::WaveDataGroup::restoreIndex(), saveSaleae(), hal::WaveDataTrigger::set_filter_wave(), setWaveDataList(), hal::WaveDataBoolean::WaveDataBoolean(), hal::WaveDataGroup::WaveDataGroup(), hal::WaveDataTrigger::WaveDataTrigger(), and hal::WaveDataGroup::~WaveDataGroup().