⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idcode.jam

📁 1) H.264 decoder 2) H.264 encoder
💻 JAM
📖 第 1 页 / 共 4 页
字号:
NOTE "CREATOR" "Altera Chain Interrogation Version 4.0";
'               Copyright (c) 1999-2005 Altera Corporation.  All Rights Reserved.
'               File name:  IDCODE.JAM

NOTE "DATE" "2005/09/16";
NOTE "ALG_VERSION" "1";
NOTE "STAPL_VERSION" "JESD71";
NOTE "MAX_FREQ" "10000000";

ACTION read_idcode = header                    RECOMMENDED,
                     check_chain               RECOMMENDED,
                     compute_number_of_devices RECOMMENDED,
                     compute_ir_length         RECOMMENDED,
                     read_the_idcode           RECOMMENDED,
                     device_identifier         RECOMMENDED,
                     exiting;

DATA data_chain;
  ' Global Constants
  INTEGER max_num_devices = 100;
  INTEGER max_ir_length = 1020; 'Suggested value (max_devices)*10 + ~20 extra
  INTEGER max_idlength = max_num_devices * 32;
  BOOLEAN all_zeros[3200];
  BOOLEAN all_ones[3200] =   $FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
  BOOLEAN zeros_ones[max_ir_length*2] 
                           = $FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
                              0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
                              0000000000000000000000000000000000000000000000000000000;
  BOOLEAN patterns[3200] =   $FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4321;
  BOOLEAN id_capture[3200] = $FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                              FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
  ' Global Variables
  INTEGER num_devices = max_num_devices; 'Initialize to max_num_devices in case compute_number_of_devices is skipped.
  BOOLEAN read_instruction[1600];
  INTEGER ir_length;
  BOOLEAN ir_capture[max_ir_length];
  INTEGER device_list[max_num_devices]; 'Stores a list of integers representing the device names
  BOOLEAN read_data[2*max_ir_length];
  BOOLEAN stuck_tdo_flag; 'temporary flag
  INTEGER i_device;
  INTEGER offset;
  BOOLEAN idval[32];
  BOOLEAN id_match;
  BOOLEAN id_match_cum;
ENDDATA;

PROCEDURE header;
  PRINT "******************************************************************************";
  PRINT "* Altera Chain Interrogation Version 4.0                                     *";
  PRINT "*   Copyright (c) 1999-2005 Altera Corporation.  All Rights Reserved.        *";
ENDPROC;

PROCEDURE check_chain USES data_chain;
  PRINT "******************************************************************************";
  PRINT "Chain Continuity Checker";
  STATE RESET;
  IRSCAN max_ir_length, all_ones[(max_ir_length-1)..0], COMPARE all_ones[(max_ir_length-1)..0], all_ones[(max_ir_length-1)..0], stuck_tdo_flag;
  IF (stuck_tdo_flag == 1) THEN PRINT "  ****************************************************************************";
  IF (stuck_tdo_flag == 1) THEN PRINT "  *** Chain Continuity Failure (1) -- IR is returning TDO with all ones    ***";
  IF (stuck_tdo_flag == 1) THEN PRINT "  *** Check Cable Connection; Check Cable Power; Check Signal Integrity    ***";
  IF (stuck_tdo_flag == 1) THEN PRINT "  *** Check TDO connection; Check TDO polarity of Player                   ***";
  IF (stuck_tdo_flag == 1) THEN PRINT "  ****************************************************************************";
  IF (stuck_tdo_flag == 1) THEN EXIT (1);
  STATE RESET;
  IRSCAN max_ir_length, all_ones[(max_ir_length-1)..0], COMPARE all_zeros[(max_ir_length-1)..0], all_ones[(max_ir_length-1)..0], stuck_tdo_flag;
  IF (stuck_tdo_flag == 1) THEN PRINT "  ****************************************************************************";
  IF (stuck_tdo_flag == 1) THEN PRINT "  *** Chain Continuity Failure (2) -- IR is returning with TDO all zeros   ***";
  IF (stuck_tdo_flag == 1) THEN PRINT "  *** Check Board Power; Check Cable Power; Check Signal Integrity         ***";
  IF (stuck_tdo_flag == 1) THEN PRINT "  ****************************************************************************";
  IF (stuck_tdo_flag == 1) THEN EXIT (1);
  'XXXXXXXXX Should add test for leading 10 for IR capture of first device
  PRINT "  Chain Continuity during IR is not stuck at zero or one";
  'XXXXXXXXX Should add test for known pattern coming out of TDO
ENDPROC;

PROCEDURE compute_number_of_devices USES data_chain;
  PRINT "******************************************************************************";
  PRINT "Chain Length -- Load IR of all ones then count DR length";
  INTEGER device_count;
  num_devices = 0;
  STATE RESET;
  IRSCAN max_ir_length, all_ones[max_ir_length-1..0], CAPTURE ir_capture[max_ir_length-1..0];
  DRSCAN (max_num_devices+1+16), patterns[max_num_devices+16..0], CAPTURE read_data[max_num_devices+16..0];
  FOR device_count=0 TO max_num_devices - 1;
    IF (read_data[device_count] == 0) THEN num_devices = num_devices + 1;
    IF (read_data[device_count] != 0) THEN device_count = max_num_devices - 1; 'terminating condition
  NEXT device_count;
  BOOLEAN pattern_det;
  pattern_det =   (read_data[num_devices     ] == 1)  'Array compare to value $4321
               && (read_data[num_devices +  1] == 0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -