<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.vhdl-online.de/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.vhdl-online.de/feed.php">
        <title>VHDL-Online - courses:system_design:synthesis:finite_state_machines_and_vhdl</title>
        <description></description>
        <link>https://www.vhdl-online.de/</link>
        <image rdf:resource="https://www.vhdl-online.de/_media/logo.png" />
       <dc:date>2026-04-29T07:52:24+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/fsm_and_simulation?rev=1485270758&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/fsm_and_synthesis?rev=1485271539&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/mealy?rev=1485248755&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/medvedev?rev=1449837811&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/moore?rev=1485186080&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/pagefooter?rev=1485262174&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/registered_output?rev=1485253663&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/start?rev=1485262103&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/state_coding?rev=1485261215&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/state_processes?rev=1485260651&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.vhdl-online.de/_media/logo.png">
        <title>VHDL-Online</title>
        <link>https://www.vhdl-online.de/</link>
        <url>https://www.vhdl-online.de/_media/logo.png</url>
    </image>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/fsm_and_simulation?rev=1485270758&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-24T15:12:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fsm_and_simulation</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/fsm_and_simulation?rev=1485270758&amp;do=diff</link>
        <description>FSM and Simulation

Fundamentals

	*  Simulation cycle consists of two phases
		*  Signal update phase
		*  Process execution phase


[Simulytion Cycle]

	*  Combinational processes:
		*  Signal update at any time
		*  Process execution with new values and signal updates until no process execution necessary anymore</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/fsm_and_synthesis?rev=1485271539&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-24T15:25:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fsm_and_synthesis</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/fsm_and_synthesis?rev=1485271539&amp;do=diff</link>
        <description>FSM and Synthesis

Fundamentals

	*  Many constraints imaginable for synthesis
	*  Mostly used constraints:
		*  Speed → clock period
		*  Area → maximum area set to 0
		*  Power → maximum power allowed
		*  Operating environments
		*  Port attributes</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/mealy?rev=1485248755&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-24T09:05:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mealy</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/mealy?rev=1485248755&amp;do=diff</link>
        <description>FSM: Mealy

Fundamentals

[Mealy Block Diagram]

	*  The output vector is a function of the state vector and the input vector: Y = f(X,S)

Three Processes


architecture RTL of MEALY is
  ...
begin
  REG: -- Clocked Process
  CMB: -- Combinational Process with Next State Logic
  
  OUTPUT: process (STATE, X)
  begin
    -- Output Logic
  end process OUTPUT;
end RTL;</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/medvedev?rev=1449837811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-12-11T12:43:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>medvedev</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/medvedev?rev=1449837811&amp;do=diff</link>
        <description>FSM: Medvedev

Fundamentals

[Medvedev State Circuit]

	*  The output vector resembles the state vector: Y = S

Two Processes


architecture RTL of MEDVEDEV is
     ...
begin
  REG: process (CLK, RESET)
  begin
    -- State Registers Inference
  end process REG;

  CMB: process (X, STATE)
  begin
    -- Next State Logic
  end process CMB;

   Y &lt;= S;    -- no output logic
end RTL</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/moore?rev=1485186080&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-23T15:41:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>moore</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/moore?rev=1485186080&amp;do=diff</link>
        <description>FSM: Moore

Fundamentals

[Moore State Circuit]

	*  The output vector is a function of the state vector: Y = f(S)

Three Processes


architecture RTL of MOORE is
   ...
begin
  REG: -- Clocked Process

  CMB: -- Combinational Process with Next State Logic

 OUTPUT: process (STATE)
    begin
        -- Output Logic
    end process OUTPUT;
end RTL ;</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/pagefooter?rev=1485262174&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-24T12:49:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pagefooter</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/pagefooter?rev=1485262174&amp;do=diff</link>
        <description>----------

Chapters of System Design &gt; Synthesis &gt; Finite State Machines and VHDL

	*  Introduction
	*  State Processes
	*  State Coding
	*  Medvedev
	*  Moore
	*  Mealy
	*  Registered Output
	*  FSM and Simulation
	*  FSM and Synthesis

----------

Chapters of System Design &gt; Synthesis

	*  RTL-Style
	*  What is Synthesis
	*  Finite State Machines and VHDL
	*  Combinational Logic
	*  Sequential Logic
	*  Advanced Synthesis
	*  Controlling Synthesis
	*  Master-Slave Flip-Flop
	*  Quiz</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/registered_output?rev=1485253663&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-24T10:27:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>registered_output</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/registered_output?rev=1485253663&amp;do=diff</link>
        <description>Registered Output

Modelling Aspects

	*  Medvedev is too inflexible
	*  Moore is preferred because of safe operation
	*  Mealy more flexible, but danger of
		*  Spikes
		*  Unnecessary long paths (maximum clock period)
		*  Combinational feed back loops</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/start?rev=1485262103&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-24T12:48:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/start?rev=1485262103&amp;do=diff</link>
        <description>Finite State Machines and VHDL

Introduction

	*  State Processes
	*  State Coding
	*  FSM (Finite State Machine) Types
		*  Medvedev
			*  The output vector (Y) resembles the state vector (S): Y = S

		*  Moore
			*  The output vector (Y) is a function of the state vector (S): Y = f(S)

		*</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/state_coding?rev=1485261215&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-24T12:33:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>state_coding</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/state_coding?rev=1485261215&amp;do=diff</link>
        <description>State Coding

State Encoding

	*  State encoding responsible for safety of FSM


type STATE_TYPE is (START, MIDDLE, STOP);
signal STATE : STATE_TYPE ;


	*  Default encoding: binary (may vary with synthesis tools and number of states)


START   -&gt; &quot;00&quot;
MIDDLE  -&gt; &quot;01&quot;
STOP    -&gt; &quot;10&quot;</description>
    </item>
    <item rdf:about="https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/state_processes?rev=1485260651&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-24T12:24:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>state_processes</title>
        <link>https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/state_processes?rev=1485260651&amp;do=diff</link>
        <description>State Processes

One &quot;State&quot; Process

[State Circuit]


FSM_FF: process (CLK, RESET)
begin
  if RESET = ’1’ then
    STATE &lt;= START;
  elsif CLK’event and CLK = ’1’ then
    case STATE is
     when START =&gt; if X = GO_MID then
                      STATE &lt;= MIDDLE;
                   end if;
     when MIDDLE =&gt; if X = GO_STOP then
                      STATE &lt;= STOP;
                    end if;
     when STOP =&gt; if X = GO_START then
                      STATE &lt;= START;
                    end if…</description>
    </item>
</rdf:RDF>
