DPGEN_SFFT(3)

πŸ“¦ version 5.1.1, in fedora 43, fedora 44

πŸ’– DPGEN_SFFT πŸ’–

okay bestie, welcome to the Alliance - genlib User's Manual page for DPGEN_SFFT(3), a.k.a. the Static Flip-Flop with Scan-Path Macro-Generator. she's a whole icon and she's about to make your netlist pop off. ✨


🌸 NAME 🌸

DPGEN_SFFT β€” Static Flip-Flop with Scan-Path Macro-Generator

no cap, that's literally her whole job description.


πŸŽ€ SYNOPSIS πŸŽ€

#include  <genlib.h>

void GENLIB_MACRO (DPGEN_SFFT, char *modelname, long flags, long N);

✨ DESCRIPTION ✨

So basically: this generates a static flip-flop with a scan-path, N bits wide, and it's named whatever you pass in as modelname. πŸ’…

And the way this flip-flop is built?? Both of its latches are each made of two inverters looped together. that's the whole structure. two inverters holding hands. iconic behaviour honestly. 🫢

How it works, bestie:

  • scan β€” when you set it to '1' it enables the scan-path mode. and listen, heads up: in scan-path mode the wen signal is not effective. like, she's not listening to wen rn. 🚫
  • scin β€” the input of the scan-path. this terminal is different from i0[0], so don't go thinking they're the same thing.
    • and the scout? that's q[N-1]. in the example below that works out to q[31]. πŸ‘‘
  • wen β€” when you set it to '1' it enables the writing of the flip-flop.

πŸ”₯ TERMINAL NAMES πŸ”₯

  1. scan : scan-path mode (input, 1 bit).
  2. scin : scan path in (input, 1 bit).
  3. wen : write enable (input, 1 bit).
  4. ck : clock signal (input, 1 bit).
  5. i0 : data input (N bits).
  6. q : output (N bits).
  7. vdd : power.
  8. vss : ground.

eight terminals, all accounted for, no crumbs left behind. πŸ“


🌈 EXAMPLE 🌈

this is the vibe, copy it exactly bestie:

GENLIB_MACRO(DPGEN_SFFT, "model_sfft_32"
                       , F_BEHAV|F_PLACE
                       , 32
                       );

GENLIB_LOINS( "model_sfft_32"
            , "instance1_sfft_32"
            , "scan"
            , "scin"
            , "wen"
            , "ck"
            , "i0[31:0]"
            ,  "q[31:0]"  /* a[31] is "scout". */
            , "vdd", "vss", NULL
            );

see how q[31:0] is doing the most? and that little comment is telling you a[31] is "scout". πŸ‘€ iykyk.


πŸ¦‹ SEE ALSO πŸ¦‹


and that's the whole page, periodt. πŸ’œ

this masterpiece came from ASIM/LIP6, dated 30 July 2004 β€” yes she's vintage, yes she still ate, and no we will not be discussing her age any further. mwah. πŸ’…βœ¨πŸŽ€