OpenASIP
2.0
|
#include <ProcessorWrapperBlock.hh>
Public Member Functions | |
ProcessorWrapperBlock ()=delete | |
ProcessorWrapperBlock (const ProGeContext &context, const BaseNetlistBlock &processorBlock) | |
virtual | ~ProcessorWrapperBlock () |
virtual void | write (const Path &targetBaseDir, HDL targetLang=VHDL) const override |
Public Member Functions inherited from ProGe::BaseNetlistBlock | |
BaseNetlistBlock () | |
BaseNetlistBlock (BaseNetlistBlock *parent) | |
BaseNetlistBlock (const std::string &moduleName, const std::string &instanceName, BaseNetlistBlock *parent=nullptr) | |
virtual | ~BaseNetlistBlock () |
const std::string & | instanceName () const |
void | setInstanceName (const std::string &name) |
const std::string & | moduleName () const |
const std::string | name () const |
virtual size_t | subBlockCount () const |
virtual const BaseNetlistBlock & | subBlock (size_t index) const |
virtual bool | hasSubBlock (const std::string &instanceName) const |
virtual bool | isSubBlock (const BaseNetlistBlock &block) const |
virtual bool | hasParameter (const std::string &name) const |
virtual const Parameter & | parameter (const std::string &name) const |
virtual size_t | parameterCount () const |
virtual const Parameter & | parameter (size_t index) const |
virtual size_t | portCount () const |
virtual const NetlistPort & | port (size_t index) const |
virtual std::vector< const NetlistPort * > | portsBy (SignalType type) const |
virtual const NetlistPort & | portBy (SignalType type, size_t index=0) const |
virtual bool | hasPortsBy (SignalType type) const |
virtual const NetlistPort * | port (const std::string &portName, bool partialMatch=true) const |
virtual size_t | portGroupCount () const |
virtual const NetlistPortGroup & | portGroup (size_t index) const |
virtual std::vector< const NetlistPortGroup * > | portGroupsBy (SignalGroupType type) const |
virtual const Netlist & | netlist () const |
virtual bool | hasParentBlock () const |
virtual const BaseNetlistBlock & | parentBlock () const |
virtual bool | isVirtual () const |
virtual void | build () override |
virtual void | connect () override |
virtual void | finalize () override |
virtual void | writeSelf (const Path &targetBaseDir, HDL targetLang=VHDL) const |
virtual size_t | packageCount () const |
virtual const std::string & | package (size_t idx) const |
PortContainerType & | ports () |
virtual bool | isLeaf () const |
BaseNetlistBlock * | shallowCopy (const std::string &instanceName="") const |
Public Member Functions inherited from ProGe::IGenerationPhases | |
virtual | ~IGenerationPhases () |
Private Member Functions | |
void | addInstructionMemory (const NetlistPortGroup &) |
void | addDataMemory (const MemoryBusInterface &) |
void | addDataMemory2 (const MemoryBusInterface &) |
void | connectLockStatus (const NetlistPort &topPCInitPort) |
void | connectPCInit (const NetlistPort &topPCInitPort) |
void | handleUnconnectedPorts () |
Private Attributes | |
const ProGeContext & | context_ |
BaseNetlistBlock * | coreBlock_ |
The target TTA processor. More... | |
unsigned | imemCount_ = 0 |
Definition at line 51 of file ProcessorWrapperBlock.hh.
|
delete |
ProGe::ProcessorWrapperBlock::ProcessorWrapperBlock | ( | const ProGeContext & | context, |
const BaseNetlistBlock & | processorBlock | ||
) |
Definition at line 53 of file ProcessorWrapperBlock.cc.
References addDataMemory(), addDataMemory2(), addInstructionMemory(), ProGe::BaseNetlistBlock::addPackage(), ProGe::BaseNetlistBlock::addPort(), ProGe::BaseNetlistBlock::addSubBlock(), assert, ProGe::NetlistPortGroup::assignedSignalGroup(), ProGe::BITMASKED_SRAM_PORT, ProGe::BYTEMASKED_SRAM_PORT, ProGe::PortFactory::clockPort(), ProGe::BaseNetlistBlock::connectClocks(), connectLockStatus(), ProGe::BaseNetlistBlock::connectResets(), coreBlock_, ProGe::ProGeContext::coreEntityName(), ProGe::ProGeContext::globalPackage(), handleUnconnectedPorts(), ProGe::INSTRUCTION_LINE, ProGe::GlobalPackage::name(), ProGe::BaseNetlistBlock::package(), ProGe::BaseNetlistBlock::packageCount(), ProGe::BaseNetlistBlock::portCount(), ProGe::BaseNetlistBlock::portGroup(), ProGe::BaseNetlistBlock::portGroupCount(), ProGe::PortFactory::resetPort(), and ProGe::SignalGroup::type().
|
virtual |
Definition at line 109 of file ProcessorWrapperBlock.cc.
|
private |
Definition at line 178 of file ProcessorWrapperBlock.cc.
References ProGe::MemoryBusInterface::addressSpace(), ProGe::SinglePortSSRAMBlock::memoryPort(), ProGe::NetlistPortGroup::portBySignal(), THROW_EXCEPTION, and ProGe::NetlistPort::widthFormula().
Referenced by ProcessorWrapperBlock().
|
private |
Definition at line 198 of file ProcessorWrapperBlock.cc.
References ProGe::MemoryBusInterface::addressSpace(), ProGe::SinglePortByteMaskSSRAMBlock::memoryPort(), ProGe::NetlistPortGroup::portBySignal(), THROW_EXCEPTION, and ProGe::NetlistPort::widthFormula().
Referenced by ProcessorWrapperBlock().
|
private |
Definition at line 119 of file ProcessorWrapperBlock.cc.
References TTAMachine::FunctionUnit::addressSpace(), ProGe::BaseNetlistBlock::addSubBlock(), ProGe::ProGeContext::adf(), ProGe::Netlist::connect(), context_, TTAMachine::Machine::controlUnit(), TTAMachine::AddressSpace::end(), ProGe::GlobalPackage::fetchBlockAddressWidth(), ProGe::GlobalPackage::fetchBlockDataWidth(), ProGe::ProGeContext::globalPackage(), imemCount_, TTAMachine::Machine::isRISCVMachine(), ProGe::SinglePortSSRAMBlock::memoryPort(), ProGe::BaseNetlistBlock::netlist(), ProGe::NetlistPortGroup::portBySignal(), MathTools::requiredBits(), ProGe::SinglePortSSRAMBlock::setAccessTraceFile(), and Conversion::toString().
Referenced by ProcessorWrapperBlock().
|
private |
Definition at line 220 of file ProcessorWrapperBlock.cc.
References assert, and THROW_EXCEPTION.
Referenced by ProcessorWrapperBlock().
|
private |
|
private |
Handles unconnected ports of the top-level TTA processor by connecting them to the toplevel
Definition at line 237 of file ProcessorWrapperBlock.cc.
References ProGe::NetlistPort::clone(), and ProGe::NetlistPort::hasStaticValue().
Referenced by ProcessorWrapperBlock().
|
overridevirtual |
Does nothing on self but calls write function on each sub block.
Reimplemented from ProGe::BaseNetlistBlock.
Definition at line 112 of file ProcessorWrapperBlock.cc.
References ProGe::BaseNetlistBlock::write(), and ProGe::BaseNetlistBlock::writeSelf().
Referenced by ProGe::TestBenchBlock::write().
|
private |
Definition at line 74 of file ProcessorWrapperBlock.hh.
Referenced by addInstructionMemory().
|
private |
The target TTA processor.
Definition at line 76 of file ProcessorWrapperBlock.hh.
Referenced by ProcessorWrapperBlock().
|
private |
Definition at line 77 of file ProcessorWrapperBlock.hh.
Referenced by addInstructionMemory().