1 |
2 |
sukhanov |
NOTE "CREATOR" "Altera Chain Interrogation Version 5.0";
|
2 |
|
|
' Copyright (c) 1999-2007 Altera Corporation. All Rights Reserved.
|
3 |
|
|
' File name: IDCODE.JAM
|
4 |
|
|
|
5 |
|
|
NOTE "DATE" "2007/12/24";
|
6 |
|
|
NOTE "ALG_VERSION" "1";
|
7 |
|
|
NOTE "STAPL_VERSION" "JESD71";
|
8 |
|
|
NOTE "MAX_FREQ" "10000000";
|
9 |
|
|
|
10 |
|
|
ACTION read_idcode = header RECOMMENDED,
|
11 |
|
|
check_chain RECOMMENDED,
|
12 |
|
|
compute_number_of_devices RECOMMENDED,
|
13 |
|
|
compute_ir_length RECOMMENDED,
|
14 |
|
|
read_the_idcode RECOMMENDED,
|
15 |
|
|
device_identifier RECOMMENDED,
|
16 |
|
|
exiting;
|
17 |
|
|
|
18 |
|
|
DATA data_chain;
|
19 |
|
|
' Global Constants
|
20 |
|
|
INTEGER max_num_devices = 100;
|
21 |
|
|
INTEGER max_ir_length = 1020; 'Suggested value (max_devices)*10 + ~20 extra
|
22 |
|
|
INTEGER max_idlength = max_num_devices * 32;
|
23 |
|
|
BOOLEAN all_zeros[3200];
|
24 |
|
|
BOOLEAN all_ones[3200] = $FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
25 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
26 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
27 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
28 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
29 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
30 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
31 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
|
32 |
|
|
BOOLEAN zeros_ones[max_ir_length*2]
|
33 |
|
|
= $FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
34 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
35 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
36 |
|
|
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
37 |
|
|
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
38 |
|
|
0000000000000000000000000000000000000000000000000000000;
|
39 |
|
|
BOOLEAN patterns[3200] = $FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
40 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
41 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
42 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
43 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
44 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
45 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
46 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4321;
|
47 |
|
|
BOOLEAN id_capture[3200] = $FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
48 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
49 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
50 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
51 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
52 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
53 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
54 |
|
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
|
55 |
|
|
' Global Variables
|
56 |
|
|
INTEGER num_devices = max_num_devices; 'Initialize to max_num_devices in case compute_number_of_devices is skipped.
|
57 |
|
|
BOOLEAN read_instruction[1600];
|
58 |
|
|
INTEGER ir_length;
|
59 |
|
|
BOOLEAN ir_capture[max_ir_length];
|
60 |
|
|
INTEGER device_list[max_num_devices]; 'Stores a list of integers representing the device names
|
61 |
|
|
BOOLEAN read_data[2*max_ir_length];
|
62 |
|
|
BOOLEAN stuck_tdo_flag; 'temporary flag
|
63 |
|
|
INTEGER i_device;
|
64 |
|
|
INTEGER offset;
|
65 |
|
|
BOOLEAN idval[32];
|
66 |
|
|
BOOLEAN id_match;
|
67 |
|
|
BOOLEAN id_match_cum;
|
68 |
|
|
ENDDATA;
|
69 |
|
|
|
70 |
|
|
PROCEDURE header;
|
71 |
|
|
PRINT "******************************************************************************";
|
72 |
|
|
PRINT "* Altera Chain Interrogation Version 5.0 *";
|
73 |
|
|
PRINT "* Copyright (c) 1999-2007 Altera Corporation. All Rights Reserved. *";
|
74 |
|
|
ENDPROC;
|
75 |
|
|
|
76 |
|
|
PROCEDURE check_chain USES data_chain;
|
77 |
|
|
PRINT "******************************************************************************";
|
78 |
|
|
PRINT "Chain Continuity Checker";
|
79 |
|
|
STATE RESET;
|
80 |
|
|
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;
|
81 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " ****************************************************************************";
|
82 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " *** Chain Continuity Failure (1) -- IR is returning TDO with all ones ***";
|
83 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " *** Check Cable Connection; Check Cable Power; Check Signal Integrity ***";
|
84 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " *** Check TDO connection; Check TDO polarity of Player ***";
|
85 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " ****************************************************************************";
|
86 |
|
|
IF (stuck_tdo_flag == 1) THEN EXIT (1);
|
87 |
|
|
STATE RESET;
|
88 |
|
|
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;
|
89 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " ****************************************************************************";
|
90 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " *** Chain Continuity Failure (2) -- IR is returning with TDO all zeros ***";
|
91 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " *** Check Board Power; Check Cable Power; Check Signal Integrity ***";
|
92 |
|
|
IF (stuck_tdo_flag == 1) THEN PRINT " ****************************************************************************";
|
93 |
|
|
IF (stuck_tdo_flag == 1) THEN EXIT (1);
|
94 |
|
|
'XXXXXXXXX Should add test for leading 10 for IR capture of first device
|
95 |
|
|
PRINT " Chain Continuity during IR is not stuck at zero or one";
|
96 |
|
|
'XXXXXXXXX Should add test for known pattern coming out of TDO
|
97 |
|
|
ENDPROC;
|
98 |
|
|
|
99 |
|
|
PROCEDURE compute_number_of_devices USES data_chain;
|
100 |
|
|
PRINT "******************************************************************************";
|
101 |
|
|
PRINT "Chain Length -- Load IR of all ones then count DR length";
|
102 |
|
|
INTEGER device_count;
|
103 |
|
|
num_devices = 0;
|
104 |
|
|
STATE RESET;
|
105 |
|
|
IRSCAN max_ir_length, all_ones[max_ir_length-1..0], CAPTURE ir_capture[max_ir_length-1..0];
|
106 |
|
|
DRSCAN (max_num_devices+1+16), patterns[max_num_devices+16..0], CAPTURE read_data[max_num_devices+16..0];
|
107 |
|
|
FOR device_count=0 TO max_num_devices - 1;
|
108 |
|
|
IF (read_data[device_count] == 0) THEN num_devices = num_devices + 1;
|
109 |
|
|
IF (read_data[device_count] != 0) THEN device_count = max_num_devices - 1; 'terminating condition
|
110 |
|
|
NEXT device_count;
|
111 |
|
|
BOOLEAN pattern_det;
|
112 |
|
|
pattern_det = (read_data[num_devices ] == 1) 'Array compare to value $4321
|
113 |
|
|
&& (read_data[num_devices + 1] == 0)
|
114 |
|
|
&& (read_data[num_devices + 2] == 0)
|
115 |
|
|
&& (read_data[num_devices + 3] == 0)
|
116 |
|
|
&& (read_data[num_devices + 4] == 0)
|
117 |
|
|
&& (read_data[num_devices + 5] == 1)
|
118 |
|
|
&& (read_data[num_devices + 6] == 0)
|
119 |
|
|
&& (read_data[num_devices + 7] == 0)
|
120 |
|
|
&& (read_data[num_devices + 8] == 1)
|
121 |
|
|
&& (read_data[num_devices + 9] == 1)
|
122 |
|
|
&& (read_data[num_devices + 10] == 0)
|
123 |
|
|
&& (read_data[num_devices + 11] == 0)
|
124 |
|
|
&& (read_data[num_devices + 12] == 0)
|
125 |
|
|
&& (read_data[num_devices + 13] == 0)
|
126 |
|
|
&& (read_data[num_devices + 14] == 1)
|
127 |
|
|
&& (read_data[num_devices + 15] == 0);
|
128 |
|
|
|
129 |
|
|
IF (pattern_det == 0) THEN PRINT " ****************************************************************************";
|
130 |
|
|
IF (pattern_det == 0) THEN PRINT " *** Chain Continuity Failure (3) -- DR of Bypass detects an unexpected ***";
|
131 |
|
|
IF (pattern_det == 0) THEN PRINT " *** non-zero pattern ***";
|
132 |
|
|
IF (pattern_det == 0) THEN PRINT " *** Check JTAG Chain -- Probably a break in TDI to TDO chain between ***";
|
133 |
|
|
IF (pattern_det == 0) THEN PRINT " *** devices #",num_devices," and #", num_devices+1, " (counting from TDO) because ", num_devices, " zeros were shifted ***";
|
134 |
|
|
IF (pattern_det == 0) THEN PRINT " *** out successfully before encountering the unexpected values. ***";
|
135 |
|
|
IF (pattern_det == 0) THEN PRINT " *** Check Signal Integrity ***";
|
136 |
|
|
IF (pattern_det == 0) THEN PRINT " ****************************************************************************";
|
137 |
|
|
IF (pattern_det == 0) THEN EXIT(2);
|
138 |
|
|
PRINT " Number of Devices is ", num_devices;
|
139 |
|
|
IF (num_devices == 0) THEN PRINT " ****************************************************************************";
|
140 |
|
|
IF (num_devices == 0) THEN PRINT " *** Chain Continuity Failure (4) -- DR of Bypass shows Chain length of ***";
|
141 |
|
|
IF (num_devices == 0) THEN PRINT " *** zero devices ***";
|
142 |
|
|
IF (num_devices == 0) THEN PRINT " *** Check JTAG Chain; Check Signal Integrity ***";
|
143 |
|
|
IF (num_devices == 0) THEN PRINT " ****************************************************************************";
|
144 |
|
|
IF (num_devices == 0) THEN EXIT(2);
|
145 |
|
|
IF (num_devices > 100) THEN PRINT " ****************************************************************************";
|
146 |
|
|
IF (num_devices > 100) THEN PRINT " *** Error: Number devices in chain exceeds maximum number of devices ***";
|
147 |
|
|
IF (num_devices > 100) THEN PRINT " *** that this file can support. ***";
|
148 |
|
|
IF (num_devices > 100) THEN PRINT " ****************************************************************************";
|
149 |
|
|
IF (num_devices > 100) THEN EXIT(2);
|
150 |
|
|
ENDPROC;
|
151 |
|
|
|
152 |
|
|
PROCEDURE compute_ir_length USES data_chain;
|
153 |
|
|
PRINT "******************************************************************************";
|
154 |
|
|
PRINT "IR Length Calculator";
|
155 |
|
|
IRSCAN max_ir_length*2, zeros_ones[(max_ir_length*2-1)..0], CAPTURE read_data[(max_ir_length*2-1)..0];
|
156 |
|
|
ir_length = 0;
|
157 |
|
|
INTEGER i_irlen;
|
158 |
|
|
FOR i_irlen = (max_ir_length) TO (max_ir_length*2-1);
|
159 |
|
|
IF (read_data[i_irlen] == 0) THEN ir_length = ir_length + 1;
|
160 |
|
|
NEXT i_irlen;
|
161 |
|
|
PRINT " Instruction Register Length is ", ir_length;
|
162 |
|
|
ENDPROC;
|
163 |
|
|
|
164 |
|
|
PROCEDURE read_the_idcode USES data_chain;
|
165 |
|
|
PRINT "******************************************************************************";
|
166 |
|
|
PRINT "IDCODE Reader";
|
167 |
|
|
STATE RESET;
|
168 |
|
|
DRSCAN max_idlength, all_ones[max_idlength-1..0], CAPTURE id_capture[max_idlength-1..0];
|
169 |
|
|
PRINT " ---------- | ---- ------------------- ------------- - |";
|
170 |
|
|
PRINT " TDO -> TDI | Rev Device Mfgr 1 |";
|
171 |
|
|
PRINT " ---------- | ---- ------------------- ------------- - |";
|
172 |
|
|
offset = 0;
|
173 |
|
|
FOR i_device = 1 to num_devices;
|
174 |
|
|
IF (id_capture[offset] == 0) THEN GOTO no_optional_idcode_read;
|
175 |
|
|
'IDCODE supported
|
176 |
|
|
PRINT " Device #", i_device, " | " ,
|
177 |
|
|
'revision
|
178 |
|
|
id_capture[offset + 31], id_capture[offset + 30], id_capture[offset + 29], id_capture[offset + 28], " ",
|
179 |
|
|
'device
|
180 |
|
|
id_capture[offset + 27], id_capture[offset + 26], id_capture[offset + 25], id_capture[offset + 24], " ",
|
181 |
|
|
id_capture[offset + 23], id_capture[offset + 22], id_capture[offset + 21], id_capture[offset + 20], " ",
|
182 |
|
|
id_capture[offset + 19], id_capture[offset + 18], id_capture[offset + 17], id_capture[offset + 16], " ",
|
183 |
|
|
id_capture[offset + 15], id_capture[offset + 14], id_capture[offset + 13], id_capture[offset + 12], " ",
|
184 |
|
|
'vendor
|
185 |
|
|
id_capture[offset + 11], id_capture[offset + 10], id_capture[offset + 9], id_capture[offset + 8], " ",
|
186 |
|
|
id_capture[offset + 7], id_capture[offset + 6], id_capture[offset + 5], id_capture[offset + 4], " ",
|
187 |
|
|
id_capture[offset + 3], id_capture[offset + 2], id_capture[offset + 1], " ",
|
188 |
|
|
'mandatory 1
|
189 |
|
|
id_capture[offset], " | ";
|
190 |
|
|
offset = offset + 32;
|
191 |
|
|
GOTO end_device_idcode_read;
|
192 |
|
|
'IDCODE not supported
|
193 |
|
|
no_optional_idcode_read:
|
194 |
|
|
PRINT " Device #", i_device, " | .... .... .... .... .... .... .... ... 0 | No IDCODE support";
|
195 |
|
|
offset = offset+1;
|
196 |
|
|
end_device_idcode_read:
|
197 |
|
|
NEXT i_device;
|
198 |
|
|
PRINT " ---------- | ---- ------------------- ------------- - |";
|
199 |
|
|
' Should add test for remaining bits being 1
|
200 |
|
|
ENDPROC;
|
201 |
|
|
|
202 |
|
|
PROCEDURE device_identifier USES data_chain, compare_one_idval, compare_known_idvals;
|
203 |
|
|
PRINT "******************************************************************************";
|
204 |
|
|
PRINT "Device Identifier -- Search for device name from list of device IDCODE values";
|
205 |
|
|
PRINT " ---------- | ------------------- ------------- |";
|
206 |
|
|
PRINT " TDO -> TDI | Device Mfgr |";
|
207 |
|
|
PRINT " ---------- | ------------------- ------------- |";
|
208 |
|
|
offset = 0;
|
209 |
|
|
FOR i_device = 1 to num_devices;
|
210 |
|
|
IF (id_capture[offset] == 0) THEN GOTO no_optional_idcode_ident;
|
211 |
|
|
'IDCODE supported
|
212 |
|
|
CALL compare_known_idvals;
|
213 |
|
|
offset = offset + 32;
|
214 |
|
|
GOTO end_device_idcode_ident;
|
215 |
|
|
'IDCODE not supported
|
216 |
|
|
no_optional_idcode_ident:
|
217 |
|
|
PRINT " Device #", i_device, " | No IDCODE support |";
|
218 |
|
|
offset = offset+1;
|
219 |
|
|
end_device_idcode_ident:
|
220 |
|
|
NEXT i_device;
|
221 |
|
|
PRINT " ---------- | ------------------- ------------- - |";
|
222 |
|
|
' Should add test for remaining bits being 1
|
223 |
|
|
ENDPROC;
|
224 |
|
|
|
225 |
|
|
PROCEDURE compare_known_idvals USES data_chain, compare_one_idval;
|
226 |
|
|
id_match_cum = 0;
|
227 |
|
|
'***** Altera MAX 7000 *****
|
228 |
|
|
idval[31..0] = $070320DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7032S Altera |"; IF id_match == 1 THEN device_list[i_device] = 1;
|
229 |
|
|
idval[31..0] = $070640DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7064S Altera |"; IF id_match == 1 THEN device_list[i_device] = 2;
|
230 |
|
|
idval[31..0] = $070960DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7096S Altera |"; IF id_match == 1 THEN device_list[i_device] = 3;
|
231 |
|
|
idval[31..0] = $071280DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7128S/A Altera |"; IF id_match == 1 THEN device_list[i_device] = 4;
|
232 |
|
|
idval[31..0] = $071600DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7160S Altera |"; IF id_match == 1 THEN device_list[i_device] = 5;
|
233 |
|
|
idval[31..0] = $071920DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7192S Altera |"; IF id_match == 1 THEN device_list[i_device] = 6;
|
234 |
|
|
idval[31..0] = $072560DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7256S/A Altera |"; IF id_match == 1 THEN device_list[i_device] = 7;
|
235 |
|
|
idval[31..0] = $170320DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7032AE/EPM3032A Altera |"; IF id_match == 1 THEN device_list[i_device] = 8;
|
236 |
|
|
idval[31..0] = $170640DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7064AE/EPM3064A Altera |"; IF id_match == 1 THEN device_list[i_device] = 9;
|
237 |
|
|
idval[31..0] = $171280DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7128AE/EPM3128A Altera |"; IF id_match == 1 THEN device_list[i_device] = 10;
|
238 |
|
|
idval[31..0] = $172560DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7256AE/EPM3256A Altera |"; IF id_match == 1 THEN device_list[i_device] = 11;
|
239 |
|
|
idval[31..0] = $175120DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7512AE/EPM3512A Altera |"; IF id_match == 1 THEN device_list[i_device] = 12;
|
240 |
|
|
idval[31..0] = $270320DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7032B Altera |"; IF id_match == 1 THEN device_list[i_device] = 13;
|
241 |
|
|
idval[31..0] = $270640DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7064B Altera |"; IF id_match == 1 THEN device_list[i_device] = 14;
|
242 |
|
|
idval[31..0] = $271280DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7128B Altera |"; IF id_match == 1 THEN device_list[i_device] = 15;
|
243 |
|
|
idval[31..0] = $272560DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7256B Altera |"; IF id_match == 1 THEN device_list[i_device] = 16;
|
244 |
|
|
idval[31..0] = $275120DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM7512B Altera |"; IF id_match == 1 THEN device_list[i_device] = 17;
|
245 |
|
|
|
246 |
|
|
'***** Altera MAX 9000 *****
|
247 |
|
|
idval[31..0] = $093200DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM9320/A Altera |"; IF id_match == 1 THEN device_list[i_device] = 18;
|
248 |
|
|
idval[31..0] = $094000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM9400 Altera |"; IF id_match == 1 THEN device_list[i_device] = 19;
|
249 |
|
|
idval[31..0] = $094800DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM9480 Altera |"; IF id_match == 1 THEN device_list[i_device] = 20;
|
250 |
|
|
idval[31..0] = $095600DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM9560/A Altera |"; IF id_match == 1 THEN device_list[i_device] = 21;
|
251 |
|
|
|
252 |
|
|
'***** Altera MAX II *****
|
253 |
|
|
idval[31..0] = $020A10DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM240 Altera |"; IF id_match == 1 THEN device_list[i_device] = 22;
|
254 |
|
|
idval[31..0] = $020A20DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM570 Altera |"; IF id_match == 1 THEN device_list[i_device] = 23;
|
255 |
|
|
idval[31..0] = $020A30DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM1270 Altera |"; IF id_match == 1 THEN device_list[i_device] = 24;
|
256 |
|
|
idval[31..0] = $020A40DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM2210 Altera |"; IF id_match == 1 THEN device_list[i_device] = 25;
|
257 |
|
|
idval[31..0] = $020A50DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM240Z Altera |"; IF id_match == 1 THEN device_list[i_device] = 26;
|
258 |
|
|
idval[31..0] = $020A60DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPM570Z Altera |"; IF id_match == 1 THEN device_list[i_device] = 27;
|
259 |
|
|
|
260 |
|
|
'***** Altera EPC *****
|
261 |
|
|
idval[31..0] = $010020DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPC2 Altera |"; IF id_match == 1 THEN device_list[i_device] = 28;
|
262 |
|
|
idval[31..0] = $0100A0DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPC4/EPC8/EPC16 Altera |"; IF id_match == 1 THEN device_list[i_device] = 29;
|
263 |
|
|
|
264 |
|
|
'***** Altera APEX 20K/E/C *****
|
265 |
|
|
idval[31..0] = $004160DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K100 Altera |"; IF id_match == 1 THEN device_list[i_device] = 30;
|
266 |
|
|
idval[31..0] = $008320DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K200 Altera |"; IF id_match == 1 THEN device_list[i_device] = 31;
|
267 |
|
|
idval[31..0] = $016640DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K400 Altera |"; IF id_match == 1 THEN device_list[i_device] = 32;
|
268 |
|
|
idval[31..0] = $080300DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K30E Altera |"; IF id_match == 1 THEN device_list[i_device] = 33;
|
269 |
|
|
idval[31..0] = $080600DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K60E Altera |"; IF id_match == 1 THEN device_list[i_device] = 34;
|
270 |
|
|
idval[31..0] = $081000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K100E Altera |"; IF id_match == 1 THEN device_list[i_device] = 35;
|
271 |
|
|
idval[31..0] = $081600DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K160E Altera |"; IF id_match == 1 THEN device_list[i_device] = 36;
|
272 |
|
|
idval[31..0] = $082000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K200E/C Altera |"; IF id_match == 1 THEN device_list[i_device] = 37;
|
273 |
|
|
idval[31..0] = $083000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K300E Altera |"; IF id_match == 1 THEN device_list[i_device] = 38;
|
274 |
|
|
idval[31..0] = $084000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K400E/C Altera |"; IF id_match == 1 THEN device_list[i_device] = 39;
|
275 |
|
|
idval[31..0] = $086000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K600E/C Altera |"; IF id_match == 1 THEN device_list[i_device] = 40;
|
276 |
|
|
idval[31..0] = $090000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K1000E/C Altera |"; IF id_match == 1 THEN device_list[i_device] = 41;
|
277 |
|
|
idval[31..0] = $095000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP20K1500E Altera |"; IF id_match == 1 THEN device_list[i_device] = 42;
|
278 |
|
|
|
279 |
|
|
'***** Altera APEX II *****
|
280 |
|
|
idval[31..0] = $0C4000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2A15 Altera |"; IF id_match == 1 THEN device_list[i_device] = 43;
|
281 |
|
|
idval[31..0] = $0C6000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2A25 Altera |"; IF id_match == 1 THEN device_list[i_device] = 44;
|
282 |
|
|
idval[31..0] = $0D0000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2A40 Altera |"; IF id_match == 1 THEN device_list[i_device] = 45;
|
283 |
|
|
idval[31..0] = $0E0000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2A70 Altera |"; IF id_match == 1 THEN device_list[i_device] = 46;
|
284 |
|
|
|
285 |
|
|
'***** Altera FLEX10K/E and ACEX 1K *****
|
286 |
|
|
idval[31..0] = $010100DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K10/A Altera |"; IF id_match == 1 THEN device_list[i_device] = 47;
|
287 |
|
|
idval[31..0] = $010200DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K20 Altera |"; IF id_match == 1 THEN device_list[i_device] = 48;
|
288 |
|
|
idval[31..0] = $010300DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K30/A Altera |"; IF id_match == 1 THEN device_list[i_device] = 49;
|
289 |
|
|
idval[31..0] = $010400DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K40 Altera |"; IF id_match == 1 THEN device_list[i_device] = 50;
|
290 |
|
|
idval[31..0] = $010500DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K50/V Altera |"; IF id_match == 1 THEN device_list[i_device] = 51;
|
291 |
|
|
idval[31..0] = $010700DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K70 Altera |"; IF id_match == 1 THEN device_list[i_device] = 52;
|
292 |
|
|
idval[31..0] = $001000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K100/A Altera |"; IF id_match == 1 THEN device_list[i_device] = 53;
|
293 |
|
|
idval[31..0] = $001300DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K130V Altera |"; IF id_match == 1 THEN device_list[i_device] = 54;
|
294 |
|
|
idval[31..0] = $002500DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K250A Altera |"; IF id_match == 1 THEN device_list[i_device] = 55;
|
295 |
|
|
idval[31..0] = $101000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K100B Altera |"; IF id_match == 1 THEN device_list[i_device] = 56;
|
296 |
|
|
idval[31..0] = $110100DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1K10 Altera |"; IF id_match == 1 THEN device_list[i_device] = 57;
|
297 |
|
|
idval[31..0] = $110300DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1K30/EPF10K30E Altera |"; IF id_match == 1 THEN device_list[i_device] = 58;
|
298 |
|
|
idval[31..0] = $110500DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1K50/EPF10K50E/S Altera |"; IF id_match == 1 THEN device_list[i_device] = 59;
|
299 |
|
|
idval[31..0] = $201000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1K100/EPF10K100E Altera |"; IF id_match == 1 THEN device_list[i_device] = 60;
|
300 |
|
|
idval[31..0] = $101300DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K130E Altera |"; IF id_match == 1 THEN device_list[i_device] = 61;
|
301 |
|
|
idval[31..0] = $102000DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EPF10K200E/S Altera |"; IF id_match == 1 THEN device_list[i_device] = 62;
|
302 |
|
|
|
303 |
|
|
'***** Altera Stratix *****
|
304 |
|
|
idval[31..0] = $020010DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1S10 Altera |"; IF id_match == 1 THEN device_list[i_device] = 63;
|
305 |
|
|
idval[31..0] = $020020DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1S20 Altera |"; IF id_match == 1 THEN device_list[i_device] = 64;
|
306 |
|
|
idval[31..0] = $020030DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1S25 Altera |"; IF id_match == 1 THEN device_list[i_device] = 65;
|
307 |
|
|
idval[31..0] = $020040DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1S30 Altera |"; IF id_match == 1 THEN device_list[i_device] = 66;
|
308 |
|
|
idval[31..0] = $020050DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1S40 Altera |"; IF id_match == 1 THEN device_list[i_device] = 67;
|
309 |
|
|
idval[31..0] = $020060DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1S60 Altera |"; IF id_match == 1 THEN device_list[i_device] = 68;
|
310 |
|
|
idval[31..0] = $020070DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1S80 Altera |"; IF id_match == 1 THEN device_list[i_device] = 69;
|
311 |
|
|
|
312 |
|
|
'***** Altera Stratix II*****
|
313 |
|
|
idval[31..0] = $020910DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2S15 Altera |"; IF id_match == 1 THEN device_list[i_device] = 70;
|
314 |
|
|
idval[31..0] = $020920DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2S30 Altera |"; IF id_match == 1 THEN device_list[i_device] = 71;
|
315 |
|
|
idval[31..0] = $120930DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2S60 Altera |"; IF id_match == 1 THEN device_list[i_device] = 72;
|
316 |
|
|
idval[31..0] = $020940DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2S90 Altera |"; IF id_match == 1 THEN device_list[i_device] = 73;
|
317 |
|
|
idval[31..0] = $020950DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2S130 Altera |"; IF id_match == 1 THEN device_list[i_device] = 74;
|
318 |
|
|
idval[31..0] = $020960DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2S180 Altera |"; IF id_match == 1 THEN device_list[i_device] = 75;
|
319 |
|
|
|
320 |
|
|
'***** Altera Stratix III *****
|
321 |
|
|
idval[31..0] = $021080DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SL50 Altera |"; IF id_match == 1 THEN device_list[i_device] = 76;
|
322 |
|
|
idval[31..0] = $021010DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SL70 Altera |"; IF id_match == 1 THEN device_list[i_device] = 77;
|
323 |
|
|
idval[31..0] = $021090DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SL110 Altera |"; IF id_match == 1 THEN device_list[i_device] = 78;
|
324 |
|
|
idval[31..0] = $021020DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SL150 Altera |"; IF id_match == 1 THEN device_list[i_device] = 79;
|
325 |
|
|
idval[31..0] = $021030DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SL200 Altera |"; IF id_match == 1 THEN device_list[i_device] = 80;
|
326 |
|
|
idval[31..0] = $021050DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SL340 Altera |"; IF id_match == 1 THEN device_list[i_device] = 81;
|
327 |
|
|
idval[31..0] = $021060DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SE50 Altera |"; IF id_match == 1 THEN device_list[i_device] = 82;
|
328 |
|
|
idval[31..0] = $0210A0DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SE80 Altera |"; IF id_match == 1 THEN device_list[i_device] = 83;
|
329 |
|
|
idval[31..0] = $021070DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SE110 Altera |"; IF id_match == 1 THEN device_list[i_device] = 84;
|
330 |
|
|
idval[31..0] = $021040DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3SE260 Altera |"; IF id_match == 1 THEN device_list[i_device] = 85;
|
331 |
|
|
|
332 |
|
|
'***** Altera Stratix GX *****
|
333 |
|
|
idval[31..0] = $020410DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1SGX10 Altera |"; IF id_match == 1 THEN device_list[i_device] = 86;
|
334 |
|
|
idval[31..0] = $020430DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1SGX25 Altera |"; IF id_match == 1 THEN device_list[i_device] = 87;
|
335 |
|
|
idval[31..0] = $020450DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1SGX40 Altera |"; IF id_match == 1 THEN device_list[i_device] = 88;
|
336 |
|
|
|
337 |
|
|
'***** Altera Stratix II GX *****
|
338 |
|
|
idval[31..0] = $020E10DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2SGX30 Altera |"; IF id_match == 1 THEN device_list[i_device] = 89;
|
339 |
|
|
idval[31..0] = $020E20DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2SGX60 Altera |"; IF id_match == 1 THEN device_list[i_device] = 90;
|
340 |
|
|
idval[31..0] = $020E30DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2SGX90 Altera |"; IF id_match == 1 THEN device_list[i_device] = 91;
|
341 |
|
|
idval[31..0] = $020E40DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2SGX130 Altera |"; IF id_match == 1 THEN device_list[i_device] = 92;
|
342 |
|
|
|
343 |
|
|
'***** Altera Arria GX *****
|
344 |
|
|
idval[31..0] = $021210DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1AGX20 Altera |"; IF id_match == 1 THEN device_list[i_device] = 93;
|
345 |
|
|
idval[31..0] = $021210DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1AGX35 Altera |"; IF id_match == 1 THEN device_list[i_device] = 94;
|
346 |
|
|
idval[31..0] = $021220DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1AGX50 Altera |"; IF id_match == 1 THEN device_list[i_device] = 95;
|
347 |
|
|
idval[31..0] = $021220DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1AGX60 Altera |"; IF id_match == 1 THEN device_list[i_device] = 96;
|
348 |
|
|
idval[31..0] = $021230DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1AGX90 Altera |"; IF id_match == 1 THEN device_list[i_device] = 97;
|
349 |
|
|
|
350 |
|
|
'***** Altera Cyclone *****
|
351 |
|
|
idval[31..0] = $020810DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1C3 Altera |"; IF id_match == 1 THEN device_list[i_device] = 98;
|
352 |
|
|
idval[31..0] = $020850DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1C4 Altera |"; IF id_match == 1 THEN device_list[i_device] = 99;
|
353 |
|
|
idval[31..0] = $020820DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1C6 Altera |"; IF id_match == 1 THEN device_list[i_device] = 100;
|
354 |
|
|
idval[31..0] = $020830DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1C12 Altera |"; IF id_match == 1 THEN device_list[i_device] = 101;
|
355 |
|
|
idval[31..0] = $020840DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP1C20 Altera |"; IF id_match == 1 THEN device_list[i_device] = 102;
|
356 |
|
|
|
357 |
|
|
'***** Altera Cyclone II*****
|
358 |
|
|
idval[31..0] = $020B10DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2C5 Altera |"; IF id_match == 1 THEN device_list[i_device] = 103;
|
359 |
|
|
idval[31..0] = $020B20DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2C8 Altera |"; IF id_match == 1 THEN device_list[i_device] = 104;
|
360 |
|
|
idval[31..0] = $020B30DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2C20 Altera |"; IF id_match == 1 THEN device_list[i_device] = 105;
|
361 |
|
|
idval[31..0] = $020B40DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2C35 Altera |"; IF id_match == 1 THEN device_list[i_device] = 106;
|
362 |
|
|
idval[31..0] = $020B50DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2C50 Altera |"; IF id_match == 1 THEN device_list[i_device] = 107;
|
363 |
|
|
idval[31..0] = $020B60DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP2C70 Altera |"; IF id_match == 1 THEN device_list[i_device] = 108;
|
364 |
|
|
|
365 |
|
|
'***** Altera Cyclone III*****
|
366 |
|
|
idval[31..0] = $020F10DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3C5 Altera |"; IF id_match == 1 THEN device_list[i_device] = 109;
|
367 |
|
|
idval[31..0] = $020F10DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3C10 Altera |"; IF id_match == 1 THEN device_list[i_device] = 110;
|
368 |
|
|
idval[31..0] = $020F20DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3C16 Altera |"; IF id_match == 1 THEN device_list[i_device] = 111;
|
369 |
|
|
idval[31..0] = $020F30DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3C25 Altera |"; IF id_match == 1 THEN device_list[i_device] = 112;
|
370 |
|
|
idval[31..0] = $020F40DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3C40 Altera |"; IF id_match == 1 THEN device_list[i_device] = 113;
|
371 |
|
|
idval[31..0] = $020F50DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3C55 Altera |"; IF id_match == 1 THEN device_list[i_device] = 114;
|
372 |
|
|
idval[31..0] = $020F60DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3C80 Altera |"; IF id_match == 1 THEN device_list[i_device] = 115;
|
373 |
|
|
idval[31..0] = $020F70DD; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | EP3C120 Altera |"; IF id_match == 1 THEN device_list[i_device] = 116;
|
374 |
|
|
|
375 |
|
|
'***** Xilinx XC9500 (Xilinx does weird stuff with their version number) *****
|
376 |
|
|
idval[31..0] = $09502093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9536 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 117;
|
377 |
|
|
idval[31..0] = $29502093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9536(rev2) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 118;
|
378 |
|
|
idval[31..0] = $09504093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9572 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 119;
|
379 |
|
|
idval[31..0] = $19504093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9572(rev1) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 120;
|
380 |
|
|
idval[31..0] = $29504093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9572(rev2) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 121;
|
381 |
|
|
idval[31..0] = $09506093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95108 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 122;
|
382 |
|
|
idval[31..0] = $19506093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95108(rev1) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 123;
|
383 |
|
|
idval[31..0] = $29506093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95108(rev2) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 124;
|
384 |
|
|
idval[31..0] = $09508093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95144 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 125;
|
385 |
|
|
idval[31..0] = $09512093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95216 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 126;
|
386 |
|
|
idval[31..0] = $19512093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95216(rev1) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 127;
|
387 |
|
|
idval[31..0] = $29512093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95216(rev2) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 128;
|
388 |
|
|
idval[31..0] = $09516093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95288 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 129;
|
389 |
|
|
idval[31..0] = $29516093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95288(rev2) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 130;
|
390 |
|
|
|
391 |
|
|
'***** Xilinx XC9500XL (Xilinx does weird stuff with their version number) *****
|
392 |
|
|
idval[31..0] = $09602093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9536XL Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 131;
|
393 |
|
|
idval[31..0] = $19602093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9536XL(rev1) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 132;
|
394 |
|
|
idval[31..0] = $29602093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9536XL(rev2) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 133;
|
395 |
|
|
idval[31..0] = $09604093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9572XL Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 134;
|
396 |
|
|
idval[31..0] = $29504093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC9572(rev2) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 135;
|
397 |
|
|
idval[31..0] = $09616093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95288XL Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 136;
|
398 |
|
|
idval[31..0] = $29616093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC95288XL(rev2) Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 137;
|
399 |
|
|
|
400 |
|
|
'***** Xilinx Virtex (Xilinx does weird stuff with their version number) *****
|
401 |
|
|
idval[31..0] = $20610093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV50 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 138;
|
402 |
|
|
idval[31..0] = $20614093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV100 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 139;
|
403 |
|
|
idval[31..0] = $20618093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV150 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 140;
|
404 |
|
|
idval[31..0] = $2061C093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV200 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 141;
|
405 |
|
|
idval[31..0] = $20620093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV300 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 142;
|
406 |
|
|
idval[31..0] = $20628093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV400 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 143;
|
407 |
|
|
idval[31..0] = $20630093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV600 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 144;
|
408 |
|
|
idval[31..0] = $20638093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV800 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 145;
|
409 |
|
|
idval[31..0] = $20640093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV1000 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 146;
|
410 |
|
|
|
411 |
|
|
'***** Xilinx Virtex-E (Xilinx does weird stuff with their version number) *****
|
412 |
|
|
idval[31..0] = $20A10093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV50E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 147;
|
413 |
|
|
idval[31..0] = $20A14093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV100E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 148;
|
414 |
|
|
idval[31..0] = $20A1C093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV200E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 149;
|
415 |
|
|
idval[31..0] = $20A20093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV300E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 150;
|
416 |
|
|
idval[31..0] = $20A28093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV400E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 151;
|
417 |
|
|
idval[31..0] = $20A30093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV600E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 152;
|
418 |
|
|
idval[31..0] = $20A40093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV1000E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 153;
|
419 |
|
|
idval[31..0] = $20A48093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV1600E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 154;
|
420 |
|
|
idval[31..0] = $20A50093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV2000E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 155;
|
421 |
|
|
idval[31..0] = $20A5C093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV2600E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 156;
|
422 |
|
|
idval[31..0] = $20A68093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XCV3200E Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 157;
|
423 |
|
|
|
424 |
|
|
'***** Xilinx Config Device (Xilinx does weird stuff with their version number) *****
|
425 |
|
|
idval[31..0] = $05024093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC18V01 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 158;
|
426 |
|
|
idval[31..0] = $05025093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC18V02 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 159;
|
427 |
|
|
idval[31..0] = $05026093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC18V04 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 160;
|
428 |
|
|
idval[31..0] = $05022093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC18V256 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 161;
|
429 |
|
|
idval[31..0] = $05023093; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | XC18V512 Xilinx |"; IF id_match == 1 THEN device_list[i_device] = 162;
|
430 |
|
|
|
431 |
|
|
'***** Lattice Mach-5 *****
|
432 |
|
|
idval[31..0] = $07815003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-128/68-T100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 163;
|
433 |
|
|
idval[31..0] = $07817003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-128/68-P100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 164;
|
434 |
|
|
idval[31..0] = $07819003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-128/104-P144 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 165;
|
435 |
|
|
idval[31..0] = $0781B003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-128/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 166;
|
436 |
|
|
idval[31..0] = $07825003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-192/68-T100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 167;
|
437 |
|
|
idval[31..0] = $07827003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-192/68-P100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 168;
|
438 |
|
|
idval[31..0] = $07829003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-192/104-P144 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 169;
|
439 |
|
|
idval[31..0] = $0782B003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-192/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 170;
|
440 |
|
|
idval[31..0] = $0782F003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-192/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 171;
|
441 |
|
|
idval[31..0] = $07845003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-256/68-T100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 172;
|
442 |
|
|
idval[31..0] = $07847003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-256/68-P100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 173;
|
443 |
|
|
idval[31..0] = $07849003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-256/104-P144 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 174;
|
444 |
|
|
idval[31..0] = $0784B003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-256/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 175;
|
445 |
|
|
idval[31..0] = $0784F003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-256/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 176;
|
446 |
|
|
idval[31..0] = $07851003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-320/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 177;
|
447 |
|
|
idval[31..0] = $07853003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-320/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 178;
|
448 |
|
|
idval[31..0] = $07857003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-320/192-B256 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 179;
|
449 |
|
|
idval[31..0] = $07863003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-384/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 180;
|
450 |
|
|
idval[31..0] = $07873003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-512/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 181;
|
451 |
|
|
idval[31..0] = $07879003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5-512/256-B352 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 182;
|
452 |
|
|
|
453 |
|
|
'***** Lattice Mach-5LV *****
|
454 |
|
|
idval[31..0] = $07814003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-128/68-T100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 183;
|
455 |
|
|
idval[31..0] = $07816003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-128/68-P100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 184;
|
456 |
|
|
idval[31..0] = $07810003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-128/74-T100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 185;
|
457 |
|
|
idval[31..0] = $07812003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-128/104-T144 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 186;
|
458 |
|
|
idval[31..0] = $07818003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-128/104-P144 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 187;
|
459 |
|
|
idval[31..0] = $0781A003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-128/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 188;
|
460 |
|
|
idval[31..0] = $07846003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-256/68-P100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 189;
|
461 |
|
|
idval[31..0] = $07840003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-256/74-T100 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 190;
|
462 |
|
|
idval[31..0] = $07848003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-256/104-P144 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 191;
|
463 |
|
|
idval[31..0] = $07842003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-256/104-T144 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 192;
|
464 |
|
|
idval[31..0] = $0784B003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-256/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 193;
|
465 |
|
|
idval[31..0] = $0784E003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-256/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 194;
|
466 |
|
|
idval[31..0] = $07850003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-320/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 195;
|
467 |
|
|
idval[31..0] = $07852003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-320/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 196;
|
468 |
|
|
idval[31..0] = $07856003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-320/192-B256 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 197;
|
469 |
|
|
idval[31..0] = $07860003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-384/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 198;
|
470 |
|
|
idval[31..0] = $07862003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-384/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 199;
|
471 |
|
|
idval[31..0] = $07870003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-512/120-P160 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 200;
|
472 |
|
|
idval[31..0] = $07872003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-512/160-P208 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 201;
|
473 |
|
|
idval[31..0] = $07878003; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | M5LV-512/256-B352 Lattice |"; IF id_match == 1 THEN device_list[i_device] = 202;
|
474 |
|
|
|
475 |
|
|
'***** Lattice ispLSI5000VE *****
|
476 |
|
|
idval[31..0] = $0036A043; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | ISPLSI5512VE Lattice |"; IF id_match == 1 THEN device_list[i_device] = 203;
|
477 |
|
|
|
478 |
|
|
'***** Cypress Delta 39K *****
|
479 |
|
|
idval[31..0] = $00031069; CALL compare_one_idval; IF id_match == 1 THEN PRINT " Device #", i_device, " | CY39100 Cypress |"; IF id_match == 1 THEN device_list[i_device] = 204;
|
480 |
|
|
|
481 |
|
|
'***** ADDING ADDITIONAL DEVICES *****
|
482 |
|
|
'***** Users of this file are welcome to add as many other devices as they wish here. *****
|
483 |
|
|
'***** Each additional entry must be for a particular unique 32-bit value for IDCODE. *****
|
484 |
|
|
'***** Suggest copying one of the above lines and edit the idval, string and device *****
|
485 |
|
|
'***** list index.
|
486 |
|
|
|
487 |
|
|
IF id_match_cum == 0 THEN PRINT " Device #", i_device, " | Unknown IDCODE |"; IF id_match == 1 THEN device_list[i_device] = 0;
|
488 |
|
|
ENDPROC;
|
489 |
|
|
|
490 |
|
|
PROCEDURE compare_one_idval USES data_chain;
|
491 |
|
|
' This entire function exists because boolean array comparisons are not supported.
|
492 |
|
|
id_match = 1;
|
493 |
|
|
INTEGER i_32;
|
494 |
|
|
FOR i_32 = 0 to 31;
|
495 |
|
|
id_match = id_match && (idval[i_32] == id_capture[offset + i_32]);
|
496 |
|
|
NEXT i_32;
|
497 |
|
|
id_match_cum = id_match || id_match_cum;
|
498 |
|
|
ENDPROC;
|
499 |
|
|
|
500 |
|
|
PROCEDURE exiting;
|
501 |
|
|
PRINT "******************************************************************************";
|
502 |
|
|
EXIT (0);
|
503 |
|
|
ENDPROC;
|
504 |
|
|
|
505 |
|
|
CRC F760;
|