Logique Sequentielle - S5

Annee: 2022-2023 (Semestre 5)
Credits: 3 ECTS
Type: Electronique Numerique


PART A: PRESENTATION GENERALE

Objectifs du cours

Le cours de Logique Sequentielle approfondit la conception de circuits numeriques dont l'etat depend de l'historique des entrees. Il couvre les machines a etats finis (FSM), la conception synchrone et asynchrone, ainsi que les methodes systematiques de conception de systemes sequentiels complexes. Ce cours est fondamental pour concevoir des controleurs numeriques, des protocoles de communication et des systemes embarques.

Competences visees

  • Maitriser les bascules et elements de memorisation
  • Concevoir des machines a etats finis (Moore et Mealy)
  • Analyser et synthetiser des circuits sequentiels
  • Gerer les contraintes temporelles et la synchronisation
  • Implementer des controleurs complexes
  • Optimiser les codages d'etats

Organisation

  • Volume horaire: 32h (CM: 18h, TD: 14h)
  • Evaluation: Examen final (70%) + TDs (30%)
  • Semestre: 5 (2022-2023)
  • Prerequis: Logique combinatoire, algebre de Boole

PART B: EXPERIENCE, CONTEXTE ET FONCTION

Contenu pedagogique

1. Elements de Memorisation

Bascules et Latches:

Les circuits sequentiels utilisent des elements memoire pour stocker l'etat.

Latch SR (Set-Reset):

S R | Q  Q'
----|-------
0 0 | Q  Q'  (memorisation)
0 1 | 0  1   (reset)
1 0 | 1  0   (set)
1 1 | X  X   (interdit)

Bascule D (Data):

La plus utilisee en conception synchrone.

  • Sur front montant d'horloge: Q = D
  • Memorise la valeur de D

Equation caracteristique: Q(t+1) = D(t)

Bascule JK:

J K | Q(t+1)
----|--------
0 0 | Q      (memorisation)
0 1 | 0      (reset)
1 0 | 1      (set)
1 1 | Q'     (toggle)

Bascule T (Toggle):

Quand T=1, la sortie bascule: Q(t+1) = Q'(t)

Contraintes temporelles:

  • Setup time (tsu): temps avant front d'horloge ou D doit etre stable
  • Hold time (th): temps apres front ou D doit rester stable
  • Propagation delay (tpd): delai entre front CLK et changement de Q

2. Machines a Etats Finis (FSM)

FSM de Moore:

Les sorties dependent uniquement de l'etat courant.

Structure:

  • Etats
  • Transitions (dependent des entrees)
  • Sorties (fonction de l'etat uniquement)

Exemple: Detecteur de sequence "101"

Diagramme d'etats Moore:

S0 (init, out=0) --[1]--> S1 (out=0)
S1 --[0]--> S2 (out=0)
S2 --[1]--> S3 (out=1)  // Sequence detectee!
S3 --[x]--> ...

FSM de Mealy:

Les sorties dependent de l'etat ET des entrees.

Avantage: souvent moins d'etats que Moore.

Comparaison:

  • Moore: sorties stables (changent seulement sur front d'horloge)
  • Mealy: reaction plus rapide (sorties changent avec entrees)

3. Methodologie de Conception

Etapes de conception d'une FSM:

  1. Specification: definir le comportement souhaite
  2. Diagramme d'etats: representation graphique
  3. Table d'etats: forme tabulaire
  4. Minimisation: reduire le nombre d'etats
  5. Codage d'etats: assigner codes binaires
  6. Equations logiques: deriver next-state et output logic
  7. Implementation: bascules + portes logiques

Exemple: Controleur de feu tricolore

Etats:

  • VERT (30s)
  • ORANGE (5s)
  • ROUGE (35s)

Entrees: timer, capteur vehicule
Sorties: LED_V, LED_O, LED_R

Table d'etats simplifiee:

Etat actuel | Timer | Etat suivant | Sorties
------------|-------|--------------|----------
VERT        | 0     | VERT         | V=1,O=0,R=0
VERT        | 1     | ORANGE       | V=1,O=0,R=0
ORANGE      | 0     | ORANGE       | V=0,O=1,R=0
ORANGE      | 1     | ROUGE        | V=0,O=1,R=0
ROUGE       | 0     | ROUGE        | V=0,O=0,R=1
ROUGE       | 1     | VERT         | V=0,O=0,R=1

4. Codage d'Etats

Binaire naturel:

  • n bits pour 2^n etats
  • Exemple 4 etats: 00, 01, 10, 11
  • Economie de bascules

One-Hot:

  • 1 bascule par etat
  • Exemple 4 etats: 0001, 0010, 0100, 1000
  • Logique de decodage simplifiee
  • Utilise en FPGA

Gray:

  • 1 seul bit change entre etats adjacents
  • Reduit les aleas (glitches)
  • Utile en asynchrone

Exemple 4 etats:

Etat | Binaire | One-Hot | Gray
-----|---------|---------|------
S0   | 00      | 0001    | 00
S1   | 01      | 0010    | 01
S2   | 10      | 0100    | 11
S3   | 11      | 1000    | 10

5. Conception Synchrone

Regles de conception synchrone:

  • Toutes les bascules partagent la meme horloge
  • Pas de logique combinatoire dans le chemin d'horloge
  • Respecter les contraintes setup/hold

Frequence maximale:

fmax = 1 / (tpd_logic + tsu + tskew)

ou:

  • tpd_logic: delai combinatoire entre bascules
  • tsu: setup time
  • tskew: decalage d'horloge (clock skew)

Strategies de reset:

Reset asynchrone:

if (reset = '1') then
    state <= S0;
elsif rising_edge(clk) then
    state <= next_state;
end if;

Avantage: reinitialisation immediate
Inconvenient: peut causer metastabilite

Reset synchrone:

if rising_edge(clk) then
    if (reset = '1') then
        state <= S0;
    else
        state <= next_state;
    end if;
end if;

Avantage: synchronise avec horloge
Inconvenient: delai d'un cycle

6. Compteurs Avances

Compteur modulo-N:

Compte de 0 a N-1 puis revient a 0.

Compteur decimal BCD:
Compte de 0 a 9 (0000 a 1001).

Compteur up/down:

Entree DIR: 1=up, 0=down

Exemple 3 bits up/down:

UP:   000 -> 001 -> 010 -> 011 -> 100 -> 101 -> 110 -> 111 -> 000
DOWN: 111 -> 110 -> 101 -> 100 -> 011 -> 010 -> 001 -> 000 -> 111

Compteur avec prechargement:

Entree LOAD: charge valeur initiale
Utilite: division de frequence precise

7. Aspects Temporels

Metastabilite:

Phenomene lorsque setup/hold time violes.
La bascule peut rester dans etat indetermine.

Solution: Synchroniseur a 2 etages

Entree asynchrone -> [FF1] -> [FF2] -> Sortie synchrone
                       CLK      CLK

Reduit probabilite de metastabilite a ~10^-12.

Analyse de chemin critique:

Identifier le chemin logique le plus long entre deux bascules.

Exemple:

FF1 --[tpd=2ns]--> NAND --[tpd=3ns]--> XOR --[tpd=4ns]--> FF2
                                                          [tsu=1ns]

Delai total: 2 + 3 + 4 + 1 = 10ns
Frequence max: 1/10ns = 100MHz

Supports de cours:
Cours Logique Sequentielle


PART C: ASPECTS TECHNIQUES

Exercices de TD

TD1: Conception de FSM

Exercice: Concevoir un detecteur de sequence "1011" (non chevauchant).

Solution:

Etats necessaires:

  • S0: etat initial
  • S1: apres "1"
  • S2: apres "10"
  • S3: apres "101"
  • S4: sequence complete detectee

Table de transition:

Etat | Entree 0 | Entree 1 | Sortie
-----|----------|----------|--------
S0   | S0       | S1       | 0
S1   | S2       | S1       | 0
S2   | S0       | S3       | 0
S3   | S0       | S4       | 0
S4   | S0       | S1       | 1

TD2: Codage et equations

Pour 4 etats codes en binaire:

  • Q1 Q0 = 00 (S0), 01 (S1), 10 (S2), 11 (S3)

Deriver equations next-state avec Karnaugh.

TD3: Analyse temporelle

Calculer frequence maximale d'un circuit avec:

  • tpd_FF = 5ns
  • tpd_comb = 15ns
  • tsu = 3ns
  • tskew = 1ns

Solution:
Periode minimale = 5 + 15 + 3 + 1 = 24ns
fmax = 1/24ns = 41.67MHz

Applications Pratiques

Controleur UART (emetteur):

Etats:

  • IDLE: attente donnees
  • START: envoi bit de start
  • DATA0-DATA7: envoi 8 bits de donnees
  • STOP: bit de stop
  • Retour IDLE

Decodeur de protocole I2C:

FSM detectant:

  • Condition START (SDA chute avec SCL=1)
  • Adresse (7 bits)
  • R/W bit
  • ACK/NACK
  • Donnees
  • Condition STOP (SDA monte avec SCL=1)

Controleur de distributeur automatique:

Entrees: pieces inserees (5c, 10c, 25c)
Sortie: produit delivre si montant atteint

Etats representent le credit accumule.

Outils de Conception

Simulateurs:

  • Logisim: simulation graphique
  • ModelSim: simulation VHDL/Verilog
  • Quartus: suite complete Altera/Intel

Langages de description:

VHDL exemple (FSM Moore):

process(clk, reset)
begin
    if reset = '1' then
        state <= S0;
    elsif rising_edge(clk) then
        case state is
            when S0 =>
                if input = '1' then
                    state <= S1;
                end if;
            when S1 =>
                -- transitions...
        end case;
    end if;
end process;

-- Logique de sortie Moore
output <= '1' when state = S3 else '0';

Verilog exemple (FSM Mealy):

always @(posedge clk or posedge reset) begin
    if (reset)
        state <= S0;
    else
        state <= next_state;
end

// Logique next_state et output (combinatoire)
always @(*) begin
    case (state)
        S0: begin
            if (input)
                next_state = S1;
            output = 1'b0;
        end
        // ...
    endcase
end

PART D: ANALYSE ET REFLEXION

Competences acquises

Techniques:

  • Conception systematique de FSM
  • Optimisation de codage d'etats
  • Analyse temporelle de circuits sequentiels
  • Gestion de la synchronisation
  • Implementation en VHDL/Verilog

Methodologiques:

  • Demarche de conception rigoureuse
  • Tests et verification de FSM
  • Documentation (diagrammes d'etats)
  • Debogage de circuits sequentiels

Applications professionnelles

La logique sequentielle est utilisee dans:

  • Protocoles de communication: UART, SPI, I2C, USB
  • Controleurs: machines, robots, process industriels
  • Interfaces: LCD, clavier, souris, touchscreen
  • Processeurs: unite de controle, pipelines
  • Stockage: controleurs de memoire, cache
  • Reseaux: routeurs, switches, protocoles

Connexions avec autres cours

  • Fondements Electronique Numerique (S5): base (bascules, compteurs)
  • Architectures Numeriques VHDL (S7): implementation FPGA
  • Microcontroleurs (S6): FSM dans firmware
  • Temps Reel (S8): ordonnancement et synchronisation
  • Reseaux (S6): protocoles en couches FSM

Evolution et Perspectives

Outils modernes:

  • Synthese automatique depuis FSM graphiques
  • Verification formelle (model checking)
  • Generation automatique de tests
  • Optimisation multi-objectifs (surface/vitesse/consommation)

Tendances:

  • FSM hierarchiques (StateCharts)
  • FSM concurrentes
  • Langages de haut niveau (SystemVerilog, SystemC)
  • Synthese de haut niveau (HLS)

Applications emergentes:

  • IoT: controleurs ultra-basse consommation
  • IA embarquee: FSM pour gestion d'energie
  • Automobile: ADAS, controle moteur
  • 5G: traitement protocoles temps reel

Recommandations

  1. Toujours partir du diagramme d'etats: visualisation essentielle
  2. Verifier tous les cas: etats non utilises, transitions manquantes
  3. Prevoir etat par defaut: robustesse face aux erreurs
  4. Documenter clairement: noms d'etats explicites
  5. Simuler avant implementation: eviter erreurs couteuses
  6. Respecter contraintes temporelles: setup/hold critiques

Pieges a eviter:

  • Boucles combinatoires (feedback sans bascule)
  • Aleas (glitches) sur signaux critiques
  • Reset incomplet (etats non couverts)
  • Violations setup/hold time
  • Clock gating sans precaution

En conclusion, la logique sequentielle est au coeur de tout systeme numerique complexe. La maitrise des FSM et des techniques de conception synchrone est indispensable pour developper des controleurs fiables et performants, que ce soit en ASIC, FPGA ou microcontroleurs.

Sequential Logic - S5

Year: 2022-2023 (Semester 5)
Credits: 3 ECTS
Type: Digital Electronics


PART A: GENERAL OVERVIEW

Course Objectives

The Sequential Logic course delves into the design of digital circuits whose state depends on the history of inputs. It covers finite state machines (FSM), synchronous and asynchronous design, as well as systematic methods for designing complex sequential systems. This course is fundamental for designing digital controllers, communication protocols, and embedded systems.

Targeted Skills

  • Master flip-flops and storage elements
  • Design finite state machines (Moore and Mealy)
  • Analyze and synthesize sequential circuits
  • Manage timing constraints and synchronization
  • Implement complex controllers
  • Optimize state encoding

Organization

  • Contact hours: 32h (Lectures: 18h, Tutorials: 14h)
  • Assessment: Final exam (70%) + Tutorials (30%)
  • Semester: 5 (2022-2023)
  • Prerequisites: Combinational logic, Boolean algebra

PART B: EXPERIENCE, CONTEXT AND FUNCTION

Course Content

1. Storage Elements

Flip-Flops and Latches:

Sequential circuits use memory elements to store state.

SR (Set-Reset) Latch:

S R | Q  Q'
----|-------
0 0 | Q  Q'  (memory)
0 1 | 0  1   (reset)
1 0 | 1  0   (set)
1 1 | X  X   (forbidden)

D (Data) Flip-Flop:

The most commonly used in synchronous design.

  • On rising clock edge: Q = D
  • Stores the value of D

Characteristic equation: Q(t+1) = D(t)

JK Flip-Flop:

J K | Q(t+1)
----|--------
0 0 | Q      (memory)
0 1 | 0      (reset)
1 0 | 1      (set)
1 1 | Q'     (toggle)

T (Toggle) Flip-Flop:

When T=1, the output toggles: Q(t+1) = Q'(t)

Timing Constraints:

  • Setup time (tsu): time before the clock edge during which D must be stable
  • Hold time (th): time after the edge during which D must remain stable
  • Propagation delay (tpd): delay between CLK edge and Q change

2. Finite State Machines (FSM)

Moore FSM:

Outputs depend only on the current state.

Structure:

  • States
  • Transitions (depend on inputs)
  • Outputs (function of state only)

Example: "101" Sequence Detector

Moore state diagram:

S0 (init, out=0) --[1]--> S1 (out=0)
S1 --[0]--> S2 (out=0)
S2 --[1]--> S3 (out=1)  // Sequence detected!
S3 --[x]--> ...

Mealy FSM:

Outputs depend on the state AND the inputs.

Advantage: often fewer states than Moore.

Comparison:

  • Moore: stable outputs (change only on clock edge)
  • Mealy: faster reaction (outputs change with inputs)

3. Design Methodology

FSM Design Steps:

  1. Specification: define the desired behavior
  2. State diagram: graphical representation
  3. State table: tabular form
  4. Minimization: reduce the number of states
  5. State encoding: assign binary codes
  6. Logic equations: derive next-state and output logic
  7. Implementation: flip-flops + logic gates

Example: Traffic Light Controller

States:

  • GREEN (30s)
  • YELLOW (5s)
  • RED (35s)

Inputs: timer, vehicle sensor
Outputs: LED_G, LED_Y, LED_R

Simplified state table:

Current State | Timer | Next State   | Outputs
--------------|-------|--------------|----------
GREEN         | 0     | GREEN        | G=1,Y=0,R=0
GREEN         | 1     | YELLOW       | G=1,Y=0,R=0
YELLOW        | 0     | YELLOW       | G=0,Y=1,R=0
YELLOW        | 1     | RED          | G=0,Y=1,R=0
RED           | 0     | RED          | G=0,Y=0,R=1
RED           | 1     | GREEN        | G=0,Y=0,R=1

4. State Encoding

Natural binary:

  • n bits for 2^n states
  • Example 4 states: 00, 01, 10, 11
  • Saves flip-flops

One-Hot:

  • 1 flip-flop per state
  • Example 4 states: 0001, 0010, 0100, 1000
  • Simplified decoding logic
  • Used in FPGAs

Gray:

  • Only 1 bit changes between adjacent states
  • Reduces hazards (glitches)
  • Useful in asynchronous design

Example with 4 states:

State | Binary | One-Hot | Gray
------|--------|---------|------
S0    | 00     | 0001    | 00
S1    | 01     | 0010    | 01
S2    | 10     | 0100    | 11
S3    | 11     | 1000    | 10

5. Synchronous Design

Synchronous design rules:

  • All flip-flops share the same clock
  • No combinational logic in the clock path
  • Respect setup/hold constraints

Maximum frequency:

fmax = 1 / (tpd_logic + tsu + tskew)

where:

  • tpd_logic: combinational delay between flip-flops
  • tsu: setup time
  • tskew: clock skew

Reset strategies:

Asynchronous reset:

if (reset = '1') then
    state <= S0;
elsif rising_edge(clk) then
    state <= next_state;
end if;

Advantage: immediate reset
Disadvantage: may cause metastability

Synchronous reset:

if rising_edge(clk) then
    if (reset = '1') then
        state <= S0;
    else
        state <= next_state;
    end if;
end if;

Advantage: synchronized with clock
Disadvantage: one-cycle delay

6. Advanced Counters

Modulo-N counter:

Counts from 0 to N-1 then wraps back to 0.

BCD decimal counter:
Counts from 0 to 9 (0000 to 1001).

Up/down counter:

DIR input: 1=up, 0=down

3-bit up/down example:

UP:   000 -> 001 -> 010 -> 011 -> 100 -> 101 -> 110 -> 111 -> 000
DOWN: 111 -> 110 -> 101 -> 100 -> 011 -> 010 -> 001 -> 000 -> 111

Counter with preload:

LOAD input: loads initial value
Use case: precise frequency division

7. Timing Aspects

Metastability:

Phenomenon occurring when setup/hold time is violated.
The flip-flop may remain in an indeterminate state.

Solution: 2-stage synchronizer

Asynchronous input -> [FF1] -> [FF2] -> Synchronous output
                        CLK      CLK

Reduces the probability of metastability to ~10^-12.

Critical path analysis:

Identify the longest logic path between two flip-flops.

Example:

FF1 --[tpd=2ns]--> NAND --[tpd=3ns]--> XOR --[tpd=4ns]--> FF2
                                                          [tsu=1ns]

Total delay: 2 + 3 + 4 + 1 = 10ns
Max frequency: 1/10ns = 100MHz

Course materials:
Sequential Logic Course Notes


PART C: TECHNICAL ASPECTS

Tutorial Exercises

TD1: FSM Design

Exercise: Design a "1011" sequence detector (non-overlapping).

Solution:

Required states:

  • S0: initial state
  • S1: after "1"
  • S2: after "10"
  • S3: after "101"
  • S4: complete sequence detected

Transition table:

State | Input 0  | Input 1  | Output
------|----------|----------|--------
S0    | S0       | S1       | 0
S1    | S2       | S1       | 0
S2    | S0       | S3       | 0
S3    | S0       | S4       | 0
S4    | S0       | S1       | 1

TD2: Encoding and equations

For 4 states encoded in binary:

  • Q1 Q0 = 00 (S0), 01 (S1), 10 (S2), 11 (S3)

Derive next-state equations using Karnaugh maps.

TD3: Timing analysis

Calculate the maximum frequency of a circuit with:

  • tpd_FF = 5ns
  • tpd_comb = 15ns
  • tsu = 3ns
  • tskew = 1ns

Solution:
Minimum period = 5 + 15 + 3 + 1 = 24ns
fmax = 1/24ns = 41.67MHz

Practical Applications

UART Controller (transmitter):

States:

  • IDLE: waiting for data
  • START: sending start bit
  • DATA0-DATA7: sending 8 data bits
  • STOP: stop bit
  • Return to IDLE

I2C Protocol Decoder:

FSM detecting:

  • START condition (SDA falls while SCL=1)
  • Address (7 bits)
  • R/W bit
  • ACK/NACK
  • Data
  • STOP condition (SDA rises while SCL=1)

Vending Machine Controller:

Inputs: inserted coins (5c, 10c, 25c)
Output: product delivered when amount reached

States represent the accumulated credit.

Design Tools

Simulators:

  • Logisim: graphical simulation
  • ModelSim: VHDL/Verilog simulation
  • Quartus: complete Altera/Intel suite

Description languages:

VHDL example (Moore FSM):

process(clk, reset)
begin
    if reset = '1' then
        state <= S0;
    elsif rising_edge(clk) then
        case state is
            when S0 =>
                if input = '1' then
                    state <= S1;
                end if;
            when S1 =>
                -- transitions...
        end case;
    end if;
end process;

-- Moore output logic
output <= '1' when state = S3 else '0';

Verilog example (Mealy FSM):

always @(posedge clk or posedge reset) begin
    if (reset)
        state <= S0;
    else
        state <= next_state;
end

// Next_state and output logic (combinational)
always @(*) begin
    case (state)
        S0: begin
            if (input)
                next_state = S1;
            output = 1'b0;
        end
        // ...
    endcase
end

PART D: ANALYSIS AND REFLECTION

Acquired Skills

Technical:

  • Systematic FSM design
  • State encoding optimization
  • Timing analysis of sequential circuits
  • Synchronization management
  • Implementation in VHDL/Verilog

Methodological:

  • Rigorous design approach
  • FSM testing and verification
  • Documentation (state diagrams)
  • Sequential circuit debugging

Professional Applications

Sequential logic is used in:

  • Communication protocols: UART, SPI, I2C, USB
  • Controllers: machines, robots, industrial processes
  • Interfaces: LCD, keyboard, mouse, touchscreen
  • Processors: control unit, pipelines
  • Storage: memory controllers, cache
  • Networks: routers, switches, protocols

Connections with Other Courses

  • Digital Electronics Fundamentals (S5): foundation (flip-flops, counters)
  • Digital Architectures VHDL (S7): FPGA implementation
  • Microcontrollers (S6): FSM in firmware
  • Real-Time Systems (S8): scheduling and synchronization
  • Networks (S6): layered FSM protocols

Evolution and Outlook

Modern tools:

  • Automatic synthesis from graphical FSMs
  • Formal verification (model checking)
  • Automatic test generation
  • Multi-objective optimization (area/speed/power)

Trends:

  • Hierarchical FSMs (StateCharts)
  • Concurrent FSMs
  • High-level languages (SystemVerilog, SystemC)
  • High-level synthesis (HLS)

Emerging applications:

  • IoT: ultra-low-power controllers
  • Embedded AI: FSM for power management
  • Automotive: ADAS, engine control
  • 5G: real-time protocol processing

Recommendations

  1. Always start from the state diagram: visualization is essential
  2. Check all cases: unused states, missing transitions
  3. Plan a default state: robustness against errors
  4. Document clearly: use explicit state names
  5. Simulate before implementation: avoid costly mistakes
  6. Respect timing constraints: setup/hold are critical

Pitfalls to avoid:

  • Combinational loops (feedback without flip-flop)
  • Hazards (glitches) on critical signals
  • Incomplete reset (uncovered states)
  • Setup/hold time violations
  • Clock gating without caution

In conclusion, sequential logic is at the heart of every complex digital system. Mastering FSMs and synchronous design techniques is essential for developing reliable and high-performance controllers, whether in ASIC, FPGA, or microcontrollers.