mirror of
https://github.com/verilator/verilator.git
synced 2025-04-28 11:36:56 +00:00
For internal messages, use <command-line> and <built-in> to match GCC.
This commit is contained in:
parent
ef02678305
commit
ba9af4aabf
@ -6118,7 +6118,7 @@ private:
|
||||
AstExecGraph* m_execGraphp; // Execution MTask graph for threads>1 mode
|
||||
public:
|
||||
AstNetlist()
|
||||
: AstNode(new FileLine("AstRoot", 0))
|
||||
: AstNode(new FileLine(FileLine::builtInFilename(), 0))
|
||||
, m_typeTablep(NULL)
|
||||
, m_dollarUnitPkgp(NULL)
|
||||
, m_evalp(NULL)
|
||||
|
@ -28,6 +28,7 @@
|
||||
# include "V3Global.h"
|
||||
# include "V3Stats.h"
|
||||
# include "V3Config.h"
|
||||
# include "V3File.h"
|
||||
#endif
|
||||
|
||||
#include <cstdarg>
|
||||
@ -68,13 +69,12 @@ int FileLineSingleton::nameToNumber(const string& filename) {
|
||||
}
|
||||
|
||||
//! Support XML output
|
||||
|
||||
//! Experimental. Updated to also put out the language.
|
||||
void FileLineSingleton::fileNameNumMapDumpXml(std::ostream& os) {
|
||||
os<<"<files>\n";
|
||||
for (FileNameNumMap::const_iterator it = m_namemap.begin(); it != m_namemap.end(); ++it) {
|
||||
os<<"<file id=\""<<filenameLetters(it->second)
|
||||
<<"\" filename=\""<<it->first
|
||||
<<"\" filename=\""<<V3OutFormatter::quoteNameControls(it->first, V3OutFormatter::LA_XML)
|
||||
<<"\" language=\""<<numberToLang(it->second).ascii()<<"\"/>\n";
|
||||
}
|
||||
os<<"</files>\n";
|
||||
@ -86,7 +86,7 @@ void FileLineSingleton::fileNameNumMapDumpXml(std::ostream& os) {
|
||||
FileLine::FileLine(FileLine::EmptySecret) {
|
||||
// Sort of a singleton
|
||||
m_lineno = 0;
|
||||
m_filenameno = singleton().nameToNumber("AstRoot");
|
||||
m_filenameno = singleton().nameToNumber(FileLine::builtInFilename());
|
||||
m_parent = NULL;
|
||||
|
||||
m_warnOn = 0;
|
||||
|
@ -130,7 +130,7 @@ public:
|
||||
string ascii() const;
|
||||
const string filename() const { return singleton().numberToName(m_filenameno); }
|
||||
bool filenameIsGlobal() const { return (filename() == commandLineFilename()
|
||||
|| filename() == internalDefineFilename()); }
|
||||
|| filename() == builtInFilename()); }
|
||||
const string filenameLetters() const { return singleton().filenameLetters(m_filenameno); }
|
||||
const string filebasename() const;
|
||||
const string filebasenameNoExt() const;
|
||||
@ -155,8 +155,9 @@ public:
|
||||
void tracingOn(bool flag) { warnOn(V3ErrorCode::I_TRACING, flag); }
|
||||
|
||||
// METHODS - Global
|
||||
static string commandLineFilename() { return "COMMAND_LINE"; }
|
||||
static string internalDefineFilename() { return "INTERNAL_VERILATOR_DEFINE"; }
|
||||
// <command-line> and <built-in> match what GCC outputs
|
||||
static string commandLineFilename() { return "<command-line>"; }
|
||||
static string builtInFilename() { return "<built-in>"; }
|
||||
static void globalWarnLintOff(bool flag) {
|
||||
defaultFileLine().warnLintOff(flag); }
|
||||
static void globalWarnStyleOff(bool flag) {
|
||||
|
@ -38,7 +38,7 @@ void test(const string& lhss, const string& op, const string& rhss, const string
|
||||
char* r1 = strdup(rhss.c_str());
|
||||
char* e1 = strdup(exps.c_str());
|
||||
|
||||
FileLine fl = new FileLine(FileLine::internalDefineFinename(), 0);
|
||||
FileLine fl = new FileLine(FileLine::builtInFinename(), 0);
|
||||
|
||||
V3Number lhnum (fl, l1);
|
||||
V3Number rhnum (fl, r1);
|
||||
|
@ -64,7 +64,7 @@ protected:
|
||||
s_preprocp = V3PreProc::createPreProc(cmdfl);
|
||||
s_preprocp->debug(debug());
|
||||
// Default defines
|
||||
FileLine* prefl = new FileLine(FileLine::internalDefineFilename(), 0);
|
||||
FileLine* prefl = new FileLine(FileLine::builtInFilename(), 0);
|
||||
s_preprocp->defineCmdLine(prefl, "VERILATOR", "1"); // LEAK_OK
|
||||
s_preprocp->defineCmdLine(prefl, "verilator", "1"); // LEAK_OK
|
||||
s_preprocp->defineCmdLine(prefl, "verilator3", "1"); // LEAK_OK
|
||||
|
@ -2,78 +2,77 @@
|
||||
<!-- DESCRIPTION: Verilator output: XML representation of netlist -->
|
||||
<verilator_xml>
|
||||
<files>
|
||||
<file id="a" filename="AstRoot" language="1800-2017"/>
|
||||
<file id="b" filename="COMMAND_LINE" language="1800-2017"/>
|
||||
<file id="c" filename="INTERNAL_VERILATOR_DEFINE" language="1800-2017"/>
|
||||
<file id="d" filename="input.vc" language="1800-2017"/>
|
||||
<file id="e" filename="t/t_xml_first.v" language="1800-2017"/>
|
||||
<file id="a" filename="<built-in>" language="1800-2017"/>
|
||||
<file id="b" filename="<command-line>" language="1800-2017"/>
|
||||
<file id="c" filename="input.vc" language="1800-2017"/>
|
||||
<file id="d" filename="t/t_xml_first.v" language="1800-2017"/>
|
||||
</files>
|
||||
<module_files>
|
||||
<file id="e" filename="t/t_xml_first.v" language="1800-2017"/>
|
||||
<file id="d" filename="t/t_xml_first.v" language="1800-2017"/>
|
||||
</module_files>
|
||||
<cells>
|
||||
<cell fl="e6" name="t" submodname="t" hier="t">
|
||||
<cell fl="e18" name="cell1" submodname="mod1" hier="t.cell1"/>
|
||||
<cell fl="e24" name="cell2" submodname="mod2" hier="t.cell2"/>
|
||||
<cell fl="d6" name="t" submodname="t" hier="t">
|
||||
<cell fl="d18" name="cell1" submodname="mod1" hier="t.cell1"/>
|
||||
<cell fl="d24" name="cell2" submodname="mod2" hier="t.cell2"/>
|
||||
</cell>
|
||||
</cells>
|
||||
<netlist>
|
||||
<module fl="e6" name="t" origName="t" topModule="1">
|
||||
<var fl="e12" name="clk" dtype_id="1" dir="input" vartype="logic" origName="clk"/>
|
||||
<var fl="e13" name="d" dtype_id="2" dir="input" vartype="logic" origName="d"/>
|
||||
<var fl="e14" name="q" dtype_id="2" dir="output" vartype="logic" origName="q"/>
|
||||
<var fl="e16" name="between" dtype_id="2" vartype="logic" origName="between"/>
|
||||
<instance fl="e18" name="cell1" defName="mod1" origName="cell1">
|
||||
<port fl="e18" name="q" direction="out" portIndex="1">
|
||||
<varref fl="e18" name="between" dtype_id="2"/>
|
||||
<module fl="d6" name="t" origName="t" topModule="1">
|
||||
<var fl="d12" name="clk" dtype_id="1" dir="input" vartype="logic" origName="clk"/>
|
||||
<var fl="d13" name="d" dtype_id="2" dir="input" vartype="logic" origName="d"/>
|
||||
<var fl="d14" name="q" dtype_id="2" dir="output" vartype="logic" origName="q"/>
|
||||
<var fl="d16" name="between" dtype_id="2" vartype="logic" origName="between"/>
|
||||
<instance fl="d18" name="cell1" defName="mod1" origName="cell1">
|
||||
<port fl="d18" name="q" direction="out" portIndex="1">
|
||||
<varref fl="d18" name="between" dtype_id="2"/>
|
||||
</port>
|
||||
<port fl="e21" name="clk" direction="in" portIndex="2">
|
||||
<varref fl="e21" name="clk" dtype_id="1"/>
|
||||
<port fl="d21" name="clk" direction="in" portIndex="2">
|
||||
<varref fl="d21" name="clk" dtype_id="1"/>
|
||||
</port>
|
||||
<port fl="e22" name="d" direction="in" portIndex="3">
|
||||
<varref fl="e22" name="d" dtype_id="2"/>
|
||||
<port fl="d22" name="d" direction="in" portIndex="3">
|
||||
<varref fl="d22" name="d" dtype_id="2"/>
|
||||
</port>
|
||||
</instance>
|
||||
<instance fl="e24" name="cell2" defName="mod2" origName="cell2">
|
||||
<port fl="e24" name="d" direction="in" portIndex="1">
|
||||
<varref fl="e24" name="between" dtype_id="2"/>
|
||||
<instance fl="d24" name="cell2" defName="mod2" origName="cell2">
|
||||
<port fl="d24" name="d" direction="in" portIndex="1">
|
||||
<varref fl="d24" name="between" dtype_id="2"/>
|
||||
</port>
|
||||
<port fl="e27" name="q" direction="out" portIndex="2">
|
||||
<varref fl="e27" name="q" dtype_id="2"/>
|
||||
<port fl="d27" name="q" direction="out" portIndex="2">
|
||||
<varref fl="d27" name="q" dtype_id="2"/>
|
||||
</port>
|
||||
<port fl="e29" name="clk" direction="in" portIndex="3">
|
||||
<varref fl="e29" name="clk" dtype_id="1"/>
|
||||
<port fl="d29" name="clk" direction="in" portIndex="3">
|
||||
<varref fl="d29" name="clk" dtype_id="1"/>
|
||||
</port>
|
||||
</instance>
|
||||
</module>
|
||||
<module fl="e33" name="mod1" origName="mod1">
|
||||
<var fl="e35" name="clk" dtype_id="1" dir="input" vartype="logic" origName="clk"/>
|
||||
<var fl="e36" name="d" dtype_id="2" dir="input" vartype="logic" origName="d"/>
|
||||
<var fl="e37" name="q" dtype_id="2" dir="output" vartype="logic" origName="q"/>
|
||||
<always fl="e39">
|
||||
<sentree fl="e39">
|
||||
<senitem fl="e39" edgeType="POS">
|
||||
<varref fl="e39" name="clk" dtype_id="1"/>
|
||||
<module fl="d33" name="mod1" origName="mod1">
|
||||
<var fl="d35" name="clk" dtype_id="1" dir="input" vartype="logic" origName="clk"/>
|
||||
<var fl="d36" name="d" dtype_id="2" dir="input" vartype="logic" origName="d"/>
|
||||
<var fl="d37" name="q" dtype_id="2" dir="output" vartype="logic" origName="q"/>
|
||||
<always fl="d39">
|
||||
<sentree fl="d39">
|
||||
<senitem fl="d39" edgeType="POS">
|
||||
<varref fl="d39" name="clk" dtype_id="1"/>
|
||||
</senitem>
|
||||
</sentree>
|
||||
<assigndly fl="e40" dtype_id="2">
|
||||
<varref fl="e40" name="d" dtype_id="2"/>
|
||||
<varref fl="e40" name="q" dtype_id="2"/>
|
||||
<assigndly fl="d40" dtype_id="2">
|
||||
<varref fl="d40" name="d" dtype_id="2"/>
|
||||
<varref fl="d40" name="q" dtype_id="2"/>
|
||||
</assigndly>
|
||||
</always>
|
||||
</module>
|
||||
<module fl="e44" name="mod2" origName="mod2">
|
||||
<var fl="e46" name="clk" dtype_id="1" dir="input" vartype="logic" origName="clk"/>
|
||||
<var fl="e47" name="d" dtype_id="2" dir="input" vartype="logic" origName="d"/>
|
||||
<var fl="e48" name="q" dtype_id="2" dir="output" vartype="logic" origName="q"/>
|
||||
<contassign fl="e51" dtype_id="2">
|
||||
<varref fl="e51" name="d" dtype_id="2"/>
|
||||
<varref fl="e51" name="q" dtype_id="2"/>
|
||||
<module fl="d44" name="mod2" origName="mod2">
|
||||
<var fl="d46" name="clk" dtype_id="1" dir="input" vartype="logic" origName="clk"/>
|
||||
<var fl="d47" name="d" dtype_id="2" dir="input" vartype="logic" origName="d"/>
|
||||
<var fl="d48" name="q" dtype_id="2" dir="output" vartype="logic" origName="q"/>
|
||||
<contassign fl="d51" dtype_id="2">
|
||||
<varref fl="d51" name="d" dtype_id="2"/>
|
||||
<varref fl="d51" name="q" dtype_id="2"/>
|
||||
</contassign>
|
||||
</module>
|
||||
<typetable fl="a0">
|
||||
<basicdtype fl="e46" id="1" name="logic"/>
|
||||
<basicdtype fl="e13" id="2" name="logic" left="3" right="0"/>
|
||||
<basicdtype fl="d46" id="1" name="logic"/>
|
||||
<basicdtype fl="d13" id="2" name="logic" left="3" right="0"/>
|
||||
</typetable>
|
||||
</netlist>
|
||||
</verilator_xml>
|
||||
|
@ -2,82 +2,81 @@
|
||||
<!-- DESCRIPTION: Verilator output: XML representation of netlist -->
|
||||
<verilator_xml>
|
||||
<files>
|
||||
<file id="a" filename="AstRoot" language="1800-2017"/>
|
||||
<file id="b" filename="COMMAND_LINE" language="1800-2017"/>
|
||||
<file id="c" filename="INTERNAL_VERILATOR_DEFINE" language="1800-2017"/>
|
||||
<file id="d" filename="input.vc" language="1800-2017"/>
|
||||
<file id="e" filename="t/t_xml_tag.v" language="1800-2017"/>
|
||||
<file id="a" filename="<built-in>" language="1800-2017"/>
|
||||
<file id="b" filename="<command-line>" language="1800-2017"/>
|
||||
<file id="c" filename="input.vc" language="1800-2017"/>
|
||||
<file id="d" filename="t/t_xml_tag.v" language="1800-2017"/>
|
||||
</files>
|
||||
<module_files>
|
||||
<file id="e" filename="t/t_xml_tag.v" language="1800-2017"/>
|
||||
<file id="d" filename="t/t_xml_tag.v" language="1800-2017"/>
|
||||
</module_files>
|
||||
<cells>
|
||||
<cell fl="e11" name="m" submodname="m" hier="m">
|
||||
<cell fl="e28" name="itop" submodname="ifc" hier="m.itop"/>
|
||||
<cell fl="d11" name="m" submodname="m" hier="m">
|
||||
<cell fl="d28" name="itop" submodname="ifc" hier="m.itop"/>
|
||||
</cell>
|
||||
</cells>
|
||||
<netlist>
|
||||
<module fl="e11" name="m" origName="m" topModule="1">
|
||||
<var fl="e13" name="clk_ip" tag="clk_ip" dtype_id="1" dir="input" vartype="logic" origName="clk_ip"/>
|
||||
<var fl="e14" name="rst_ip" dtype_id="1" dir="input" vartype="logic" origName="rst_ip"/>
|
||||
<var fl="e15" name="foo_op" tag="foo_op" dtype_id="1" dir="output" vartype="logic" origName="foo_op"/>
|
||||
<typedef fl="e19" name="my_struct" tag="my_struct" dtype_id="2"/>
|
||||
<instance fl="e28" name="itop" defName="ifc" origName="itop"/>
|
||||
<var fl="e28" name="itop__Viftop" dtype_id="3" vartype="ifaceref" origName="itop__Viftop"/>
|
||||
<var fl="e30" name="this_struct" tag="this_struct" dtype_id="4" vartype="" origName="this_struct"/>
|
||||
<var fl="e32" name="dotted" dtype_id="5" vartype="logic" origName="dotted"/>
|
||||
<contassign fl="e32" dtype_id="5">
|
||||
<varxref fl="e32" name="value" dtype_id="6" dotted="itop"/>
|
||||
<varref fl="e32" name="dotted" dtype_id="5"/>
|
||||
<module fl="d11" name="m" origName="m" topModule="1">
|
||||
<var fl="d13" name="clk_ip" tag="clk_ip" dtype_id="1" dir="input" vartype="logic" origName="clk_ip"/>
|
||||
<var fl="d14" name="rst_ip" dtype_id="1" dir="input" vartype="logic" origName="rst_ip"/>
|
||||
<var fl="d15" name="foo_op" tag="foo_op" dtype_id="1" dir="output" vartype="logic" origName="foo_op"/>
|
||||
<typedef fl="d19" name="my_struct" tag="my_struct" dtype_id="2"/>
|
||||
<instance fl="d28" name="itop" defName="ifc" origName="itop"/>
|
||||
<var fl="d28" name="itop__Viftop" dtype_id="3" vartype="ifaceref" origName="itop__Viftop"/>
|
||||
<var fl="d30" name="this_struct" tag="this_struct" dtype_id="4" vartype="" origName="this_struct"/>
|
||||
<var fl="d32" name="dotted" dtype_id="5" vartype="logic" origName="dotted"/>
|
||||
<contassign fl="d32" dtype_id="5">
|
||||
<varxref fl="d32" name="value" dtype_id="6" dotted="itop"/>
|
||||
<varref fl="d32" name="dotted" dtype_id="5"/>
|
||||
</contassign>
|
||||
<func fl="e34" name="f" dtype_id="1">
|
||||
<var fl="e34" name="f" dtype_id="1" dir="output" vartype="logic" origName="f"/>
|
||||
<var fl="e34" name="m" dtype_id="7" dir="input" vartype="string" origName="m"/>
|
||||
<display fl="e35" displaytype="$display">
|
||||
<sformatf fl="e35" name="%@" dtype_id="7">
|
||||
<varref fl="e35" name="m" dtype_id="7"/>
|
||||
<func fl="d34" name="f" dtype_id="1">
|
||||
<var fl="d34" name="f" dtype_id="1" dir="output" vartype="logic" origName="f"/>
|
||||
<var fl="d34" name="m" dtype_id="7" dir="input" vartype="string" origName="m"/>
|
||||
<display fl="d35" displaytype="$display">
|
||||
<sformatf fl="d35" name="%@" dtype_id="7">
|
||||
<varref fl="d35" name="m" dtype_id="7"/>
|
||||
</sformatf>
|
||||
</display>
|
||||
</func>
|
||||
<initial fl="e38">
|
||||
<begin fl="e38">
|
||||
<taskref fl="e40" name="f">
|
||||
<arg fl="e40">
|
||||
<const fl="e40" name=""	   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"" dtype_id="7"/>
|
||||
<initial fl="d38">
|
||||
<begin fl="d38">
|
||||
<taskref fl="d40" name="f">
|
||||
<arg fl="d40">
|
||||
<const fl="d40" name=""	   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"" dtype_id="7"/>
|
||||
</arg>
|
||||
</taskref>
|
||||
</begin>
|
||||
</initial>
|
||||
</module>
|
||||
<iface fl="e6" name="ifc" origName="ifc">
|
||||
<var fl="e7" name="value" dtype_id="6" vartype="integer" origName="value"/>
|
||||
<modport fl="e8" name="out_modport">
|
||||
<modportvarref fl="e8" name="value" direction="out"/>
|
||||
<iface fl="d6" name="ifc" origName="ifc">
|
||||
<var fl="d7" name="value" dtype_id="6" vartype="integer" origName="value"/>
|
||||
<modport fl="d8" name="out_modport">
|
||||
<modportvarref fl="d8" name="value" direction="out"/>
|
||||
</modport>
|
||||
</iface>
|
||||
<typetable fl="a0">
|
||||
<basicdtype fl="e30" id="5" name="logic" left="31" right="0"/>
|
||||
<basicdtype fl="e7" id="6" name="integer" left="31" right="0"/>
|
||||
<basicdtype fl="e13" id="1" name="logic"/>
|
||||
<structdtype fl="e19" id="2" name="m.my_struct">
|
||||
<memberdtype fl="e20" id="8" name="clk" tag="this is clk" sub_dtype_id="9"/>
|
||||
<memberdtype fl="e21" id="10" name="k" sub_dtype_id="11"/>
|
||||
<memberdtype fl="e22" id="12" name="enable" tag="enable" sub_dtype_id="13"/>
|
||||
<memberdtype fl="e23" id="14" name="data" tag="data" sub_dtype_id="15"/>
|
||||
<basicdtype fl="d30" id="5" name="logic" left="31" right="0"/>
|
||||
<basicdtype fl="d7" id="6" name="integer" left="31" right="0"/>
|
||||
<basicdtype fl="d13" id="1" name="logic"/>
|
||||
<structdtype fl="d19" id="2" name="m.my_struct">
|
||||
<memberdtype fl="d20" id="8" name="clk" tag="this is clk" sub_dtype_id="9"/>
|
||||
<memberdtype fl="d21" id="10" name="k" sub_dtype_id="11"/>
|
||||
<memberdtype fl="d22" id="12" name="enable" tag="enable" sub_dtype_id="13"/>
|
||||
<memberdtype fl="d23" id="14" name="data" tag="data" sub_dtype_id="15"/>
|
||||
</structdtype>
|
||||
<basicdtype fl="e20" id="9" name="logic"/>
|
||||
<basicdtype fl="e21" id="11" name="logic"/>
|
||||
<basicdtype fl="e22" id="13" name="logic"/>
|
||||
<basicdtype fl="e23" id="15" name="logic"/>
|
||||
<ifacerefdtype fl="e28" id="3" modportname=""/>
|
||||
<unpackarraydtype fl="e30" id="4" sub_dtype_id="2">
|
||||
<range fl="e30">
|
||||
<const fl="e30" name="32'h1" dtype_id="5"/>
|
||||
<const fl="e30" name="32'h0" dtype_id="5"/>
|
||||
<basicdtype fl="d20" id="9" name="logic"/>
|
||||
<basicdtype fl="d21" id="11" name="logic"/>
|
||||
<basicdtype fl="d22" id="13" name="logic"/>
|
||||
<basicdtype fl="d23" id="15" name="logic"/>
|
||||
<ifacerefdtype fl="d28" id="3" modportname=""/>
|
||||
<unpackarraydtype fl="d30" id="4" sub_dtype_id="2">
|
||||
<range fl="d30">
|
||||
<const fl="d30" name="32'h1" dtype_id="5"/>
|
||||
<const fl="d30" name="32'h0" dtype_id="5"/>
|
||||
</range>
|
||||
</unpackarraydtype>
|
||||
<refdtype fl="e30" id="16" name="my_struct" sub_dtype_id="2"/>
|
||||
<basicdtype fl="e34" id="7" name="string"/>
|
||||
<refdtype fl="d30" id="16" name="my_struct" sub_dtype_id="2"/>
|
||||
<basicdtype fl="d34" id="7" name="string"/>
|
||||
</typetable>
|
||||
</netlist>
|
||||
</verilator_xml>
|
||||
|
Loading…
Reference in New Issue
Block a user