<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Syntax on Sigasi</title><link>https://www.sigasi.com/tags/syntax/</link><description>Recent content in Syntax on Sigasi</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 05 Jun 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.sigasi.com/tags/syntax/index.xml" rel="self" type="application/rss+xml"/><item><title>Signal Assignments in VHDL: with/select, when/else and case</title><link>https://www.sigasi.com/tech/signal-assignments-vhdl-withselect-whenelse-and-case/</link><pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate><guid>https://www.sigasi.com/tech/signal-assignments-vhdl-withselect-whenelse-and-case/</guid><description>&lt;p&gt;VHDL provides several ways to assign values to a signal based on the value of another.
Most of the time, there’s more than one valid approach, and each has its advantages
depending on clarity, maintainability, and tool support. This guide covers three primary
idioms: &lt;strong&gt;selected signal assignment&lt;/strong&gt; (with/select), &lt;strong&gt;conditional signal assignment&lt;/strong&gt;
(when/else), and &lt;strong&gt;case statements inside processes&lt;/strong&gt;.&lt;br&gt;
VHDL-2008 introduced a 4th idiom: &lt;strong&gt;pattern matching in case statements&lt;/strong&gt;.
We&amp;rsquo;ll conclude with practical considerations for using the right construct.&lt;/p&gt;</description></item><item><title>ANSI and Non-ANSI Port Declarations in Verilog</title><link>https://www.sigasi.com/tech/ansi-vs-non-ansi/</link><pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate><guid>https://www.sigasi.com/tech/ansi-vs-non-ansi/</guid><description>&lt;p&gt;In Verilog, module ports can be declared using one of two styles: ANSI or non-ANSI. This article covers the distinct syntaxes of these two styles, as well as further differences between them.&lt;/p&gt;</description></item><item><title>Records in VHDL: Initialization and Constraining unconstrained fields</title><link>https://www.sigasi.com/tech/records-initialize/</link><pubDate>Tue, 31 Mar 2020 00:00:00 +0000</pubDate><guid>https://www.sigasi.com/tech/records-initialize/</guid><description>&lt;p&gt;In VHDL, &lt;strong&gt;records&lt;/strong&gt; help the designer &lt;strong&gt;organize data that belongs
together&lt;/strong&gt;. By using records, VHDL code will be &lt;strong&gt;easier to understand and
maintain&lt;/strong&gt;. This article highlights a couple of slightly more advanced
aspects of record types in VHDL, namely how to use &lt;strong&gt;record constants&lt;/strong&gt;,
and how to use &lt;strong&gt;unconstrained data types as fields&lt;/strong&gt; in records. We&amp;rsquo;ll see that,
apart from some particular syntax, records are fairly easy to use
after all.&lt;/p&gt;</description></item><item><title>Finite State Machine (FSM) encoding in VHDL: binary, one-hot, and others</title><link>https://www.sigasi.com/tech/vhdl-onehot-fsm/</link><pubDate>Fri, 06 Mar 2020 00:00:00 +0000</pubDate><guid>https://www.sigasi.com/tech/vhdl-onehot-fsm/</guid><description>&lt;figure&gt;&lt;img src="https://www.sigasi.com/img/manual/state_diag.png"alt="SFM state diagram"width="280px"class="uk-align-right"/&gt; &lt;figcaption&gt;&lt;p&gt;State diagram in Sigasi Visual HDL Professional&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;In VHDL, &lt;strong&gt;Finite State Machines (FSMs)&lt;/strong&gt; can be written in various ways. This article addresses the &lt;strong&gt;encoding&lt;/strong&gt; of, and the &lt;strong&gt;data types&lt;/strong&gt; used, for the &lt;strong&gt;state register&lt;/strong&gt;. The encoding of the states of an FSM affects its performance in terms of speed, resource usage (registers, logic) and potentially power consumption. As we will see, &lt;strong&gt;enumerated datatypes&lt;/strong&gt; are preferred for &lt;strong&gt;clarity and easy of maintenance&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>"Use" and "Library" in VHDL</title><link>https://www.sigasi.com/tech/use-and-library-vhdl/</link><pubDate>Mon, 09 Sep 2013 00:00:00 +0000</pubDate><guid>https://www.sigasi.com/tech/use-and-library-vhdl/</guid><description>&lt;p&gt;Beginning VHDL engineers, and advanced engineers too, can get confused about the exact scope of a &lt;em&gt;use clause&lt;/em&gt; and a &lt;em&gt;library clause&lt;/em&gt; in VHDL. They usually show up at the top of a file, which would make you think that they are visible in the entire file. Unfortunately, the truth is a bit more complex.&lt;/p&gt;</description></item><item><title>VHDL Pragmas</title><link>https://www.sigasi.com/tech/vhdl-pragmas/</link><pubDate>Tue, 05 Apr 2011 00:00:00 +0000</pubDate><guid>https://www.sigasi.com/tech/vhdl-pragmas/</guid><description>&lt;p&gt;In VHDL, some tools support so-called &lt;em&gt;compiler directives&lt;/em&gt;. A compiler directive, or pragma is additional information that you give to the VHDL compiler (the simulator or synthesis tool). While your directive has no influence on the VHDL code itself, it changes the behavior. The IEEE, in their VHDL RTL standard, defines a pragma as &lt;em&gt;A generic term used to deﬁne a construct with no predeﬁned language semantics that inﬂuences how a synthesis tool will synthesize VHDL code into an equivalent hardware representation.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>