SCAPIN(1)

πŸ“¦ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

πŸ’… SCAPIN(1) β€” the CAO-VLSI Reference Manual page, bestie edition

ok so this is the SCAPIN page from the CAO-VLSI Reference Manual, and honestly? she's a whole icon. scan path insertion, automatic, no cap.


✨ NAME ✨

scapin β€” Scan path insertion πŸ¦‹


🌸 ORIGIN 🌸

ok so this software? she has main character energy and a whole pedigree. It belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. πŸŽ€

like, she's French, she's academic, she's been doing this since forever. obsessed. πŸ’œ


⭐ SYNOPSIS ⭐

scapin [-VRB] [-P file] Input_name Path_name Output_name

that's it. that's the whole vibe check. πŸ‘‘


πŸ”₯ DESCRIPTION πŸ”₯

okay so SCAPIN is an automatic scan path generator for gate level netlists. literally what it says on the tin, bestie.

SCAPIN inserts a scan path in the netlist Input_name and drives a new netlist Output_name. πŸ’«

This scan path contains all registers specified in the file Path_name.path (scroll down for the exact syntax, iykyk).

SCAPIN also adds 3 new connectors in the netlist so you can control the scan path:

  • scan_in
  • scan_out
  • scan_test

and eventually β€” as in, if you ask nicely with the option -B β€” SCAPIN adds an output buffer before the output connector scan_out. 🫢


🧚 ENVIRONMENT VARIABLES 🧚

the env vars! the way these literally tell scapin where everything lives:

  • MBK_WORK_LIB(1) β€” indicates the path to the read/write directory for the session.
  • MBK_IN_LO(1) β€” indicates the input netlist file format.
  • MBK_OUT_LO(1) β€” indicates the output netlist file format.
  • SCAPIN_PARAM_NAME β€” indicates the location of a parameter file (with extention .scapin) containing the properties (ports name, models name etc ...) of all cells needed for the scan path insertion. (see below for the exact syntax πŸ‘€)

πŸ’… OPTIONS πŸ’…

every single one, no skips, we don't do that here:

  • -V β€” Sets verbose mode on. Each step is displayed on the standard output. she's chatty and we love that for her πŸ—£οΈ
  • -R β€” All registers of the scan path are replaced by an equivalent scannable register cell (called reg-mux). (With the default option a simple multiplexor is added just before all registers of the scan path). swap the whole fit or just add a lil mux β€” your call πŸ’–
  • -B β€” Adds an output buffer before the output connector scan_out. πŸŽ€
  • -P file β€” Specifies a parameter file (with extention .scapin) containing the properties of all cells needed for the scan path insertion. (see below for the exact syntax)
# Example of .scapin file

BEGIN_MUX

MUX_MODEL        mx2_x2
MUX_SEL          cmd
MUX_INPUT_SEL    i1
MUX_INPUT_NSEL   i0
MUX_VDD          vdd
MUX_VSS          vss
MUX_OUTPUT       q

END_MUX

BEGIN_REG

REG_MODEL        sff1_x4
REG_CLK          ck
REG_INPUT        i
REG_VDD          vdd
REG_VSS          vss
REG_OUTPUT       q
REG_MUX          mx2_x2
REG_REG_MUX      sff2_x4

END_REG

BEGIN_REG_MUX

REG_MUX_MODEL        sff2_x4
REG_MUX_SEL          cmd
REG_MUX_INPUT_SEL    i1
REG_MUX_INPUT_NSEL   i0
REG_MUX_CLK          ck
REG_MUX_VDD          vdd
REG_MUX_VSS          vss
REG_MUX_OUTPUT       q
REG_MUX_MUX          mx2_x2
REG_MUX_REG          sff1_x4

END_REG_MUX

BEGIN_BUF

BUF_MODEL            buf_x2
BUF_INPUT            i
BUF_VDD              vdd
BUF_VSS              vss
BUF_OUTPUT           q

END_BUF
  • Path_name β€” Specifies a parameter file (with extention .path) containing an ordered list of all instances (registers) of the scan path. It contains also the name of the 3 connectors scan_in, scan_out and scan_test. (see below for the exact syntax πŸ‘‡)
# Example of .path file

BEGIN_PATH_REG

cs_0
cs_1
cs_2

END_PATH_REG

BEGIN_CONNECTOR

SCAN_IN      scin
SCAN_OUT     scout
SCAN_TEST    test

END_CONNECTOR
πŸ’€ reminder bestie: the .scapin file holds the cell properties, and the .path file holds the ordered register list plus connector names. two different files, two different jobs, do not mix them up, i'm begging πŸ™ˆ

🌈 SEE ALSO 🌈

go read these next, fr fr:

  • MBK_IN_LO(1).
  • MBK_OUT_LO(1).
  • MBK_WORK_LIB(1).

😭 BUG REPORT 😭

This tool is under development at the ASIM department of the LIP6 laboratory.

We need your feedback to improve documentation and tools. like genuinely, tell them things, they're asking nicely πŸ₯Ί


and that's the page!! πŸŽ‰ cute lil sign-off: this is ASIM/LIP6, dated Juin 29, 2000 β€” yes, French month name, yes she's iconic, periodt. βœ¨πŸ’–πŸŽ€

πŸ“¦ where this page comes from