
Learn the role of registers in digital systems and how they store binary information. Explore the fundamentals of sequential logic, understand the relationship between registers and clock signals, and discover how registers are used in datapaths, control units, and FPGA-based designs.
Understand the fundamental differences between latches and flip-flops. Learn how level-sensitive and edge-triggered storage elements operate, explore their behavior in digital circuits, and identify when these elements are used in sequential logic design.
Learn how to describe D latches and D flip-flops using Verilog HDL. Explore sensitivity lists, enable signals, clock edges, and data storage behavior. Understand how coding style influences the hardware inferred during synthesis and how to implement basic sequential storage elements.
Understand the difference between blocking (=) and nonblocking (<=) assignments in Verilog. Explore how these assignments behave during simulation, why assignment choice matters in sequential and combinational logic, and how to avoid common coding mistakes when designing clocked circuits.
Explore practical coding guidelines for describing digital hardware using behavioral Verilog. Learn how to structure procedural blocks, choose appropriate assignments, write clear conditional logic, and follow synthesizable RTL practices that improve design readability and reliability.
Learn how synchronous and asynchronous set and reset signals control the initialization of sequential circuits. Understand their differences, examine how they affect flip-flop behavior, and explore important design considerations when selecting reset strategies for digital systems and FPGA implementations.
Learn how to implement registers using Verilog HDL. Explore clocked procedural blocks, reset behavior, data loading, and register updates. Understand how to describe reliable sequential logic and how registers form the foundation of counters, state machines, and digital datapaths.
Discover how digital counters track clock events and generate sequences of binary values. Learn the basic operating principles of counters, understand the role of clock and reset signals, and explore applications such as event counting, timing control, frequency division, and digital measurement.
Compare asynchronous and synchronous counters and understand how their internal clocking mechanisms differ. Explore propagation delays, ripple behavior, and simultaneous state updates. Learn why synchronous counters are often preferred in high-speed digital systems.
Learn how to design counters that support counting up, counting down, and loading a specified starting value. Explore control inputs, clocked updates, reset behavior, and Verilog implementation concepts for flexible counters used in digital control and timing applications.
Understand modulus counters and how they cycle through a predefined number of states. Learn how to determine terminal-count conditions, implement rollover behavior, and describe modulo-\(N\) counters in Verilog. Explore their use in frequency division, timing circuits, and digital sequencing.
Learn how binary-coded decimal (BCD) counters represent decimal digits using binary values. Explore decade counting, rollover conditions, and cascading multiple counters to represent larger decimal ranges. Understand how these counters are used in digital displays, clocks, and counting systems.
Explore practical applications of counters in digital hardware. Learn how counter logic can be used for event tracking, timing generation, clock division, and control sequencing. Understand how to select appropriate counter widths and implement terminal-count detection in Verilog RTL.
Understand the principles of pulse width modulation (PWM) and how digital signals can control average power delivered to a load. Learn the meaning of frequency, period, duty cycle, and pulse width, and explore common PWM applications in embedded systems and FPGA-based control.
Learn how PWM duty cycle affects the proportion of time a signal remains high during each period. Explore the relationship between duty cycle, frequency, and pulse width, and understand how to analyze PWM waveforms for different digital control applications.
Learn the fundamentals of implementing a PWM generator using Verilog HDL. Explore counter-based timing, duty-cycle comparison, clocked logic, and parameter selection. Understand how to generate a periodic digital output whose pulse width can be adjusted using a configurable control value.
Explore how PWM generators can be applied to practical digital control problems. Understand how changing the duty cycle modifies a control signal and learn how PWM can be integrated into FPGA designs for applications such as LED brightness control and other suitable digital output-control systems.
Learn how linear feedback shift registers generate deterministic sequences of binary states using shift registers and feedback logic. Explore the role of feedback taps, understand the importance of initial states, and discover applications such as pseudo-random sequence generation, test-pattern generation, and digital circuit testing.
Understand the fundamentals of finite state machines and their role in controlling sequential digital systems. Learn about states, transitions, inputs, and outputs, and explore how FSMs model controllers and protocols using a structured representation of system behavior.
Learn how to analyze a finite state machine by examining its states, transition conditions, and output behavior. Explore how to interpret a state diagram or equivalent representation and determine how the machine responds to different input sequences.
Continue developing FSM analysis skills through another example. Learn how input conditions influence state transitions, how to trace state sequences, and how to identify the resulting outputs. Strengthen your understanding of sequential behavior before implementing FSMs in RTL.
Explore another FSM analysis example to reinforce the relationship between state transitions, input conditions, and output generation. Learn how to trace the operation of a state machine step by step and build a systematic approach to understanding control-oriented digital circuits.
Understand the differences between Mealy and Moore finite state machines. Learn how output generation depends on states and inputs in each model, compare their structural characteristics, and explore how these differences influence state diagrams, timing behavior, and RTL implementation.
Learn how to describe finite state machines using Verilog HDL. Explore state registers, next-state logic, output logic, and clocked procedural blocks. Understand common FSM coding styles and how to organize RTL for readable, maintainable, and synthesizable state-machine designs.
Apply FSM design principles to a more complex example. Learn how to organize multiple states, define transition conditions, and handle different input combinations. Understand how a structured state-machine approach helps manage control logic as system behavior becomes more involved.
Continue exploring more complex finite state machines and their implementation considerations. Learn how to analyze state transitions, handle additional operating conditions, and structure the design so that its behavior remains understandable and suitable for RTL development.
Explore the relationship between counters and finite state machines. Understand how a counter can be represented as a sequence of states, examine transition and rollover behavior, and learn how state-machine concepts can help explain and implement sequential counting logic.
Explore the use of finite state machines in practical digital designs. Learn how FSMs coordinate operations, control datapaths, and manage multi-step sequences. Understand the key considerations involved in converting a functional specification into a synthesizable Verilog state machine.
Understand why mechanical push buttons can produce multiple rapid signal transitions when pressed or released. Learn the purpose of debouncing, explore how digital logic can filter unwanted transitions, and understand why clean input signals are important for reliable FPGA control systems.
Explore how a finite state machine can coordinate a multi-step operation such as swapping data between two memory locations. Learn how states control memory reads, temporary data storage, and write operations, and understand how sequential control logic organizes operations that cannot be completed in a single step.
Learn how finite state machines can control a traffic light sequence. Explore state transitions, timing conditions, and output control for different signal phases. Understand how to translate a real-world control requirement into a structured sequential design using Verilog HDL.
Discover the fundamentals of timing analysis in sequential digital circuits. Learn how clock signals coordinate register updates and why timing relationships between registers and combinational logic matter. Understand the basic concepts behind reliable synchronous operation and timing constraints.
Learn the key timing parameters associated with flip-flops, including setup time, hold time, clock-to-Q delay, and their impact on synchronous circuit operation. Understand how data must be presented around the active clock edge to support reliable data capture.
Understand metastability and why it can occur when a signal violates a flip-flop's timing requirements. Explore the purpose of synchronizer circuits, especially when transferring single-bit control signals between asynchronous clock domains. Learn how synchronizers reduce the probability of metastability propagating through a digital system.
Revisit button debouncing with a deeper look at reliable input handling in digital systems. Understand how mechanical switch behavior affects FPGA designs and explore methods for stabilizing button signals before using them in counters, controllers, and finite state machines.
Learn how to analyze timing paths in sequential circuits. Explore the relationship between clock period, combinational logic delay, setup time, and hold time. Understand how timing violations can affect circuit operation and why timing analysis is essential for achieving reliable hardware performance.
Learn how to interpret timing reports in AMD Xilinx Vivado. Explore timing slack, path delays, and the information reported for setup and hold analysis. Understand how timing reports help identify potential critical paths and guide improvements to an FPGA design's timing performance.
Understand clock skew and how differences in clock arrival times can affect sequential circuit timing. Explore its impact on setup and hold requirements, learn why clock distribution matters, and discover how clock skew is considered during FPGA implementation and timing analysis.
Explore how Vivado's Clocking Wizard helps configure clocking resources for FPGA designs. Learn the purpose of generating clocks with different frequencies and phase relationships, understand the role of clock-management resources, and discover key considerations when integrating generated clocks into a design.
Welcome to Eddin VLSI Labs — Learn. Design. Verify.
Take your Verilog HDL skills to the next level by learning how to design sequential digital circuits, counters, finite state machines, and timing-related components. This course builds on the fundamentals of digital logic and introduces important RTL design techniques used in FPGA and ASIC development.
Sequential logic is a core part of digital hardware design. Registers store information, counters track events, finite state machines control multi-step operations, and timing analysis helps engineers evaluate whether a design can operate reliably at its target clock frequency.
What you will learn
Understand registers, latches, and flip-flops and describe them using Verilog HDL.
Apply blocking and nonblocking assignments appropriately.
Implement synchronous and asynchronous set and reset logic.
Design up/down counters, modulus counters, BCD counters, and timer circuits.
Understand pulse width modulation (PWM), duty cycle, and counter-based PWM generation.
Explore linear feedback shift registers (LFSRs) and feedback logic.
Analyze finite state machines, including Mealy and Moore models.
Implement FSMs using state registers, transition logic, and output logic.
Understand ASM charts and FSM-based applications such as traffic light controllers.
Learn button debouncing concepts for reliable digital inputs.
Understand setup time, hold time, clock-to-Q delay, and clock skew.
Explore metastability and synchronizer circuits.
Interpret FPGA timing reports using AMD Xilinx Vivado.
Understand clock generation using Vivado's Clocking Wizard.
Who should take this course?
This course is intended for electronics and electrical engineering students, aspiring RTL design engineers, FPGA developers, VLSI learners, and engineers who want to strengthen their understanding of sequential logic design.
Basic digital logic and introductory Verilog HDL knowledge are recommended. Learners should be comfortable reading simple Verilog modules before starting.
Learn through practical digital design concepts
The lectures cover the principles behind counters, PWM generators, FSM-based controllers, sequential circuit timing, and clocking resources. You will build a stronger understanding of how sequential RTL is structured and how timing considerations influence digital hardware implementation.
Continue your RTL design journey
After completing this course, you will be better prepared to explore more complex RTL projects, verification methodologies, FPGA applications, and advanced VLSI design concepts.
Start strengthening your sequential design skills with Eddin VLSI Labs.
Learn. Design. Verify.