Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • Logic Synthesis Glossary
  • Logic Synthesis Cheatsheet
  • Synthesis Foundations14
  • Logic Optimisation and Mapping20
  • Constraints and Timing15
  • Sequential, FSM and Memory19
    • Flops, Resets and Enables
      • D Flop Inference
      • Enables: Mux or Clock Enable
      • Synchronous and Asynchronous Reset
      • Reset-less Flops and Initial Values
      • Mapping Flops to Library Cells
    • FSM Synthesis
    • Memory and Macro Inference
    • Retiming and Pipelining
  • Datapath Synthesis14
  • Area, Power and Test14
  • Verification, ECO and Handoff15
  • Flows and Debugging15
  • Interview and Judgment11
Loading lesson

‹Sequential, FSM and Memory
  1. Topics
  2. Logic Synthesis
  3. Sequential, FSM and Memory
  4. Flops, Resets and Enables

Part 4 · Sequential, FSM and Memory · Intermediate

Flops, Resets and Enables

D flops, enables, resets, and how each maps to library cells.

  • 5topics
  • 5lessons

Sequential RTL infers one flop family per idiom: plain, enabled, and synchronous or asynchronous reset. Each family is a distinct generic cell ($dff, $dffe, $sdff, $adff); whether that yields a distinct library cell depends on the library.

RTL idiom

Generic cell

In course.lib

always @(posedge clk) q <= d;

$dff

DFF (area 8)

if (en) around the load

$dffe

DFF plus feedback logic; no clock-enable cell here

Reset tested inside the clocked block

$sdff

Mapping varies by library

Reset in the sensitivity list

$adff

DFFR (area 10)

From RTL idiom to library cells.
Each RTL idiom infers one generic flop cell, which then maps to library cells plus logic.

Lesson

What it covers

D Flop Inference

The plain clocked block and the single $dff cell it infers.

Enables: Mux or Clock Enable

Enabled flops infer $dffe, built from a mux or a clock-enable cell.

Synchronous and Asynchronous Reset

Sync reset gives $sdff and async reset gives $adff, with set alike.

Reset-less Flops and Initial Values

Why datapath flops skip reset, and what initial values really mean.

Mapping Flops to Library Cells

From generic cells to DFF and DFFR with dfflibmap, plus scan.

Check yourself A block loads q only when en is high and has no reset. Which generic cell does it infer?

An enabled flop without reset: $dffe. The enable selects between the new data and the held value.

Interview

Carry one sentence per lesson: plain blocks give $dff, enables give $dffe as mux or clock enable, sync reset gives $sdff and async gives $adff, datapath flops usually skip reset, and dfflibmap picks DFF or DFFR.

PreviousNext: D Flop Inference

Up next

Up nextD Flop Inference

Sign in to save progress

Practice this lessonReport an error

See also

  • FSM Synthesis
  • Memory and Macro Inference
  • Retiming and Pipelining