From fa86461d80476fef6564a98fee15f5232fef9c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnim=20L=C3=A4uger?= Date: Tue, 22 Jan 2008 21:14:43 +0000 Subject: [PATCH] BSDL: update headers with link to source of original posting git-svn-id: https://urjtag.svn.sourceforge.net/svnroot/urjtag/trunk@943 b68d4a1b-bc3d-0410-92ed-d4ac073336b7 --- jtag/ChangeLog | 6 + jtag/data/bsdl/STD_1149_1_1990 | 346 +++++++++++++++++++---------- jtag/data/bsdl/STD_1149_1_1994 | 389 ++++++++++++++++++++------------- jtag/src/bsdl/bsdl_bison.y | 1 + jtag/src/bsdl/bsdl_flex.l | 1 + 5 files changed, 473 insertions(+), 270 deletions(-) diff --git a/jtag/ChangeLog b/jtag/ChangeLog index f771b86d..d67d5b9b 100644 --- a/jtag/ChangeLog +++ b/jtag/ChangeLog @@ -1,3 +1,9 @@ +2008-01-22 Arnim Laeuger + + * src/bsdl/bsdl_flex.l, src/bsdl/bsdl_bison.y, + data/bsdl/STD_1149_1_1990, data/bsdl/STD_1149_1_1994: + update header with link to source + 2008-01-21 Kolja Waschk * New JTAG declarations for MPC5241 (from kurobox.com, enh. 1869671) diff --git a/jtag/data/bsdl/STD_1149_1_1990 b/jtag/data/bsdl/STD_1149_1_1990 index 9e9409ce..9afd492f 100644 --- a/jtag/data/bsdl/STD_1149_1_1990 +++ b/jtag/data/bsdl/STD_1149_1_1990 @@ -1,149 +1,255 @@ -package STD_1149_1_1990 is - --- 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_DISABLE : string; -attribute INSTRUCTION_GUARD : string; -attribute INSTRUCTION_PRIVATE : string; -attribute INSTRUCTION_USAGE : string; -attribute INSTRUCTION_SEQUENCE : 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, RUNBIST); -type CELL_TYPE is (INPUT, INTERNAL, CLOCK, - 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_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; - --- Boundary register declarations - -attribute BOUNDARY_CELLS : string; -attribute BOUNDARY_LENGTH : integer; -attribute BOUNDARY_REGISTER : string; - --- Miscellaneous - -attribute DESIGN_WARNING : string; - -end STD_1149_1_1990; -- End of IEEE Std 1149.1-1990 Package - - -package body STD_1149_1_1990 is -- Standard boundary cells +-- +-- $Id$ +-- +-- Email header accompanying the original Yacc code: +-- http://www.eda.org/vug_bbs/bsdl.parser +-- +-- -----------------------------------8<-------------------------------------- +-- +-- Hello All, +-- +-- This is this first mailing of the BSDL* Version 0.0 parser specifications +-- we are sending to people who request it from our publicized E-Mail address; +-- +-- bsdl%hpmtlx@hplabs.HP.com +-- +-- You are free to redistribute this at will, but we feel that it would be +-- better if respondents asked for it directly so that their addresses can +-- be entered into our list for future mailings and updates. +-- +-- It would be helpful if you could confirm receipt of this transmission. +-- We also would be very interested to hear about your experiences with this +-- information and what you are planning to do with BSDL. +-- +-- Regards, +-- +-- Ken Parker +-- Hewlett-Packard Company +-- +-- +-- *Boundary-Scan Description Language - as documented in: +-- +-- "A Language for Describing Boundary-Scan Devices", K.P. Parker +-- and S. Oresjo, Proceedings 1990 International Test Conference, +-- Washington DC, pp 222-234 +-- +-- +-- - -----------------cut here--------------------------------------------------- +-- +-- +-- 901004.0721 Hewlett-Packard Company +-- 901016.1049 Manufacturing Test Division +-- P.O. Box 301 +-- Loveland, Colorado 80537 +-- USA +-- +-- October 1990 +-- Hello BSDL Parser Requestor, +-- +-- This Electronic Mail reply contains the computer specifications for +-- Hewlett-Packard's Version 0.0 BSDL parser. This section of the reply +-- explains the contents of the rest of this file. +-- +-- This file is composed of seven (7) parts: +-- +-- 1) How to use this file +-- +-- 2) UNIX* Lex source (lexicographical tokenizing rules) +-- +-- 3) UNIX* Yacc source (BNF-like syntax description) +-- +-- 4) A sample main program to recognize BSDL. +-- +-- 5) A BSDL description of the Texas Instruments 74bct8374 that is +-- recognized by the parser, for testing purposes. +-- +-- 6) The VHDL package STD_1149_1_1990 needed by this parser. +-- +-- 7) [added 901016] Porting experiences to other systems. +-- +-- +-- RECOMMENDATION: Save a copy of this file in archival storage before +-- processing it via the instructions below. This will +-- allow you to recover from errors, and allow you to +-- compare subsequently released data for changes. +-- +-- DISCLAIMERS: +-- +-- 1. The IEEE 1149.1 Working Group has not endorsed BSDL Version 0.0 and +-- therefore no person may represent it as an IEEE standard or imply that +-- a resulting IEEE standard will be identical to it. +-- +-- 2. The IEEE 1149.1 Working Group recognizes that BSDL Version 0.0 is a +-- well-conceived initiative that is likely to excelerate the creation +-- of tools that support the 1149.1 standard. As such, changes and +-- enhancements will be carefully considered so as not to needlessly +-- disrupt these development efforts. The overriding goal is the +-- ultimate success of the 1149.1 standard. +-- +-- LEGAL NOTICES: +-- +-- Hewlett-Packard Company makes no warranty of any kind with regard to +-- this information, including, but not limited to, the implied +-- waranties of merchantability and fitness for a particular purpose. +-- +-- Hewlett-Packard Company shall not be liable for errors contained +-- herein or direct, indirect, special, incidental, or consequential +-- damages in connection with the furnishing, performance, or use of +-- this material. +-- +-- +-- *UNIX is a trademark of AT&T in the USA and other countries. +-- + +-- STD_1149_1_1990 VHDL Package and Package Body in support of +-- BSDL Version 0.0 +-- + + package STD_1149_1_1990 is -- Created 900525 + + -- 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_DISABLE : string; + attribute INSTRUCTION_GUARD : string; + attribute INSTRUCTION_PRIVATE : string; + attribute INSTRUCTION_USAGE : string; + attribute INSTRUCTION_SEQUENCE : 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, RUNBIST); + type CELL_TYPE is (INPUT, INTERNAL, CLOCK, + 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 defered constants (see package body) + + 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; + + -- Boundary Register declarations + + attribute BOUNDARY_CELLS : string; + attribute BOUNDARY_LENGTH : integer; + attribute BOUNDARY_REGISTER : string; + + -- Miscellaneous + + attribute DESIGN_WARNING : string; +end STD_1149_1_1990; -- End of 1149.1-1990 Package + + +package body STD_1149_1_1990 is -- Standard Boundary Cells + -- Written 900525 -- Description for f10-12, f10-16, f10-18c, f10-18d, f10-21c -constant BC_1 : CELL_INFO := - ((INPUT, EXTEST, PI), (OUTPUT2, EXTEST, PI), - (INPUT, SAMPLE, PI), (OUTPUT2, SAMPLE, PI), - (INPUT, INTEST, PI), (OUTPUT2, INTEST, PI), - (INPUT, RUNBIST, PI), (OUTPUT2, RUNBIST, PI), - (OUTPUT3, EXTEST, PI), (INTERNAL, EXTEST, PI), - (OUTPUT3, SAMPLE, PI), (INTERNAL, SAMPLE, PI), - (OUTPUT3, INTEST, PI), (INTERNAL, INTEST, PI), - (OUTPUT3, RUNBIST, PI), (INTERNAL, RUNBIST, PI), - (CONTROL, EXTEST, PI), (CONTROLR, EXTEST, PI), - (CONTROL, SAMPLE, PI), (CONTROLR, SAMPLE, PI), - (CONTROL, INTEST, PI), (CONTROLR, INTEST, PI), - (CONTROL, RUNBIST, PI), (CONTROLR, RUNBIST, PI) ); +constant BC_1 : CELL_INFO := + ((INPUT, EXTEST, PI), (OUTPUT2, EXTEST, PI), + (INPUT, SAMPLE, PI), (OUTPUT2, SAMPLE, PI), + (INPUT, INTEST, PI), (OUTPUT2, INTEST, PI), + (INPUT, RUNBIST, PI), (OUTPUT2, RUNBIST, PI), + (OUTPUT3, EXTEST, PI), (INTERNAL, EXTEST, PI), + (OUTPUT3, SAMPLE, PI), (INTERNAL, SAMPLE, PI), + (OUTPUT3, INTEST, PI), (INTERNAL, INTEST, PI), + (OUTPUT3, RUNBIST, PI), (INTERNAL, RUNBIST, PI), + (CONTROL, EXTEST, PI), (CONTROLR, EXTEST, PI), + (CONTROL, SAMPLE, PI), (CONTROLR, SAMPLE, PI), + (CONTROL, INTEST, PI), (CONTROLR, INTEST, PI), + (CONTROL, RUNBIST, PI), (CONTROLR, RUNBIST, PI) ); -- Description for f10-8, f10-17, f10-19c, f10-19d, f10-22c -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 - (INPUT, RUNBIST, UPD), (OUTPUT2, RUNBIST, UPD), +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 + (INPUT, RUNBIST, UPD), (OUTPUT2, RUNBIST, UPD), (OUTPUT3, EXTEST, UPD), (INTERNAL, EXTEST, PI), (OUTPUT3, SAMPLE, PI), (INTERNAL, SAMPLE, PI), (OUTPUT3, INTEST, PI), (INTERNAL, INTEST, UPD), (OUTPUT3, RUNBIST, PI), (INTERNAL, RUNBIST, UPD), - (CONTROL, EXTEST, UPD), (CONTROLR, EXTEST, UPD), + (CONTROL, EXTEST, UPD), (CONTROLR, EXTEST, UPD), (CONTROL, SAMPLE, PI), (CONTROLR, SAMPLE, PI), (CONTROL, INTEST, PI), (CONTROLR, INTEST, PI), (CONTROL, RUNBIST, PI), (CONTROLR, RUNBIST, PI) ); -- Description for f10-9 -constant BC_3 : CELL_INFO := - ((INPUT, EXTEST, PI), (INTERNAL, EXTEST, PI), - (INPUT, SAMPLE, PI), (INTERNAL, SAMPLE, PI), - (INPUT, INTEST, PI), (INTERNAL, INTEST, PI), - (INPUT, RUNBIST, PI), (INTERNAL, RUNBIST, PI) ); +constant BC_3 : CELL_INFO := + ((INPUT, EXTEST, PI), (INTERNAL, EXTEST, PI), + (INPUT, SAMPLE, PI), (INTERNAL, SAMPLE, PI), + (INPUT, INTEST, PI), (INTERNAL, INTEST, PI), + (INPUT, RUNBIST, PI), (INTERNAL, RUNBIST, PI) ); -- Description for f10-10, f10-11 -constant BC_4 : CELL_INFO := - ((INPUT, EXTEST, PI), -- Intest on input not supported - (INPUT, SAMPLE, PI), -- Runbist on input not supported - (CLOCK, EXTEST, PI), (INTERNAL, EXTEST, PI), - (CLOCK, SAMPLE, PI), (INTERNAL, SAMPLE, PI), - (CLOCK, INTEST, PI), (INTERNAL, INTEST, PI), - (CLOCK, RUNBIST, PI), (INTERNAL, RUNBIST, PI) ); +constant BC_4 : CELL_INFO := + ((INPUT, EXTEST, PI), -- Intest on input not supported + (INPUT, SAMPLE, PI), -- Runbist on input not supported + (CLOCK, EXTEST, PI), (INTERNAL, EXTEST, PI), + (CLOCK, SAMPLE, PI), (INTERNAL, SAMPLE, PI), + (CLOCK, INTEST, PI), (INTERNAL, INTEST, PI), + (CLOCK, RUNBIST, PI), (INTERNAL, RUNBIST, PI) ); --- Description for f10-20c, a combined input/control +-- Description for f10-20c, 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), - (INPUT, RUNBIST, PI), (CONTROL, RUNBIST, PI) ); +constant BC_5 : CELL_INFO := + ((INPUT, EXTEST, PI), (CONTROL, EXTEST, PI), + (INPUT, SAMPLE, PI), (CONTROL, SAMPLE, PI), + (INPUT, INTEST, UPD), (CONTROL, INTEST, UPD), + (INPUT, RUNBIST, PI), (CONTROL, RUNBIST, PI) ); -- Description for f10-22d, a reversible cell -constant BC_6 : CELL_INFO := +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), (BIDIR_IN, RUNBIST, UPD), (BIDIR_OUT, RUNBIST, PI) ); -end STD_1149_1_1990; -- End of 1990 Package Body +end STD_1149_1_1990; -- End of 1149.1-1990 Package Body diff --git a/jtag/data/bsdl/STD_1149_1_1994 b/jtag/data/bsdl/STD_1149_1_1994 index 5968b9da..6dc1a287 100644 --- a/jtag/data/bsdl/STD_1149_1_1994 +++ b/jtag/data/bsdl/STD_1149_1_1994 @@ -1,170 +1,259 @@ -package STD_1149_1_1994 is +-- +-- $Id$ +-- +-- Email header accompanying the original Yacc code: +-- http://www.eda.org/vug_bbs/bsdl.parser +-- +-- -----------------------------------8<-------------------------------------- +-- +-- Hello All, +-- +-- This is this first mailing of the BSDL* Version 0.0 parser specifications +-- we are sending to people who request it from our publicized E-Mail address; +-- +-- bsdl%hpmtlx@hplabs.HP.com +-- +-- You are free to redistribute this at will, but we feel that it would be +-- better if respondents asked for it directly so that their addresses can +-- be entered into our list for future mailings and updates. +-- +-- It would be helpful if you could confirm receipt of this transmission. +-- We also would be very interested to hear about your experiences with this +-- information and what you are planning to do with BSDL. +-- +-- Regards, +-- +-- Ken Parker +-- Hewlett-Packard Company +-- +-- +-- *Boundary-Scan Description Language - as documented in: +-- +-- "A Language for Describing Boundary-Scan Devices", K.P. Parker +-- and S. Oresjo, Proceedings 1990 International Test Conference, +-- Washington DC, pp 222-234 +-- +-- +-- - -----------------cut here--------------------------------------------------- +-- +-- +-- 901004.0721 Hewlett-Packard Company +-- 901016.1049 Manufacturing Test Division +-- P.O. Box 301 +-- Loveland, Colorado 80537 +-- USA +-- +-- October 1990 +-- Hello BSDL Parser Requestor, +-- +-- This Electronic Mail reply contains the computer specifications for +-- Hewlett-Packard's Version 0.0 BSDL parser. This section of the reply +-- explains the contents of the rest of this file. +-- +-- This file is composed of seven (7) parts: +-- +-- 1) How to use this file +-- +-- 2) UNIX* Lex source (lexicographical tokenizing rules) +-- +-- 3) UNIX* Yacc source (BNF-like syntax description) +-- +-- 4) A sample main program to recognize BSDL. +-- +-- 5) A BSDL description of the Texas Instruments 74bct8374 that is +-- recognized by the parser, for testing purposes. +-- +-- 6) The VHDL package STD_1149_1_1990 needed by this parser. +-- +-- 7) [added 901016] Porting experiences to other systems. +-- +-- +-- RECOMMENDATION: Save a copy of this file in archival storage before +-- processing it via the instructions below. This will +-- allow you to recover from errors, and allow you to +-- compare subsequently released data for changes. +-- +-- DISCLAIMERS: +-- +-- 1. The IEEE 1149.1 Working Group has not endorsed BSDL Version 0.0 and +-- therefore no person may represent it as an IEEE standard or imply that +-- a resulting IEEE standard will be identical to it. +-- +-- 2. The IEEE 1149.1 Working Group recognizes that BSDL Version 0.0 is a +-- well-conceived initiative that is likely to excelerate the creation +-- of tools that support the 1149.1 standard. As such, changes and +-- enhancements will be carefully considered so as not to needlessly +-- disrupt these development efforts. The overriding goal is the +-- ultimate success of the 1149.1 standard. +-- +-- LEGAL NOTICES: +-- +-- Hewlett-Packard Company makes no warranty of any kind with regard to +-- this information, including, but not limited to, the implied +-- waranties of merchantability and fitness for a particular purpose. +-- +-- Hewlett-Packard Company shall not be liable for errors contained +-- herein or direct, indirect, special, incidental, or consequential +-- damages in connection with the furnishing, performance, or use of +-- this material. +-- +-- +-- *UNIX is a trademark of AT&T in the USA and other countries. +-- + +-- STD_1149_1_1990 VHDL Package and Package Body in support of +-- BSDL Version 0.0 +-- + +-- package STD_1149_1_1990 is -- Created 900525 + package STD_1149_1_1994 is + + -- 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_DISABLE : string; + attribute INSTRUCTION_GUARD : string; + attribute INSTRUCTION_PRIVATE : string; + attribute INSTRUCTION_USAGE : string; + attribute INSTRUCTION_SEQUENCE : 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, RUNBIST); + type CELL_TYPE is (INPUT, INTERNAL, CLOCK, + 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 defered constants (see package body) + + 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; + + -- Boundary Register declarations + + attribute BOUNDARY_CELLS : string; + attribute BOUNDARY_LENGTH : integer; + attribute BOUNDARY_REGISTER : string; + + -- Miscellaneous + + attribute DESIGN_WARNING : string; +--end STD_1149_1_1990; -- End of 1149.1-1990 Package +end STD_1149_1_1994; + + +--package body STD_1149_1_1990 is -- Standard Boundary Cells + -- Written 900525 +package body STD_1149_1_1994 is + +-- Description for f10-12, f10-16, f10-18c, f10-18d, f10-21c --- 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; - --- 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_1994; -- End of 1149.1-1994 Package - -package body STD_1149_1_1994 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 f10-18, f10-29, f10-31c, f10-31d, f10-33c, f10-41d - -constant BC_1 : CELL_INFO := +constant BC_1 : CELL_INFO := ((INPUT, EXTEST, PI), (OUTPUT2, EXTEST, PI), (INPUT, SAMPLE, PI), (OUTPUT2, SAMPLE, PI), (INPUT, INTEST, PI), (OUTPUT2, INTEST, PI), + (INPUT, RUNBIST, PI), (OUTPUT2, RUNBIST, PI), (OUTPUT3, EXTEST, PI), (INTERNAL, EXTEST, PI), (OUTPUT3, SAMPLE, PI), (INTERNAL, SAMPLE, PI), (OUTPUT3, INTEST, PI), (INTERNAL, INTEST, PI), + (OUTPUT3, RUNBIST, PI), (INTERNAL, RUNBIST, PI), (CONTROL, EXTEST, PI), (CONTROLR, EXTEST, PI), (CONTROL, SAMPLE, PI), (CONTROLR, SAMPLE, PI), - (CONTROL, INTEST, PI), (CONTROLR, INTEST, PI) ); - --- Description for f10-14, f10-30, f10-32c, f10-32d, f10-35c - -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 f10-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 f10-16, f10-17 - -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 + (CONTROL, INTEST, PI), (CONTROLR, INTEST, PI), + (CONTROL, RUNBIST, PI), (CONTROLR, RUNBIST, PI) ); + +-- Description for f10-8, f10-17, f10-19c, f10-19d, f10-22c + +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 + (INPUT, RUNBIST, UPD), (OUTPUT2, RUNBIST, UPD), + (OUTPUT3, EXTEST, UPD), (INTERNAL, EXTEST, PI), + (OUTPUT3, SAMPLE, PI), (INTERNAL, SAMPLE, PI), + (OUTPUT3, INTEST, PI), (INTERNAL, INTEST, UPD), + (OUTPUT3, RUNBIST, PI), (INTERNAL, RUNBIST, UPD), + (CONTROL, EXTEST, UPD), (CONTROLR, EXTEST, UPD), + (CONTROL, SAMPLE, PI), (CONTROLR, SAMPLE, PI), + (CONTROL, INTEST, PI), (CONTROLR, INTEST, PI), + (CONTROL, RUNBIST, PI), (CONTROLR, RUNBIST, PI) ); + +-- Description for f10-9 + +constant BC_3 : CELL_INFO := + ((INPUT, EXTEST, PI), (INTERNAL, EXTEST, PI), + (INPUT, SAMPLE, PI), (INTERNAL, SAMPLE, PI), + (INPUT, INTEST, PI), (INTERNAL, INTEST, PI), + (INPUT, RUNBIST, PI), (INTERNAL, RUNBIST, PI) ); + +-- Description for f10-10, f10-11 + +constant BC_4 : CELL_INFO := + ((INPUT, EXTEST, PI), -- Intest on input not supported + (INPUT, SAMPLE, PI), -- Runbist on input not supported (CLOCK, EXTEST, PI), (INTERNAL, EXTEST, PI), (CLOCK, SAMPLE, PI), (INTERNAL, SAMPLE, PI), - (CLOCK, INTEST, PI), (INTERNAL, INTEST, PI) ); + (CLOCK, INTEST, PI), (INTERNAL, INTEST, PI), + (CLOCK, RUNBIST, PI), (INTERNAL, RUNBIST, PI) ); --- Description for f10-41c, a combined input/control +-- Description for f10-20c, a combined Input/Control -constant BC_5 : CELL_INFO := +constant BC_5 : CELL_INFO := ((INPUT, EXTEST, PI), (CONTROL, EXTEST, PI), (INPUT, SAMPLE, PI), (CONTROL, SAMPLE, PI), - (INPUT, INTEST, UPD), (CONTROL, INTEST, UPD) ); + (INPUT, INTEST, UPD), (CONTROL, INTEST, UPD), + (INPUT, RUNBIST, PI), (CONTROL, RUNBIST, PI) ); --- Description for f10-35d, a reversible cell --- !! Not recommended; replaced by BC_7 below !! +-- Description for f10-22d, a reversible cell -constant BC_6 : CELL_INFO := +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 f10-34d, 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) ); + (BIDIR_IN, INTEST, UPD), (BIDIR_OUT, INTEST, PI), + (BIDIR_IN, RUNBIST, UPD), (BIDIR_OUT, RUNBIST, PI) ); -end STD_1149_1_1994; -- End of IEEE Std 1149.1-1994 Package Body +--end STD_1149_1_1990; -- End of 1149.1-1990 Package Body +end STD_1149_1_1994; diff --git a/jtag/src/bsdl/bsdl_bison.y b/jtag/src/bsdl/bsdl_bison.y index 43784300..5ab77cc8 100644 --- a/jtag/src/bsdl/bsdl_bison.y +++ b/jtag/src/bsdl/bsdl_bison.y @@ -16,6 +16,7 @@ /* Email header accompanying the original Yacc code: + http://www.eda.org/vug_bbs/bsdl.parser -----------------------------------8<-------------------------------------- diff --git a/jtag/src/bsdl/bsdl_flex.l b/jtag/src/bsdl/bsdl_flex.l index 43f2e9b8..f80d013e 100644 --- a/jtag/src/bsdl/bsdl_flex.l +++ b/jtag/src/bsdl/bsdl_flex.l @@ -16,6 +16,7 @@ /* Email header accompanying the original Yacc code: + http://www.eda.org/vug_bbs/bsdl.parser -----------------------------------8<--------------------------------------