32 size_t pos = name.find(
"[");
33 if(pos != string::npos)
return name.substr(pos);
41 if(msbPtr && lsbPtr) {
55 inRoot.applyOnAllDesigns(mVisitor);
56 inRoot.applyOnAllLibraries(mVisitor);
69 inLibrary.applyOnAllCells(mVisitor);
74 string name = getName(inCell);
75 mOut <<
"module " << name <<
" ";
76 inCell.applyOnAllViews(mVisitor);
77 mOut <<
"endmodule" << endl << endl;
85 inView.getPorts(ports);
87 PortSharedPtrVector::const_iterator pp = ports.begin();
88 PortSharedPtrVector::const_iterator pe = ports.end();
92 mOut << mTab << portPtr->getName();
93 if(pp < pe) mOut <<
",";
99 inView.applyOnAllPorts(mVisitor);
100 inView.applyOnAllNets(mVisitor);
101 inView.applyOnAllInstances(mVisitor);
103 inView.applyOnAllProperties(mVisitor);
107 inScalarPort.applyOnAllProperties(mVisitor);
108 mOut << getDirection(inScalarPort) <<
" " << inScalarPort.getName() <<
";" << endl;
112 inVectorPort.applyOnAllProperties(mVisitor);
113 mOut << getDirection(inVectorPort) <<
" " << getRange(inVectorPort) <<
" "
114 << inVectorPort.getName() <<
";" << endl;
128 vector<PortSharedPtr> ports;
129 inScalarNet.getConnectedPorts(ports);
130 if(ports.size() == 0) {
133 mOut <<
"wire " << inScalarNet.getName();
134 if(assignPtr) mOut <<
" = " << assignPtr->getValue().get<
Value::String>();
137 inScalarNet.applyOnAllProperties(mVisitor);
146 CellSharedPtr cellPtr = inSingleInstance.getMaster()->getParent();
147 mOut << getName(*cellPtr) <<
" " << getName(inSingleInstance);
151 inSingleInstance.getPortReferences(portReferences);
152 bool hasPortReferences = portReferences.size() != 0;
153 PortReferenceSharedPtrVector::const_iterator prp = portReferences.begin();
154 PortReferenceSharedPtrVector::const_iterator pre = portReferences.end();
155 if(hasPortReferences) mOut <<
"(";
160 (portReferencePtr)->accept(*
this);
161 if(prp < pre) mOut <<
", ";
164 if(hasPortReferences) mOut <<
")";
167 inSingleInstance.applyOnAllProperties(mVisitor);
181 string name = getName(*(inScalarPortRef.getMaster()));
182 mOut <<
"." << name <<
"(";
184 inScalarPortRef.getConnectedNets(nets);
185 NetSharedPtrVector::const_iterator np = nets.begin();
186 NetSharedPtrVector::const_iterator ne = nets.end();
187 if(nets.size() > 1) {}
190 mOut << getName(*netPtr);
194 inScalarPortRef.applyOnAllProperties(mVisitor);
198 mOut <<
"[VECTORPORTREFERENCE]";
214 mOut <<
"[VECTORPORTBITREFERENCE]";
234 mOut <<
"[PORTBUNDLEREFERENCE]";
243 const string& name = inProperty.getName();
244 const string torcPrefix =
"torc_";
246 Value propertyValue = inProperty.getValue();
247 switch(propertyValue.
getType()) {
255 value <<
"[MiNoMax]";
267 value <<
"[unknown]";
270 if(name.compare(0, torcPrefix.length(), torcPrefix) == 0) {
274 mOut <<
"// property " << name << endl;
276 mOut <<
"defparam " << mPropertyContainerName <<
"." << name <<
" = "
277 << value.str() <<
";" << endl;
Represents a bit of a net array.
static string getImportedCellLibraryName(void)
Returns the imported cell library name.
Header for the TemporaryAssignment class.
Represents areference to a standalone port.
Represents a reference to a port array.
static string getTorcAssignRHSPropertyName(void)
Property name for the wire assignment right-hand-side.
static string getTorcRangeMSBPropertyName(void)
Property name for the vector range MSB.
This class is used within simulate to describe input stimuli and expected responces over a certain ti...
Represents a bundle of ports.
Represents and EDIF View.
Represents a bit of a port.
Represents a member of an instance array.
Permutable is used to describe a relationship in which ports are interchangeable. ...
void visit(Root &inroot)
Visit the top-level netlist.
Represents a single instance of the view of a cell.
This class is used to hold all information about the logic values used within a library.
This class is used within simulationInfo construct to define a logic value to use for modeling in the...
static string getTorcRangeLSBPropertyName(void)
Property name for the vector range LSB.
Template class that stores the current value of a variable and restores that value when this object g...
The Error object thrown by different methods of EdifOM.
boost::shared_ptr< Net > NetSharedPtr
Represents a parameter array.
boost::shared_ptr< PortReference > PortReferenceSharedPtr
Represents a standalone port.
Represents the Interface joining information.
This class is used to provide a set of path delays or timing constrains (forbidden events) ...
const Type getType() const
Represents an array of instances.
Represents a standalone net.
std::vector< PortSharedPtr > PortSharedPtrVector
Vector of port shared pointers.
ForbiddenEvent class lists events which are forbidden during a period of times which is specified by ...
Represents different logic elements which holds array of logic values.
Represents an ordered list of port references with a name aliased.
Represents a reference to a bit of a port.
Represents an ordered list of port references.
Header for the VerilogExporterVisitor class.
Root of the EDIF Object Model.
This class is used to model logicInput/logicOutput construct. This class holds information of logical...
This class is used within simulate to describe input stimuli and expected responces over a certain ti...
Represents a bundle of nets.
boost::shared_ptr< Cell > CellSharedPtr
Event is used to describe an event on a port or a net using logic state transitions. Events can also be described for unordered groups of ports or nets using portGroup or netGroup. An ordered list of ports may also be used using a portList.
Header for the VerilogNames class.
std::vector< NetSharedPtr > NetSharedPtrVector
Vector of net shared pointers.
boost::shared_ptr< Port > PortSharedPtr
boost::shared_ptr< Property > PropertySharedPtr
PropertySharedPtr getProperty(const std::string &inName)
This class is to model simulate construct which is a named collection of simulation stimulus and resp...
Represents EDIF status construct.
Represents a reference to a bundle of ports.
static string getInferredBlackBoxesLibraryName(void)
Returns the inferred black box library name.
string getRange(VectorPort &inVectorPort)
Return a string describing the range of a vector port. The range is expressed in the form "[start:end...
virtual Name getOriginalName() const
std::vector< PortReferenceSharedPtr > PortReferenceSharedPtrVector
Vector of port reference shared pointers.