SCAPIN(1)

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

πŸ’… SCAPIN β€” bestie edition

okay so first thing, the page header says SCAPIN(1) and it lives in the CAO-VLSI Reference Manual, but we're not doing boring headers today, we're doing vibes. And yes this is scapin, and yes it's all about scan path insertion. let's get into it πŸ¦‹


✨ ORIGIN ✨

This software 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, they literally built a whole CAD system. iconic behavior. πŸ‘‘


✨ SYNOPSIS ✨

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

✨ DESCRIPTION ✨

SCAPIN is an automatic scan path generator for gate level netlists, no cap. 🧚

So here's the tea: SCAPIN inserts a scan path into the netlist Input_name and drives a brand new netlist Output_name. This scan path contains all the registers specified in the file Path_name.path (the exact syntax is down below, bestie, don't worry). πŸ“

SCAPIN also adds 3 new connectors into the netlist:

  • scan_in
  • scan_out
  • scan_test

...all of which exist to control the scan path. and eventually β€” if you pass option -B β€” SCAPIN adds an output buffer before the output connector scan_out. ✨


🌸 ENVIRONMENT VARIABLES 🌸

  • 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 πŸ’…

  • -V β€” Sets verbose mode on. Every single step gets displayed on the standard output. it's giving commentary track, honestly. πŸŽ™οΈ
  • -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 just added right before all registers of the scan path).
  • -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

πŸ¦‹ SEE ALSO πŸ¦‹

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. fr fr, they're asking, and they mean it. 🫢


okay that's the whole page bestie, you ate that. πŸ’– This was ASIM/LIP6, dated Juin 29, 2000, and yeah the footer still says SCAPIN(1) because some things are forever. periodt. ✨