<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.verific.com/faq/index.php?action=history&amp;feed=atom&amp;title=Getting_instances%27_parameters</id>
		<title>Getting instances' parameters - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://www.verific.com/faq/index.php?action=history&amp;feed=atom&amp;title=Getting_instances%27_parameters"/>
		<link rel="alternate" type="text/html" href="https://www.verific.com/faq/index.php?title=Getting_instances%27_parameters&amp;action=history"/>
		<updated>2026-05-02T12:43:06Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://www.verific.com/faq/index.php?title=Getting_instances%27_parameters&amp;diff=434&amp;oldid=prev</id>
		<title>Hoa: Created page with &quot;C++:  &lt;nowiki&gt; #include &quot;Map.h&quot; #include &quot;Array.h&quot;  #include &quot;veri_file.h&quot; #include &quot;VeriModule.h&quot; #include &quot;VeriExpression.h&quot; #include &quot;VeriId.h&quot; #include &quot;VeriScope.h&quot;  #ifd...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.verific.com/faq/index.php?title=Getting_instances%27_parameters&amp;diff=434&amp;oldid=prev"/>
				<updated>2019-08-21T21:11:24Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;C++:  &amp;lt;nowiki&amp;gt; #include &amp;quot;Map.h&amp;quot; #include &amp;quot;Array.h&amp;quot;  #include &amp;quot;veri_file.h&amp;quot; #include &amp;quot;VeriModule.h&amp;quot; #include &amp;quot;VeriExpression.h&amp;quot; #include &amp;quot;VeriId.h&amp;quot; #include &amp;quot;VeriScope.h&amp;quot;  #ifd...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;C++:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;quot;Map.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Array.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;veri_file.h&amp;quot;&lt;br /&gt;
#include &amp;quot;VeriModule.h&amp;quot;&lt;br /&gt;
#include &amp;quot;VeriExpression.h&amp;quot;&lt;br /&gt;
#include &amp;quot;VeriId.h&amp;quot;&lt;br /&gt;
#include &amp;quot;VeriScope.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#ifdef VERIFIC_NAMESPACE&lt;br /&gt;
using namespace Verific ;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    const char *file = (argc &amp;gt; 1) ? argv[1] : &amp;quot;test.v&amp;quot; ;&lt;br /&gt;
    if (!veri_file::Analyze(file, veri_file::SYSTEM_VERILOG)) return 1 ;&lt;br /&gt;
&lt;br /&gt;
    VeriModule * module = veri_file::GetModule(&amp;quot;top&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    // Get the scope of the module:&lt;br /&gt;
    VeriScope *scope = module-&amp;gt;GetScope() ;&lt;br /&gt;
    // Find all the declared ids in this scope:&lt;br /&gt;
    Map *ids = scope ? scope-&amp;gt;DeclArea() : 0 ;&lt;br /&gt;
    MapIter mi ;&lt;br /&gt;
    VeriIdDef *id ;&lt;br /&gt;
    FOREACH_MAP_ITEM(ids, mi, 0, &amp;amp;id) { // Traverse declared ids&lt;br /&gt;
        if (!id || !id-&amp;gt;IsInst()) continue ; // Consider only the instance ids&lt;br /&gt;
        VeriModuleInstantiation *mod_inst = id-&amp;gt;GetModuleInstance() ;&lt;br /&gt;
        VeriModule *mod = mod_inst ? mod_inst-&amp;gt;GetInstantiatedModule() : 0 ;&lt;br /&gt;
        if (mod) { // This is verilog module instantiation&lt;br /&gt;
            Message::PrintLine(&amp;quot;Processing instance &amp;quot;, id-&amp;gt;Name());&lt;br /&gt;
            Array *paramvalues = mod_inst-&amp;gt;GetParamValues();&lt;br /&gt;
            if (paramvalues) {&lt;br /&gt;
                VeriExpression *assoc ;&lt;br /&gt;
                unsigned i ;&lt;br /&gt;
                FOREACH_ARRAY_ITEM(paramvalues, i, assoc) {&lt;br /&gt;
                    Message::PrintLine(&amp;quot;   association string: &amp;quot;, assoc-&amp;gt;GetPrettyPrintedString());&lt;br /&gt;
                    if (assoc-&amp;gt;NamedFormal()) {&lt;br /&gt;
                        Message::PrintLine(&amp;quot;      formal: &amp;quot;, assoc-&amp;gt;NamedFormal());&lt;br /&gt;
                    }&lt;br /&gt;
                    if (assoc &amp;amp;&amp;amp; assoc-&amp;gt;IsOpen()) continue ;&lt;br /&gt;
                    if (assoc-&amp;gt;GetConnection()) {&lt;br /&gt;
                        Message::PrintLine(&amp;quot;      actual: &amp;quot;, assoc-&amp;gt;GetConnection()-&amp;gt;GetPrettyPrintedString());&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0 ;&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
test.v&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
module top ();&lt;br /&gt;
  wire [3:0] a0, b0;&lt;br /&gt;
  wire [1:0] a1, b1;&lt;br /&gt;
  wire [3:0] a2, b2;&lt;br /&gt;
  wire [7:0] a3, b3;&lt;br /&gt;
  FF inst0 (.A(a0), .B(b0));&lt;br /&gt;
  FF #(.p(2)) inst1 (.A(a1), .B(b1));&lt;br /&gt;
  FF #(.p(4)) inst2 (.A(a2), .B(b2));&lt;br /&gt;
  FF #(7) inst3 (.A(a3), .B(b3));&lt;br /&gt;
endmodule&lt;br /&gt;
&lt;br /&gt;
module FF (A, B);&lt;br /&gt;
  parameter p = 4;&lt;br /&gt;
  input [p-1:0] A;&lt;br /&gt;
  output [p-1:0] B;&lt;br /&gt;
  assign B = A;&lt;br /&gt;
endmodule&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run output:&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
-- Analyzing Verilog file 'test.v' (VERI-1482)&lt;br /&gt;
-- Processing instance inst0&lt;br /&gt;
-- Processing instance inst1&lt;br /&gt;
--    association string: .p(2)&lt;br /&gt;
--       formal: p&lt;br /&gt;
--       actual: 2&lt;br /&gt;
-- Processing instance inst2&lt;br /&gt;
--    association string: .p(4)&lt;br /&gt;
--       formal: p&lt;br /&gt;
--       actual: 4&lt;br /&gt;
-- Processing instance inst3&lt;br /&gt;
--    association string: 7&lt;br /&gt;
--       actual: 7&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hoa</name></author>	</entry>

	</feed>