<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.verific.com/faq/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hoadinh</id>
		<title>Verific Design Automation FAQ - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.verific.com/faq/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hoadinh"/>
		<link rel="alternate" type="text/html" href="https://www.verific.com/faq/index.php?title=Special:Contributions/Hoadinh"/>
		<updated>2026-05-02T12:38:40Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://www.verific.com/faq/index.php?title=General&amp;diff=81</id>
		<title>General</title>
		<link rel="alternate" type="text/html" href="https://www.verific.com/faq/index.php?title=General&amp;diff=81"/>
				<updated>2016-07-07T19:57:03Z</updated>
		
		<summary type="html">&lt;p&gt;Hoadinh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Q: How do I know what language a Netlist in the netlist database comes from?'''&lt;br /&gt;
&lt;br /&gt;
Use attribute &amp;quot; language&amp;quot; (note the leading space):&lt;br /&gt;
&lt;br /&gt;
    Netlist *nl;&lt;br /&gt;
    nl-&amp;gt;GetAttValue(&amp;quot; language&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
returns one of &amp;quot;vhdl&amp;quot;, &amp;quot;verilog&amp;quot;, &amp;quot;edif&amp;quot;, &amp;quot;synlib&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q: What are the data structures in Verific?'''&lt;br /&gt;
&lt;br /&gt;
There are 2 data structures in Verific: parsetree and netlist database.&lt;br /&gt;
&lt;br /&gt;
1. The parsetree is just another representation of the design.  It contains the exact information as in the RTL files, only in a machine-readable format.  Because each language (Verilog or VHDL) has its own constructs, each language has its own parsetree.&lt;br /&gt;
&lt;br /&gt;
The parsetree is the result of veri_file::Analyze()/vhdl_file::Ananlyze().&lt;br /&gt;
&lt;br /&gt;
The design parsetree can be &amp;quot;statically elaborated.&amp;quot;  These are some of the&lt;br /&gt;
operations during static elaboration process:&lt;br /&gt;
&lt;br /&gt;
- Unrolling &amp;quot;generate&amp;quot; loops.&lt;br /&gt;
- Evaluating constant expressions.&lt;br /&gt;
- Uniquifying instances of parameterized modules/entities.&lt;br /&gt;
&lt;br /&gt;
The result of static elaboration is a modified parsetree.&lt;br /&gt;
&lt;br /&gt;
The parsetree supports all constructs of the language.&lt;br /&gt;
&lt;br /&gt;
2. The synthesizable subset of the parsetree can go through &amp;quot;RTL elaboration&amp;quot; (or &amp;quot;synthesis&amp;quot;).  The result is the &amp;quot;netlist database,&amp;quot; consisting of &amp;quot;hardware&amp;quot; components: libraries, cells, netlists, nets, ports, instances, operators (adders, muxes, ...), and primitives (ands, ors, xors, ...).  The netlist database is language-independent.  The contents of the netlist database can be written out in various structural languages: Verilog, VHDL, EDIF, BLIF.  In general, the output netlist from the netlist database does not look anything like the RTL input files.&lt;br /&gt;
&lt;br /&gt;
The netlist database is the result of veri_file::Elaborate()/vhdl_file::Elaborate() API (after veri_file::Analyze()/vhdl_file::Analyze()).&lt;br /&gt;
&lt;br /&gt;
RTL elaboration supports the synthesizable subset of the language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q: Does Verific support cross module references (XMR)?'''&lt;br /&gt;
&lt;br /&gt;
Verific fully supports XMR with &amp;quot;hierarchy tree&amp;quot; feature. Please refer to http://www.verific.com/docs/index.php?title=Hierarchy_Tree&lt;br /&gt;
&lt;br /&gt;
Without this product feature, support for XMR is full in analysis and static elaboration, and is very limited in RTL elaboration.&lt;br /&gt;
&lt;br /&gt;
The main reason for limited support in RTL elaboration for XMR is that for Verilog, the order of elaboration of modules is nondeterministic. If module &amp;quot;foo&amp;quot; has not been elaborated, the elaborator will not be able to resolve &amp;quot;foo.bar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the order of elaboration guarantees resolution of signals (e.g. module &amp;quot;foo&amp;quot; is elaborated before the module using &amp;quot;foo.bar&amp;quot; is), these runtime flags need to be enabled (set to 1) before design analysis:&lt;br /&gt;
&lt;br /&gt;
    veri_preserve_user_nets&lt;br /&gt;
    db_preserve_user_nets&lt;br /&gt;
    db_allow_external_nets&lt;/div&gt;</summary>
		<author><name>Hoadinh</name></author>	</entry>

	<entry>
		<id>https://www.verific.com/faq/index.php?title=Main_Page&amp;diff=71</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.verific.com/faq/index.php?title=Main_Page&amp;diff=71"/>
				<updated>2016-07-06T22:06:26Z</updated>
		
		<summary type="html">&lt;p&gt;Hoadinh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: This page is under construction.&lt;br /&gt;
&lt;br /&gt;
* [[General]]&lt;br /&gt;
* [[Input]]&lt;br /&gt;
* [[Output]]&lt;br /&gt;
* [[Scripting Languages]]&lt;/div&gt;</summary>
		<author><name>Hoadinh</name></author>	</entry>

	<entry>
		<id>https://www.verific.com/faq/index.php?title=Main_Page&amp;diff=70</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.verific.com/faq/index.php?title=Main_Page&amp;diff=70"/>
				<updated>2016-07-06T20:18:58Z</updated>
		
		<summary type="html">&lt;p&gt;Hoadinh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''This page replaces the Forum page.'''&lt;br /&gt;
&lt;br /&gt;
'''It will be populated by July 15, 2016 with helpful hints on the use of Verific's parsers, elaborators, and datastructures.'''&lt;/div&gt;</summary>
		<author><name>Hoadinh</name></author>	</entry>

	</feed>