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:
- Specification: definir le comportement souhaite
- Diagramme d'etats: representation graphique
- Table d'etats: forme tabulaire
- Minimisation: reduire le nombre d'etats
- Codage d'etats: assigner codes binaires
- Equations logiques: deriver next-state et output logic
- 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
- Toujours partir du diagramme d'etats: visualisation essentielle
- Verifier tous les cas: etats non utilises, transitions manquantes
- Prevoir etat par defaut: robustesse face aux erreurs
- Documenter clairement: noms d'etats explicites
- Simuler avant implementation: eviter erreurs couteuses
- 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:
- Specification: define the desired behavior
- State diagram: graphical representation
- State table: tabular form
- Minimization: reduce the number of states
- State encoding: assign binary codes
- Logic equations: derive next-state and output logic
- 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
- Always start from the state diagram: visualization is essential
- Check all cases: unused states, missing transitions
- Plan a default state: robustness against errors
- Document clearly: use explicit state names
- Simulate before implementation: avoid costly mistakes
- 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.