From 7b384f7eb7abc85387f47a3465609add4b936b20 Mon Sep 17 00:00:00 2001 From: Stefan Wallentowitz Date: Mon, 30 Dec 2019 12:55:36 +0100 Subject: [PATCH] XML: Add variable attributes (#2079) --- src/V3EmitXml.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/V3EmitXml.cpp b/src/V3EmitXml.cpp index ba62b10ab..494a9f319 100644 --- a/src/V3EmitXml.cpp +++ b/src/V3EmitXml.cpp @@ -114,6 +114,7 @@ class EmitXmlFileVisitor : public AstNVisitor { puts(" origName="); putsQuoted(nodep->origName()); if (nodep->level()==1 || nodep->level()==2) // ==2 because we don't add wrapper when in XML mode puts(" topModule=\"1\""); // IEEE vpiTopModule + if (nodep->modPublic()) puts(" public=\"true\""); outputChildrenEnd(nodep, ""); } virtual void visit(AstVar* nodep) { @@ -129,6 +130,16 @@ class EmitXmlFileVisitor : public AstNVisitor { puts(" vartype="); putsQuoted(!vt.empty() ? vt : kw); } puts(" origName="); putsQuoted(nodep->origName()); + // Attributes + if (nodep->attrClocker()) puts(" clocker=\"true\""); + if (nodep->attrClockEn()) puts(" clock_enable=\"true\""); + if (nodep->attrIsolateAssign()) puts(" isolate_assignments=\"true\""); + if (nodep->isSigPublic()) puts(" public=\"true\""); + if (nodep->isSigUserRdPublic()) puts(" public_flat_rd=\"true\""); + if (nodep->isSigUserRWPublic()) puts(" public_flat_rw=\"true\""); + if (nodep->attrScBv()) puts(" sc_bv=\"true\""); + if (nodep->attrScClocked()) puts(" sc_clock=\"true\""); + if (nodep->attrSFormat()) puts(" sformat=\"true\""); outputChildrenEnd(nodep, ""); } virtual void visit(AstPin* nodep) {