Skip to content

Commit

Permalink
Deploying to gh-pages from @ 05400a0 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
jakubcabal committed Oct 14, 2024
1 parent 55c9bd8 commit b99fecd
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 1 deletion.
35 changes: 35 additions & 0 deletions devel/_sources/ndk_build/readme.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,41 @@ Variables ``ENTITY``, ``ENTITY_BASE`` and ``ARCHGRP`` are predefined (provided)
Prefer to use :tcl:`lappend MOD "myfile.vhd"` instead of :tcl:`set MOD "$MOD myfile.vhd"`,
because the ``lappend`` better express the operation and is faster.

PLATFORM_TAGS
~~~~~~~~~~~~~

In the situation, when a platform (build tool: Quartus, Vivado, simulator: Questa Sim, etc.) supports various architectures / implementation schemes,
the PLATFORM_TAGS list variable can be used to distinguish, which source file should be included into project.

List of available platforms:

- **xilinx** - platform supports complete set of Xilinx component and products
- **altera** - platform supports complete set of Intel/Altera component and products

.. - **empty** - platform, on which the empty architectures are enabled; this is used e.g. when user wants to check the code syntax even if the codebase for toplevel is not completed yet.
.. If the component doesn't have common/universal platform implementation and the "empty" tag is not in PLATFORM_TAGS, the process should exit with error.
Those tags are currently not available, but show the way of potential extension and usage:

- **vivado:ge_2024.0** - Vivado version is equal or greater than 2024.0 (this doesn't means automatic comparison)
- **xilinx:usp** - Restrict for UltraScale+ platform.
- **xilinx:sim:gty** - Inculde simulation models from highspeed transceivers.

Priority for PLATFORM_TAGS
^^^^^^^^^^^^^^^^^^^^^^^^^^

The PLATFORM_TAGS list can be potentially used also for specifying preference/priority (latter position in list means higher priority):
``set PLATFORM_TAGS "xilinx:bram:behav xilinx:bram:macro"``
The priority can be easily overriden simply by appending item to the list.
(Also the ``lsearch`` can be easily used as returns -1 for non-existing item, which means lowest priority.)
In general, the highest priority tag from set of supported tags can be obtained by the ``proc nb_preference_filter {PLATFORM_TAGS SUPPORTED_TAGS}``

.. code-block:: tcl
set SUPPORTED_PLATFORM_TAGS "xilinx altera"
set TARGET_TAG [nb_preference_filter $PLATFORM_TAGS $SUPPORTED_PLATFORM_TAGS]
.. _extra file properties:

List of properties used in MOD variables
Expand Down
34 changes: 34 additions & 0 deletions devel/ndk_build/readme.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@
<li class="toctree-l1 current"><a class="current reference internal" href="#">Build System</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#hierarchy-description-in-modules-tcl">Hierarchy description in Modules.tcl</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#variables-in-modules-tcl-obtained-by-the-build-system">Variables in Modules.tcl obtained by the build system</a></li>
<li class="toctree-l3"><a class="reference internal" href="#platform-tags">PLATFORM_TAGS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#priority-for-platform-tags">Priority for PLATFORM_TAGS</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#list-of-properties-used-in-mod-variables">List of properties used in MOD variables</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#example-of-using-properties">Example of using properties</a></li>
</ul>
Expand Down Expand Up @@ -218,6 +222,36 @@ <h3>Variables in Modules.tcl obtained by the build system<a class="headerlink" h
because the <code class="docutils literal notranslate"><span class="pre">lappend</span></code> better express the operation and is faster.</p>
</div>
</section>
<section id="platform-tags">
<h3>PLATFORM_TAGS<a class="headerlink" href="#platform-tags" title="Link to this heading"></a></h3>
<p>In the situation, when a platform (build tool: Quartus, Vivado, simulator: Questa Sim, etc.) supports various architectures / implementation schemes,
the PLATFORM_TAGS list variable can be used to distinguish, which source file should be included into project.</p>
<p>List of available platforms:</p>
<ul class="simple">
<li><p><strong>xilinx</strong> - platform supports complete set of Xilinx component and products</p></li>
<li><p><strong>altera</strong> - platform supports complete set of Intel/Altera component and products</p></li>
</ul>
<p>Those tags are currently not available, but show the way of potential extension and usage:</p>
<ul class="simple">
<li><p><strong>vivado:ge_2024.0</strong> - Vivado version is equal or greater than 2024.0 (this doesn’t means automatic comparison)</p></li>
<li><p><strong>xilinx:usp</strong> - Restrict for UltraScale+ platform.</p></li>
<li><p><strong>xilinx:sim:gty</strong> - Inculde simulation models from highspeed transceivers.</p></li>
</ul>
<section id="priority-for-platform-tags">
<h4>Priority for PLATFORM_TAGS<a class="headerlink" href="#priority-for-platform-tags" title="Link to this heading"></a></h4>
<p>The PLATFORM_TAGS list can be potentially used also for specifying preference/priority (latter position in list means higher priority):
<code class="docutils literal notranslate"><span class="pre">set</span> <span class="pre">PLATFORM_TAGS</span> <span class="pre">&quot;xilinx:bram:behav</span> <span class="pre">xilinx:bram:macro&quot;</span></code>
The priority can be easily overriden simply by appending item to the list.
(Also the <code class="docutils literal notranslate"><span class="pre">lsearch</span></code> can be easily used as returns -1 for non-existing item, which means lowest priority.)
In general, the highest priority tag from set of supported tags can be obtained by the <code class="docutils literal notranslate"><span class="pre">proc</span> <span class="pre">nb_preference_filter</span> <span class="pre">{PLATFORM_TAGS</span> <span class="pre">SUPPORTED_TAGS}</span></code></p>
<blockquote>
<div><div class="highlight-tcl notranslate"><div class="highlight"><pre><span></span><span class="k">set</span><span class="w"> </span>SUPPORTED_PLATFORM_TAGS<span class="w"> </span><span class="s2">&quot;xilinx altera&quot;</span>
<span class="k">set</span><span class="w"> </span>TARGET_TAG<span class="w"> </span><span class="k">[</span><span class="nv">nb_preference_filter</span><span class="w"> </span><span class="nv">$PLATFORM_TAGS</span><span class="w"> </span><span class="nv">$SUPPORTED_PLATFORM_TAGS</span><span class="k">]</span>
</pre></div>
</div>
</div></blockquote>
</section>
</section>
<section id="list-of-properties-used-in-mod-variables">
<span id="extra-file-properties"></span><h3>List of properties used in MOD variables<a class="headerlink" href="#list-of-properties-used-in-mod-variables" title="Link to this heading"></a></h3>
<p>For translation, it is often required to specify more of the details about items (files)
Expand Down
Binary file modified devel/objects.inv
Binary file not shown.
2 changes: 1 addition & 1 deletion devel/searchindex.js

Large diffs are not rendered by default.

0 comments on commit b99fecd

Please sign in to comment.