5.3
2001年版 Standard VHDL Package
2001年版 Standard VHDL Package を以下に示します。
package STD_1149_1_2001
is
-- Give component
conformance declaration
attribute
COMPONENT_CONFORMANCE : string;
-- Give pin mapping
declarations
attribute PIN_MAP :
string;
subtype PIN_MAP_STRING
is string;
-- Give TAP control
declarations
type CLOCK_LEVEL is
(LOW, BOTH);
type CLOCK_INFO is
record
FREQ : real;
LEVEL: CLOCK_LEVEL;
end record;
attribute TAP_SCAN_IN :
boolean;
attribute TAP_SCAN_OUT
: boolean;
attribute
TAP_SCAN_CLOCK: CLOCK_INFO;
attribute TAP_SCAN_MODE
: boolean;
attribute
TAP_SCAN_RESET: boolean;
-- Give instruction
register declarations
attribute
INSTRUCTION_LENGTH : integer;
attribute
INSTRUCTION_OPCODE : string;
attribute
INSTRUCTION_CAPTURE : string;
attribute
INSTRUCTION_PRIVATE : string;
-- Give ID and USER
code declarations
type ID_BITS is ('0',
'1', 'x', 'X');
type ID_STRING is array
(31 downto 0) of ID_BITS;
attribute
IDCODE_REGISTER : ID_STRING;
attribute
USERCODE_REGISTER: ID_STRING;
-- Give register declarations
attribute
REGISTER_ACCESS : string;
-- Give boundary cell
declarations
type BSCAN_INST is (EXTEST,
SAMPLE, INTEST);
type CELL_TYPE is
(INPUT, INTERNAL, CLOCK, OBSERVE_ONLY,
CONTROL, CONTROLR,
OUTPUT2,
OUTPUT3, BIDIR_IN,
BIDIR_OUT);
type CAP_DATA is (PI,
PO, UPD, CAP, X, ZERO, ONE);
type CELL_DATA is
record
CT : CELL_TYPE;
I : BSCAN_INST;
CD : CAP_DATA;
end record;
type CELL_INFO is array
(positive range <>) of CELL_DATA;
-- Boundary cell
deferred constants (see package body)
constant BC_0 :
CELL_INFO;
constant BC_1 :
CELL_INFO;
constant BC_2 :
CELL_INFO;
constant BC_3 :
CELL_INFO;
constant BC_4 :
CELL_INFO;
constant BC_5 :
CELL_INFO;
constant BC_6 :
CELL_INFO;
constant BC_7 :
CELL_INFO;
constant BC_8 :
CELL_INFO;
constant BC_9 :
CELL_INFO;
constant BC_10 :
CELL_INFO;
-- Boundary register
declarations
attribute
BOUNDARY_LENGTH : integer;
attribute
BOUNDARY_REGISTER : string;
-- Miscellaneous
attribute PORT_GROUPING
: string;
attribute
RUNBIST_EXECUTION : string;
attribute
INTEST_EXECUTION : string;
subtype BSDL_EXTENSION
is string;
attribute
COMPLIANCE_PATTERNS : string;
attribute
DESIGN_WARNING : string;
end STD_1149_1_2001; --
End of 1149.1-2001 Package
package body
STD_1149_1_2001 is -- Standard boundary cells
-- Generic cell
capturing minimum allowed data
constant BC_0 :
CELL_INFO :=
((INPUT, EXTEST, PI),
(OUTPUT2, EXTEST, X),
(INPUT, SAMPLE, PI), (OUTPUT2, SAMPLE, PI),
(INPUT, INTEST, X),
(OUTPUT2, INTEST, PI),
(OUTPUT3, EXTEST, X),
(INTERNAL, EXTEST, X),
(OUTPUT3, SAMPLE, PI),
(INTERNAL, SAMPLE, X),
(OUTPUT3, INTEST, PI),
(INTERNAL, INTEST, X),
(CONTROL, EXTEST, X), (CONTROLR,
EXTEST, X),
(CONTROL, SAMPLE, PI),
(CONTROLR, SAMPLE, PI),
(CONTROL, INTEST, PI),
(CONTROLR, INTEST, PI),
(BIDIR_IN,EXTEST, PI),
(BIDIR_OUT, EXTEST, X ),
(BIDIR_IN,SAMPLE, PI),
(BIDIR_OUT, SAMPLE, PI),
(BIDIR_IN,INTEST, X ),
(BIDIR_OUT, INTEST, PI),
(OBSERVE_ONLY, SAMPLE,
PI), (OBSERVE_ONLY, EXTEST, PI) );
-- Description for
f11-18, f11-30, f11-34c, f11-34d, f11-36c, f11-46d
constant BC_1 :
CELL_INFO :=
((INPUT, EXTEST, PI),
(OUTPUT2, EXTEST, PI),
(INPUT, SAMPLE, PI),
(OUTPUT2, SAMPLE, PI),
(INPUT, INTEST, PI),
(OUTPUT2, INTEST, PI),
(OUTPUT3, EXTEST, PI),
(INTERNAL, EXTEST, PI),
(OUTPUT3, SAMPLE, PI),
(INTERNAL, SAMPLE, PI),
(OUTPUT3, INTEST, PI),
(INTERNAL, INTEST, PI),
(CONTROL, EXTEST, PI),
(CONTROLR, EXTEST, PI),
(CONTROL, SAMPLE, PI),
(CONTROLR, SAMPLE, PI),
(CONTROL, INTEST, PI),
(CONTROLR, INTEST, PI) );
-- Description for
f11-14, f11-31, f11-35c, f11-35d, f11-37c,
-- f11-38c,
f11-39(output) and f11-41c
constant BC_2 :
CELL_INFO :=
((INPUT, EXTEST, PI),
(OUTPUT2, EXTEST, UPD),
(INPUT, SAMPLE, PI),
(OUTPUT2, SAMPLE, PI),
(INPUT, INTEST, UPD),
-- Intest on output2 not supported
(OUTPUT3, EXTEST, UPD),
(INTERNAL, EXTEST, PI),
(OUTPUT3, SAMPLE, PI),
(INTERNAL, SAMPLE, PI),
(OUTPUT3, INTEST, PI),
(INTERNAL, INTEST, UPD),
(CONTROL, EXTEST, UPD),
(CONTROLR, EXTEST, UPD),
(CONTROL, SAMPLE, PI),
(CONTROLR, SAMPLE, PI),
(CONTROL, INTEST, PI),
(CONTROLR, INTEST, PI) );
-- Description for
f11-15
constant BC_3 :
CELL_INFO :=
((INPUT, EXTEST, PI),
(INTERNAL, EXTEST, PI),
(INPUT, SAMPLE, PI),
(INTERNAL, SAMPLE, PI),
(INPUT, INTEST, PI),
(INTERNAL, INTEST, PI) );
-- Description for
f11-16, f11-17, f11-39(input)
constant BC_4 :
CELL_INFO :=
((INPUT, EXTEST, PI),
-- Intest on input not supported
(INPUT, SAMPLE, PI),
(OBSERVE_ONLY, EXTEST,
PI),
(OBSERVE_ONLY, SAMPLE,
PI), -- Intest on observe_only not supported
(CLOCK, EXTEST, PI), (INTERNAL, EXTEST, PI),
(CLOCK, SAMPLE, PI),
(INTERNAL, SAMPLE, PI),
(CLOCK, INTEST, PI),
(INTERNAL, INTEST, PI) );
-- Description for
f11-46c, a combined input/control
constant BC_5 :
CELL_INFO :=
((INPUT, EXTEST, PI),
(CONTROL, EXTEST, PI),
(INPUT, SAMPLE, PI),
(CONTROL, SAMPLE, PI),
(INPUT, INTEST, UPD),
(CONTROL, INTEST, UPD) );
-- Description for
f11-38d, a reversible cell
-- !! Not recommended;
replaced by BC_7 below !!
constant BC_6 :
CELL_INFO :=
((BIDIR_IN, EXTEST,
PI), (BIDIR_OUT, EXTEST, UPD),
(BIDIR_IN, SAMPLE, PI),
(BIDIR_OUT, SAMPLE, PI),
(BIDIR_IN, INTEST, UPD),
(BIDIR_OUT, INTEST, PI) );
-- Description for
f11-37d, self monitor reversible
-- !! Recommended over
cell BC_6 !!
constant BC_7 :
CELL_INFO :=
((BIDIR_IN, EXTEST,
PI), (BIDIR_OUT, EXTEST, PO),
(BIDIR_IN, SAMPLE, PI),
(BIDIR_OUT, SAMPLE, PI),
(BIDIR_IN, INTEST, UPD),
(BIDIR_OUT, INTEST, PI) );
-- Description for
11-40, f11-41d
constant BC_8 :
CELL_INFO :=
-- Intest on bidir not
supported
((BIDIR_IN, EXTEST,
PI), (BIDIR_OUT, EXTEST, PO),
(BIDIR_IN, SAMPLE, PI),
(BIDIR_OUT, SAMPLE, PO) );
-- Description for
f11-32
constant BC_9 :
CELL_INFO :=
-- Self-monitoring
output that supports Intest
((OUTPUT2, EXTEST, PO),
(OUTPUT3, EXTEST, PO),
(OUTPUT2, SAMPLE, PI),
(OUTPUT3, SAMPLE, PI),
(OUTPUT2, INTEST, PI),
(OUTPUT3, INTEST, PI) );
-- Description for
f11-33
constant BC_10 :
CELL_INFO :=
-- Self-monitoring
output that does not support Intest
((OUTPUT2, EXTEST, PO),
(OUTPUT3, EXTEST, PO),
(OUTPUT2, SAMPLE, PO),
(OUTPUT3, SAMPLE, PO) );
end STD_1149_1_2001; -- End of IEEE Std 1149.1-2001 Package Body
|