OpenCores
URL https://opencores.org/ocsvn/s1_core/s1_core/trunk

Subversion Repositories s1_core

[/] [s1_core/] [trunk/] [hdl/] [rtl/] [sparc_core/] [sparc_ifu.v] - Blame information for rev 105

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 95 fafa1971
// ========== Copyright Header Begin ==========================================
2
// 
3
// OpenSPARC T1 Processor File: sparc_ifu.v
4
// Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
5
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6
// 
7
// The above named program is free software; you can redistribute it and/or
8
// modify it under the terms of the GNU General Public
9
// License version 2 as published by the Free Software Foundation.
10
// 
11
// The above named program is distributed in the hope that it will be 
12
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
// General Public License for more details.
15
// 
16
// You should have received a copy of the GNU General Public
17
// License along with this work; if not, write to the Free Software
18
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19
// 
20
// ========== Copyright Header End ============================================
21
////////////////////////////////////////////////////////////////////////
22
/*
23
//  Description:
24
//    The instruction fetch unit (IFU) contains the icache, ifq and
25
//    fetch dp.
26
*/
27
 
28
////////////////////////////////////////////////////////////////////////
29
// Global header file includes
30
////////////////////////////////////////////////////////////////////////
31
/*
32
/* ========== Copyright Header Begin ==========================================
33
*
34
* OpenSPARC T1 Processor File: sys.h
35
* Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
36
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
37
*
38
* The above named program is free software; you can redistribute it and/or
39
* modify it under the terms of the GNU General Public
40
* License version 2 as published by the Free Software Foundation.
41
*
42
* The above named program is distributed in the hope that it will be
43
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
44
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
45
* General Public License for more details.
46
*
47
* You should have received a copy of the GNU General Public
48
* License along with this work; if not, write to the Free Software
49
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
50
*
51
* ========== Copyright Header End ============================================
52
*/
53
// -*- verilog -*-
54
////////////////////////////////////////////////////////////////////////
55
/*
56
//
57
// Description:         Global header file that contain definitions that
58
//                      are common/shared at the systme level
59
*/
60
////////////////////////////////////////////////////////////////////////
61
//
62
// Setting the time scale
63
// If the timescale changes, JP_TIMESCALE may also have to change.
64
`timescale      1ps/1ps
65
 
66
//
67
// JBUS clock
68
// =========
69
//
70
 
71
 
72
 
73
// Afara Link Defines
74
// ==================
75
 
76
// Reliable Link
77
 
78
 
79
 
80
 
81
// Afara Link Objects
82
 
83
 
84
// Afara Link Object Format - Reliable Link
85
 
86
 
87
 
88
 
89
 
90
 
91
 
92
 
93
 
94
 
95
// Afara Link Object Format - Congestion
96
 
97
 
98
 
99
 
100
 
101
 
102
 
103
 
104
 
105
 
106
 
107
// Afara Link Object Format - Acknowledge
108
 
109
 
110
 
111
 
112
 
113
 
114
 
115
 
116
 
117
 
118
 
119
// Afara Link Object Format - Request
120
 
121
 
122
 
123
 
124
 
125
 
126
 
127
 
128
 
129
 
130
 
131
 
132
 
133
 
134
 
135
 
136
 
137
// Afara Link Object Format - Message
138
 
139
 
140
 
141
// Acknowledge Types
142
 
143
 
144
 
145
 
146
// Request Types
147
 
148
 
149
 
150
 
151
 
152
// Afara Link Frame
153
 
154
 
155
 
156
//
157
// UCB Packet Type
158
// ===============
159
//
160
 
161
 
162
 
163
 
164
 
165
 
166
 
167
 
168
 
169
 
170
 
171
 
172
 
173
 
174
 
175
 
176
 
177
//
178
// UCB Data Packet Format
179
// ======================
180
//
181
 
182
 
183
 
184
 
185
 
186
 
187
 
188
 
189
 
190
 
191
 
192
 
193
 
194
 
195
 
196
 
197
 
198
 
199
 
200
 
201
 
202
 
203
 
204
 
205
 
206
 
207
 
208
 
209
 
210
 
211
// Size encoding for the UCB_SIZE_HI/LO field
212
// 000 - byte
213
// 001 - half-word
214
// 010 - word
215
// 011 - double-word
216
// 111 - quad-word
217
 
218
 
219
 
220
 
221
 
222
 
223
 
224
//
225
// UCB Interrupt Packet Format
226
// ===========================
227
//
228
 
229
 
230
 
231
 
232
 
233
 
234
 
235
 
236
 
237
 
238
//`define UCB_THR_HI             9      // (6) cpu/thread ID shared with
239
//`define UCB_THR_LO             4             data packet format
240
//`define UCB_PKT_HI             3      // (4) packet type shared with
241
//`define UCB_PKT_LO             0      //     data packet format
242
 
243
 
244
 
245
 
246
 
247
 
248
 
249
//
250
// FCRAM Bus Widths
251
// ================
252
//
253
 
254
 
255
 
256
 
257
 
258
 
259
//
260
// ENET clock periods
261
// ==================
262
//
263
 
264
 
265
 
266
 
267
//
268
// JBus Bridge defines
269
// =================
270
//
271
 
272
 
273
 
274
 
275
 
276
 
277
 
278
 
279
 
280
 
281
 
282
//
283
// PCI Device Address Configuration
284
// ================================
285
//
286
 
287
 
288
 
289
 
290
 
291
 
292
 
293
 
294
 
295
 
296
 
297
 
298
 
299
 
300
 
301
 
302
 
303
 
304
 
305
 
306
 
307
 
308
 
309
/*
310
/* ========== Copyright Header Begin ==========================================
311
*
312
* OpenSPARC T1 Processor File: iop.h
313
* Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
314
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
315
*
316
* The above named program is free software; you can redistribute it and/or
317
* modify it under the terms of the GNU General Public
318
* License version 2 as published by the Free Software Foundation.
319
*
320
* The above named program is distributed in the hope that it will be
321
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
322
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
323
* General Public License for more details.
324
*
325
* You should have received a copy of the GNU General Public
326
* License along with this work; if not, write to the Free Software
327
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
328
*
329
* ========== Copyright Header End ============================================
330
*/
331
//-*- verilog -*-
332
////////////////////////////////////////////////////////////////////////
333
/*
334
//
335
//  Description:        Global header file that contain definitions that
336
//                      are common/shared at the IOP chip level
337
*/
338
////////////////////////////////////////////////////////////////////////
339
 
340
 
341
// Address Map Defines
342
// ===================
343
 
344
 
345
 
346
 
347
// CMP space
348
 
349
 
350
 
351
// IOP space
352
 
353
 
354
 
355
 
356
                               //`define ENET_ING_CSR     8'h84
357
                               //`define ENET_EGR_CMD_CSR 8'h85
358
 
359
 
360
 
361
 
362
 
363
 
364
 
365
 
366
 
367
 
368
 
369
 
370
 
371
 
372
 
373
// L2 space
374
 
375
 
376
 
377
// More IOP space
378
 
379
 
380
 
381
 
382
 
383
//Cache Crossbar Width and Field Defines
384
//======================================
385
 
386
 
387
 
388
 
389
 
390
 
391
 
392
 
393
 
394
 
395
 
396
 
397
 
398
 
399
 
400
 
401
 
402
 
403
 
404
 
405
 
406
 
407
 
408
 
409
 
410
 
411
 
412
 
413
 
414
 
415
 
416
 
417
 
418
 
419
 
420
 
421
 
422
 
423
 
424
 
425
 
426
 
427
 
428
 
429
 
430
//bits 133:128 are shared by different fields
431
//for different packet types.
432
 
433
 
434
 
435
 
436
 
437
 
438
 
439
 
440
 
441
 
442
 
443
 
444
 
445
 
446
 
447
 
448
 
449
 
450
 
451
 
452
 
453
 
454
 
455
 
456
 
457
 
458
 
459
 
460
 
461
 
462
 
463
 
464
 
465
 
466
 
467
 
468
 
469
 
470
 
471
 
472
 
473
 
474
 
475
 
476
 
477
 
478
 
479
 
480
 
481
 
482
 
483
 
484
 
485
 
486
 
487
 
488
 
489
 
490
 
491
 
492
 
493
 
494
//End cache crossbar defines
495
 
496
 
497
// Number of COS supported by EECU 
498
 
499
 
500
 
501
// 
502
// BSC bus sizes
503
// =============
504
//
505
 
506
// General
507
 
508
 
509
 
510
 
511
// CTags
512
 
513
 
514
 
515
 
516
 
517
 
518
 
519
 
520
 
521
 
522
 
523
 
524
 
525
// reinstated temporarily
526
 
527
 
528
 
529
 
530
// CoS
531
 
532
 
533
 
534
 
535
 
536
 
537
// L2$ Bank
538
 
539
 
540
 
541
// L2$ Req
542
 
543
 
544
 
545
 
546
 
547
 
548
 
549
 
550
 
551
 
552
 
553
 
554
 
555
// L2$ Ack
556
 
557
 
558
 
559
 
560
 
561
 
562
 
563
 
564
// Enet Egress Command Unit
565
 
566
 
567
 
568
 
569
 
570
 
571
 
572
 
573
 
574
 
575
 
576
 
577
 
578
 
579
// Enet Egress Packet Unit
580
 
581
 
582
 
583
 
584
 
585
 
586
 
587
 
588
 
589
 
590
 
591
 
592
 
593
// This is cleaved in between Egress Datapath Ack's
594
 
595
 
596
 
597
 
598
 
599
 
600
 
601
 
602
// Enet Egress Datapath
603
 
604
 
605
 
606
 
607
 
608
 
609
 
610
 
611
 
612
 
613
 
614
 
615
 
616
 
617
 
618
 
619
// In-Order / Ordered Queue: EEPU
620
// Tag is: TLEN, SOF, EOF, QID = 15
621
 
622
 
623
 
624
 
625
 
626
 
627
// Nack + Tag Info + CTag
628
 
629
 
630
 
631
 
632
// ENET Ingress Queue Management Req
633
 
634
 
635
 
636
 
637
 
638
 
639
 
640
 
641
 
642
 
643
 
644
 
645
// ENET Ingress Queue Management Ack
646
 
647
 
648
 
649
 
650
 
651
 
652
 
653
 
654
// Enet Ingress Packet Unit
655
 
656
 
657
 
658
 
659
 
660
 
661
 
662
 
663
 
664
 
665
 
666
 
667
// ENET Ingress Packet Unit Ack
668
 
669
 
670
 
671
 
672
 
673
 
674
 
675
// In-Order / Ordered Queue: PCI
676
// Tag is: CTAG
677
 
678
 
679
 
680
 
681
 
682
// PCI-X Request
683
 
684
 
685
 
686
 
687
 
688
 
689
 
690
 
691
 
692
 
693
 
694
// PCI_X Acknowledge
695
 
696
 
697
 
698
 
699
 
700
 
701
 
702
 
703
 
704
 
705
 
706
//
707
// BSC array sizes
708
//================
709
//
710
 
711
 
712
 
713
 
714
 
715
 
716
 
717
 
718
 
719
 
720
 
721
 
722
// ECC syndrome bits per memory element
723
 
724
 
725
 
726
 
727
//
728
// BSC Port Definitions
729
// ====================
730
//
731
// Bits 7 to 4 of curr_port_id
732
 
733
 
734
 
735
 
736
 
737
 
738
 
739
 
740
// Number of ports of each type
741
 
742
 
743
// Bits needed to represent above
744
 
745
 
746
// How wide the linked list pointers are
747
// 60b for no payload (2CoS)
748
// 80b for payload (2CoS)
749
 
750
//`define BSC_OBJ_PTR   80
751
//`define BSC_HD1_HI    69
752
//`define BSC_HD1_LO    60
753
//`define BSC_TL1_HI    59
754
//`define BSC_TL1_LO    50
755
//`define BSC_CT1_HI    49
756
//`define BSC_CT1_LO    40
757
//`define BSC_HD0_HI    29
758
//`define BSC_HD0_LO    20
759
//`define BSC_TL0_HI    19
760
//`define BSC_TL0_LO    10
761
//`define BSC_CT0_HI     9
762
//`define BSC_CT0_LO     0
763
 
764
 
765
 
766
 
767
 
768
 
769
 
770
 
771
 
772
 
773
 
774
 
775
 
776
 
777
 
778
 
779
 
780
 
781
 
782
 
783
 
784
 
785
 
786
 
787
 
788
 
789
 
790
 
791
 
792
 
793
 
794
 
795
 
796
 
797
// I2C STATES in DRAMctl
798
 
799
 
800
 
801
 
802
 
803
 
804
 
805
//
806
// IOB defines
807
// ===========
808
//
809
 
810
 
811
 
812
 
813
 
814
 
815
 
816
 
817
 
818
 
819
 
820
 
821
 
822
 
823
 
824
 
825
 
826
 
827
 
828
//`define IOB_INT_STAT_WIDTH   32
829
//`define IOB_INT_STAT_HI      31
830
//`define IOB_INT_STAT_LO       0
831
 
832
 
833
 
834
 
835
 
836
 
837
 
838
 
839
 
840
 
841
 
842
 
843
 
844
 
845
 
846
 
847
 
848
 
849
 
850
 
851
 
852
 
853
 
854
 
855
 
856
 
857
 
858
 
859
 
860
 
861
 
862
 
863
 
864
 
865
 
866
 
867
 
868
 
869
 
870
 
871
 
872
 
873
 
874
 
875
 
876
 
877
 
878
 
879
 
880
// fixme - double check address mapping
881
// CREG in `IOB_INT_CSR space
882
 
883
 
884
 
885
 
886
 
887
 
888
 
889
 
890
 
891
 
892
// CREG in `IOB_MAN_CSR space
893
 
894
 
895
 
896
 
897
 
898
 
899
 
900
 
901
 
902
 
903
 
904
 
905
 
906
 
907
 
908
 
909
 
910
 
911
 
912
 
913
 
914
 
915
 
916
 
917
 
918
 
919
 
920
 
921
 
922
 
923
 
924
 
925
 
926
 
927
 
928
 
929
 
930
// Address map for TAP access of SPARC ASI
931
 
932
 
933
 
934
 
935
 
936
 
937
 
938
 
939
 
940
 
941
 
942
 
943
 
944
//
945
// CIOP UCB Bus Width
946
// ==================
947
//
948
//`define IOB_EECU_WIDTH       16  // ethernet egress command
949
//`define EECU_IOB_WIDTH       16
950
 
951
//`define IOB_NRAM_WIDTH       16  // NRAM (RLDRAM previously)
952
//`define NRAM_IOB_WIDTH        4
953
 
954
 
955
 
956
 
957
//`define IOB_ENET_ING_WIDTH   32  // ethernet ingress
958
//`define ENET_ING_IOB_WIDTH    8
959
 
960
//`define IOB_ENET_EGR_WIDTH    4  // ethernet egress
961
//`define ENET_EGR_IOB_WIDTH    4
962
 
963
//`define IOB_ENET_MAC_WIDTH    4  // ethernet MAC
964
//`define ENET_MAC_IOB_WIDTH    4
965
 
966
 
967
 
968
 
969
//`define IOB_BSC_WIDTH         4  // BSC
970
//`define BSC_IOB_WIDTH         4
971
 
972
 
973
 
974
 
975
 
976
 
977
 
978
//`define IOB_CLSP_WIDTH        4  // clk spine unit
979
//`define CLSP_IOB_WIDTH        4
980
 
981
 
982
 
983
 
984
 
985
//
986
// CIOP UCB Buf ID Type
987
// ====================
988
//
989
 
990
 
991
 
992
//
993
// Interrupt Device ID
994
// ===================
995
//
996
// Caution: DUMMY_DEV_ID has to be 9 bit wide
997
//          for fields to line up properly in the IOB.
998
 
999
 
1000
 
1001
//
1002
// Soft Error related definitions 
1003
// ==============================
1004
//
1005
 
1006
 
1007
 
1008
//
1009
// CMP clock
1010
// =========
1011
//
1012
 
1013
 
1014
 
1015
 
1016
//
1017
// NRAM/IO Interface
1018
// =================
1019
//
1020
 
1021
 
1022
 
1023
 
1024
 
1025
 
1026
 
1027
 
1028
 
1029
 
1030
//
1031
// NRAM/ENET Interface
1032
// ===================
1033
//
1034
 
1035
 
1036
 
1037
 
1038
 
1039
 
1040
 
1041
//
1042
// IO/FCRAM Interface
1043
// ==================
1044
//
1045
 
1046
 
1047
 
1048
 
1049
 
1050
 
1051
//
1052
// PCI Interface
1053
// ==================
1054
// Load/store size encodings
1055
// -------------------------
1056
// Size encoding
1057
// 000 - byte
1058
// 001 - half-word
1059
// 010 - word
1060
// 011 - double-word
1061
// 100 - quad
1062
 
1063
 
1064
 
1065
 
1066
 
1067
 
1068
//
1069
// JBI<->SCTAG Interface
1070
// =======================
1071
// Outbound Header Format
1072
 
1073
 
1074
 
1075
 
1076
 
1077
 
1078
 
1079
 
1080
 
1081
 
1082
 
1083
 
1084
 
1085
 
1086
 
1087
 
1088
 
1089
 
1090
 
1091
 
1092
 
1093
 
1094
 
1095
 
1096
 
1097
 
1098
 
1099
// Inbound Header Format
1100
 
1101
 
1102
 
1103
 
1104
 
1105
 
1106
 
1107
 
1108
 
1109
 
1110
 
1111
 
1112
 
1113
 
1114
 
1115
 
1116
 
1117
 
1118
 
1119
 
1120
//
1121
// JBI->IOB Mondo Header Format
1122
// ============================
1123
//
1124
 
1125
 
1126
 
1127
 
1128
 
1129
 
1130
 
1131
 
1132
 
1133
 
1134
 
1135
 
1136
 
1137
 
1138
// JBI->IOB Mondo Bus Width/Cycle
1139
// ==============================
1140
// Cycle  1 Header[15:8]
1141
// Cycle  2 Header[ 7:0]
1142
// Cycle  3 J_AD[127:120]
1143
// Cycle  4 J_AD[119:112]
1144
// .....
1145
// Cycle 18 J_AD[  7:  0]
1146
 
1147
 
1148
/*
1149
/* ========== Copyright Header Begin ==========================================
1150
*
1151
* OpenSPARC T1 Processor File: ifu.h
1152
* Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
1153
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
1154
*
1155
* The above named program is free software; you can redistribute it and/or
1156
* modify it under the terms of the GNU General Public
1157
* License version 2 as published by the Free Software Foundation.
1158
*
1159
* The above named program is distributed in the hope that it will be
1160
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
1161
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1162
* General Public License for more details.
1163
*
1164
* You should have received a copy of the GNU General Public
1165
* License along with this work; if not, write to the Free Software
1166
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
1167
*
1168
* ========== Copyright Header End ============================================
1169
*/
1170
////////////////////////////////////////////////////////////////////////
1171
/*
1172
//
1173
//  Module Name: ifu.h
1174
//  Description:
1175
//  All ifu defines
1176
*/
1177
 
1178
//--------------------------------------------
1179
// Icache Values in IFU::ICD/ICV/ICT/FDP/IFQDP
1180
//--------------------------------------------
1181
// Set Values
1182
 
1183
// IC_IDX_HI = log(icache_size/4ways) - 1
1184
 
1185
 
1186
// !!IMPORTANT!! a change to IC_LINE_SZ will mean a change to the code as
1187
//   well.  Unfortunately this has not been properly parametrized.
1188
//   Changing the IC_LINE_SZ param alone is *not* enough.
1189
 
1190
 
1191
// !!IMPORTANT!! a change to IC_TAG_HI will mean a change to the code as
1192
//   well.  Changing the IC_TAG_HI param alone is *not* enough to
1193
//   change the PA range. 
1194
// highest bit of PA
1195
 
1196
 
1197
 
1198
// Derived Values
1199
// 4095
1200
 
1201
 
1202
// number of entries - 1 = 511
1203
 
1204
 
1205
// 12
1206
 
1207
 
1208
// 28
1209
 
1210
 
1211
// 7
1212
 
1213
 
1214
// tags for all 4 ways + parity
1215
// 116
1216
 
1217
 
1218
// 115
1219
 
1220
 
1221
 
1222
//----------------------------------------------------------------------
1223
// For thread scheduler in IFU::DTU::SWL
1224
//----------------------------------------------------------------------
1225
// thread states:  (thr_state[4:0])
1226
 
1227
 
1228
 
1229
 
1230
 
1231
 
1232
 
1233
 
1234
 
1235
// thread configuration register bit fields
1236
 
1237
 
1238
 
1239
 
1240
 
1241
 
1242
 
1243
//----------------------------------------------------------------------
1244
// For MIL fsm in IFU::IFQ
1245
//----------------------------------------------------------------------
1246
 
1247
 
1248
 
1249
 
1250
 
1251
 
1252
 
1253
 
1254
 
1255
 
1256
 
1257
//---------------------------------------------------
1258
// Interrupt Block
1259
//---------------------------------------------------
1260
 
1261
 
1262
 
1263
 
1264
 
1265
 
1266
 
1267
//-------------------------------------
1268
// IFQ
1269
//-------------------------------------
1270
// valid bit plus ifill
1271
 
1272
 
1273
 
1274
 
1275
 
1276
 
1277
 
1278
 
1279
 
1280
 
1281
 
1282
 
1283
 
1284
//`ifdef SPARC_L2_64B
1285
 
1286
 
1287
//`else
1288
//`define BANK_ID_HI 8
1289
//`define BANK_ID_LO 7
1290
//`endif
1291
 
1292
//`define CPX_INV_PA_HI  116
1293
//`define CPX_INV_PA_LO  112
1294
 
1295
 
1296
 
1297
 
1298
 
1299
 
1300
 
1301
//----------------------------------------
1302
// IFU Traps
1303
//----------------------------------------
1304
// precise
1305
 
1306
 
1307
 
1308
 
1309
 
1310
 
1311
 
1312
 
1313
 
1314
 
1315
 
1316
 
1317
 
1318
 
1319
 
1320
// disrupting
1321
 
1322
 
1323
 
1324
 
1325
 
1326
 
1327
 
1328
/*
1329
/* ========== Copyright Header Begin ==========================================
1330
*
1331
* OpenSPARC T1 Processor File: lsu.h
1332
* Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
1333
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
1334
*
1335
* The above named program is free software; you can redistribute it and/or
1336
* modify it under the terms of the GNU General Public
1337
* License version 2 as published by the Free Software Foundation.
1338
*
1339
* The above named program is distributed in the hope that it will be
1340
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
1341
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1342
* General Public License for more details.
1343
*
1344
* You should have received a copy of the GNU General Public
1345
* License along with this work; if not, write to the Free Software
1346
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
1347
*
1348
* ========== Copyright Header End ============================================
1349
*/
1350
 
1351
 
1352
 
1353
 
1354
 
1355
 
1356
 
1357
 
1358
//`define STB_PCX_WY_HI   107
1359
//`define STB_PCX_WY_LO   106
1360
 
1361
 
1362
 
1363
 
1364
 
1365
 
1366
 
1367
 
1368
 
1369
 
1370
 
1371
 
1372
 
1373
 
1374
 
1375
 
1376
 
1377
 
1378
 
1379
 
1380
 
1381
 
1382
 
1383
 
1384
 
1385
 
1386
 
1387
 
1388
 
1389
 
1390
 
1391
 
1392
 
1393
 
1394
 
1395
 
1396
 
1397
 
1398
 
1399
 
1400
 
1401
 
1402
 
1403
 
1404
 
1405
 
1406
 
1407
 
1408
 
1409
 
1410
 
1411
 
1412
 
1413
 
1414
 
1415
 
1416
 
1417
 
1418
 
1419
 
1420
 
1421
 
1422
 
1423
 
1424
 
1425
 
1426
 
1427
 
1428
 
1429
 
1430
 
1431
 
1432
 
1433
 
1434
 
1435
 
1436
 
1437
 
1438
 
1439
 
1440
 
1441
 
1442
 
1443
// TLB Tag and Data Format
1444
 
1445
 
1446
 
1447
 
1448
 
1449
 
1450
 
1451
 
1452
 
1453
 
1454
 
1455
 
1456
 
1457
 
1458
 
1459
 
1460
 
1461
 
1462
 
1463
 
1464
 
1465
 
1466
 
1467
 
1468
 
1469
 
1470
 
1471
 
1472
 
1473
 
1474
 
1475
 
1476
 
1477
 
1478
 
1479
 
1480
 
1481
 
1482
 
1483
 
1484
 
1485
 
1486
 
1487
 
1488
 
1489
 
1490
 
1491
 
1492
 
1493
 
1494
 
1495
 
1496
 
1497
 
1498
 
1499
 
1500
 
1501
 
1502
 
1503
 
1504
 
1505
// I-TLB version - lsu_tlb only.
1506
 
1507
 
1508
 
1509
 
1510
 
1511
 
1512
 
1513
 
1514
 
1515
 
1516
 
1517
 
1518
 
1519
 
1520
 
1521
 
1522
 
1523
 
1524
 
1525
 
1526
 
1527
 
1528
 
1529
 
1530
// Invalidate Format
1531
//addr<5:4>=00
1532
 
1533
 
1534
 
1535
 
1536
 
1537
 
1538
 
1539
 
1540
 
1541
 
1542
 
1543
 
1544
 
1545
 
1546
 
1547
 
1548
 
1549
//addr<5:4>=01
1550
 
1551
 
1552
 
1553
 
1554
 
1555
 
1556
 
1557
 
1558
 
1559
 
1560
 
1561
 
1562
 
1563
 
1564
 
1565
 
1566
 
1567
//addr<5:4>=10
1568
 
1569
 
1570
 
1571
 
1572
 
1573
 
1574
 
1575
 
1576
 
1577
 
1578
 
1579
 
1580
 
1581
 
1582
 
1583
 
1584
 
1585
//addr<5:4>=11
1586
 
1587
 
1588
 
1589
 
1590
 
1591
 
1592
 
1593
 
1594
 
1595
 
1596
 
1597
 
1598
 
1599
 
1600
 
1601
 
1602
 
1603
// cpuid - 4b
1604
 
1605
 
1606
 
1607
// CPUany, addr<5:4>=00,10
1608
 
1609
 
1610
 
1611
 
1612
 
1613
// CPUany, addr<5:4>=01,11
1614
 
1615
 
1616
 
1617
 
1618
// CPUany, addr<5:4>=01,11
1619
 
1620
 
1621
 
1622
 
1623
// DTAG parity error Invalidate
1624
 
1625
 
1626
 
1627
 
1628
// CPX BINIT STORE
1629
 
1630
 
1631
////////////////////////////////////////////////////////////////////////
1632
// Local header file includes / local defines
1633
////////////////////////////////////////////////////////////////////////
1634
 
1635
module sparc_ifu (/*AUTOARG*/
1636
   // Outputs
1637
   spc_efc_ifuse_data, sparc_sscan_so, mbist_icache_fail, mbist_done,
1638
   mbist_dcache_write, mbist_dcache_word, mbist_dcache_way,
1639
   mbist_dcache_read, mbist_dcache_index, mbist_dcache_fail,
1640
   ifu_tlu_ttype_m, ifu_tlu_trap_m, ifu_tlu_thrid_e, ifu_tlu_thrid_d,
1641
   ifu_tlu_sraddr_d_v2, ifu_tlu_sraddr_d, ifu_tlu_sir_inst_m,
1642
   ifu_tlu_sftint_m, ifu_tlu_rstint_m, ifu_tlu_rsr_inst_d,
1643
   ifu_tlu_retry_inst_d, ifu_tlu_priv_violtn_m, ifu_tlu_pc_oor_e,
1644
   ifu_tlu_pc_m, ifu_tlu_npc_m, ifu_tlu_mb_inst_e, ifu_tlu_l2imiss,
1645
   ifu_tlu_itlb_done, ifu_tlu_inst_vld_m, ifu_tlu_immu_miss_m,
1646
   ifu_tlu_imm_asi_d, ifu_tlu_icmiss_e, ifu_tlu_hwint_m,
1647
   ifu_tlu_flush_m, ifu_tlu_flsh_inst_e, ifu_tlu_done_inst_d,
1648
   ifu_tlu_alt_space_d, ifu_spu_trap_ack, ifu_spu_nceen,
1649
   ifu_spu_inst_vld_w, ifu_mmu_trap_m, ifu_lsu_wsr_inst_d,
1650
   ifu_lsu_swap_e, ifu_lsu_st_inst_e, ifu_lsu_sign_ext_e,
1651
   ifu_lsu_rd_e, ifu_lsu_pref_inst_e, ifu_lsu_pcxreq_d,
1652
   ifu_lsu_pcxpkt_e, ifu_lsu_nceen, ifu_lsu_memref_d,
1653
   ifu_lsu_ldxa_tid_w2, ifu_lsu_ldxa_illgl_va_w2,
1654
   ifu_lsu_ldxa_data_w2, ifu_lsu_ldxa_data_vld_w2, ifu_lsu_ldstub_e,
1655
   ifu_lsu_ldst_size_e, ifu_lsu_ldst_fp_e, ifu_lsu_ldst_dbl_e,
1656
   ifu_lsu_ld_inst_e, ifu_lsu_inv_clear, ifu_lsu_imm_asi_vld_d,
1657
   ifu_lsu_imm_asi_d, ifu_lsu_ibuf_busy, ifu_lsu_fwd_wr_ack,
1658
   ifu_lsu_fwd_data_vld, ifu_lsu_error_inj, ifu_lsu_destid_s,
1659
   ifu_lsu_casa_e, ifu_lsu_asi_rd_unc, ifu_lsu_asi_ack,
1660
   ifu_lsu_alt_space_d, ifu_ffu_visop_d, ifu_ffu_stfsr_d,
1661
   ifu_ffu_quad_op_e, ifu_ffu_mvcnd_m, ifu_ffu_ldxfsr_d,
1662
   ifu_ffu_ldst_size_d, ifu_ffu_ldfsr_d, ifu_ffu_inj_frferr,
1663
   ifu_ffu_fst_d, ifu_ffu_frs2_d, ifu_ffu_frs1_d, ifu_ffu_frd_d,
1664
   ifu_ffu_fpopcode_d, ifu_ffu_fpop2_d, ifu_ffu_fpop1_d,
1665
   ifu_ffu_fld_d, ifu_ffu_fcc_num_d, ifu_exu_wsr_inst_d,
1666
   ifu_exu_wen_d, ifu_exu_useimm_d, ifu_exu_usecin_d,
1667
   ifu_exu_use_rsr_e_l, ifu_exu_tv_d, ifu_exu_ttype_vld_m,
1668
   ifu_exu_tid_s2, ifu_exu_tcc_e, ifu_exu_tagop_d, ifu_exu_shiftop_d,
1669
   ifu_exu_sethi_inst_d, ifu_exu_setcc_d, ifu_exu_saved_e,
1670
   ifu_exu_save_d, ifu_exu_rs3o_vld_d, ifu_exu_rs3e_vld_d,
1671
   ifu_exu_rs3_s, ifu_exu_rs2_vld_d, ifu_exu_rs2_s,
1672
   ifu_exu_rs1_vld_d, ifu_exu_rs1_s, ifu_exu_return_d,
1673
   ifu_exu_restored_e, ifu_exu_restore_d, ifu_exu_ren3_s,
1674
   ifu_exu_ren2_s, ifu_exu_ren1_s, ifu_exu_rd_ifusr_e,
1675
   ifu_exu_rd_ffusr_e, ifu_exu_rd_exusr_e, ifu_exu_rd_d,
1676
   ifu_exu_range_check_other_d, ifu_exu_range_check_jlret_d,
1677
   ifu_exu_pcver_e, ifu_exu_pc_d, ifu_exu_nceen_e, ifu_exu_muls_d,
1678
   ifu_exu_kill_e, ifu_exu_invert_d, ifu_exu_inst_vld_w,
1679
   ifu_exu_inst_vld_e, ifu_exu_inj_irferr, ifu_exu_imm_data_d,
1680
   ifu_exu_ialign_d, ifu_exu_flushw_e, ifu_exu_enshift_d,
1681
   ifu_exu_ecc_mask, ifu_exu_dontmv_regz1_e, ifu_exu_dontmv_regz0_e,
1682
   ifu_exu_disable_ce_e, ifu_exu_dbrinst_d, ifu_exu_casa_d,
1683
   ifu_exu_aluop_d, ifu_exu_addr_mask_d, so0, short_so0, short_so1,
1684
   ifu_tlu_inst_vld_w, ifu_tlu_flush_w, ifu_lsu_alt_space_e,
1685
   ifu_tlu_ttype_vld_m, ifu_exu_muldivop_d, ifu_lsu_thrid_s,
1686
   mbist_write_data,
1687
   // Inputs
1688
   tlu_lsu_redmode, tlu_lsu_pstate_priv, tlu_lsu_pstate_am,
1689
   tlu_itlb_wr_vld_g, tlu_itlb_tag_rd_g, tlu_itlb_invalidate_all_g,
1690
   tlu_itlb_dmp_vld_g, tlu_itlb_dmp_nctxt_g, tlu_itlb_dmp_actxt_g,
1691
   tlu_itlb_data_rd_g, tlu_ifu_trappc_w2, tlu_ifu_trappc_vld_w1,
1692
   tlu_ifu_trapnpc_w2, tlu_ifu_trapnpc_vld_w1, tlu_ifu_trap_tid_w1,
1693
   tlu_ifu_sftint_vld, tlu_ifu_rstthr_i2, tlu_ifu_rstint_i2,
1694
   tlu_ifu_resumint_i2, tlu_ifu_rerr_vld, tlu_ifu_pstate_pef,
1695
   tlu_ifu_pstate_ie, tlu_ifu_nukeint_i2, tlu_ifu_hwint_i3,
1696
   tlu_ifu_hintp_vld, tlu_ifu_flush_pipe_w, tlu_idtlb_dmp_thrid_g,
1697
   tlu_hpstate_priv, tlu_hpstate_ibe, tlu_hpstate_enb, testmode_l,
1698
   spu_ifu_unc_err_w1, spu_ifu_ttype_w2, spu_ifu_ttype_vld_w2,
1699
   spu_ifu_ttype_tid_w2, spu_ifu_mamem_err_w1, spu_ifu_int_w2,
1700
   spu_ifu_err_addr_w2, spu_ifu_corr_err_w2, sehold, se, rclk,
1701
   mbist_userdata_mode, mbist_stop_on_next_fail, mbist_stop_on_fail,
1702
   mbist_start, mbist_loop_on_address, mbist_loop_mode,
1703
   mbist_dcache_data_in, mbist_bisi_mode, lsu_t3_pctxt_state,
1704
   lsu_t2_pctxt_state, lsu_t1_pctxt_state, lsu_t0_pctxt_state,
1705
   lsu_pid_state3, lsu_pid_state2, lsu_pid_state1, lsu_pid_state0,
1706
   lsu_ifu_t3_tlz, lsu_ifu_t2_tlz, lsu_ifu_t1_tlz, lsu_ifu_t0_tlz,
1707
   lsu_ifu_stxa_data, lsu_ifu_stbcnt3, lsu_ifu_stbcnt2,
1708
   lsu_ifu_stbcnt1, lsu_ifu_stbcnt0, lsu_ifu_stallreq,
1709
   lsu_ifu_quad_asi_e, lsu_ifu_pcxpkt_ack_d,
1710
   lsu_ifu_ldsta_internal_e, lsu_ifu_ldst_miss_g, lsu_ifu_ldst_cmplt,
1711
   lsu_ifu_ld_pcxpkt_vld, lsu_ifu_ld_pcxpkt_tid,
1712
   lsu_ifu_ld_icache_index, lsu_ifu_l2_unc_error,
1713
   lsu_ifu_l2_corr_error, lsu_ifu_io_error, lsu_ifu_inj_ack,
1714
   lsu_ifu_icache_en, lsu_ifu_error_tid, lsu_ifu_err_addr,
1715
   lsu_ifu_dtlb_tag_ue, lsu_ifu_dtlb_data_ue, lsu_ifu_dtlb_data_su,
1716
   lsu_ifu_direct_map_l1, lsu_ifu_dcache_tag_perror,
1717
   lsu_ifu_dcache_data_perror, lsu_ifu_dc_parity_error_w2,
1718
   lsu_ifu_cpxpkt_i1, lsu_ifu_asi_vld, lsu_ifu_asi_thrid,
1719
   lsu_ifu_asi_state, lsu_ifu_asi_load, lsu_ifu_asi_addr,
1720
   lsu_ifu_addr_real_l, grst_l, gdbginit_l, ffu_ifu_tid_w2,
1721 103 fafa1971
   ffu_ifu_stallreq,wbm_spc_stall,wbm_spc_resume, ffu_ifu_inj_ack, ffu_ifu_fst_ce_w,
1722 95 fafa1971
   ffu_ifu_fpop_done_w2, ffu_ifu_err_synd_w2, ffu_ifu_err_reg_w2,
1723
   ffu_ifu_ecc_ue_w2, ffu_ifu_ecc_ce_w2, ffu_ifu_cc_w2,
1724
   ffu_ifu_cc_vld_w2, exu_ifu_va_oor_m, exu_ifu_spill_e,
1725
   exu_ifu_regz_e, exu_ifu_regn_e, exu_ifu_oddwin_s,
1726
   exu_ifu_longop_done_g, exu_ifu_inj_ack, exu_ifu_err_synd_m,
1727
   exu_ifu_err_reg_m, exu_ifu_ecc_ue_m, exu_ifu_ecc_ce_m,
1728
   exu_ifu_cc_d, exu_ifu_brpc_e, efc_spc_ifuse_dshift,
1729
   efc_spc_ifuse_data, efc_spc_ifuse_ashift, efc_spc_fuse_clk2,
1730
   efc_spc_fuse_clk1, ctu_tck, ctu_sscan_tid, ctu_sscan_snap,
1731
   ctu_sscan_se, const_maskid, const_cpuid, arst_l,
1732
   mem_write_disable, mux_drive_disable, exu_tlu_wsr_data_m,
1733
   lsu_ictag_mrgn, lsu_idtlb_mrgn, si0, short_si0, short_si1,
1734
   tlu_itlb_tte_tag_w2, tlu_itlb_tte_data_w2,
1735
   tlu_itlb_rw_index_vld_g, tlu_itlb_rw_index_g, tlu_idtlb_dmp_key_g,
1736
   tlu_itlb_dmp_all_g, lsu_sscan_data, tlu_sscan_data
1737
   );
1738
 
1739
 
1740
   input          mem_write_disable;
1741
   input          mux_drive_disable;
1742
 
1743
   input [2:0]     exu_tlu_wsr_data_m;
1744
   input [3:0]    lsu_ictag_mrgn;
1745
   input [7:0]    lsu_idtlb_mrgn;
1746
 
1747
   // eco 5362
1748
   output         ifu_exu_addr_mask_d;
1749
 
1750
 
1751
   // scan ports
1752
   input                si0, short_si0,short_si1;
1753
   output               so0,short_so0,short_so1;
1754
   output         ifu_tlu_inst_vld_w;   // From fcl of sparc_ifu_fcl.v
1755
   output         ifu_tlu_flush_w;        // From fcl of sparc_ifu_fcl.v
1756
   output         ifu_lsu_alt_space_e;    // From dec of sparc_ifu_dec.v
1757
   output         ifu_tlu_ttype_vld_m;// From fcl of sparc_ifu_fcl.v
1758
   output [4:0]   ifu_exu_muldivop_d;
1759
   output [1:0]   ifu_lsu_thrid_s;
1760
 
1761
   // itlb inputs
1762
   input [58:0]   tlu_itlb_tte_tag_w2;
1763
   input [42:0]   tlu_itlb_tte_data_w2;
1764
   input          tlu_itlb_rw_index_vld_g;
1765
   input [5:0]    tlu_itlb_rw_index_g;
1766
   input [40:0]   tlu_idtlb_dmp_key_g;
1767
   input          tlu_itlb_dmp_all_g;
1768
 
1769
   // sscan rename
1770
   input [15:0]   lsu_sscan_data;
1771
   input [62:0]   tlu_sscan_data;
1772
 
1773
   output [7:0]   mbist_write_data;     // From mbist of sparc_ifu_mbist.v
1774
 
1775
   /*AUTOINPUT*/
1776
   // Beginning of automatic inputs (from unused autoinst inputs)
1777
   input                arst_l;                 // To swl of sparc_ifu_swl.v, ...
1778
   input [3:0]          const_cpuid;            // To swl of sparc_ifu_swl.v, ...
1779
   input [7:0]          const_maskid;           // To fdp of sparc_ifu_fdp.v
1780
   input                ctu_sscan_se;           // To sscan of sparc_ifu_sscan.v
1781
   input                ctu_sscan_snap;         // To sscan of sparc_ifu_sscan.v
1782
   input [3:0]          ctu_sscan_tid;          // To swl of sparc_ifu_swl.v, ...
1783
   input                ctu_tck;                // To sscan of sparc_ifu_sscan.v
1784
   input                efc_spc_fuse_clk1;      // To icdhdr of cmp_sram_redhdr.v, ...
1785
   input                efc_spc_fuse_clk2;      // To icdhdr of cmp_sram_redhdr.v
1786
   input                efc_spc_ifuse_ashift;   // To icdhdr of cmp_sram_redhdr.v
1787
   input                efc_spc_ifuse_data;     // To icdhdr of cmp_sram_redhdr.v
1788
   input                efc_spc_ifuse_dshift;   // To icdhdr of cmp_sram_redhdr.v
1789
   input [47:0]         exu_ifu_brpc_e;         // To fdp of sparc_ifu_fdp.v
1790
   input [7:0]          exu_ifu_cc_d;           // To dcl of sparc_ifu_dcl.v
1791
   input                exu_ifu_ecc_ce_m;       // To fcl of sparc_ifu_fcl.v, ...
1792
   input                exu_ifu_ecc_ue_m;       // To errctl of sparc_ifu_errctl.v
1793
   input [7:0]          exu_ifu_err_reg_m;      // To errdp of sparc_ifu_errdp.v
1794
   input [7:0]          exu_ifu_err_synd_m;     // To errdp of sparc_ifu_errdp.v
1795
   input                exu_ifu_inj_ack;        // To errctl of sparc_ifu_errctl.v
1796
   input [3:0]          exu_ifu_longop_done_g;  // To swl of sparc_ifu_swl.v
1797
   input [3:0]          exu_ifu_oddwin_s;       // To fcl of sparc_ifu_fcl.v
1798
   input                exu_ifu_regn_e;         // To dcl of sparc_ifu_dcl.v
1799
   input                exu_ifu_regz_e;         // To fcl of sparc_ifu_fcl.v
1800
   input                exu_ifu_spill_e;        // To swl of sparc_ifu_swl.v
1801
   input                exu_ifu_va_oor_m;       // To fcl of sparc_ifu_fcl.v
1802
   input [3:0]          ffu_ifu_cc_vld_w2;      // To dcl of sparc_ifu_dcl.v
1803
   input [7:0]          ffu_ifu_cc_w2;          // To dcl of sparc_ifu_dcl.v
1804
   input                ffu_ifu_ecc_ce_w2;      // To errctl of sparc_ifu_errctl.v
1805
   input                ffu_ifu_ecc_ue_w2;      // To errctl of sparc_ifu_errctl.v
1806
   input [5:0]          ffu_ifu_err_reg_w2;     // To errdp of sparc_ifu_errdp.v
1807
   input [13:0]         ffu_ifu_err_synd_w2;    // To errdp of sparc_ifu_errdp.v
1808
   input                ffu_ifu_fpop_done_w2;   // To swl of sparc_ifu_swl.v
1809
   input                ffu_ifu_fst_ce_w;       // To swl of sparc_ifu_swl.v, ...
1810
   input                ffu_ifu_inj_ack;        // To errctl of sparc_ifu_errctl.v
1811 103 fafa1971
   input                ffu_ifu_stallreq;input wbm_spc_stall;input wbm_spc_resume;       // To fcl of sparc_ifu_fcl.v
1812 95 fafa1971
   input [1:0]          ffu_ifu_tid_w2;         // To swl of sparc_ifu_swl.v, ...
1813
   input                gdbginit_l;             // To swl of sparc_ifu_swl.v, ...
1814
   input                grst_l;                 // To swl of sparc_ifu_swl.v, ...
1815
   input [3:0]          lsu_ifu_addr_real_l;    // To fcl of sparc_ifu_fcl.v
1816
   input [17:0]         lsu_ifu_asi_addr;       // To ifqdp of sparc_ifu_ifqdp.v
1817
   input                lsu_ifu_asi_load;       // To ifqctl of sparc_ifu_ifqctl.v
1818
   input [7:0]          lsu_ifu_asi_state;      // To ifqctl of sparc_ifu_ifqctl.v
1819
   input [1:0]          lsu_ifu_asi_thrid;      // To ifqctl of sparc_ifu_ifqctl.v
1820
   input                lsu_ifu_asi_vld;        // To ifqctl of sparc_ifu_ifqctl.v
1821
   input [145-1:0]lsu_ifu_cpxpkt_i1;     // To ifqdp of sparc_ifu_ifqdp.v
1822
   input                lsu_ifu_dc_parity_error_w2;// To swl of sparc_ifu_swl.v, ...
1823
   input                lsu_ifu_dcache_data_perror;// To errctl of sparc_ifu_errctl.v
1824
   input                lsu_ifu_dcache_tag_perror;// To errctl of sparc_ifu_errctl.v
1825
   input                lsu_ifu_direct_map_l1;  // To ifqctl of sparc_ifu_ifqctl.v
1826
   input                lsu_ifu_dtlb_data_su;   // To errctl of sparc_ifu_errctl.v
1827
   input                lsu_ifu_dtlb_data_ue;   // To errctl of sparc_ifu_errctl.v
1828
   input                lsu_ifu_dtlb_tag_ue;    // To errctl of sparc_ifu_errctl.v
1829
   input [47:4]         lsu_ifu_err_addr;       // To errdp of sparc_ifu_errdp.v
1830
   input [1:0]          lsu_ifu_error_tid;      // To errctl of sparc_ifu_errctl.v
1831
   input [3:0]          lsu_ifu_icache_en;      // To fcl of sparc_ifu_fcl.v
1832
   input [3:0]          lsu_ifu_inj_ack;        // To errctl of sparc_ifu_errctl.v
1833
   input                lsu_ifu_io_error;       // To errctl of sparc_ifu_errctl.v
1834
   input                lsu_ifu_l2_corr_error;  // To errctl of sparc_ifu_errctl.v
1835
   input                lsu_ifu_l2_unc_error;   // To errctl of sparc_ifu_errctl.v
1836
   input [11:5] lsu_ifu_ld_icache_index;// To invctl of sparc_ifu_invctl.v
1837
   input [1:0]          lsu_ifu_ld_pcxpkt_tid;  // To invctl of sparc_ifu_invctl.v
1838
   input                lsu_ifu_ld_pcxpkt_vld;  // To invctl of sparc_ifu_invctl.v
1839
   input [3:0]          lsu_ifu_ldst_cmplt;     // To swl of sparc_ifu_swl.v
1840
   input                lsu_ifu_ldst_miss_g;    // To swl of sparc_ifu_swl.v
1841
   input                lsu_ifu_ldsta_internal_e;// To dec of sparc_ifu_dec.v, ...
1842
   input                lsu_ifu_pcxpkt_ack_d;   // To ifqctl of sparc_ifu_ifqctl.v
1843
   input                lsu_ifu_quad_asi_e;     // To swl of sparc_ifu_swl.v
1844
   input                lsu_ifu_stallreq;       // To fcl of sparc_ifu_fcl.v
1845
   input [3:0]          lsu_ifu_stbcnt0;        // To swl of sparc_ifu_swl.v
1846
   input [3:0]          lsu_ifu_stbcnt1;        // To swl of sparc_ifu_swl.v
1847
   input [3:0]          lsu_ifu_stbcnt2;        // To swl of sparc_ifu_swl.v
1848
   input [3:0]          lsu_ifu_stbcnt3;        // To swl of sparc_ifu_swl.v
1849
   input [47:0]         lsu_ifu_stxa_data;      // To ifqdp of sparc_ifu_ifqdp.v
1850
   input                lsu_ifu_t0_tlz;         // To fcl of sparc_ifu_fcl.v
1851
   input                lsu_ifu_t1_tlz;         // To fcl of sparc_ifu_fcl.v
1852
   input                lsu_ifu_t2_tlz;         // To fcl of sparc_ifu_fcl.v
1853
   input                lsu_ifu_t3_tlz;         // To fcl of sparc_ifu_fcl.v
1854
   input [2:0]          lsu_pid_state0;         // To fcl of sparc_ifu_fcl.v
1855
   input [2:0]          lsu_pid_state1;         // To fcl of sparc_ifu_fcl.v
1856
   input [2:0]          lsu_pid_state2;         // To fcl of sparc_ifu_fcl.v
1857
   input [2:0]          lsu_pid_state3;         // To fcl of sparc_ifu_fcl.v
1858
   input [12:0]         lsu_t0_pctxt_state;     // To fdp of sparc_ifu_fdp.v
1859
   input [12:0]         lsu_t1_pctxt_state;     // To fdp of sparc_ifu_fdp.v
1860
   input [12:0]         lsu_t2_pctxt_state;     // To fdp of sparc_ifu_fdp.v
1861
   input [12:0]         lsu_t3_pctxt_state;     // To fdp of sparc_ifu_fdp.v
1862
   input                mbist_bisi_mode;        // To mbist of sparc_ifu_mbist.v
1863
   input [71:0]         mbist_dcache_data_in;   // To mbist of sparc_ifu_mbist.v
1864
   input                mbist_loop_mode;        // To mbist of sparc_ifu_mbist.v
1865
   input                mbist_loop_on_address;  // To mbist of sparc_ifu_mbist.v
1866
   input                mbist_start;            // To mbist of sparc_ifu_mbist.v
1867
   input                mbist_stop_on_fail;     // To mbist of sparc_ifu_mbist.v
1868
   input                mbist_stop_on_next_fail;// To mbist of sparc_ifu_mbist.v
1869
   input                mbist_userdata_mode;    // To mbist of sparc_ifu_mbist.v
1870
   input                rclk;                   // To dec of sparc_ifu_dec.v, ...
1871
   input                se;                     // To dec of sparc_ifu_dec.v, ...
1872
   input                sehold;                 // To fcl of sparc_ifu_fcl.v, ...
1873
   input                spu_ifu_corr_err_w2;    // To errctl of sparc_ifu_errctl.v
1874
   input [39:4]         spu_ifu_err_addr_w2;    // To errdp of sparc_ifu_errdp.v
1875
   input                spu_ifu_int_w2;         // To errctl of sparc_ifu_errctl.v
1876
   input                spu_ifu_mamem_err_w1;   // To errctl of sparc_ifu_errctl.v
1877
   input [1:0]          spu_ifu_ttype_tid_w2;   // To fcl of sparc_ifu_fcl.v, ...
1878
   input                spu_ifu_ttype_vld_w2;   // To fcl of sparc_ifu_fcl.v
1879
   input                spu_ifu_ttype_w2;       // To fcl of sparc_ifu_fcl.v
1880
   input                spu_ifu_unc_err_w1;     // To errctl of sparc_ifu_errctl.v
1881
   input                testmode_l;             // To icdhdr of cmp_sram_redhdr.v
1882
   input [3:0]          tlu_hpstate_enb;        // To fcl of sparc_ifu_fcl.v
1883
   input [3:0]          tlu_hpstate_ibe;        // To swl of sparc_ifu_swl.v
1884
   input [3:0]          tlu_hpstate_priv;       // To fcl of sparc_ifu_fcl.v
1885
   input [1:0]          tlu_idtlb_dmp_thrid_g;  // To fcl of sparc_ifu_fcl.v
1886
   input                tlu_ifu_flush_pipe_w;   // To swl of sparc_ifu_swl.v, ...
1887
   input [3:0]          tlu_ifu_hintp_vld;      // To fcl of sparc_ifu_fcl.v
1888
   input [3:0]          tlu_ifu_hwint_i3;       // To fcl of sparc_ifu_fcl.v
1889
   input                tlu_ifu_nukeint_i2;     // To fcl of sparc_ifu_fcl.v
1890
   input [3:0]          tlu_ifu_pstate_ie;      // To fcl of sparc_ifu_fcl.v
1891
   input [3:0]          tlu_ifu_pstate_pef;     // To swl of sparc_ifu_swl.v
1892
   input [3:0]          tlu_ifu_rerr_vld;       // To fcl of sparc_ifu_fcl.v
1893
   input                tlu_ifu_resumint_i2;    // To fcl of sparc_ifu_fcl.v
1894
   input                tlu_ifu_rstint_i2;      // To fcl of sparc_ifu_fcl.v
1895
   input [3:0]          tlu_ifu_rstthr_i2;      // To fcl of sparc_ifu_fcl.v
1896
   input [3:0]          tlu_ifu_sftint_vld;     // To fcl of sparc_ifu_fcl.v
1897
   input [1:0]          tlu_ifu_trap_tid_w1;    // To swl of sparc_ifu_swl.v, ...
1898
   input                tlu_ifu_trapnpc_vld_w1; // To fcl of sparc_ifu_fcl.v
1899
   input [48:0]         tlu_ifu_trapnpc_w2;     // To fdp of sparc_ifu_fdp.v
1900
   input                tlu_ifu_trappc_vld_w1;  // To swl of sparc_ifu_swl.v, ...
1901
   input [48:0]         tlu_ifu_trappc_w2;      // To fdp of sparc_ifu_fdp.v
1902
   input                tlu_itlb_data_rd_g;     // To fcl of sparc_ifu_fcl.v
1903
   input                tlu_itlb_dmp_actxt_g;   // To fdp of sparc_ifu_fdp.v
1904
   input                tlu_itlb_dmp_nctxt_g;   // To fdp of sparc_ifu_fdp.v
1905
   input                tlu_itlb_dmp_vld_g;     // To fcl of sparc_ifu_fcl.v
1906
   input                tlu_itlb_invalidate_all_g;// To fcl of sparc_ifu_fcl.v
1907
   input                tlu_itlb_tag_rd_g;      // To fcl of sparc_ifu_fcl.v
1908
   input                tlu_itlb_wr_vld_g;      // To fcl of sparc_ifu_fcl.v
1909
   input [3:0]          tlu_lsu_pstate_am;      // To fcl of sparc_ifu_fcl.v
1910
   input [3:0]          tlu_lsu_pstate_priv;    // To fcl of sparc_ifu_fcl.v, ...
1911
   input [3:0]          tlu_lsu_redmode;        // To fcl of sparc_ifu_fcl.v
1912
   // End of automatics
1913
 
1914
 
1915
   /*AUTOOUTPUT*/
1916
   // Beginning of automatic outputs (from unused autoinst outputs)
1917
   output [2:0]         ifu_exu_aluop_d;        // From dec of sparc_ifu_dec.v
1918
   output               ifu_exu_casa_d;         // From dec of sparc_ifu_dec.v
1919
   output               ifu_exu_dbrinst_d;      // From dcl of sparc_ifu_dcl.v
1920
   output               ifu_exu_disable_ce_e;   // From fcl of sparc_ifu_fcl.v
1921
   output               ifu_exu_dontmv_regz0_e; // From dcl of sparc_ifu_dcl.v
1922
   output               ifu_exu_dontmv_regz1_e; // From dcl of sparc_ifu_dcl.v
1923
   output [7:0]         ifu_exu_ecc_mask;       // From errctl of sparc_ifu_errctl.v
1924
   output               ifu_exu_enshift_d;      // From dec of sparc_ifu_dec.v
1925
   output               ifu_exu_flushw_e;       // From dec of sparc_ifu_dec.v
1926
   output               ifu_exu_ialign_d;       // From dec of sparc_ifu_dec.v
1927
   output [31:0]        ifu_exu_imm_data_d;     // From imd of sparc_ifu_imd.v
1928
   output               ifu_exu_inj_irferr;     // From errctl of sparc_ifu_errctl.v
1929
   output               ifu_exu_inst_vld_e;     // From fcl of sparc_ifu_fcl.v
1930
   output               ifu_exu_inst_vld_w;     // From fcl of sparc_ifu_fcl.v
1931
   output               ifu_exu_invert_d;       // From dec of sparc_ifu_dec.v
1932
   output               ifu_exu_kill_e;         // From dcl of sparc_ifu_dcl.v
1933
   output               ifu_exu_muls_d;         // From dec of sparc_ifu_dec.v
1934
   output               ifu_exu_nceen_e;        // From errctl of sparc_ifu_errctl.v
1935
   output [47:0]        ifu_exu_pc_d;           // From fdp of sparc_ifu_fdp.v
1936
   output [63:0]        ifu_exu_pcver_e;        // From fdp of sparc_ifu_fdp.v
1937
   output               ifu_exu_range_check_jlret_d;// From dec of sparc_ifu_dec.v
1938
   output               ifu_exu_range_check_other_d;// From dec of sparc_ifu_dec.v
1939
   output [4:0]         ifu_exu_rd_d;           // From imd of sparc_ifu_imd.v
1940
   output               ifu_exu_rd_exusr_e;     // From dec of sparc_ifu_dec.v
1941
   output               ifu_exu_rd_ffusr_e;     // From dec of sparc_ifu_dec.v
1942
   output               ifu_exu_rd_ifusr_e;     // From dec of sparc_ifu_dec.v
1943
   output               ifu_exu_ren1_s;         // From fcl of sparc_ifu_fcl.v
1944
   output               ifu_exu_ren2_s;         // From fcl of sparc_ifu_fcl.v
1945
   output               ifu_exu_ren3_s;         // From fcl of sparc_ifu_fcl.v
1946
   output               ifu_exu_restore_d;      // From dec of sparc_ifu_dec.v
1947
   output               ifu_exu_restored_e;     // From dec of sparc_ifu_dec.v
1948
   output               ifu_exu_return_d;       // From dec of sparc_ifu_dec.v
1949
   output [4:0]         ifu_exu_rs1_s;          // From fdp of sparc_ifu_fdp.v
1950
   output               ifu_exu_rs1_vld_d;      // From dec of sparc_ifu_dec.v
1951
   output [4:0]         ifu_exu_rs2_s;          // From fdp of sparc_ifu_fdp.v
1952
   output               ifu_exu_rs2_vld_d;      // From dec of sparc_ifu_dec.v
1953
   output [4:0]         ifu_exu_rs3_s;          // From fdp of sparc_ifu_fdp.v
1954
   output               ifu_exu_rs3e_vld_d;     // From dec of sparc_ifu_dec.v
1955
   output               ifu_exu_rs3o_vld_d;     // From dec of sparc_ifu_dec.v
1956
   output               ifu_exu_save_d;         // From dec of sparc_ifu_dec.v
1957
   output               ifu_exu_saved_e;        // From dec of sparc_ifu_dec.v
1958
   output               ifu_exu_setcc_d;        // From dec of sparc_ifu_dec.v
1959
   output               ifu_exu_sethi_inst_d;   // From dec of sparc_ifu_dec.v
1960
   output [2:0]         ifu_exu_shiftop_d;      // From dec of sparc_ifu_dec.v
1961
   output               ifu_exu_tagop_d;        // From dec of sparc_ifu_dec.v
1962
   output               ifu_exu_tcc_e;          // From dcl of sparc_ifu_dcl.v
1963
   output [1:0]         ifu_exu_tid_s2;         // From fcl of sparc_ifu_fcl.v
1964
   output               ifu_exu_ttype_vld_m;    // From fcl of sparc_ifu_fcl.v
1965
   output               ifu_exu_tv_d;           // From dec of sparc_ifu_dec.v
1966
   output               ifu_exu_use_rsr_e_l;    // From dec of sparc_ifu_dec.v
1967
   output               ifu_exu_usecin_d;       // From dec of sparc_ifu_dec.v
1968
   output               ifu_exu_useimm_d;       // From dec of sparc_ifu_dec.v
1969
   output               ifu_exu_wen_d;          // From dec of sparc_ifu_dec.v
1970
   output               ifu_exu_wsr_inst_d;     // From dec of sparc_ifu_dec.v
1971
   output [1:0]         ifu_ffu_fcc_num_d;      // From imd of sparc_ifu_imd.v
1972
   output               ifu_ffu_fld_d;          // From dec of sparc_ifu_dec.v
1973
   output               ifu_ffu_fpop1_d;        // From dec of sparc_ifu_dec.v
1974
   output               ifu_ffu_fpop2_d;        // From dec of sparc_ifu_dec.v
1975
   output [8:0]         ifu_ffu_fpopcode_d;     // From imd of sparc_ifu_imd.v
1976
   output [4:0]         ifu_ffu_frd_d;          // From imd of sparc_ifu_imd.v
1977
   output [4:0]         ifu_ffu_frs1_d;         // From imd of sparc_ifu_imd.v
1978
   output [4:0]         ifu_ffu_frs2_d;         // From imd of sparc_ifu_imd.v
1979
   output               ifu_ffu_fst_d;          // From dec of sparc_ifu_dec.v
1980
   output               ifu_ffu_inj_frferr;     // From errctl of sparc_ifu_errctl.v
1981
   output               ifu_ffu_ldfsr_d;        // From dec of sparc_ifu_dec.v
1982
   output               ifu_ffu_ldst_size_d;    // From dec of sparc_ifu_dec.v
1983
   output               ifu_ffu_ldxfsr_d;       // From dec of sparc_ifu_dec.v
1984
   output               ifu_ffu_mvcnd_m;        // From dcl of sparc_ifu_dcl.v
1985
   output               ifu_ffu_quad_op_e;      // From dec of sparc_ifu_dec.v
1986
   output               ifu_ffu_stfsr_d;        // From dec of sparc_ifu_dec.v
1987
   output               ifu_ffu_visop_d;        // From dec of sparc_ifu_dec.v
1988
   output               ifu_lsu_alt_space_d;    // From dec of sparc_ifu_dec.v
1989
   output               ifu_lsu_asi_ack;        // From ifqctl of sparc_ifu_ifqctl.v
1990
   output               ifu_lsu_asi_rd_unc;     // From errctl of sparc_ifu_errctl.v
1991
   output               ifu_lsu_casa_e;         // From dec of sparc_ifu_dec.v
1992
   output [2:0]         ifu_lsu_destid_s;       // From ifqctl of sparc_ifu_ifqctl.v
1993
   output [3:0]         ifu_lsu_error_inj;      // From errctl of sparc_ifu_errctl.v
1994
   output               ifu_lsu_fwd_data_vld;   // From errctl of sparc_ifu_errctl.v
1995
   output               ifu_lsu_fwd_wr_ack;     // From ifqctl of sparc_ifu_ifqctl.v
1996
   output               ifu_lsu_ibuf_busy;      // From ifqctl of sparc_ifu_ifqctl.v
1997
   output [7:0]         ifu_lsu_imm_asi_d;      // From imd of sparc_ifu_imd.v
1998
   output               ifu_lsu_imm_asi_vld_d;  // From imd of sparc_ifu_imd.v
1999
   output               ifu_lsu_inv_clear;      // From ifqctl of sparc_ifu_ifqctl.v
2000
   output               ifu_lsu_ld_inst_e;      // From dec of sparc_ifu_dec.v
2001
   output               ifu_lsu_ldst_dbl_e;     // From dec of sparc_ifu_dec.v
2002
   output               ifu_lsu_ldst_fp_e;      // From dec of sparc_ifu_dec.v
2003
   output [1:0]         ifu_lsu_ldst_size_e;    // From dec of sparc_ifu_dec.v
2004
   output               ifu_lsu_ldstub_e;       // From dec of sparc_ifu_dec.v
2005
   output               ifu_lsu_ldxa_data_vld_w2;// From errctl of sparc_ifu_errctl.v
2006
   output [63:0]        ifu_lsu_ldxa_data_w2;   // From errdp of sparc_ifu_errdp.v
2007
   output               ifu_lsu_ldxa_illgl_va_w2;// From ifqctl of sparc_ifu_ifqctl.v
2008
   output [1:0]         ifu_lsu_ldxa_tid_w2;    // From errctl of sparc_ifu_errctl.v
2009
   output               ifu_lsu_memref_d;       // From dec of sparc_ifu_dec.v
2010
   output [3:0]         ifu_lsu_nceen;          // From errctl of sparc_ifu_errctl.v
2011
   output [51:0]        ifu_lsu_pcxpkt_e;       // From ifqdp of sparc_ifu_ifqdp.v
2012
   output               ifu_lsu_pcxreq_d;       // From ifqctl of sparc_ifu_ifqctl.v
2013
   output               ifu_lsu_pref_inst_e;    // From dec of sparc_ifu_dec.v
2014
   output [4:0]         ifu_lsu_rd_e;           // From imd of sparc_ifu_imd.v
2015
   output               ifu_lsu_sign_ext_e;     // From dec of sparc_ifu_dec.v
2016
   output               ifu_lsu_st_inst_e;      // From dec of sparc_ifu_dec.v
2017
   output               ifu_lsu_swap_e;         // From dec of sparc_ifu_dec.v
2018
   output               ifu_lsu_wsr_inst_d;     // From dec of sparc_ifu_dec.v
2019
   output               ifu_mmu_trap_m;         // From fcl of sparc_ifu_fcl.v
2020
   output               ifu_spu_inst_vld_w;     // From fcl of sparc_ifu_fcl.v
2021
   output [3:0]         ifu_spu_nceen;          // From errctl of sparc_ifu_errctl.v
2022
   output               ifu_spu_trap_ack;       // From fcl of sparc_ifu_fcl.v
2023
   output               ifu_tlu_alt_space_d;    // From dec of sparc_ifu_dec.v
2024
   output               ifu_tlu_done_inst_d;    // From dec of sparc_ifu_dec.v
2025
   output               ifu_tlu_flsh_inst_e;    // From dec of sparc_ifu_dec.v
2026
   output               ifu_tlu_flush_m;        // From fcl of sparc_ifu_fcl.v
2027
   output               ifu_tlu_hwint_m;        // From fcl of sparc_ifu_fcl.v
2028
   output               ifu_tlu_icmiss_e;       // From fcl of sparc_ifu_fcl.v
2029
   output [8:0]         ifu_tlu_imm_asi_d;      // From imd of sparc_ifu_imd.v
2030
   output               ifu_tlu_immu_miss_m;    // From fcl of sparc_ifu_fcl.v
2031
   output               ifu_tlu_inst_vld_m;     // From fcl of sparc_ifu_fcl.v
2032
   output               ifu_tlu_itlb_done;      // From fcl of sparc_ifu_fcl.v
2033
   output [3:0]         ifu_tlu_l2imiss;        // From ifqctl of sparc_ifu_ifqctl.v
2034
   output               ifu_tlu_mb_inst_e;      // From dec of sparc_ifu_dec.v
2035
   output [48:0]        ifu_tlu_npc_m;          // From fdp of sparc_ifu_fdp.v
2036
   output [48:0]        ifu_tlu_pc_m;           // From fdp of sparc_ifu_fdp.v
2037
   output               ifu_tlu_pc_oor_e;       // From fdp of sparc_ifu_fdp.v
2038
   output               ifu_tlu_priv_violtn_m;  // From fcl of sparc_ifu_fcl.v
2039
   output               ifu_tlu_retry_inst_d;   // From dec of sparc_ifu_dec.v
2040
   output               ifu_tlu_rsr_inst_d;     // From dec of sparc_ifu_dec.v
2041
   output               ifu_tlu_rstint_m;       // From fcl of sparc_ifu_fcl.v
2042
   output               ifu_tlu_sftint_m;       // From fcl of sparc_ifu_fcl.v
2043
   output               ifu_tlu_sir_inst_m;     // From dec of sparc_ifu_dec.v
2044
   output [6:0]         ifu_tlu_sraddr_d;       // From imd of sparc_ifu_imd.v
2045
   output [6:0]         ifu_tlu_sraddr_d_v2;    // From imd of sparc_ifu_imd.v
2046
   output [1:0]         ifu_tlu_thrid_d;        // From fcl of sparc_ifu_fcl.v
2047
   output [1:0]         ifu_tlu_thrid_e;        // From fcl of sparc_ifu_fcl.v
2048
   output               ifu_tlu_trap_m;         // From fcl of sparc_ifu_fcl.v
2049
   output [8:0]         ifu_tlu_ttype_m;        // From fcl of sparc_ifu_fcl.v
2050
   output               mbist_dcache_fail;      // From mbist of sparc_ifu_mbist.v
2051
   output [6:0]         mbist_dcache_index;     // From mbist of sparc_ifu_mbist.v
2052
   output               mbist_dcache_read;      // From mbist of sparc_ifu_mbist.v
2053
   output [1:0]         mbist_dcache_way;       // From mbist of sparc_ifu_mbist.v
2054
   output               mbist_dcache_word;      // From mbist of sparc_ifu_mbist.v
2055
   output               mbist_dcache_write;     // From mbist of sparc_ifu_mbist.v
2056
   output               mbist_done;             // From mbist of sparc_ifu_mbist.v
2057
   output               mbist_icache_fail;      // From mbist of sparc_ifu_mbist.v
2058
   output               sparc_sscan_so;         // From sscan of sparc_ifu_sscan.v
2059
   output               spc_efc_ifuse_data;     // From icdhdr of cmp_sram_redhdr.v
2060
   // End of automatics
2061
 
2062
   /*AUTOWIRE*/
2063
   // Beginning of automatic wires (for undeclared instantiated-module outputs)
2064
   wire                 dcl_fcl_bcregz0_e;      // From dcl of sparc_ifu_dcl.v
2065
   wire                 dcl_fcl_bcregz1_e;      // From dcl of sparc_ifu_dcl.v
2066
   wire                 dcl_imd_broff_sel_bcc_d_l;// From dcl of sparc_ifu_dcl.v
2067
   wire                 dcl_imd_broff_sel_bpcc_d_l;// From dcl of sparc_ifu_dcl.v
2068
   wire                 dcl_imd_broff_sel_br_d_l;// From dcl of sparc_ifu_dcl.v
2069
   wire                 dcl_imd_broff_sel_call_d_l;// From dcl of sparc_ifu_dcl.v
2070
   wire                 dcl_imd_immbr_sel_br_d; // From dcl of sparc_ifu_dcl.v
2071
   wire                 dcl_imd_immdata_sel_movcc_d_l;// From dcl of sparc_ifu_dcl.v
2072
   wire                 dcl_imd_immdata_sel_movr_d_l;// From dcl of sparc_ifu_dcl.v
2073
   wire                 dcl_imd_immdata_sel_sethi_d_l;// From dcl of sparc_ifu_dcl.v
2074
   wire                 dcl_imd_immdata_sel_simm13_d_l;// From dcl of sparc_ifu_dcl.v
2075
   wire                 dcl_swl_tcc_done_m;     // From dcl of sparc_ifu_dcl.v
2076
   wire [2:0]           dec_dcl_cctype_d;       // From dec of sparc_ifu_dec.v
2077
   wire                 dec_fcl_rdsr_sel_pc_d;  // From dec of sparc_ifu_dec.v
2078
   wire                 dec_fcl_rdsr_sel_thr_d; // From dec of sparc_ifu_dec.v
2079
   wire                 dec_imd_call_inst_d;    // From dec of sparc_ifu_dec.v
2080
   wire                 dec_swl_allfp_d;        // From dec of sparc_ifu_dec.v
2081
   wire                 dec_swl_br_done_d;      // From dec of sparc_ifu_dec.v
2082
   wire                 dec_swl_div_inst_d;     // From dec of sparc_ifu_dec.v
2083
   wire                 dec_swl_fpop_d;         // From dec of sparc_ifu_dec.v
2084
   wire                 dec_swl_frf_lower_d;    // From dec of sparc_ifu_dec.v
2085
   wire                 dec_swl_frf_upper_d;    // From dec of sparc_ifu_dec.v
2086
   wire                 dec_swl_ld_inst_d;      // From dec of sparc_ifu_dec.v
2087
   wire                 dec_swl_ll_done_d;      // From dec of sparc_ifu_dec.v
2088
   wire                 dec_swl_mul_inst_d;     // From dec of sparc_ifu_dec.v
2089
   wire                 dec_swl_rdsr_sel_thr_d; // From dec of sparc_ifu_dec.v
2090
   wire                 dec_swl_st_inst_d;      // From dec of sparc_ifu_dec.v
2091
   wire                 dec_swl_sta_inst_e;     // From dec of sparc_ifu_dec.v
2092
   wire                 dec_swl_std_inst_d;     // From dec of sparc_ifu_dec.v
2093
   wire                 dec_swl_wrt_tcr_w;      // From dec of sparc_ifu_dec.v
2094
   wire                 dec_swl_wrtfprs_w;      // From dec of sparc_ifu_dec.v
2095
   wire                 dtu_fcl_br_inst_d;      // From dec of sparc_ifu_dec.v
2096
   wire                 dtu_fcl_flush_sonly_e;  // From dec of sparc_ifu_dec.v
2097
   wire                 dtu_fcl_fpdis_e;        // From dec of sparc_ifu_dec.v
2098
   wire                 dtu_fcl_illinst_e;      // From dec of sparc_ifu_dec.v
2099
   wire                 dtu_fcl_imask_hit_e;    // From dec of sparc_ifu_dec.v
2100
   wire [3:0]           dtu_fcl_nextthr_bf;     // From swl of sparc_ifu_swl.v
2101
   wire                 dtu_fcl_ntr_s;          // From swl of sparc_ifu_swl.v
2102
   wire                 dtu_fcl_privop_e;       // From dec of sparc_ifu_dec.v
2103
   wire                 dtu_fcl_retract_d;      // From swl of sparc_ifu_swl.v
2104
   wire                 dtu_fcl_rollback_g;     // From swl of sparc_ifu_swl.v
2105
   wire                 dtu_fcl_running_s;      // From swl of sparc_ifu_swl.v
2106
   wire                 dtu_fcl_sir_inst_e;     // From dec of sparc_ifu_dec.v
2107
   wire [3:0]           dtu_fcl_thr_active;     // From swl of sparc_ifu_swl.v
2108
   wire [40:0]          dtu_fdp_thrconf_e;      // From swl of sparc_ifu_swl.v
2109
   wire                 dtu_ifq_kill_latest_d;  // From dec of sparc_ifu_dec.v
2110
   wire                 dtu_inst_anull_e;       // From dcl of sparc_ifu_dcl.v
2111
   wire [31:0]          dtu_inst_d;             // From imd of sparc_ifu_imd.v
2112
   wire                 dtu_reset;              // From swl of sparc_ifu_swl.v
2113
   wire                 erb_dtu_ifeterr_d1;     // From errctl of sparc_ifu_errctl.v
2114
   wire [38:0]          erb_dtu_imask;          // From errdp of sparc_ifu_errdp.v
2115
   wire [3:0]           erb_fcl_ce_trapvec;     // From errctl of sparc_ifu_errctl.v
2116
   wire [3:0]           erb_fcl_ifet_uevec_d1;  // From errctl of sparc_ifu_errctl.v
2117
   wire                 erb_fcl_itlb_ce_d1;     // From errctl of sparc_ifu_errctl.v
2118
   wire [3:0]           erb_fcl_spu_uetrap;     // From errctl of sparc_ifu_errctl.v
2119
   wire [3:0]           erb_fcl_ue_trapvec;     // From errctl of sparc_ifu_errctl.v
2120
   wire                 erb_ifq_ifeterr_d1;     // From errctl of sparc_ifu_errctl.v
2121
   wire                 erb_ifq_itlberr_s1;     // From errctl of sparc_ifu_errctl.v
2122
   wire                 erb_reset;              // From errctl of sparc_ifu_errctl.v
2123
   wire [3:0]           erc_erd_asi_thr_l;      // From errctl of sparc_ifu_errctl.v
2124
   wire                 erc_erd_asisrc_sel_err_s_l;// From errctl of sparc_ifu_errctl.v
2125
   wire                 erc_erd_asisrc_sel_icd_s_l;// From errctl of sparc_ifu_errctl.v
2126
   wire                 erc_erd_asisrc_sel_itlb_s_l;// From errctl of sparc_ifu_errctl.v
2127
   wire                 erc_erd_asisrc_sel_misc_s_l;// From errctl of sparc_ifu_errctl.v
2128
   wire [3:0]           erc_erd_asiway_s1_l;    // From errctl of sparc_ifu_errctl.v
2129
   wire [3:0]           erc_erd_eadr0_sel_frf_l;// From errctl of sparc_ifu_errctl.v
2130
   wire [3:0]           erc_erd_eadr0_sel_irf_l;// From errctl of sparc_ifu_errctl.v
2131
   wire [3:0]           erc_erd_eadr0_sel_itlb_l;// From errctl of sparc_ifu_errctl.v
2132
   wire [3:0]           erc_erd_eadr0_sel_lsu_l;// From errctl of sparc_ifu_errctl.v
2133
   wire [3:0]           erc_erd_eadr1_sel_l1pa_l;// From errctl of sparc_ifu_errctl.v
2134
   wire [3:0]           erc_erd_eadr1_sel_l2pa_l;// From errctl of sparc_ifu_errctl.v
2135
   wire [3:0]           erc_erd_eadr1_sel_other_l;// From errctl of sparc_ifu_errctl.v
2136
   wire [3:0]           erc_erd_eadr1_sel_pcd1_l;// From errctl of sparc_ifu_errctl.v
2137
   wire [3:0]           erc_erd_eadr2_sel_mx0_l;// From errctl of sparc_ifu_errctl.v
2138
   wire [3:0]           erc_erd_eadr2_sel_mx1_l;// From errctl of sparc_ifu_errctl.v
2139
   wire [3:0]           erc_erd_eadr2_sel_old_l;// From errctl of sparc_ifu_errctl.v
2140
   wire [3:0]           erc_erd_eadr2_sel_wrt_l;// From errctl of sparc_ifu_errctl.v
2141
   wire                 erc_erd_errasi_sel_addr_l;// From errctl of sparc_ifu_errctl.v
2142
   wire                 erc_erd_errasi_sel_en_l;// From errctl of sparc_ifu_errctl.v
2143
   wire                 erc_erd_errasi_sel_inj_l;// From errctl of sparc_ifu_errctl.v
2144
   wire                 erc_erd_errasi_sel_stat_l;// From errctl of sparc_ifu_errctl.v
2145
   wire [1:0]           erc_erd_erren_asidata;  // From errctl of sparc_ifu_errctl.v
2146
   wire [31:0]          erc_erd_errinj_asidata; // From errctl of sparc_ifu_errctl.v
2147
   wire [22:0]          erc_erd_errstat_asidata;// From errctl of sparc_ifu_errctl.v
2148
   wire                 erc_erd_ld_imask;       // From errctl of sparc_ifu_errctl.v
2149
   wire                 erc_erd_miscasi_sel_ict_l;// From errctl of sparc_ifu_errctl.v
2150
   wire                 erc_erd_miscasi_sel_imask_l;// From errctl of sparc_ifu_errctl.v
2151
   wire                 erc_erd_miscasi_sel_other_l;// From errctl of sparc_ifu_errctl.v
2152
   wire                 erc_erd_pgsz_b0;        // From errctl of sparc_ifu_errctl.v
2153
   wire                 erc_erd_pgsz_b1;        // From errctl of sparc_ifu_errctl.v
2154
   wire                 erd_erc_fetpe_s1;       // From errdp of sparc_ifu_errdp.v
2155
   wire                 erd_erc_nirpe_s1;       // From errdp of sparc_ifu_errdp.v
2156
   wire [3:0]           erd_erc_tagpe_s1;       // From errdp of sparc_ifu_errdp.v
2157
   wire [1:0]           erd_erc_tlbd_pe_s1;     // From errdp of sparc_ifu_errdp.v
2158
   wire [1:0]           erd_erc_tlbt_pe_s1;     // From errdp of sparc_ifu_errdp.v
2159
   wire [2:0]           erd_erc_tte_pgsz;       // From errdp of sparc_ifu_errdp.v
2160
   wire                 fcl_dcl_regz_e;         // From fcl of sparc_ifu_fcl.v
2161
   wire                 fcl_dec_dslot_s;        // From fcl of sparc_ifu_fcl.v
2162
   wire                 fcl_dec_intr_vld_d;     // From fcl of sparc_ifu_fcl.v
2163
   wire                 fcl_dtu_ely_inst_vld_d; // From fcl of sparc_ifu_fcl.v
2164
   wire                 fcl_dtu_hprivmode_d;    // From fcl of sparc_ifu_fcl.v
2165
   wire                 fcl_dtu_hprivmode_w2;   // From fcl of sparc_ifu_fcl.v
2166
   wire                 fcl_dtu_inst_vld_d;     // From fcl of sparc_ifu_fcl.v
2167
   wire                 fcl_dtu_inst_vld_e;     // From fcl of sparc_ifu_fcl.v
2168
   wire                 fcl_dtu_intr_vld_e;     // From fcl of sparc_ifu_fcl.v
2169
   wire                 fcl_dtu_nuke_thr_w;     // From fcl of sparc_ifu_fcl.v
2170
   wire                 fcl_dtu_privmode_d;     // From fcl of sparc_ifu_fcl.v
2171
   wire                 fcl_dtu_resum_thr_w;    // From fcl of sparc_ifu_fcl.v
2172
   wire                 fcl_dtu_rst_thr_w;      // From fcl of sparc_ifu_fcl.v
2173
   wire                 fcl_dtu_stall_bf;       // From fcl of sparc_ifu_fcl.v
2174
   wire                 fcl_dtu_sync_intr_d;    // From fcl of sparc_ifu_fcl.v
2175
   wire [3:0]           fcl_dtu_thr_f;          // From fcl of sparc_ifu_fcl.v
2176
   wire                 fcl_dtu_tlzero_d;       // From fcl of sparc_ifu_fcl.v
2177
   wire [1:0]           fcl_erb_asi_tid_f;      // From fcl of sparc_ifu_fcl.v
2178
   wire [3:0]           fcl_erb_clear_iferr;    // From fcl of sparc_ifu_fcl.v
2179
   wire                 fcl_erb_ievld_s1;       // From fcl of sparc_ifu_fcl.v
2180
   wire                 fcl_erb_immuevld_s1;    // From fcl of sparc_ifu_fcl.v
2181
   wire                 fcl_erb_inst_issue_d;   // From fcl of sparc_ifu_fcl.v
2182
   wire                 fcl_erb_inst_vld_d1;    // From fcl of sparc_ifu_fcl.v
2183
   wire                 fcl_erb_itlbrd_data_s;  // From fcl of sparc_ifu_fcl.v
2184
   wire                 fcl_erb_itlbrd_vld_s;   // From fcl of sparc_ifu_fcl.v
2185
   wire                 fcl_erb_tevld_s1;       // From fcl of sparc_ifu_fcl.v
2186
   wire                 fcl_fdp_ctxt_sel_curr_bf_l;// From fcl of sparc_ifu_fcl.v
2187
   wire                 fcl_fdp_ctxt_sel_dmp_bf_l;// From fcl of sparc_ifu_fcl.v
2188
   wire                 fcl_fdp_ctxt_sel_sw_bf_l;// From fcl of sparc_ifu_fcl.v
2189
   wire [3:0]           fcl_fdp_dmpthr_l;       // From fcl of sparc_ifu_fcl.v
2190
   wire                 fcl_fdp_inst_sel_curr_s_l;// From fcl of sparc_ifu_fcl.v
2191
   wire                 fcl_fdp_inst_sel_nir_s_l;// From fcl of sparc_ifu_fcl.v
2192
   wire                 fcl_fdp_inst_sel_nop_s_l;// From fcl of sparc_ifu_fcl.v
2193
   wire                 fcl_fdp_inst_sel_switch_s_l;// From fcl of sparc_ifu_fcl.v
2194
   wire                 fcl_fdp_mask32b_f;      // From fcl of sparc_ifu_fcl.v
2195
   wire [3:0]           fcl_fdp_next_ctxt_bf_l; // From fcl of sparc_ifu_fcl.v
2196
   wire [3:0]           fcl_fdp_next_thr_bf_l;  // From fcl of sparc_ifu_fcl.v
2197
   wire [3:0]           fcl_fdp_nextpcs_sel_pcd_f_l;// From fcl of sparc_ifu_fcl.v
2198
   wire [3:0]           fcl_fdp_nextpcs_sel_pce_f_l;// From fcl of sparc_ifu_fcl.v
2199
   wire [3:0]           fcl_fdp_nextpcs_sel_pcf_f_l;// From fcl of sparc_ifu_fcl.v
2200
   wire [3:0]           fcl_fdp_nextpcs_sel_pcs_f_l;// From fcl of sparc_ifu_fcl.v
2201
   wire [3:0]           fcl_fdp_nirthr_s1_l;    // From fcl of sparc_ifu_fcl.v
2202
   wire                 fcl_fdp_noswpc_sel_inc_l_bf;// From fcl of sparc_ifu_fcl.v
2203
   wire                 fcl_fdp_noswpc_sel_old_l_bf;// From fcl of sparc_ifu_fcl.v
2204
   wire                 fcl_fdp_noswpc_sel_tnpc_l_bf;// From fcl of sparc_ifu_fcl.v
2205
   wire                 fcl_fdp_oddwin_s;       // From fcl of sparc_ifu_fcl.v
2206
   wire                 fcl_fdp_pcbf_sel_br_bf_l;// From fcl of sparc_ifu_fcl.v
2207
   wire                 fcl_fdp_pcbf_sel_nosw_bf_l;// From fcl of sparc_ifu_fcl.v
2208
   wire                 fcl_fdp_pcbf_sel_swpc_bf_l;// From fcl of sparc_ifu_fcl.v
2209
   wire                 fcl_fdp_pcoor_f;        // From fcl of sparc_ifu_fcl.v
2210
   wire [3:0]           fcl_fdp_pcoor_vec_f;    // From fcl of sparc_ifu_fcl.v
2211
   wire [3:0]           fcl_fdp_rbinst_sel_inste_s;// From fcl of sparc_ifu_fcl.v
2212
   wire                 fcl_fdp_rdsr_sel_pc_e_l;// From fcl of sparc_ifu_fcl.v
2213
   wire                 fcl_fdp_rdsr_sel_thr_e_l;// From fcl of sparc_ifu_fcl.v
2214
   wire                 fcl_fdp_rdsr_sel_ver_e_l;// From fcl of sparc_ifu_fcl.v
2215
   wire [3:0]           fcl_fdp_tctxt_sel_prim; // From fcl of sparc_ifu_fcl.v
2216
   wire [3:0]           fcl_fdp_thr_s1_l;       // From fcl of sparc_ifu_fcl.v
2217
   wire [3:0]           fcl_fdp_thr_s2_l;       // From fcl of sparc_ifu_fcl.v
2218
   wire [3:0]           fcl_fdp_thrtnpc_sel_npcw_l;// From fcl of sparc_ifu_fcl.v
2219
   wire [3:0]           fcl_fdp_thrtnpc_sel_old_l;// From fcl of sparc_ifu_fcl.v
2220
   wire [3:0]           fcl_fdp_thrtnpc_sel_pcf_l;// From fcl of sparc_ifu_fcl.v
2221
   wire [3:0]           fcl_fdp_thrtnpc_sel_tnpc_l;// From fcl of sparc_ifu_fcl.v
2222
   wire [3:0]           fcl_fdp_tinst_sel_curr_s_l;// From fcl of sparc_ifu_fcl.v
2223
   wire [3:0]           fcl_fdp_tinst_sel_ifq_s_l;// From fcl of sparc_ifu_fcl.v
2224
   wire [3:0]           fcl_fdp_tinst_sel_old_s_l;// From fcl of sparc_ifu_fcl.v
2225
   wire [3:0]           fcl_fdp_tinst_sel_rb_s_l;// From fcl of sparc_ifu_fcl.v
2226
   wire [3:0]           fcl_fdp_tpcbf_sel_brpc_bf_l;// From fcl of sparc_ifu_fcl.v
2227
   wire [3:0]           fcl_fdp_tpcbf_sel_old_bf_l;// From fcl of sparc_ifu_fcl.v
2228
   wire [3:0]           fcl_fdp_tpcbf_sel_pcp4_bf_l;// From fcl of sparc_ifu_fcl.v
2229
   wire [3:0]           fcl_fdp_tpcbf_sel_trap_bf_l;// From fcl of sparc_ifu_fcl.v
2230
   wire [3:0]           fcl_fdp_trrbpc_sel_err_bf_l;// From fcl of sparc_ifu_fcl.v
2231
   wire [3:0]           fcl_fdp_trrbpc_sel_pcs_bf_l;// From fcl of sparc_ifu_fcl.v
2232
   wire [3:0]           fcl_fdp_trrbpc_sel_rb_bf_l;// From fcl of sparc_ifu_fcl.v
2233
   wire [3:0]           fcl_fdp_trrbpc_sel_trap_bf_l;// From fcl of sparc_ifu_fcl.v
2234
   wire                 fcl_fdp_usenir_sel_nir_s1;// From fcl of sparc_ifu_fcl.v
2235
   wire                 fcl_icd_index_sel_ifq_bf;// From fcl of sparc_ifu_fcl.v
2236
   wire                 fcl_icd_rdreq_bf;       // From fcl of sparc_ifu_fcl.v
2237
   wire                 fcl_icd_wrreq_bf;       // From fcl of sparc_ifu_fcl.v
2238
   wire                 fcl_ict_wrreq_bf;       // From fcl of sparc_ifu_fcl.v
2239
   wire                 fcl_icv_rdreq_bf;       // From fcl of sparc_ifu_fcl.v
2240
   wire                 fcl_icv_wrreq_bf;       // From fcl of sparc_ifu_fcl.v
2241
   wire [3:0]           fcl_ifq_canthr;         // From fcl of sparc_ifu_fcl.v
2242
   wire                 fcl_ifq_grant_bf;       // From fcl of sparc_ifu_fcl.v
2243
   wire                 fcl_ifq_icache_en_s_l;  // From fcl of sparc_ifu_fcl.v
2244
   wire                 fcl_ifq_icmiss_s1;      // From fcl of sparc_ifu_fcl.v
2245
   wire                 fcl_ifq_rdreq_s1;       // From fcl of sparc_ifu_fcl.v
2246
   wire [1:0]           fcl_ifq_thr_s1;         // From fcl of sparc_ifu_fcl.v
2247
   wire                 fcl_imd_oddwin_d;       // From fcl of sparc_ifu_fcl.v
2248
   wire                 fcl_swl_flush_w;        // From fcl of sparc_ifu_fcl.v
2249
   wire                 fcl_swl_flush_wake_w;   // From fcl of sparc_ifu_fcl.v
2250
   wire [3:0]           fcl_swl_int_activate_i3;// From fcl of sparc_ifu_fcl.v
2251
   wire                 fcl_swl_swcvld_s;       // From fcl of sparc_ifu_fcl.v
2252
   wire                 fcl_swl_swout_f;        // From fcl of sparc_ifu_fcl.v
2253
   wire [31:0]          fdp_dtu_inst_s;         // From fdp of sparc_ifu_fdp.v
2254
   wire [47:0]          fdp_erb_pc_f;           // From fdp of sparc_ifu_fdp.v
2255
   wire                 fdp_fcl_ibit_s;         // From fdp of sparc_ifu_fdp.v
2256
   wire [5:2]           fdp_fcl_op3_s;          // From fdp of sparc_ifu_fdp.v
2257
   wire [1:0]           fdp_fcl_op_s;           // From fdp of sparc_ifu_fdp.v
2258
   wire                 fdp_fcl_pc_oor_e;       // From fdp of sparc_ifu_fdp.v
2259
   wire [3:0]           fdp_fcl_pc_oor_vec_f;   // From fdp of sparc_ifu_fdp.v
2260
   wire                 fdp_fcl_swc_s2;         // From fdp of sparc_ifu_fdp.v
2261
   wire [11:5]          fdp_icv_index_bf;       // From fdp of sparc_ifu_fdp.v
2262
   wire [1:0]           fuse_icd_repair_en;     // From icdhdr of cmp_sram_redhdr.v
2263
   wire [7:0]           fuse_icd_repair_value;  // From icdhdr of cmp_sram_redhdr.v
2264
   wire [5:0]           fuse_icd_rid;           // From icdhdr of cmp_sram_redhdr.v
2265
   wire                 fuse_icd_wren;          // From icdhdr of cmp_sram_redhdr.v
2266
   wire [1:0]           icd_fuse_repair_en;     // From icd of bw_r_icd.v
2267
   wire [7:0]           icd_fuse_repair_value;  // From icd of bw_r_icd.v
2268
   wire [135:0]         icd_wsel_fetdata_s1;    // From icd of bw_r_icd.v
2269
   wire [135:0]         icd_wsel_topdata_s1;    // From icd of bw_r_icd.v
2270
   wire [3:0]           icv_itlb_valid_f;       // From icv of bw_r_rf16x32.v
2271
   wire                 ifc_ifd_addr_sel_asi_i2_l;// From ifqctl of sparc_ifu_ifqctl.v
2272
   wire                 ifc_ifd_addr_sel_bist_i2_l;// From ifqctl of sparc_ifu_ifqctl.v
2273
   wire                 ifc_ifd_addr_sel_fill_i2_l;// From ifqctl of sparc_ifu_ifqctl.v
2274
   wire                 ifc_ifd_addr_sel_old_i2_l;// From ifqctl of sparc_ifu_ifqctl.v
2275
   wire                 ifc_ifd_errinv_e;       // From ifqctl of sparc_ifu_ifqctl.v
2276
   wire                 ifc_ifd_filladdr4_i2;   // From ifqctl of sparc_ifu_ifqctl.v
2277
   wire [3:0]           ifc_ifd_finst_sel_l;    // From ifqctl of sparc_ifu_ifqctl.v
2278
   wire                 ifc_ifd_idx_sel_fwd_i2; // From ifqctl of sparc_ifu_ifqctl.v
2279
   wire                 ifc_ifd_ifqbyp_en_l;    // From ifqctl of sparc_ifu_ifqctl.v
2280
   wire                 ifc_ifd_ifqbyp_sel_asi_l;// From ifqctl of sparc_ifu_ifqctl.v
2281
   wire                 ifc_ifd_ifqbyp_sel_fwd_l;// From ifqctl of sparc_ifu_ifqctl.v
2282
   wire                 ifc_ifd_ifqbyp_sel_inq_l;// From ifqctl of sparc_ifu_ifqctl.v
2283
   wire                 ifc_ifd_ifqbyp_sel_lsu_l;// From ifqctl of sparc_ifu_ifqctl.v
2284
   wire                 ifc_ifd_ld_inq_i1;      // From ifqctl of sparc_ifu_ifqctl.v
2285
   wire [3:0]           ifc_ifd_ldmil_sel_new;  // From ifqctl of sparc_ifu_ifqctl.v
2286
   wire [3:0]           ifc_ifd_milfill_sel_i2_l;// From ifqctl of sparc_ifu_ifqctl.v
2287
   wire [3:0]           ifc_ifd_milreq_sel_d_l; // From ifqctl of sparc_ifu_ifqctl.v
2288
   wire [4:2]           ifc_ifd_pcxline_adj_d;  // From ifqctl of sparc_ifu_ifqctl.v
2289
   wire [1:0]           ifc_ifd_repway_s;       // From ifqctl of sparc_ifu_ifqctl.v
2290
   wire                 ifc_ifd_reqvalid_e;     // From ifqctl of sparc_ifu_ifqctl.v
2291
   wire [1:0]           ifc_ifd_thrid_e;        // From ifqctl of sparc_ifu_ifqctl.v
2292
   wire                 ifc_ifd_uncached_e;     // From ifqctl of sparc_ifu_ifqctl.v
2293
   wire                 ifc_inv_asireq_i2;      // From ifqctl of sparc_ifu_ifqctl.v
2294
   wire                 ifc_inv_ifqadv_i2;      // From ifqctl of sparc_ifu_ifqctl.v
2295
   wire                 ifd_ifc_4bpkt_i2;       // From ifqdp of sparc_ifu_ifqdp.v
2296
   wire                 ifd_ifc_asi_vachklo_i2; // From ifqdp of sparc_ifu_ifqdp.v
2297
   wire [3:2]           ifd_ifc_asiaddr_i2;     // From ifqdp of sparc_ifu_ifqdp.v
2298
   wire                 ifd_ifc_cpxce_i2;       // From ifqdp of sparc_ifu_ifqdp.v
2299
   wire                 ifd_ifc_cpxms_i2;       // From ifqdp of sparc_ifu_ifqdp.v
2300
   wire                 ifd_ifc_cpxnc_i2;       // From ifqdp of sparc_ifu_ifqdp.v
2301
   wire [(143 - 140 + 1):0]ifd_ifc_cpxreq_i1;      // From ifqdp of sparc_ifu_ifqdp.v
2302
   wire [3:0]           ifd_ifc_cpxreq_nxt;     // From ifqdp of sparc_ifu_ifqdp.v
2303
   wire [1:0]           ifd_ifc_cpxthr_nxt;     // From ifqdp of sparc_ifu_ifqdp.v
2304
   wire                 ifd_ifc_cpxue_i2;       // From ifqdp of sparc_ifu_ifqdp.v
2305
   wire                 ifd_ifc_cpxvld_i2;      // From ifqdp of sparc_ifu_ifqdp.v
2306
   wire [2:0]           ifd_ifc_destid0;        // From ifqdp of sparc_ifu_ifqdp.v
2307
   wire [2:0]           ifd_ifc_destid1;        // From ifqdp of sparc_ifu_ifqdp.v
2308
   wire [2:0]           ifd_ifc_destid2;        // From ifqdp of sparc_ifu_ifqdp.v
2309
   wire [2:0]           ifd_ifc_destid3;        // From ifqdp of sparc_ifu_ifqdp.v
2310
   wire                 ifd_ifc_fwd2ic_i2;      // From ifqdp of sparc_ifu_ifqdp.v
2311
   wire [1:0]           ifd_ifc_instoffset0;    // From ifqdp of sparc_ifu_ifqdp.v
2312
   wire [1:0]           ifd_ifc_instoffset1;    // From ifqdp of sparc_ifu_ifqdp.v
2313
   wire [1:0]           ifd_ifc_instoffset2;    // From ifqdp of sparc_ifu_ifqdp.v
2314
   wire [1:0]           ifd_ifc_instoffset3;    // From ifqdp of sparc_ifu_ifqdp.v
2315
   wire                 ifd_ifc_iobpkt_i2;      // From ifqdp of sparc_ifu_ifqdp.v
2316
   wire [3:0]           ifd_ifc_miladdr4_i2;    // From ifqdp of sparc_ifu_ifqdp.v
2317
   wire [3:0]           ifd_ifc_milhit_s;       // From ifqdp of sparc_ifu_ifqdp.v
2318
   wire [2:0]           ifd_ifc_newdestid_s;    // From ifqdp of sparc_ifu_ifqdp.v
2319
   wire [4:2]           ifd_ifc_pcxline_d;      // From ifqdp of sparc_ifu_ifqdp.v
2320
   wire [145-1:0]ifd_inv_ifqop_i2;       // From ifqdp of sparc_ifu_ifqdp.v
2321
   wire [1:0]           ifd_inv_wrway_i2;       // From ifqdp of sparc_ifu_ifqdp.v
2322
   wire [3:0]           ifq_dtu_pred_rdy;       // From ifqctl of sparc_ifu_ifqctl.v
2323
   wire [3:0]           ifq_dtu_thrrdy;         // From ifqctl of sparc_ifu_ifqctl.v
2324
   wire                 ifq_erb_asi_erraddr_i2; // From ifqctl of sparc_ifu_ifqctl.v
2325
   wire                 ifq_erb_asi_erren_i2;   // From ifqctl of sparc_ifu_ifqctl.v
2326
   wire                 ifq_erb_asi_errinj_i2;  // From ifqctl of sparc_ifu_ifqctl.v
2327
   wire                 ifq_erb_asi_errstat_i2; // From ifqctl of sparc_ifu_ifqctl.v
2328
   wire                 ifq_erb_asi_imask_i2;   // From ifqctl of sparc_ifu_ifqctl.v
2329
   wire [47:0]          ifq_erb_asidata_i2;     // From ifqdp of sparc_ifu_ifqdp.v
2330
   wire [1:0]           ifq_erb_asiway_f;       // From invctl of sparc_ifu_invctl.v
2331
   wire                 ifq_erb_asiwr_i2;       // From ifqctl of sparc_ifu_ifqctl.v
2332
   wire                 ifq_erb_ce_rep;         // From ifqctl of sparc_ifu_ifqctl.v
2333
   wire                 ifq_erb_fwdrd_bf;       // From ifqctl of sparc_ifu_ifqctl.v
2334
   wire                 ifq_erb_ifet_ce;        // From ifqctl of sparc_ifu_ifqctl.v
2335
   wire                 ifq_erb_io_ue;          // From ifqctl of sparc_ifu_ifqctl.v
2336
   wire                 ifq_erb_l2_ue;          // From ifqctl of sparc_ifu_ifqctl.v
2337
   wire [1:0]           ifq_erb_l2err_tid;      // From ifqctl of sparc_ifu_ifqctl.v
2338
   wire                 ifq_erb_rdinst_f;       // From ifqctl of sparc_ifu_ifqctl.v
2339
   wire                 ifq_erb_rdtag_f;        // From ifqctl of sparc_ifu_ifqctl.v
2340
   wire                 ifq_erb_ue_rep;         // From ifqctl of sparc_ifu_ifqctl.v
2341
   wire [11:4]  ifq_erb_wrindex_f;      // From ifqdp of sparc_ifu_ifqdp.v
2342
   wire [1:0]           ifq_fcl_asi_tid_bf;     // From ifqctl of sparc_ifu_ifqctl.v
2343
   wire                 ifq_fcl_asird_bf;       // From ifqctl of sparc_ifu_ifqctl.v
2344
   wire [3:0]           ifq_fcl_fill_thr;       // From ifqctl of sparc_ifu_ifqctl.v
2345
   wire                 ifq_fcl_flush_sonly_e;  // From ifqctl of sparc_ifu_ifqctl.v
2346
   wire                 ifq_fcl_icd_wrreq_bf;   // From ifqctl of sparc_ifu_ifqctl.v
2347
   wire                 ifq_fcl_ictv_wrreq_bf;  // From ifqctl of sparc_ifu_ifqctl.v
2348
   wire                 ifq_fcl_invreq_bf;      // From invctl of sparc_ifu_invctl.v
2349
   wire                 ifq_fcl_rdreq_bf;       // From ifqctl of sparc_ifu_ifqctl.v
2350
   wire                 ifq_fcl_stallreq;       // From ifqctl of sparc_ifu_ifqctl.v
2351
   wire                 ifq_fcl_wrreq_bf;       // From ifqctl of sparc_ifu_ifqctl.v
2352
   wire [32:0]          ifq_fdp_fill_inst;      // From ifqdp of sparc_ifu_ifqdp.v
2353
   wire                 ifq_icd_data_sel_bist_i2;// From ifqctl of sparc_ifu_ifqctl.v
2354
   wire                 ifq_icd_data_sel_fill_i2;// From ifqctl of sparc_ifu_ifqctl.v
2355
   wire                 ifq_icd_data_sel_old_i2;// From ifqctl of sparc_ifu_ifqctl.v
2356
   wire [11:2]  ifq_icd_index_bf;       // From ifqdp of sparc_ifu_ifqdp.v
2357
   wire [3:0]           ifq_icd_worden_bf;      // From ifqctl of sparc_ifu_ifqctl.v
2358
   wire [135:0]         ifq_icd_wrdata_i2;      // From ifqdp of sparc_ifu_ifqdp.v
2359
   wire [1:0]           ifq_icd_wrway_bf;       // From ifqdp of sparc_ifu_ifqdp.v
2360
   wire [3:0]           ifq_ict_dec_wrway_bf;   // From invctl of sparc_ifu_invctl.v
2361
   wire                 ifq_icv_wrdata_bf;      // From ifqctl of sparc_ifu_ifqctl.v
2362
   wire [15:0]          ifq_icv_wren_bf;        // From invctl of sparc_ifu_invctl.v
2363
   wire [11:5]  ifq_icv_wrindex_bf;     // From invctl of sparc_ifu_invctl.v
2364
   wire                 ifq_swl_stallreq;       // From ifqctl of sparc_ifu_ifqctl.v
2365
   wire                 imd_dcl_abit_d;         // From imd of sparc_ifu_imd.v
2366
   wire [3:0]           imd_dcl_brcond_d;       // From imd of sparc_ifu_imd.v
2367
   wire [7:0]           imd_dcl_mvcond_d;       // From imd of sparc_ifu_imd.v
2368
   wire                 inv_ifc_inv_pending;    // From invctl of sparc_ifu_invctl.v
2369
   wire [7:0]           mbist_icache_index;     // From mbist of sparc_ifu_mbist.v
2370
   wire                 mbist_icache_read;      // From mbist of sparc_ifu_mbist.v
2371
   wire [1:0]           mbist_icache_way;       // From mbist of sparc_ifu_mbist.v
2372
   wire                 mbist_icache_word;      // From mbist of sparc_ifu_mbist.v
2373
   wire                 mbist_icache_write;     // From mbist of sparc_ifu_mbist.v
2374
   wire                 mbist_ifq_run_bist;     // From mbist of sparc_ifu_mbist.v
2375
   wire [3:0]           swl_dcl_thr_d;          // From swl of sparc_ifu_swl.v
2376
   wire [3:0]           swl_dcl_thr_w2;         // From swl of sparc_ifu_swl.v
2377
   wire                 swl_dec_divbusy_e;      // From swl of sparc_ifu_swl.v
2378
   wire                 swl_dec_fp_enable_d;    // From swl of sparc_ifu_swl.v
2379
   wire                 swl_dec_fpbusy_e;       // From swl of sparc_ifu_swl.v
2380
   wire                 swl_dec_ibe_e;          // From swl of sparc_ifu_swl.v
2381
   wire                 swl_dec_mulbusy_e;      // From swl of sparc_ifu_swl.v
2382
   wire [10:0]          swl_sscan_thrstate;     // From swl of sparc_ifu_swl.v
2383
   wire [33:0]          wsel_fdp_fetdata_s1;    // From wseldp of sparc_ifu_wseldp.v
2384
   wire [33:0]          wsel_fdp_topdata_s1;    // From wseldp of sparc_ifu_wseldp.v
2385
   wire                 wsr_fixed_inst_w;       // From dec of sparc_ifu_dec.v
2386
   // End of automatics
2387
 
2388
   // tlb not auto instantiated
2389
   wire           fcl_itlb_invall_f_l;  // From fcl of sparc_ifu_fcl.v
2390
 
2391
   wire           itlb_fcl_imiss_s_l;     // To fcl of sparc_ifu_fcl.v
2392
   wire           itlb_fcl_tlbmiss_f_l;   // To fcl of sparc_ifu_fcl.v
2393
   wire [3:0]     itlb_wsel_waysel_s1;     // To icd of sparc_ifu_icd.v
2394
   wire [39:10]   itlb_ifq_paddr_s;       // To ifqdp of sparc_ifu_ifqdp.v, ...
2395
   wire [42:0]    itlb_rd_tte_data;       // To errdp of sparc_ifu_errdp.v
2396
   wire [58:0]    itlb_rd_tte_tag;        // To errdp of sparc_ifu_errdp.v
2397
 
2398
   wire           fcl_itlb_addr_mask_l;   // From fcl of sparc_ifu_fcl.v
2399
   wire           fcl_itlb_cam_bypass_bf; // From fcl of sparc_ifu_fcl.v
2400
   wire [2:0]     fcl_itlb_cam_pid_bf;    // From fcl of sparc_ifu_fcl.v
2401
   wire           fcl_itlb_cam_real_bf;   // From fcl of sparc_ifu_fcl.v
2402
   wire           fcl_itlb_cam_vld_bf;    // From fcl of sparc_ifu_fcl.v
2403
   wire           fcl_itlb_data_rd_vld_bf;// From fcl of sparc_ifu_fcl.v
2404
   wire           fcl_itlb_dmp_vld_bf;    // From fcl of sparc_ifu_fcl.v
2405
   wire           fcl_itlb_dmp_all_bf;    // From fcl of sparc_ifu_fcl.v
2406
   wire           fcl_itlb_tag_rd_vld_bf; // From fcl of sparc_ifu_fcl.v
2407
   wire           fcl_itlb_wr_vld_bf;     // From fcl of sparc_ifu_fcl.v
2408
   wire [47:2]    fdp_icd_vaddr_bf;       // From fdp of sparc_ifu_fdp.v
2409
   wire [12:0]    fdp_itlb_ctxt_bf;       // From fdp of sparc_ifu_fdp.v
2410
   wire [32:0]    ict_itlb_tag0_f;        // From ict of bw_r_idct.v
2411
   wire [32:0]    ict_itlb_tag1_f;        // From ict of bw_r_idct.v
2412
   wire [32:0]    ict_itlb_tag2_f;        // From ict of bw_r_idct.v
2413
   wire [32:0]    ict_itlb_tag3_f;        // From ict of bw_r_idct.v
2414
 
2415
   // sscan rename
2416
   wire [3:0]       ifq_sscan_data;         // From ifqctl of sparc_ifu_ifqctl.v
2417
   // bist rename
2418
   wire [7:0]       mbist_icache_wdata;
2419
 
2420
 
2421
   // rptr bus for bist read of icache
2422
   wire [67:0]      wsel_mbist_icache_data;
2423
 
2424
   // bus width mismatch
2425
   wire [(39 - 11):0] ifq_ict_wrtag_f;        // From ifqdp of sparc_ifu_ifqdp.v
2426
 
2427
   // scan wires
2428
   wire                scan0_1;
2429
   wire                scan0_2;
2430
   wire                scan0_3;
2431
   wire                scan0_4;
2432
   wire                scan0_5;
2433
   wire                scan0_6;
2434
   wire                scan0_7;
2435
   wire                scan0_8;
2436
   wire                scan0_9;
2437
   wire                scan0_10;
2438
   wire                scan0_11;
2439
   wire                scan0_12;
2440
   wire                scan0_13;
2441
 
2442
   wire                short_scan1_1;
2443
   wire                short_scan0_1;
2444
   wire                short_scan0_2;
2445
 
2446
 
2447
//----------------------------------------------------------------------
2448
// Code start here 
2449
//----------------------------------------------------------------------
2450
 
2451
//   sparc_ifu_dtu dtu(
2452
//                   .thr_config_in_w (exu_tlu_wsr_data_w[2:0]),
2453
//                    /*AUTOINST*/);
2454
 
2455
   // decode
2456
   sparc_ifu_dec dec(
2457
                     .so                (scan0_1),
2458
                     .si                (si0),
2459
                        /*AUTOINST*/
2460
                     // Outputs
2461
                     .ifu_exu_aluop_d   (ifu_exu_aluop_d[2:0]),
2462
                     .ifu_exu_invert_d  (ifu_exu_invert_d),
2463
                     .ifu_exu_useimm_d  (ifu_exu_useimm_d),
2464
                     .ifu_exu_usecin_d  (ifu_exu_usecin_d),
2465
                     .ifu_exu_enshift_d (ifu_exu_enshift_d),
2466
                     .ifu_exu_tagop_d   (ifu_exu_tagop_d),
2467
                     .ifu_exu_tv_d      (ifu_exu_tv_d),
2468
                     .ifu_exu_muls_d    (ifu_exu_muls_d),
2469
                     .ifu_exu_ialign_d  (ifu_exu_ialign_d),
2470
                     .ifu_exu_range_check_jlret_d(ifu_exu_range_check_jlret_d),
2471
                     .ifu_exu_range_check_other_d(ifu_exu_range_check_other_d),
2472
                     .ifu_exu_shiftop_d (ifu_exu_shiftop_d[2:0]),
2473
                     .ifu_exu_muldivop_d(ifu_exu_muldivop_d[4:0]),
2474
                     .ifu_exu_wen_d     (ifu_exu_wen_d),
2475
                     .ifu_exu_setcc_d   (ifu_exu_setcc_d),
2476
                     .ifu_exu_rd_ifusr_e(ifu_exu_rd_ifusr_e),
2477
                     .ifu_exu_rd_exusr_e(ifu_exu_rd_exusr_e),
2478
                     .ifu_exu_rd_ffusr_e(ifu_exu_rd_ffusr_e),
2479
                     .ifu_exu_rs1_vld_d (ifu_exu_rs1_vld_d),
2480
                     .ifu_exu_rs2_vld_d (ifu_exu_rs2_vld_d),
2481
                     .ifu_exu_rs3e_vld_d(ifu_exu_rs3e_vld_d),
2482
                     .ifu_exu_rs3o_vld_d(ifu_exu_rs3o_vld_d),
2483
                     .ifu_exu_use_rsr_e_l(ifu_exu_use_rsr_e_l),
2484
                     .ifu_exu_save_d    (ifu_exu_save_d),
2485
                     .ifu_exu_restore_d (ifu_exu_restore_d),
2486
                     .ifu_exu_return_d  (ifu_exu_return_d),
2487
                     .ifu_exu_flushw_e  (ifu_exu_flushw_e),
2488
                     .ifu_exu_saved_e   (ifu_exu_saved_e),
2489
                     .ifu_exu_restored_e(ifu_exu_restored_e),
2490
                     .ifu_tlu_rsr_inst_d(ifu_tlu_rsr_inst_d),
2491
                     .ifu_lsu_wsr_inst_d(ifu_lsu_wsr_inst_d),
2492
                     .ifu_exu_wsr_inst_d(ifu_exu_wsr_inst_d),
2493
                     .ifu_tlu_done_inst_d(ifu_tlu_done_inst_d),
2494
                     .ifu_tlu_retry_inst_d(ifu_tlu_retry_inst_d),
2495
                     .ifu_lsu_ld_inst_e (ifu_lsu_ld_inst_e),
2496
                     .ifu_lsu_st_inst_e (ifu_lsu_st_inst_e),
2497
                     .ifu_lsu_pref_inst_e(ifu_lsu_pref_inst_e),
2498
                     .ifu_lsu_alt_space_e(ifu_lsu_alt_space_e),
2499
                     .ifu_lsu_alt_space_d(ifu_lsu_alt_space_d),
2500
                     .ifu_tlu_alt_space_d(ifu_tlu_alt_space_d),
2501
                     .ifu_lsu_memref_d  (ifu_lsu_memref_d),
2502
                     .ifu_lsu_sign_ext_e(ifu_lsu_sign_ext_e),
2503
                     .ifu_lsu_ldstub_e  (ifu_lsu_ldstub_e),
2504
                     .ifu_lsu_casa_e    (ifu_lsu_casa_e),
2505
                     .ifu_exu_casa_d    (ifu_exu_casa_d),
2506
                     .ifu_lsu_swap_e    (ifu_lsu_swap_e),
2507
                     .ifu_tlu_mb_inst_e (ifu_tlu_mb_inst_e),
2508
                     .ifu_tlu_sir_inst_m(ifu_tlu_sir_inst_m),
2509
                     .ifu_tlu_flsh_inst_e(ifu_tlu_flsh_inst_e),
2510
                     .ifu_lsu_ldst_dbl_e(ifu_lsu_ldst_dbl_e),
2511
                     .ifu_lsu_ldst_fp_e (ifu_lsu_ldst_fp_e),
2512
                     .ifu_lsu_ldst_size_e(ifu_lsu_ldst_size_e[1:0]),
2513
                     .ifu_ffu_fpop1_d   (ifu_ffu_fpop1_d),
2514
                     .ifu_ffu_visop_d   (ifu_ffu_visop_d),
2515
                     .ifu_ffu_fpop2_d   (ifu_ffu_fpop2_d),
2516
                     .ifu_ffu_fld_d     (ifu_ffu_fld_d),
2517
                     .ifu_ffu_fst_d     (ifu_ffu_fst_d),
2518
                     .ifu_ffu_ldst_size_d(ifu_ffu_ldst_size_d),
2519
                     .ifu_ffu_ldfsr_d   (ifu_ffu_ldfsr_d),
2520
                     .ifu_ffu_ldxfsr_d  (ifu_ffu_ldxfsr_d),
2521
                     .ifu_ffu_stfsr_d   (ifu_ffu_stfsr_d),
2522
                     .ifu_ffu_quad_op_e (ifu_ffu_quad_op_e),
2523
                     .dec_fcl_rdsr_sel_pc_d(dec_fcl_rdsr_sel_pc_d),
2524
                     .dec_fcl_rdsr_sel_thr_d(dec_fcl_rdsr_sel_thr_d),
2525
                     .dec_imd_call_inst_d(dec_imd_call_inst_d),
2526
                     .dtu_fcl_flush_sonly_e(dtu_fcl_flush_sonly_e),
2527
                     .dtu_fcl_illinst_e (dtu_fcl_illinst_e),
2528
                     .dtu_fcl_fpdis_e   (dtu_fcl_fpdis_e),
2529
                     .dtu_fcl_privop_e  (dtu_fcl_privop_e),
2530
                     .dtu_fcl_imask_hit_e(dtu_fcl_imask_hit_e),
2531
                     .dtu_fcl_br_inst_d (dtu_fcl_br_inst_d),
2532
                     .dtu_fcl_sir_inst_e(dtu_fcl_sir_inst_e),
2533
                     .dtu_ifq_kill_latest_d(dtu_ifq_kill_latest_d),
2534
                     .dec_swl_wrt_tcr_w (dec_swl_wrt_tcr_w),
2535
                     .dec_swl_wrtfprs_w (dec_swl_wrtfprs_w),
2536
                     .dec_swl_ll_done_d (dec_swl_ll_done_d),
2537
                     .dec_swl_br_done_d (dec_swl_br_done_d),
2538
                     .dec_swl_rdsr_sel_thr_d(dec_swl_rdsr_sel_thr_d),
2539
                     .dec_swl_ld_inst_d (dec_swl_ld_inst_d),
2540
                     .dec_swl_sta_inst_e(dec_swl_sta_inst_e),
2541
                     .dec_swl_std_inst_d(dec_swl_std_inst_d),
2542
                     .dec_swl_st_inst_d (dec_swl_st_inst_d),
2543
                     .dec_swl_fpop_d    (dec_swl_fpop_d),
2544
                     .dec_swl_allfp_d   (dec_swl_allfp_d),
2545
                     .dec_swl_frf_upper_d(dec_swl_frf_upper_d),
2546
                     .dec_swl_frf_lower_d(dec_swl_frf_lower_d),
2547
                     .dec_swl_div_inst_d(dec_swl_div_inst_d),
2548
                     .dec_swl_mul_inst_d(dec_swl_mul_inst_d),
2549
                     .wsr_fixed_inst_w  (wsr_fixed_inst_w),
2550
                     .ifu_exu_sethi_inst_d(ifu_exu_sethi_inst_d),
2551
                     .dec_dcl_cctype_d  (dec_dcl_cctype_d[2:0]),
2552
                     // Inputs
2553
                     .rclk              (rclk),
2554
                     .se                (se),
2555
                     .dtu_inst_d        (dtu_inst_d[31:0]),
2556
                     .erb_dtu_imask     (erb_dtu_imask[38:0]),
2557
                     .swl_dec_ibe_e     (swl_dec_ibe_e),
2558
                     .dtu_inst_anull_e  (dtu_inst_anull_e),
2559
                     .lsu_ifu_ldsta_internal_e(lsu_ifu_ldsta_internal_e),
2560
                     .fcl_dtu_tlzero_d  (fcl_dtu_tlzero_d),
2561
                     .fcl_dtu_privmode_d(fcl_dtu_privmode_d),
2562
                     .fcl_dtu_hprivmode_d(fcl_dtu_hprivmode_d),
2563
                     .fcl_dtu_inst_vld_d(fcl_dtu_inst_vld_d),
2564
                     .fcl_dtu_ely_inst_vld_d(fcl_dtu_ely_inst_vld_d),
2565
                     .fcl_dec_intr_vld_d(fcl_dec_intr_vld_d),
2566
                     .fcl_dtu_inst_vld_e(fcl_dtu_inst_vld_e),
2567
                     .fcl_dec_dslot_s   (fcl_dec_dslot_s),
2568
                     .swl_dec_mulbusy_e (swl_dec_mulbusy_e),
2569
                     .swl_dec_fpbusy_e  (swl_dec_fpbusy_e),
2570
                     .swl_dec_divbusy_e (swl_dec_divbusy_e),
2571
                     .swl_dec_fp_enable_d(swl_dec_fp_enable_d));
2572
 
2573
 
2574
   // Pipeline Control and Switch Logic
2575 103 fafa1971
   sparc_ifu_swl swl(.wbm_spc_stall(wbm_spc_stall),.wbm_spc_resume(wbm_spc_resume),
2576 95 fafa1971
                     .so                (scan0_2),
2577
                     .si                (scan0_1),
2578
                                 .thr_config_in_m       (exu_tlu_wsr_data_m[2:0]),
2579
                     .extra_longlat_compl(4'b0),
2580
 
2581
                                 /*AUTOINST*/
2582
                     // Outputs
2583
                     .swl_sscan_thrstate(swl_sscan_thrstate[10:0]),
2584
                     .dtu_reset         (dtu_reset),
2585
                     .swl_dec_mulbusy_e (swl_dec_mulbusy_e),
2586
                     .swl_dec_divbusy_e (swl_dec_divbusy_e),
2587
                     .swl_dec_fpbusy_e  (swl_dec_fpbusy_e),
2588
                     .swl_dec_fp_enable_d(swl_dec_fp_enable_d),
2589
                     .swl_dec_ibe_e     (swl_dec_ibe_e),
2590
                     .dtu_fcl_ntr_s     (dtu_fcl_ntr_s),
2591
                     .dtu_fcl_running_s (dtu_fcl_running_s),
2592
                     .dtu_fcl_rollback_g(dtu_fcl_rollback_g),
2593
                     .dtu_fcl_retract_d (dtu_fcl_retract_d),
2594
                     .dtu_fcl_thr_active(dtu_fcl_thr_active[3:0]),
2595
                     .dtu_fcl_nextthr_bf(dtu_fcl_nextthr_bf[3:0]),
2596
                     .swl_dcl_thr_d     (swl_dcl_thr_d[3:0]),
2597
                     .swl_dcl_thr_w2    (swl_dcl_thr_w2[3:0]),
2598
                     .dtu_fdp_thrconf_e (dtu_fdp_thrconf_e[40:0]),
2599
                     // Inputs
2600
                     .rclk              (rclk),
2601
                     .se                (se),
2602
                     .gdbginit_l        (gdbginit_l),
2603
                     .arst_l            (arst_l),
2604
                     .grst_l            (grst_l),
2605
                     .ctu_sscan_tid     (ctu_sscan_tid[3:0]),
2606
                     .ifq_dtu_thrrdy    (ifq_dtu_thrrdy[3:0]),
2607
                     .ifq_dtu_pred_rdy  (ifq_dtu_pred_rdy[3:0]),
2608
                     .ifu_tlu_inst_vld_w(ifu_tlu_inst_vld_w),
2609
                     .ifu_tlu_ttype_vld_m(ifu_tlu_ttype_vld_m),
2610
                     .fcl_dtu_hprivmode_d(fcl_dtu_hprivmode_d),
2611
                     .fcl_dtu_hprivmode_w2(fcl_dtu_hprivmode_w2),
2612
                     .tlu_ifu_flush_pipe_w(tlu_ifu_flush_pipe_w),
2613
                     .fcl_swl_flush_w   (fcl_swl_flush_w),
2614
                     .fcl_dtu_sync_intr_d(fcl_dtu_sync_intr_d),
2615
                     .fcl_dtu_nuke_thr_w(fcl_dtu_nuke_thr_w),
2616
                     .fcl_dtu_rst_thr_w (fcl_dtu_rst_thr_w),
2617
                     .fcl_dtu_resum_thr_w(fcl_dtu_resum_thr_w),
2618
                     .fcl_dtu_thr_f     (fcl_dtu_thr_f[3:0]),
2619
                     .tlu_hpstate_ibe   (tlu_hpstate_ibe[3:0]),
2620
                     .lsu_ifu_ldsta_internal_e(lsu_ifu_ldsta_internal_e),
2621
                     .tlu_ifu_trappc_vld_w1(tlu_ifu_trappc_vld_w1),
2622
                     .dec_swl_ll_done_d (dec_swl_ll_done_d),
2623
                     .dec_swl_br_done_d (dec_swl_br_done_d),
2624
                     .dec_swl_rdsr_sel_thr_d(dec_swl_rdsr_sel_thr_d),
2625
                     .dec_swl_std_inst_d(dec_swl_std_inst_d),
2626
                     .dec_swl_sta_inst_e(dec_swl_sta_inst_e),
2627
                     .wsr_fixed_inst_w  (wsr_fixed_inst_w),
2628
                     .dec_swl_ld_inst_d (dec_swl_ld_inst_d),
2629
                     .dec_swl_mul_inst_d(dec_swl_mul_inst_d),
2630
                     .dec_swl_div_inst_d(dec_swl_div_inst_d),
2631
                     .dec_swl_fpop_d    (dec_swl_fpop_d),
2632
                     .dec_swl_allfp_d   (dec_swl_allfp_d),
2633
                     .dec_swl_frf_upper_d(dec_swl_frf_upper_d),
2634
                     .dec_swl_frf_lower_d(dec_swl_frf_lower_d),
2635
                     .dec_swl_wrtfprs_w (dec_swl_wrtfprs_w),
2636
                     .dcl_swl_tcc_done_m(dcl_swl_tcc_done_m),
2637
                     .exu_ifu_longop_done_g(exu_ifu_longop_done_g[3:0]),
2638
                     .exu_ifu_spill_e   (exu_ifu_spill_e),
2639
                     .lsu_ifu_ldst_cmplt(lsu_ifu_ldst_cmplt[3:0]),
2640
                     .lsu_ifu_dc_parity_error_w2(lsu_ifu_dc_parity_error_w2),
2641
                     .lsu_ifu_stbcnt0   (lsu_ifu_stbcnt0[3:0]),
2642
                     .lsu_ifu_stbcnt1   (lsu_ifu_stbcnt1[3:0]),
2643
                     .lsu_ifu_stbcnt2   (lsu_ifu_stbcnt2[3:0]),
2644
                     .lsu_ifu_stbcnt3   (lsu_ifu_stbcnt3[3:0]),
2645
                     .lsu_ifu_quad_asi_e(lsu_ifu_quad_asi_e),
2646
                     .ffu_ifu_fpop_done_w2(ffu_ifu_fpop_done_w2),
2647
                     .ffu_ifu_tid_w2    (ffu_ifu_tid_w2[1:0]),
2648
                     .ffu_ifu_fst_ce_w  (ffu_ifu_fst_ce_w),
2649
                     .tlu_ifu_trap_tid_w1(tlu_ifu_trap_tid_w1[1:0]),
2650
                     .tlu_ifu_pstate_pef(tlu_ifu_pstate_pef[3:0]),
2651
                     .lsu_ifu_ldst_miss_g(lsu_ifu_ldst_miss_g),
2652
                     .fcl_swl_int_activate_i3(fcl_swl_int_activate_i3[3:0]),
2653
                     .fcl_swl_flush_wake_w(fcl_swl_flush_wake_w),
2654
                     .ifq_swl_stallreq  (ifq_swl_stallreq),
2655
                     .fcl_dtu_stall_bf  (fcl_dtu_stall_bf),
2656
                     .fcl_swl_swout_f   (fcl_swl_swout_f),
2657
                     .fcl_swl_swcvld_s  (fcl_swl_swcvld_s),
2658
                     .fdp_fcl_swc_s2    (fdp_fcl_swc_s2),
2659
                     .fcl_ifq_icmiss_s1 (fcl_ifq_icmiss_s1),
2660
                     .fcl_dtu_inst_vld_e(fcl_dtu_inst_vld_e),
2661
                     .fcl_dtu_intr_vld_e(fcl_dtu_intr_vld_e),
2662
                     .fcl_dtu_inst_vld_d(fcl_dtu_inst_vld_d),
2663
                     .erb_dtu_ifeterr_d1(erb_dtu_ifeterr_d1),
2664
                     .dtu_inst_anull_e  (dtu_inst_anull_e),
2665
                     .const_cpuid       (const_cpuid[3:0]),
2666
                     .dec_swl_wrt_tcr_w (dec_swl_wrt_tcr_w),
2667
                     .dec_swl_st_inst_d (dec_swl_st_inst_d));
2668
 
2669
   // Branch Logic
2670
   sparc_ifu_dcl  dcl(
2671
                      .so               (scan0_3),
2672
                      .si               (scan0_2),
2673
                                  .dtu_dcl_opf2_d       (dtu_inst_d[7]),
2674
                      .fdp_dcl_op_s     (fdp_dtu_inst_s[31:30]),
2675
                      .fdp_dcl_op3_s    (fdp_dtu_inst_s[24:19]),
2676
 
2677
                                  /*AUTOINST*/
2678
                      // Outputs
2679
                      .ifu_exu_kill_e   (ifu_exu_kill_e),
2680
                      .ifu_exu_dontmv_regz0_e(ifu_exu_dontmv_regz0_e),
2681
                      .ifu_exu_dontmv_regz1_e(ifu_exu_dontmv_regz1_e),
2682
                      .ifu_exu_tcc_e    (ifu_exu_tcc_e),
2683
                      .ifu_exu_dbrinst_d(ifu_exu_dbrinst_d),
2684
                      .ifu_ffu_mvcnd_m  (ifu_ffu_mvcnd_m),
2685
                      .dcl_fcl_bcregz0_e(dcl_fcl_bcregz0_e),
2686
                      .dcl_fcl_bcregz1_e(dcl_fcl_bcregz1_e),
2687
                      .dtu_inst_anull_e (dtu_inst_anull_e),
2688
                      .dcl_swl_tcc_done_m(dcl_swl_tcc_done_m),
2689
                      .dcl_imd_immdata_sel_simm13_d_l(dcl_imd_immdata_sel_simm13_d_l),
2690
                      .dcl_imd_immdata_sel_movcc_d_l(dcl_imd_immdata_sel_movcc_d_l),
2691
                      .dcl_imd_immdata_sel_sethi_d_l(dcl_imd_immdata_sel_sethi_d_l),
2692
                      .dcl_imd_immdata_sel_movr_d_l(dcl_imd_immdata_sel_movr_d_l),
2693
                      .dcl_imd_broff_sel_call_d_l(dcl_imd_broff_sel_call_d_l),
2694
                      .dcl_imd_broff_sel_br_d_l(dcl_imd_broff_sel_br_d_l),
2695
                      .dcl_imd_broff_sel_bcc_d_l(dcl_imd_broff_sel_bcc_d_l),
2696
                      .dcl_imd_broff_sel_bpcc_d_l(dcl_imd_broff_sel_bpcc_d_l),
2697
                      .dcl_imd_immbr_sel_br_d(dcl_imd_immbr_sel_br_d),
2698
                      // Inputs
2699
                      .rclk             (rclk),
2700
                      .se               (se),
2701
                      .dtu_reset        (dtu_reset),
2702
                      .exu_ifu_cc_d     (exu_ifu_cc_d[7:0]),
2703
                      .fcl_dcl_regz_e   (fcl_dcl_regz_e),
2704
                      .exu_ifu_regn_e   (exu_ifu_regn_e),
2705
                      .ffu_ifu_cc_w2    (ffu_ifu_cc_w2[7:0]),
2706
                      .ffu_ifu_cc_vld_w2(ffu_ifu_cc_vld_w2[3:0]),
2707
                      .tlu_ifu_flush_pipe_w(tlu_ifu_flush_pipe_w),
2708
                      .swl_dcl_thr_d    (swl_dcl_thr_d[3:0]),
2709
                      .swl_dcl_thr_w2   (swl_dcl_thr_w2[3:0]),
2710
                      .imd_dcl_brcond_d (imd_dcl_brcond_d[3:0]),
2711
                      .imd_dcl_mvcond_d (imd_dcl_mvcond_d[7:0]),
2712
                      .imd_dcl_abit_d   (imd_dcl_abit_d),
2713
                      .dec_dcl_cctype_d (dec_dcl_cctype_d[2:0]),
2714
                      .fcl_dtu_inst_vld_e(fcl_dtu_inst_vld_e),
2715
                      .fcl_dtu_intr_vld_e(fcl_dtu_intr_vld_e),
2716
                      .ifu_tlu_flush_w  (ifu_tlu_flush_w));
2717
 
2718
/*   sparc_ifu_imd AUTO_TEMPLATE(
2719
                         .dcl_imd_call_inst_d (dec_imd_call_inst_d),
2720
                         );
2721
 
2722
*/
2723
   sparc_ifu_imd  imd(
2724
                      .so               (scan0_4),
2725
                      .si               (scan0_3),
2726
 
2727
                      /*AUTOINST*/
2728
                      // Outputs
2729
                      .ifu_exu_imm_data_d(ifu_exu_imm_data_d[31:0]),
2730
                      .dtu_inst_d       (dtu_inst_d[31:0]),
2731
                      .ifu_exu_rd_d     (ifu_exu_rd_d[4:0]),
2732
                      .ifu_lsu_rd_e     (ifu_lsu_rd_e[4:0]),
2733
                      .ifu_lsu_imm_asi_d(ifu_lsu_imm_asi_d[7:0]),
2734
                      .ifu_tlu_imm_asi_d(ifu_tlu_imm_asi_d[8:0]),
2735
                      .ifu_lsu_imm_asi_vld_d(ifu_lsu_imm_asi_vld_d),
2736
                      .ifu_tlu_sraddr_d (ifu_tlu_sraddr_d[6:0]),
2737
                      .ifu_tlu_sraddr_d_v2(ifu_tlu_sraddr_d_v2[6:0]),
2738
                      .imd_dcl_brcond_d (imd_dcl_brcond_d[3:0]),
2739
                      .imd_dcl_mvcond_d (imd_dcl_mvcond_d[7:0]),
2740
                      .imd_dcl_abit_d   (imd_dcl_abit_d),
2741
                      .ifu_ffu_frs1_d   (ifu_ffu_frs1_d[4:0]),
2742
                      .ifu_ffu_frs2_d   (ifu_ffu_frs2_d[4:0]),
2743
                      .ifu_ffu_frd_d    (ifu_ffu_frd_d[4:0]),
2744
                      .ifu_ffu_fpopcode_d(ifu_ffu_fpopcode_d[8:0]),
2745
                      .ifu_ffu_fcc_num_d(ifu_ffu_fcc_num_d[1:0]),
2746
                      // Inputs
2747
                      .rclk             (rclk),
2748
                      .se               (se),
2749
                      .fdp_dtu_inst_s   (fdp_dtu_inst_s[31:0]),
2750
                      .fcl_imd_oddwin_d (fcl_imd_oddwin_d),
2751
                      .dcl_imd_immdata_sel_simm13_d_l(dcl_imd_immdata_sel_simm13_d_l),
2752
                      .dcl_imd_immdata_sel_movcc_d_l(dcl_imd_immdata_sel_movcc_d_l),
2753
                      .dcl_imd_immdata_sel_sethi_d_l(dcl_imd_immdata_sel_sethi_d_l),
2754
                      .dcl_imd_immdata_sel_movr_d_l(dcl_imd_immdata_sel_movr_d_l),
2755
                      .dcl_imd_broff_sel_call_d_l(dcl_imd_broff_sel_call_d_l),
2756
                      .dcl_imd_broff_sel_br_d_l(dcl_imd_broff_sel_br_d_l),
2757
                      .dcl_imd_broff_sel_bcc_d_l(dcl_imd_broff_sel_bcc_d_l),
2758
                      .dcl_imd_broff_sel_bpcc_d_l(dcl_imd_broff_sel_bpcc_d_l),
2759
                      .dcl_imd_immbr_sel_br_d(dcl_imd_immbr_sel_br_d),
2760
                      .dcl_imd_call_inst_d(dec_imd_call_inst_d)); // Templated
2761
 
2762
   sparc_ifu_fdp  fdp(
2763
                      .so               (scan0_5),
2764
                      .si               (scan0_4),
2765
                     .fdp_itlb_ctxt_bf (fdp_itlb_ctxt_bf[12:0]),
2766
                      .fdp_icd_vaddr_bf (fdp_icd_vaddr_bf[47:2]),
2767
                      .icd_fdp_fetdata_s1(wsel_fdp_fetdata_s1[32:0]),
2768
                      .icd_fdp_topdata_s1(wsel_fdp_topdata_s1[32:0]),
2769
                      // eco 5362
2770
                      .fcl_fdp_addr_mask_d(ifu_exu_addr_mask_d),
2771
                      /*AUTOINST*/
2772
                      // Outputs
2773
                      .fdp_icv_index_bf (fdp_icv_index_bf[11:5]),
2774
                      .fdp_erb_pc_f     (fdp_erb_pc_f[47:0]),
2775
                      .fdp_dtu_inst_s   (fdp_dtu_inst_s[31:0]),
2776
                      .ifu_exu_pc_d     (ifu_exu_pc_d[47:0]),
2777
                      .ifu_exu_rs1_s    (ifu_exu_rs1_s[4:0]),
2778
                      .ifu_exu_rs2_s    (ifu_exu_rs2_s[4:0]),
2779
                      .ifu_exu_rs3_s    (ifu_exu_rs3_s[4:0]),
2780
                      .ifu_tlu_pc_m     (ifu_tlu_pc_m[48:0]),
2781
                      .ifu_tlu_npc_m    (ifu_tlu_npc_m[48:0]),
2782
                      .ifu_tlu_pc_oor_e (ifu_tlu_pc_oor_e),
2783
                      .ifu_exu_pcver_e  (ifu_exu_pcver_e[63:0]),
2784
                      .fdp_fcl_swc_s2   (fdp_fcl_swc_s2),
2785
                      .fdp_fcl_pc_oor_vec_f(fdp_fcl_pc_oor_vec_f[3:0]),
2786
                      .fdp_fcl_pc_oor_e (fdp_fcl_pc_oor_e),
2787
                      .fdp_fcl_op_s     (fdp_fcl_op_s[1:0]),
2788
                      .fdp_fcl_op3_s    (fdp_fcl_op3_s[5:2]),
2789
                      .fdp_fcl_ibit_s   (fdp_fcl_ibit_s),
2790
                      // Inputs
2791
                      .rclk             (rclk),
2792
                      .se               (se),
2793
                      .const_maskid     (const_maskid[7:0]),
2794
                      .lsu_t0_pctxt_state(lsu_t0_pctxt_state[12:0]),
2795
                      .lsu_t1_pctxt_state(lsu_t1_pctxt_state[12:0]),
2796
                      .lsu_t2_pctxt_state(lsu_t2_pctxt_state[12:0]),
2797
                      .lsu_t3_pctxt_state(lsu_t3_pctxt_state[12:0]),
2798
                      .exu_ifu_brpc_e   (exu_ifu_brpc_e[47:0]),
2799
                      .tlu_ifu_trappc_w2(tlu_ifu_trappc_w2[48:0]),
2800
                      .tlu_ifu_trapnpc_w2(tlu_ifu_trapnpc_w2[48:0]),
2801
                      .tlu_itlb_dmp_nctxt_g(tlu_itlb_dmp_nctxt_g),
2802
                      .tlu_itlb_dmp_actxt_g(tlu_itlb_dmp_actxt_g),
2803
                      .tlu_itlb_tte_tag_w2(tlu_itlb_tte_tag_w2[12:0]),
2804
                      .dtu_fdp_thrconf_e(dtu_fdp_thrconf_e[40:0]),
2805
                      .ifq_fdp_fill_inst(ifq_fdp_fill_inst[32:0]),
2806
                      .fcl_fdp_oddwin_s (fcl_fdp_oddwin_s),
2807
                      .fcl_fdp_pcoor_vec_f(fcl_fdp_pcoor_vec_f[3:0]),
2808
                      .fcl_fdp_pcoor_f  (fcl_fdp_pcoor_f),
2809
                      .fcl_fdp_mask32b_f(fcl_fdp_mask32b_f),
2810
                      .fcl_fdp_tctxt_sel_prim(fcl_fdp_tctxt_sel_prim[3:0]),
2811
                      .fcl_fdp_usenir_sel_nir_s1(fcl_fdp_usenir_sel_nir_s1),
2812
                      .fcl_fdp_rbinst_sel_inste_s(fcl_fdp_rbinst_sel_inste_s[3:0]),
2813
                      .fcl_fdp_thrtnpc_sel_tnpc_l(fcl_fdp_thrtnpc_sel_tnpc_l[3:0]),
2814
                      .fcl_fdp_thrtnpc_sel_npcw_l(fcl_fdp_thrtnpc_sel_npcw_l[3:0]),
2815
                      .fcl_fdp_thrtnpc_sel_pcf_l(fcl_fdp_thrtnpc_sel_pcf_l[3:0]),
2816
                      .fcl_fdp_thrtnpc_sel_old_l(fcl_fdp_thrtnpc_sel_old_l[3:0]),
2817
                      .fcl_fdp_thr_s1_l (fcl_fdp_thr_s1_l[3:0]),
2818
                      .fcl_fdp_next_thr_bf_l(fcl_fdp_next_thr_bf_l[3:0]),
2819
                      .fcl_fdp_next_ctxt_bf_l(fcl_fdp_next_ctxt_bf_l[3:0]),
2820
                      .fcl_fdp_thr_s2_l (fcl_fdp_thr_s2_l[3:0]),
2821
                      .fcl_fdp_nirthr_s1_l(fcl_fdp_nirthr_s1_l[3:0]),
2822
                      .fcl_fdp_tpcbf_sel_pcp4_bf_l(fcl_fdp_tpcbf_sel_pcp4_bf_l[3:0]),
2823
                      .fcl_fdp_tpcbf_sel_brpc_bf_l(fcl_fdp_tpcbf_sel_brpc_bf_l[3:0]),
2824
                      .fcl_fdp_tpcbf_sel_trap_bf_l(fcl_fdp_tpcbf_sel_trap_bf_l[3:0]),
2825
                      .fcl_fdp_tpcbf_sel_old_bf_l(fcl_fdp_tpcbf_sel_old_bf_l[3:0]),
2826
                      .fcl_fdp_pcbf_sel_swpc_bf_l(fcl_fdp_pcbf_sel_swpc_bf_l),
2827
                      .fcl_fdp_pcbf_sel_nosw_bf_l(fcl_fdp_pcbf_sel_nosw_bf_l),
2828
                      .fcl_fdp_pcbf_sel_br_bf_l(fcl_fdp_pcbf_sel_br_bf_l),
2829
                      .fcl_fdp_trrbpc_sel_trap_bf_l(fcl_fdp_trrbpc_sel_trap_bf_l[3:0]),
2830
                      .fcl_fdp_trrbpc_sel_rb_bf_l(fcl_fdp_trrbpc_sel_rb_bf_l[3:0]),
2831
                      .fcl_fdp_trrbpc_sel_err_bf_l(fcl_fdp_trrbpc_sel_err_bf_l[3:0]),
2832
                      .fcl_fdp_trrbpc_sel_pcs_bf_l(fcl_fdp_trrbpc_sel_pcs_bf_l[3:0]),
2833
                      .fcl_fdp_noswpc_sel_tnpc_l_bf(fcl_fdp_noswpc_sel_tnpc_l_bf),
2834
                      .fcl_fdp_noswpc_sel_old_l_bf(fcl_fdp_noswpc_sel_old_l_bf),
2835
                      .fcl_fdp_noswpc_sel_inc_l_bf(fcl_fdp_noswpc_sel_inc_l_bf),
2836
                      .fcl_fdp_nextpcs_sel_pce_f_l(fcl_fdp_nextpcs_sel_pce_f_l[3:0]),
2837
                      .fcl_fdp_nextpcs_sel_pcd_f_l(fcl_fdp_nextpcs_sel_pcd_f_l[3:0]),
2838
                      .fcl_fdp_nextpcs_sel_pcs_f_l(fcl_fdp_nextpcs_sel_pcs_f_l[3:0]),
2839
                      .fcl_fdp_nextpcs_sel_pcf_f_l(fcl_fdp_nextpcs_sel_pcf_f_l[3:0]),
2840
                      .fcl_fdp_rdsr_sel_pc_e_l(fcl_fdp_rdsr_sel_pc_e_l),
2841
                      .fcl_fdp_rdsr_sel_ver_e_l(fcl_fdp_rdsr_sel_ver_e_l),
2842
                      .fcl_fdp_rdsr_sel_thr_e_l(fcl_fdp_rdsr_sel_thr_e_l),
2843
                      .fcl_fdp_inst_sel_curr_s_l(fcl_fdp_inst_sel_curr_s_l),
2844
                      .fcl_fdp_inst_sel_switch_s_l(fcl_fdp_inst_sel_switch_s_l),
2845
                      .fcl_fdp_inst_sel_nir_s_l(fcl_fdp_inst_sel_nir_s_l),
2846
                      .fcl_fdp_inst_sel_nop_s_l(fcl_fdp_inst_sel_nop_s_l),
2847
                      .fcl_fdp_tinst_sel_curr_s_l(fcl_fdp_tinst_sel_curr_s_l[3:0]),
2848
                      .fcl_fdp_tinst_sel_rb_s_l(fcl_fdp_tinst_sel_rb_s_l[3:0]),
2849
                      .fcl_fdp_tinst_sel_old_s_l(fcl_fdp_tinst_sel_old_s_l[3:0]),
2850
                      .fcl_fdp_tinst_sel_ifq_s_l(fcl_fdp_tinst_sel_ifq_s_l[3:0]),
2851
                      .fcl_fdp_dmpthr_l (fcl_fdp_dmpthr_l[3:0]),
2852
                      .fcl_fdp_ctxt_sel_dmp_bf_l(fcl_fdp_ctxt_sel_dmp_bf_l),
2853
                      .fcl_fdp_ctxt_sel_sw_bf_l(fcl_fdp_ctxt_sel_sw_bf_l),
2854
                      .fcl_fdp_ctxt_sel_curr_bf_l(fcl_fdp_ctxt_sel_curr_bf_l));
2855
 
2856 103 fafa1971
   sparc_ifu_fcl fcl(
2857 95 fafa1971
                     .so                (short_scan1_1),
2858
                     .si                (short_si1),
2859
                     .rst_tri_en        (mux_drive_disable),
2860
 
2861
                     // keep around in case we need it later
2862
                     .ifu_reset_l       (),
2863
 
2864
                                 .fdp_fcl_va2_bf    (fdp_icd_vaddr_bf[2]),
2865
                     .itlb_fcl_priv_s1  (itlb_rd_tte_data[4]),
2866
                     .tlu_fcl_dmp_pid_bf (tlu_itlb_tte_tag_w2[58:56]),
2867
                     .tlu_fcl_dmp_real_bf (tlu_itlb_tte_tag_w2[55]),
2868
                     .itlb_fcl_cp_s1    (itlb_rd_tte_data[7]),
2869
                     // need these here since itlb is not auto inst'ed
2870
                                 .fcl_itlb_invall_f_l(fcl_itlb_invall_f_l),
2871
                     .fcl_itlb_cam_vld_bf(fcl_itlb_cam_vld_bf),
2872
                     .fcl_itlb_cam_bypass_bf(fcl_itlb_cam_bypass_bf),
2873
                     .fcl_itlb_addr_mask_l(fcl_itlb_addr_mask_l),
2874
                     .fcl_itlb_cam_real_bf(fcl_itlb_cam_real_bf),
2875
                     .fcl_itlb_cam_pid_bf(fcl_itlb_cam_pid_bf[2:0]),
2876
                     .fcl_itlb_wr_vld_bf(fcl_itlb_wr_vld_bf),
2877
                     .fcl_itlb_dmp_vld_bf(fcl_itlb_dmp_vld_bf),
2878
                     .fcl_itlb_dmp_all_bf(fcl_itlb_dmp_all_bf),
2879
                     .fcl_itlb_tag_rd_vld_bf(fcl_itlb_tag_rd_vld_bf),
2880
                     .fcl_itlb_data_rd_vld_bf(fcl_itlb_data_rd_vld_bf),
2881
 
2882
                     // eco 5362
2883
                     .fcl_fdp_addr_mask_d(ifu_exu_addr_mask_d),
2884
 
2885
                      /*AUTOINST*/
2886
                     // Outputs
2887
                     .fcl_icd_rdreq_bf  (fcl_icd_rdreq_bf),
2888
                     .fcl_icv_rdreq_bf  (fcl_icv_rdreq_bf),
2889
                     .fcl_icd_wrreq_bf  (fcl_icd_wrreq_bf),
2890
                     .fcl_ict_wrreq_bf  (fcl_ict_wrreq_bf),
2891
                     .fcl_icv_wrreq_bf  (fcl_icv_wrreq_bf),
2892
                     .fcl_icd_index_sel_ifq_bf(fcl_icd_index_sel_ifq_bf),
2893
                     .fcl_ifq_grant_bf  (fcl_ifq_grant_bf),
2894
                     .fcl_ifq_icmiss_s1 (fcl_ifq_icmiss_s1),
2895
                     .fcl_ifq_rdreq_s1  (fcl_ifq_rdreq_s1),
2896
                     .fcl_ifq_icache_en_s_l(fcl_ifq_icache_en_s_l),
2897
                     .fcl_ifq_thr_s1    (fcl_ifq_thr_s1[1:0]),
2898
                     .fcl_ifq_canthr    (fcl_ifq_canthr[3:0]),
2899
                     .fcl_erb_ievld_s1  (fcl_erb_ievld_s1),
2900
                     .fcl_erb_tevld_s1  (fcl_erb_tevld_s1),
2901
                     .fcl_erb_immuevld_s1(fcl_erb_immuevld_s1),
2902
                     .ifu_lsu_thrid_s   (ifu_lsu_thrid_s[1:0]),
2903
                     .fcl_erb_asi_tid_f (fcl_erb_asi_tid_f[1:0]),
2904
                     .fcl_erb_clear_iferr(fcl_erb_clear_iferr[3:0]),
2905
                     .fcl_erb_itlbrd_vld_s(fcl_erb_itlbrd_vld_s),
2906
                     .fcl_erb_itlbrd_data_s(fcl_erb_itlbrd_data_s),
2907
                     .fcl_dec_dslot_s   (fcl_dec_dslot_s),
2908
                     .fcl_dtu_inst_vld_e(fcl_dtu_inst_vld_e),
2909
                     .fcl_dtu_intr_vld_e(fcl_dtu_intr_vld_e),
2910
                     .fcl_dtu_inst_vld_d(fcl_dtu_inst_vld_d),
2911
                     .fcl_dtu_ely_inst_vld_d(fcl_dtu_ely_inst_vld_d),
2912
                     .fcl_dec_intr_vld_d(fcl_dec_intr_vld_d),
2913
                     .fcl_erb_inst_issue_d(fcl_erb_inst_issue_d),
2914
                     .fcl_erb_inst_vld_d1(fcl_erb_inst_vld_d1),
2915
                     .ifu_tlu_inst_vld_m(ifu_tlu_inst_vld_m),
2916
                     .ifu_exu_inst_vld_e(ifu_exu_inst_vld_e),
2917
                     .ifu_exu_inst_vld_w(ifu_exu_inst_vld_w),
2918
                     .ifu_spu_inst_vld_w(ifu_spu_inst_vld_w),
2919
                     .ifu_tlu_inst_vld_w(ifu_tlu_inst_vld_w),
2920
                     .ifu_tlu_flush_w   (ifu_tlu_flush_w),
2921
                     .ifu_tlu_flush_m   (ifu_tlu_flush_m),
2922
                     .fcl_swl_int_activate_i3(fcl_swl_int_activate_i3[3:0]),
2923
                     .fcl_swl_flush_wake_w(fcl_swl_flush_wake_w),
2924
                     .fcl_swl_flush_w   (fcl_swl_flush_w),
2925
                     .fcl_dcl_regz_e    (fcl_dcl_regz_e),
2926
                     .ifu_tlu_thrid_e   (ifu_tlu_thrid_e[1:0]),
2927
                     .ifu_tlu_thrid_d   (ifu_tlu_thrid_d[1:0]),
2928
                     .ifu_tlu_immu_miss_m(ifu_tlu_immu_miss_m),
2929
                     .ifu_tlu_priv_violtn_m(ifu_tlu_priv_violtn_m),
2930
                     .ifu_tlu_icmiss_e  (ifu_tlu_icmiss_e),
2931
                     .ifu_tlu_ttype_vld_m(ifu_tlu_ttype_vld_m),
2932
                     .ifu_exu_ttype_vld_m(ifu_exu_ttype_vld_m),
2933
                     .ifu_mmu_trap_m    (ifu_mmu_trap_m),
2934
                     .ifu_tlu_trap_m    (ifu_tlu_trap_m),
2935
                     .ifu_tlu_ttype_m   (ifu_tlu_ttype_m[8:0]),
2936
                     .ifu_tlu_hwint_m   (ifu_tlu_hwint_m),
2937
                     .ifu_tlu_sftint_m  (ifu_tlu_sftint_m),
2938
                     .ifu_tlu_rstint_m  (ifu_tlu_rstint_m),
2939
                     .fcl_dtu_rst_thr_w (fcl_dtu_rst_thr_w),
2940
                     .fcl_dtu_resum_thr_w(fcl_dtu_resum_thr_w),
2941
                     .ifu_tlu_itlb_done (ifu_tlu_itlb_done),
2942
                     .ifu_spu_trap_ack  (ifu_spu_trap_ack),
2943
                     .ifu_exu_tid_s2    (ifu_exu_tid_s2[1:0]),
2944
                     .ifu_exu_ren1_s    (ifu_exu_ren1_s),
2945
                     .ifu_exu_ren2_s    (ifu_exu_ren2_s),
2946
                     .ifu_exu_ren3_s    (ifu_exu_ren3_s),
2947
                     .ifu_exu_disable_ce_e(ifu_exu_disable_ce_e),
2948
                     .fcl_dtu_sync_intr_d(fcl_dtu_sync_intr_d),
2949
                     .fcl_dtu_tlzero_d  (fcl_dtu_tlzero_d),
2950
                     .fcl_dtu_privmode_d(fcl_dtu_privmode_d),
2951
                     .fcl_dtu_hprivmode_d(fcl_dtu_hprivmode_d),
2952
                     .fcl_dtu_hprivmode_w2(fcl_dtu_hprivmode_w2),
2953
                     .fcl_dtu_nuke_thr_w(fcl_dtu_nuke_thr_w),
2954
                     .fcl_swl_swout_f   (fcl_swl_swout_f),
2955
                     .fcl_dtu_stall_bf  (fcl_dtu_stall_bf),
2956
                     .fcl_swl_swcvld_s  (fcl_swl_swcvld_s),
2957
                     .fcl_dtu_thr_f     (fcl_dtu_thr_f[3:0]),
2958
                     .fcl_imd_oddwin_d  (fcl_imd_oddwin_d),
2959
                     .fcl_fdp_oddwin_s  (fcl_fdp_oddwin_s),
2960
                     .fcl_fdp_pcoor_vec_f(fcl_fdp_pcoor_vec_f[3:0]),
2961
                     .fcl_fdp_pcoor_f   (fcl_fdp_pcoor_f),
2962
                     .fcl_fdp_mask32b_f (fcl_fdp_mask32b_f),
2963
                     .fcl_fdp_tctxt_sel_prim(fcl_fdp_tctxt_sel_prim[3:0]),
2964
                     .fcl_fdp_usenir_sel_nir_s1(fcl_fdp_usenir_sel_nir_s1),
2965
                     .fcl_fdp_rbinst_sel_inste_s(fcl_fdp_rbinst_sel_inste_s[3:0]),
2966
                     .fcl_fdp_thrtnpc_sel_tnpc_l(fcl_fdp_thrtnpc_sel_tnpc_l[3:0]),
2967
                     .fcl_fdp_thrtnpc_sel_npcw_l(fcl_fdp_thrtnpc_sel_npcw_l[3:0]),
2968
                     .fcl_fdp_thrtnpc_sel_pcf_l(fcl_fdp_thrtnpc_sel_pcf_l[3:0]),
2969
                     .fcl_fdp_thrtnpc_sel_old_l(fcl_fdp_thrtnpc_sel_old_l[3:0]),
2970
                     .fcl_fdp_thr_s1_l  (fcl_fdp_thr_s1_l[3:0]),
2971
                     .fcl_fdp_next_thr_bf_l(fcl_fdp_next_thr_bf_l[3:0]),
2972
                     .fcl_fdp_next_ctxt_bf_l(fcl_fdp_next_ctxt_bf_l[3:0]),
2973
                     .fcl_fdp_nirthr_s1_l(fcl_fdp_nirthr_s1_l[3:0]),
2974
                     .fcl_fdp_thr_s2_l  (fcl_fdp_thr_s2_l[3:0]),
2975
                     .fcl_fdp_tpcbf_sel_pcp4_bf_l(fcl_fdp_tpcbf_sel_pcp4_bf_l[3:0]),
2976
                     .fcl_fdp_tpcbf_sel_brpc_bf_l(fcl_fdp_tpcbf_sel_brpc_bf_l[3:0]),
2977
                     .fcl_fdp_tpcbf_sel_trap_bf_l(fcl_fdp_tpcbf_sel_trap_bf_l[3:0]),
2978
                     .fcl_fdp_tpcbf_sel_old_bf_l(fcl_fdp_tpcbf_sel_old_bf_l[3:0]),
2979
                     .fcl_fdp_pcbf_sel_nosw_bf_l(fcl_fdp_pcbf_sel_nosw_bf_l),
2980
                     .fcl_fdp_pcbf_sel_swpc_bf_l(fcl_fdp_pcbf_sel_swpc_bf_l),
2981
                     .fcl_fdp_pcbf_sel_br_bf_l(fcl_fdp_pcbf_sel_br_bf_l),
2982
                     .fcl_fdp_trrbpc_sel_trap_bf_l(fcl_fdp_trrbpc_sel_trap_bf_l[3:0]),
2983
                     .fcl_fdp_trrbpc_sel_rb_bf_l(fcl_fdp_trrbpc_sel_rb_bf_l[3:0]),
2984
                     .fcl_fdp_trrbpc_sel_err_bf_l(fcl_fdp_trrbpc_sel_err_bf_l[3:0]),
2985
                     .fcl_fdp_trrbpc_sel_pcs_bf_l(fcl_fdp_trrbpc_sel_pcs_bf_l[3:0]),
2986
                     .fcl_fdp_noswpc_sel_tnpc_l_bf(fcl_fdp_noswpc_sel_tnpc_l_bf),
2987
                     .fcl_fdp_noswpc_sel_old_l_bf(fcl_fdp_noswpc_sel_old_l_bf),
2988
                     .fcl_fdp_noswpc_sel_inc_l_bf(fcl_fdp_noswpc_sel_inc_l_bf),
2989
                     .fcl_fdp_nextpcs_sel_pce_f_l(fcl_fdp_nextpcs_sel_pce_f_l[3:0]),
2990
                     .fcl_fdp_nextpcs_sel_pcd_f_l(fcl_fdp_nextpcs_sel_pcd_f_l[3:0]),
2991
                     .fcl_fdp_nextpcs_sel_pcs_f_l(fcl_fdp_nextpcs_sel_pcs_f_l[3:0]),
2992
                     .fcl_fdp_nextpcs_sel_pcf_f_l(fcl_fdp_nextpcs_sel_pcf_f_l[3:0]),
2993
                     .fcl_fdp_inst_sel_curr_s_l(fcl_fdp_inst_sel_curr_s_l),
2994
                     .fcl_fdp_inst_sel_switch_s_l(fcl_fdp_inst_sel_switch_s_l),
2995
                     .fcl_fdp_inst_sel_nir_s_l(fcl_fdp_inst_sel_nir_s_l),
2996
                     .fcl_fdp_inst_sel_nop_s_l(fcl_fdp_inst_sel_nop_s_l),
2997
                     .fcl_fdp_tinst_sel_curr_s_l(fcl_fdp_tinst_sel_curr_s_l[3:0]),
2998
                     .fcl_fdp_tinst_sel_rb_s_l(fcl_fdp_tinst_sel_rb_s_l[3:0]),
2999
                     .fcl_fdp_tinst_sel_old_s_l(fcl_fdp_tinst_sel_old_s_l[3:0]),
3000
                     .fcl_fdp_tinst_sel_ifq_s_l(fcl_fdp_tinst_sel_ifq_s_l[3:0]),
3001
                     .fcl_fdp_dmpthr_l  (fcl_fdp_dmpthr_l[3:0]),
3002
                     .fcl_fdp_ctxt_sel_dmp_bf_l(fcl_fdp_ctxt_sel_dmp_bf_l),
3003
                     .fcl_fdp_ctxt_sel_sw_bf_l(fcl_fdp_ctxt_sel_sw_bf_l),
3004
                     .fcl_fdp_ctxt_sel_curr_bf_l(fcl_fdp_ctxt_sel_curr_bf_l),
3005
                     .fcl_fdp_rdsr_sel_pc_e_l(fcl_fdp_rdsr_sel_pc_e_l),
3006
                     .fcl_fdp_rdsr_sel_thr_e_l(fcl_fdp_rdsr_sel_thr_e_l),
3007
                     .fcl_fdp_rdsr_sel_ver_e_l(fcl_fdp_rdsr_sel_ver_e_l),
3008
                     // Inputs
3009
                     .rclk              (rclk),
3010
                     .grst_l            (grst_l),
3011
                     .arst_l            (arst_l),
3012
                     .se                (se),
3013
                     .sehold            (sehold),
3014
                     .tlu_ifu_flush_pipe_w(tlu_ifu_flush_pipe_w),
3015
                     .exu_ifu_va_oor_m  (exu_ifu_va_oor_m),
3016
                     .exu_ifu_oddwin_s  (exu_ifu_oddwin_s[3:0]),
3017
                     .spu_ifu_ttype_tid_w2(spu_ifu_ttype_tid_w2[1:0]),
3018
                     .spu_ifu_ttype_vld_w2(spu_ifu_ttype_vld_w2),
3019
                     .spu_ifu_ttype_w2  (spu_ifu_ttype_w2),
3020
                     .erb_fcl_spu_uetrap(erb_fcl_spu_uetrap[3:0]),
3021
                     .exu_ifu_regz_e    (exu_ifu_regz_e),
3022
                     .dcl_fcl_bcregz0_e (dcl_fcl_bcregz0_e),
3023
                     .dcl_fcl_bcregz1_e (dcl_fcl_bcregz1_e),
3024
                     .dtu_fcl_rollback_g(dtu_fcl_rollback_g),
3025
                     .dtu_fcl_retract_d (dtu_fcl_retract_d),
3026
                     .dtu_fcl_br_inst_d (dtu_fcl_br_inst_d),
3027
                     .dtu_fcl_sir_inst_e(dtu_fcl_sir_inst_e),
3028
                     .dtu_fcl_privop_e  (dtu_fcl_privop_e),
3029
                     .dtu_fcl_fpdis_e   (dtu_fcl_fpdis_e),
3030
                     .dtu_fcl_imask_hit_e(dtu_fcl_imask_hit_e),
3031
                     .dtu_fcl_illinst_e (dtu_fcl_illinst_e),
3032
                     .dtu_fcl_thr_active(dtu_fcl_thr_active[3:0]),
3033
                     .dec_fcl_rdsr_sel_pc_d(dec_fcl_rdsr_sel_pc_d),
3034
                     .dec_fcl_rdsr_sel_thr_d(dec_fcl_rdsr_sel_thr_d),
3035
                     .ifq_fcl_wrreq_bf  (ifq_fcl_wrreq_bf),
3036
                     .ifq_fcl_icd_wrreq_bf(ifq_fcl_icd_wrreq_bf),
3037
                     .ifq_fcl_ictv_wrreq_bf(ifq_fcl_ictv_wrreq_bf),
3038
                     .ifq_fcl_rdreq_bf  (ifq_fcl_rdreq_bf),
3039
                     .ifq_fcl_asi_tid_bf(ifq_fcl_asi_tid_bf[1:0]),
3040
                     .ifq_fcl_asird_bf  (ifq_fcl_asird_bf),
3041
                     .ifq_fcl_invreq_bf (ifq_fcl_invreq_bf),
3042
                     .erb_fcl_itlb_ce_d1(erb_fcl_itlb_ce_d1),
3043
                     .erb_dtu_ifeterr_d1(erb_dtu_ifeterr_d1),
3044
                     .erb_fcl_ifet_uevec_d1(erb_fcl_ifet_uevec_d1[3:0]),
3045
                     .erb_fcl_ue_trapvec(erb_fcl_ue_trapvec[3:0]),
3046
                     .erb_fcl_ce_trapvec(erb_fcl_ce_trapvec[3:0]),
3047
                     .dtu_fcl_nextthr_bf(dtu_fcl_nextthr_bf[3:0]),
3048
                     .dtu_fcl_ntr_s     (dtu_fcl_ntr_s),
3049
                     .dtu_fcl_running_s (dtu_fcl_running_s),
3050
                     .dtu_fcl_flush_sonly_e(dtu_fcl_flush_sonly_e),
3051
                     .fdp_fcl_swc_s2    (fdp_fcl_swc_s2),
3052
                     .itlb_fcl_tlbmiss_f_l(itlb_fcl_tlbmiss_f_l),
3053
                     .itlb_fcl_imiss_s_l(itlb_fcl_imiss_s_l),
3054
                     .fdp_fcl_pc_oor_vec_f(fdp_fcl_pc_oor_vec_f[3:0]),
3055
                     .fdp_fcl_pc_oor_e  (fdp_fcl_pc_oor_e),
3056
                     .fdp_fcl_op_s      (fdp_fcl_op_s[1:0]),
3057
                     .fdp_fcl_op3_s     (fdp_fcl_op3_s[5:2]),
3058
                     .fdp_fcl_ibit_s    (fdp_fcl_ibit_s),
3059
                     .lsu_ifu_stallreq  (lsu_ifu_stallreq),
3060
                     .ffu_ifu_stallreq  (ffu_ifu_stallreq),
3061
                     .ifq_fcl_stallreq  (ifq_fcl_stallreq),
3062
                     .dtu_inst_anull_e  (dtu_inst_anull_e),
3063
                     .ifq_fcl_fill_thr  (ifq_fcl_fill_thr[3:0]),
3064
                     .ifq_fcl_flush_sonly_e(ifq_fcl_flush_sonly_e),
3065
                     .tlu_ifu_trap_tid_w1(tlu_ifu_trap_tid_w1[1:0]),
3066
                     .tlu_ifu_trappc_vld_w1(tlu_ifu_trappc_vld_w1),
3067
                     .tlu_ifu_trapnpc_vld_w1(tlu_ifu_trapnpc_vld_w1),
3068
                     .tlu_lsu_pstate_priv(tlu_lsu_pstate_priv[3:0]),
3069
                     .tlu_lsu_pstate_am (tlu_lsu_pstate_am[3:0]),
3070
                     .tlu_hpstate_priv  (tlu_hpstate_priv[3:0]),
3071
                     .tlu_lsu_redmode   (tlu_lsu_redmode[3:0]),
3072
                     .tlu_hpstate_enb   (tlu_hpstate_enb[3:0]),
3073
                     .lsu_ifu_addr_real_l(lsu_ifu_addr_real_l[3:0]),
3074
                     .lsu_pid_state0    (lsu_pid_state0[2:0]),
3075
                     .lsu_pid_state1    (lsu_pid_state1[2:0]),
3076
                     .lsu_pid_state2    (lsu_pid_state2[2:0]),
3077
                     .lsu_pid_state3    (lsu_pid_state3[2:0]),
3078
                     .lsu_ifu_icache_en (lsu_ifu_icache_en[3:0]),
3079
                     .lsu_ifu_dc_parity_error_w2(lsu_ifu_dc_parity_error_w2),
3080
                     .lsu_ifu_t0_tlz    (lsu_ifu_t0_tlz),
3081
                     .lsu_ifu_t1_tlz    (lsu_ifu_t1_tlz),
3082
                     .lsu_ifu_t2_tlz    (lsu_ifu_t2_tlz),
3083
                     .lsu_ifu_t3_tlz    (lsu_ifu_t3_tlz),
3084
                     .tlu_ifu_hwint_i3  (tlu_ifu_hwint_i3[3:0]),
3085
                     .tlu_ifu_pstate_ie (tlu_ifu_pstate_ie[3:0]),
3086
                     .tlu_ifu_sftint_vld(tlu_ifu_sftint_vld[3:0]),
3087
                     .tlu_ifu_hintp_vld (tlu_ifu_hintp_vld[3:0]),
3088
                     .tlu_ifu_rerr_vld  (tlu_ifu_rerr_vld[3:0]),
3089
                     .tlu_ifu_rstthr_i2 (tlu_ifu_rstthr_i2[3:0]),
3090
                     .tlu_ifu_rstint_i2 (tlu_ifu_rstint_i2),
3091
                     .tlu_ifu_resumint_i2(tlu_ifu_resumint_i2),
3092
                     .tlu_ifu_nukeint_i2(tlu_ifu_nukeint_i2),
3093
                     .tlu_itlb_wr_vld_g (tlu_itlb_wr_vld_g),
3094
                     .tlu_itlb_dmp_vld_g(tlu_itlb_dmp_vld_g),
3095
                     .tlu_itlb_dmp_all_g(tlu_itlb_dmp_all_g),
3096
                     .tlu_itlb_data_rd_g(tlu_itlb_data_rd_g),
3097
                     .tlu_itlb_tag_rd_g (tlu_itlb_tag_rd_g),
3098
                     .tlu_itlb_invalidate_all_g(tlu_itlb_invalidate_all_g),
3099
                     .tlu_idtlb_dmp_thrid_g(tlu_idtlb_dmp_thrid_g[1:0]),
3100
                     .exu_ifu_ecc_ce_m  (exu_ifu_ecc_ce_m),
3101
                     .ffu_ifu_fst_ce_w  (ffu_ifu_fst_ce_w));
3102
 
3103
//   sparc_ifu_itlb itlb(
3104
//                        .adj    (lsu_idtlb_mrgn[7:0]),
3105
//                                        .reset  (fcl_itlb_invall_bf),
3106
//                        .tlu_itlb_dmp_actxt_g(tlu_itlb_dmp_actxt_g),
3107
//                        .itlb_vaddr_offset_f (fdp_erb_pc_f[`IC_IDX_HI:(`IC_IDX_HI-1)]),
3108
//                                        /*AUTOINST*/
3109
//                        // Outputs
3110
//                        .ifu_lsu_tlb_writeable(ifu_lsu_tlb_writeable),
3111
//                        .itlb_ifq_paddr_s(itlb_ifq_paddr_s[39:10]),
3112
//                        .itlb_icd_waysel_s1(itlb_icd_waysel_s1[3:0]),
3113
//                        .itlb_fcl_imiss_s_l(itlb_fcl_imiss_s_l),
3114
//                        .itlb_fcl_tlbmiss_f_l(itlb_fcl_tlbmiss_f_l),
3115
//                        .itlb_fcl_priv_s1(itlb_fcl_priv_s1),
3116
//                        .itlb_rd_tte_data(itlb_rd_tte_data[42:0]),
3117
//                        .itlb_rd_tte_tag(itlb_rd_tte_tag[58:0]),
3118
//                        .so             (so),
3119
                        // Inputs
3120
//                        .clk            (clk),
3121
//                        .se             (se),
3122
//                        .si             (si),
3123
//                        .fdp_icd_vaddr_bf(fdp_icd_vaddr_bf[47:10]),
3124
//                        .fdp_itlb_ctxt_bf(fdp_itlb_ctxt_bf[12:0]),
3125
//                        .ict_itlb_tags_f(ict_itlb_tags_f[`IC_TAG_ALL_HI:0]),
3126
//                        .icv_itlb_valid_f(icv_itlb_valid_f[3:0]),
3127
//                        .fcl_itlb_cam_vld_bf(fcl_itlb_cam_vld_bf),
3128
//                        .fcl_itlb_wr_vld_bf(fcl_itlb_wr_vld_bf),
3129
//                        .fcl_itlb_addr_mask_l(fcl_itlb_addr_mask_l),
3130
//                        .fcl_itlb_dmp_vld_bf(fcl_itlb_dmp_vld_bf),
3131
//                        .fcl_itlb_tag_rd_vld_bf(fcl_itlb_tag_rd_vld_bf),
3132
//                        .fcl_itlb_data_rd_vld_bf(fcl_itlb_data_rd_vld_bf),
3133
//                        .fcl_itlb_cam_real_bf(fcl_itlb_cam_real_bf),
3134
//                        .fcl_itlb_cam_pid_bf(fcl_itlb_cam_pid_bf[2:0]),
3135
//                        .tlu_itlb_tte_tag_w2(tlu_itlb_tte_tag_w2[58:0]),
3136
//                        .tlu_itlb_tte_data_w2(tlu_itlb_tte_data_w2[42:0]),
3137
//                        .tlu_itlb_rw_index_vld_g(tlu_itlb_rw_index_vld_g),
3138
//                        .tlu_itlb_rw_index_g(tlu_itlb_rw_index_g[5:0]),
3139
//                        .tlu_idtlb_dmp_key_g(tlu_idtlb_dmp_key_g[40:0]),
3140
//                        .tlu_itlb_dmp_by_ctxt_g(tlu_itlb_dmp_by_ctxt_g),
3141
//                        .tlu_itlb_dmp_all_g(tlu_itlb_dmp_all_g));
3142
 
3143
   bw_r_tlb itlb(
3144
                              .tlb_pgnum_crit   (),
3145
                              // Outputs
3146
                              .tlb_rd_tte_tag    (itlb_rd_tte_tag[58:0]),  // 2
3147
                              .tlb_rd_tte_data (itlb_rd_tte_data[42:0]), // 2
3148
                              .tlb_pgnum             (itlb_ifq_paddr_s[39:10]), // 2
3149
                              .tlb_cam_hit         (itlb_fcl_tlbmiss_f_l),    // 1
3150
                              .cache_way_hit   (itlb_wsel_waysel_s1[3:0]), // 2
3151
                              .cache_hit       (itlb_fcl_imiss_s_l),      // 2
3152
                              .so               (short_scan0_1),
3153
 
3154
                                  // Inputs
3155
                  .rclk          (rclk),
3156
                  .rst_tri_en    (mem_write_disable),
3157
                              .tlb_cam_vld      (fcl_itlb_cam_vld_bf),       // 0
3158
 
3159
//`ifdef SPARC_HPV_EN               
3160
                  .tlb_cam_key   ({fdp_icd_vaddr_bf[47:28],  // 0
3161
                                   1'b1,
3162
                                   fdp_icd_vaddr_bf[27:22],
3163
                                   1'b1,
3164
                                   fdp_icd_vaddr_bf[21:16],
3165
                                   1'b1,
3166
                                   fdp_icd_vaddr_bf[15:13],
3167
                                   1'b1,
3168
                                   fcl_itlb_cam_real_bf,  // g is the same as r
3169
                                   fcl_itlb_cam_real_bf}),// this is the r bit
3170
 
3171
//`else // !`ifdef SPARC_HPV_EN
3172
//                  .tlb_cam_key ({1'b0, // unused          // 0
3173
//                                 fdp_icd_vaddr_bf[47:35], 
3174
//                                                             1'b1, // v47_22
3175
//                                                             fdp_icd_vaddr_bf[34:22],
3176
//                                                             fdp_icd_vaddr_bf[21:20],
3177
//                                                             1'b1, // v21_19
3178
//                                                             fdp_icd_vaddr_bf[19],
3179
//                                                             fdp_icd_vaddr_bf[18:17],
3180
//                                                             1'b1, // v18_16
3181
//                                                             fdp_icd_vaddr_bf[16],
3182
//                                                             fdp_icd_vaddr_bf[15:14],
3183
//                                                             1'b1, // v15_13
3184
//                                                             fdp_icd_vaddr_bf[13], // global bit
3185
//                                                             1'b0}),  // all r's are zero
3186
//                  
3187
//                  .tlb_cam_real     (fcl_itlb_cam_real_bf),    // 0
3188
//                            .tlb_demap_ctxt   (tlu_itlb_dmp_by_ctxt_g),  // 0
3189
//`endif
3190
 
3191
                  .tlb_cam_pid    (fcl_itlb_cam_pid_bf[2:0]),  // 0
3192
                              .tlb_demap_key    (tlu_idtlb_dmp_key_g[40:0]), // 0
3193
 
3194
                              .tlb_addr_mask_l (fcl_itlb_addr_mask_l),      // 0
3195
                              .tlb_ctxt              (fdp_itlb_ctxt_bf[12:0]),    // 0
3196
 
3197
                              .tlb_wr_vld           (fcl_itlb_wr_vld_bf),         // 0
3198
                              .tlb_wr_tte_tag   (tlu_itlb_tte_tag_w2[58:0]),  // 1
3199
                              .tlb_wr_tte_data(tlu_itlb_tte_data_w2[42:0]), // 1
3200
 
3201
                              .tlb_rd_tag_vld    (fcl_itlb_tag_rd_vld_bf),    // 0
3202
                              .tlb_rd_data_vld (fcl_itlb_data_rd_vld_bf),   // 0
3203
                              .tlb_rw_index_vld(tlu_itlb_rw_index_vld_g),   // 0
3204
                              .tlb_rw_index        (tlu_itlb_rw_index_g[5:0]),  // 0
3205
 
3206
                              .tlb_demap            (fcl_itlb_dmp_vld_bf),        // 0
3207
                              .tlb_demap_all    (fcl_itlb_dmp_all_bf),        // 0
3208
                  .tlb_demap_auto (tlu_itlb_dmp_actxt_g),
3209
 
3210
                              .cache_ptag_w3    ({ict_itlb_tag3_f[27:0],   // 1
3211
                                                                  fdp_erb_pc_f[11:(11-1)]}),
3212
                              .cache_ptag_w2    ({ict_itlb_tag2_f[27:0],    // 1
3213
                                                                  fdp_erb_pc_f[11:(11-1)]}),
3214
                              .cache_ptag_w1    ({ict_itlb_tag1_f[27:0],    // 1
3215
                                    fdp_erb_pc_f[11:(11-1)]}),
3216
                              .cache_ptag_w0    ({ict_itlb_tag0_f[27:0],     // 1
3217
                                    fdp_erb_pc_f[11:(11-1)]}),
3218
 
3219
                              .cache_set_vld    (icv_itlb_valid_f[3:0]),     // 1
3220
 
3221
                              .tlb_bypass           (fcl_itlb_cam_bypass_bf),    // 0
3222
                              .tlb_bypass_va    (fdp_icd_vaddr_bf[12:10]),   // 0
3223
 
3224
                              .si               (short_si0),
3225
                              .se               (se),
3226
                  .hold (sehold),
3227
                              .adj                  (lsu_idtlb_mrgn[7:0]),
3228
                 // tlb expects this to be asynchronous reset!
3229
                  .arst_l     (arst_l),
3230
                              .rst_soft_l (fcl_itlb_invall_f_l));  // 1
3231
 
3232
 
3233
   sparc_ifu_wseldp wseldp(
3234
                           .so          (scan0_6),
3235
                           .si          (scan0_5),
3236
                         .wsel_mbist_icache_data(wsel_mbist_icache_data[67:0]),
3237
                         /*AUTOINST*/
3238
                           // Outputs
3239
                           .wsel_fdp_fetdata_s1(wsel_fdp_fetdata_s1[33:0]),
3240
                           .wsel_fdp_topdata_s1(wsel_fdp_topdata_s1[33:0]),
3241
                           // Inputs
3242
                           .rclk        (rclk),
3243
                           .se          (se),
3244
                           .icd_wsel_fetdata_s1(icd_wsel_fetdata_s1[135:0]),
3245
                           .icd_wsel_topdata_s1(icd_wsel_topdata_s1[135:0]),
3246
                           .itlb_wsel_waysel_s1(itlb_wsel_waysel_s1[3:0]),
3247
                           .ifq_erb_asiway_f(ifq_erb_asiway_f[1:0]));
3248
 
3249
 
3250
/*   cmp_sram_redhdr AUTO_TEMPLATE(
3251
                            .fuse_ary_wren(fuse_icd_wren),
3252
                            .fuse_ary_rid(fuse_icd_rid[5:0]),
3253
                            .fuse_ary_repair_value(fuse_icd_repair_value[7:0]),
3254
                            .fuse_ary_repair_en(fuse_icd_repair_en[1:0]),
3255
                            .spc_efc_xfuse_data(spc_efc_ifuse_data),
3256
 
3257
                            .efc_spc_xfuse_data(efc_spc_ifuse_data),
3258
                            .efc_spc_xfuse_ashift(efc_spc_ifuse_ashift),
3259
                            .efc_spc_xfuse_dshift(efc_spc_ifuse_dshift),
3260
                            .ary_fuse_repair_value(icd_fuse_repair_value[7:0]),
3261
                            .ary_fuse_repair_en(icd_fuse_repair_en[1:0]),
3262
                            .scanin   (scan0_6));
3263
 */
3264
 
3265
   cmp_sram_redhdr icdhdr(
3266
                          .scanout      (scan0_7),
3267
                          /*AUTOINST*/
3268
                          // Outputs
3269
                          .fuse_ary_wren(fuse_icd_wren),         // Templated
3270
                          .fuse_ary_rid (fuse_icd_rid[5:0]),     // Templated
3271
                          .fuse_ary_repair_value(fuse_icd_repair_value[7:0]), // Templated
3272
                          .fuse_ary_repair_en(fuse_icd_repair_en[1:0]), // Templated
3273
                          .spc_efc_xfuse_data(spc_efc_ifuse_data), // Templated
3274
                          // Inputs
3275
                          .rclk         (rclk),
3276
                          .se           (se),
3277
                          .scanin       (scan0_6),               // Templated
3278
                          .arst_l       (arst_l),
3279
                          .testmode_l   (testmode_l),
3280
                          .efc_spc_fuse_clk1(efc_spc_fuse_clk1),
3281
                          .efc_spc_fuse_clk2(efc_spc_fuse_clk2),
3282
                          .efc_spc_xfuse_data(efc_spc_ifuse_data), // Templated
3283
                          .efc_spc_xfuse_ashift(efc_spc_ifuse_ashift), // Templated
3284
                          .efc_spc_xfuse_dshift(efc_spc_ifuse_dshift), // Templated
3285
                          .ary_fuse_repair_value(icd_fuse_repair_value[7:0]), // Templated
3286
                          .ary_fuse_repair_en(icd_fuse_repair_en[1:0])); // Templated
3287
//   sparc_ifu_icd icd
3288
   bw_r_icd icd(
3289
                .so                     (scan0_8),
3290
                .si                     (scan0_7),
3291
                                   .fdp_icd_index_bf  (fdp_icd_vaddr_bf[11:2]),
3292
                 .ifq_icd_index_bf  ({ifq_icd_index_bf[11:2]}),
3293
                 .bist_ic_data      (mbist_icache_wdata[7:0]),
3294
                 .rst_tri_en        (mem_write_disable),
3295
                 .reset_l           (arst_l),
3296
                                   /*AUTOINST*/
3297
                // Outputs
3298
                .icd_wsel_fetdata_s1    (icd_wsel_fetdata_s1[135:0]),
3299
                .icd_wsel_topdata_s1    (icd_wsel_topdata_s1[135:0]),
3300
                .icd_fuse_repair_value  (icd_fuse_repair_value[7:0]),
3301
                .icd_fuse_repair_en     (icd_fuse_repair_en[1:0]),
3302
                // Inputs
3303
                .rclk                   (rclk),
3304
                .se                     (se),
3305
                .sehold                 (sehold),
3306
                .fcl_icd_index_sel_ifq_bf(fcl_icd_index_sel_ifq_bf),
3307
                .ifq_icd_wrway_bf       (ifq_icd_wrway_bf[1:0]),
3308
                .ifq_icd_worden_bf      (ifq_icd_worden_bf[3:0]),
3309
                .ifq_icd_wrdata_i2      (ifq_icd_wrdata_i2[135:0]),
3310
                .fcl_icd_rdreq_bf       (fcl_icd_rdreq_bf),
3311
                .fcl_icd_wrreq_bf       (fcl_icd_wrreq_bf),
3312
                .ifq_icd_data_sel_old_i2(ifq_icd_data_sel_old_i2),
3313
                .ifq_icd_data_sel_fill_i2(ifq_icd_data_sel_fill_i2),
3314
                .ifq_icd_data_sel_bist_i2(ifq_icd_data_sel_bist_i2),
3315
                .fuse_icd_wren          (fuse_icd_wren),
3316
                .fuse_icd_rid           (fuse_icd_rid[3:0]),
3317
                .fuse_icd_repair_value  (fuse_icd_repair_value[7:0]),
3318
                .fuse_icd_repair_en     (fuse_icd_repair_en[1:0]),
3319
                .efc_spc_fuse_clk1      (efc_spc_fuse_clk1));
3320
 
3321
/*   bw_r_idct AUTO_TEMPLATE(
3322
                     // Inputs
3323
                     .adj          (lsu_ictag_mrgn[3:0]),
3324
                     .reset_l      (arst_l),
3325
                                 .index0_x     (fdp_icd_vaddr_bf[`IC_IDX_HI:5]),
3326
                     .index1_x     (ifq_icd_index_bf[`IC_IDX_HI:5]),
3327
                     .index_sel_x  (fcl_icd_index_sel_ifq_bf),
3328
                     .dec_wrway_x  (ifq_ict_dec_wrway_bf[3:0]),
3329
                     .wrtag_w0_y   ({4'b0, ifq_ict_wrtag_f[`IC_TAG_SZ:0]}),
3330
                     .wrtag_w1_y   ({4'b0, ifq_ict_wrtag_f[`IC_TAG_SZ:0]}),
3331
                     .wrtag_w2_y   ({4'b0, ifq_ict_wrtag_f[`IC_TAG_SZ:0]}),
3332
                     .wrtag_w3_y   ({4'b0, ifq_ict_wrtag_f[`IC_TAG_SZ:0]}),
3333
                     .rdreq_x      (fcl_icd_rdreq_bf),
3334
                     .wrreq_x      (fcl_ict_wrreq_bf));
3335
 */
3336
 
3337
   bw_r_idct ict(
3338
                 .so                    (short_scan0_2),
3339
                 .si                    (short_scan0_1),
3340
                 .rdtag_w0_y    (ict_itlb_tag0_f[32:0]),
3341
                 .rdtag_w1_y    (ict_itlb_tag1_f[32:0]),
3342
                 .rdtag_w2_y    (ict_itlb_tag2_f[32:0]),
3343
                 .rdtag_w3_y    (ict_itlb_tag3_f[32:0]),
3344
                 .rst_tri_en        (mem_write_disable),
3345
 
3346
                     /*AUTOINST*/
3347
                 // Inputs
3348
                 .rclk                  (rclk),
3349
                 .se                    (se),
3350
                 .reset_l               (arst_l),                // Templated
3351
                 .sehold                (sehold),
3352
                 .index0_x              (fdp_icd_vaddr_bf[11:5]), // Templated
3353
                 .index1_x              (ifq_icd_index_bf[11:5]), // Templated
3354
                 .index_sel_x           (fcl_icd_index_sel_ifq_bf), // Templated
3355
                 .dec_wrway_x           (ifq_ict_dec_wrway_bf[3:0]), // Templated
3356
                 .rdreq_x               (fcl_icd_rdreq_bf),      // Templated
3357
                 .wrreq_x               (fcl_ict_wrreq_bf),      // Templated
3358
                 .wrtag_w0_y            ({4'b0, ifq_ict_wrtag_f[(39 - 11):0]}), // Templated
3359
                 .wrtag_w1_y            ({4'b0, ifq_ict_wrtag_f[(39 - 11):0]}), // Templated
3360
                 .wrtag_w2_y            ({4'b0, ifq_ict_wrtag_f[(39 - 11):0]}), // Templated
3361
                 .wrtag_w3_y            ({4'b0, ifq_ict_wrtag_f[(39 - 11):0]}), // Templated
3362
                 .adj                   (lsu_ictag_mrgn[3:0]));   // Templated
3363
//     sparc_ifu_icv icv
3364
/*   bw_r_rf16x32 AUTO_TEMPLATE(
3365
                    // Outputs
3366
                    .dout          (icv_itlb_valid_f[3:0]),
3367
                    .so            (short_so0),
3368
                    // Inputs
3369
                    .clk           (clk),
3370
                    .se            (se),
3371
                    .sehold        (sehold),
3372
                    .si            (short_scan0_2),
3373
                    .rst_tri_en        (mem_write_disable),
3374
                    .reset_l       (arst_l),
3375
                                .rd_adr2       (fdp_icv_index_bf[11:5]),
3376
                    .rd_adr1       (ifq_icv_wrindex_bf[`IC_IDX_HI:5]),
3377
                    .wr_adr        (ifq_icv_wrindex_bf[`IC_IDX_HI:7]),
3378
                    .rd_adr1_sel   (fcl_ifq_grant_bf),
3379
                    .din           (ifq_icv_wrdata_bf),
3380
                    .bit_wen       (ifq_icv_wren_bf[15:0]),
3381
                    .rd_en         (fcl_icv_rdreq_bf),
3382
                    .wr_en         (fcl_icv_wrreq_bf));
3383
 */
3384
   bw_r_rf16x32  icv(/*AUTOINST*/
3385
                     // Outputs
3386
                     .dout              (icv_itlb_valid_f[3:0]), // Templated
3387
                     .so                (short_so0),             // Templated
3388
                     // Inputs
3389
                     .rclk              (rclk),
3390
                     .se                (se),                    // Templated
3391
                     .si                (short_scan0_2),         // Templated
3392
                     .reset_l           (arst_l),                // Templated
3393
                     .sehold            (sehold),                // Templated
3394
                     .rst_tri_en        (mem_write_disable),     // Templated
3395
                     .rd_adr1           (ifq_icv_wrindex_bf[11:5]), // Templated
3396
                     .rd_adr2           (fdp_icv_index_bf[11:5]), // Templated
3397
                     .rd_adr1_sel       (fcl_ifq_grant_bf),      // Templated
3398
                     .rd_en             (fcl_icv_rdreq_bf),      // Templated
3399
                     .wr_adr            (ifq_icv_wrindex_bf[11:7]), // Templated
3400
                     .wr_en             (fcl_icv_wrreq_bf),      // Templated
3401
                     .bit_wen           (ifq_icv_wren_bf[15:0]), // Templated
3402
                     .din               (ifq_icv_wrdata_bf));     // Templated
3403
   sparc_ifu_ifqdp ifqdp(
3404
                         .so            (short_so1),
3405
                         .si            (short_scan1_1),
3406
                        .ifq_ict_wrtag_f(ifq_ict_wrtag_f[(39 - 11):0]),
3407
                         .fdp_ifq_paddr_f(fdp_erb_pc_f[9:2]),
3408
                         /*AUTOINST*/
3409
                         // Outputs
3410
                         .ifu_lsu_pcxpkt_e(ifu_lsu_pcxpkt_e[51:0]),
3411
                         .ifq_fdp_fill_inst(ifq_fdp_fill_inst[32:0]),
3412
                         .ifq_erb_asidata_i2(ifq_erb_asidata_i2[47:0]),
3413
                         .ifd_inv_ifqop_i2(ifd_inv_ifqop_i2[145-1:0]),
3414
                         .ifq_icd_index_bf(ifq_icd_index_bf[11:2]),
3415
                         .ifq_icd_wrdata_i2(ifq_icd_wrdata_i2[135:0]),
3416
                         .ifq_erb_wrindex_f(ifq_erb_wrindex_f[11:4]),
3417
                         .ifq_icd_wrway_bf(ifq_icd_wrway_bf[1:0]),
3418
                         .ifd_ifc_milhit_s(ifd_ifc_milhit_s[3:0]),
3419
                         .ifd_ifc_instoffset0(ifd_ifc_instoffset0[1:0]),
3420
                         .ifd_ifc_instoffset1(ifd_ifc_instoffset1[1:0]),
3421
                         .ifd_ifc_instoffset2(ifd_ifc_instoffset2[1:0]),
3422
                         .ifd_ifc_instoffset3(ifd_ifc_instoffset3[1:0]),
3423
                         .ifd_ifc_cpxthr_nxt(ifd_ifc_cpxthr_nxt[1:0]),
3424
                         .ifd_ifc_cpxreq_nxt(ifd_ifc_cpxreq_nxt[3:0]),
3425
                         .ifd_ifc_cpxreq_i1(ifd_ifc_cpxreq_i1[(143 - 140 + 1):0]),
3426
                         .ifd_ifc_destid0(ifd_ifc_destid0[2:0]),
3427
                         .ifd_ifc_destid1(ifd_ifc_destid1[2:0]),
3428
                         .ifd_ifc_destid2(ifd_ifc_destid2[2:0]),
3429
                         .ifd_ifc_destid3(ifd_ifc_destid3[2:0]),
3430
                         .ifd_ifc_newdestid_s(ifd_ifc_newdestid_s[2:0]),
3431
                         .ifd_ifc_pcxline_d(ifd_ifc_pcxline_d[4:2]),
3432
                         .ifd_ifc_asi_vachklo_i2(ifd_ifc_asi_vachklo_i2),
3433
                         .ifd_ifc_cpxvld_i2(ifd_ifc_cpxvld_i2),
3434
                         .ifd_ifc_asiaddr_i2(ifd_ifc_asiaddr_i2[3:2]),
3435
                         .ifd_ifc_iobpkt_i2(ifd_ifc_iobpkt_i2),
3436
                         .ifd_ifc_fwd2ic_i2(ifd_ifc_fwd2ic_i2),
3437
                         .ifd_ifc_4bpkt_i2(ifd_ifc_4bpkt_i2),
3438
                         .ifd_ifc_cpxnc_i2(ifd_ifc_cpxnc_i2),
3439
                         .ifd_ifc_cpxce_i2(ifd_ifc_cpxce_i2),
3440
                         .ifd_ifc_cpxue_i2(ifd_ifc_cpxue_i2),
3441
                         .ifd_ifc_cpxms_i2(ifd_ifc_cpxms_i2),
3442
                         .ifd_ifc_miladdr4_i2(ifd_ifc_miladdr4_i2[3:0]),
3443
                         .ifd_inv_wrway_i2(ifd_inv_wrway_i2[1:0]),
3444
                         // Inputs
3445
                         .rclk          (rclk),
3446
                         .se            (se),
3447
                         .lsu_ifu_cpxpkt_i1(lsu_ifu_cpxpkt_i1[145-1:0]),
3448
                         .lsu_ifu_asi_addr(lsu_ifu_asi_addr[17:0]),
3449
                         .lsu_ifu_stxa_data(lsu_ifu_stxa_data[47:0]),
3450
                         .itlb_ifq_paddr_s(itlb_ifq_paddr_s[39:10]),
3451
                         .ifc_ifd_reqvalid_e(ifc_ifd_reqvalid_e),
3452
                         .ifc_ifd_filladdr4_i2(ifc_ifd_filladdr4_i2),
3453
                         .ifc_ifd_repway_s(ifc_ifd_repway_s[1:0]),
3454
                         .ifc_ifd_uncached_e(ifc_ifd_uncached_e),
3455
                         .ifc_ifd_thrid_e(ifc_ifd_thrid_e[1:0]),
3456
                         .ifc_ifd_pcxline_adj_d(ifc_ifd_pcxline_adj_d[4:2]),
3457
                         .ifc_ifd_errinv_e(ifc_ifd_errinv_e),
3458
                         .ifc_ifd_ldmil_sel_new(ifc_ifd_ldmil_sel_new[3:0]),
3459
                         .ifc_ifd_ld_inq_i1(ifc_ifd_ld_inq_i1),
3460
                         .ifc_ifd_idx_sel_fwd_i2(ifc_ifd_idx_sel_fwd_i2),
3461
                         .ifc_ifd_milreq_sel_d_l(ifc_ifd_milreq_sel_d_l[3:0]),
3462
                         .ifc_ifd_milfill_sel_i2_l(ifc_ifd_milfill_sel_i2_l[3:0]),
3463
                         .ifc_ifd_finst_sel_l(ifc_ifd_finst_sel_l[3:0]),
3464
                         .ifc_ifd_ifqbyp_sel_fwd_l(ifc_ifd_ifqbyp_sel_fwd_l),
3465
                         .ifc_ifd_ifqbyp_sel_inq_l(ifc_ifd_ifqbyp_sel_inq_l),
3466
                         .ifc_ifd_ifqbyp_sel_asi_l(ifc_ifd_ifqbyp_sel_asi_l),
3467
                         .ifc_ifd_ifqbyp_sel_lsu_l(ifc_ifd_ifqbyp_sel_lsu_l),
3468
                         .ifc_ifd_ifqbyp_en_l(ifc_ifd_ifqbyp_en_l),
3469
                         .ifc_ifd_addr_sel_bist_i2_l(ifc_ifd_addr_sel_bist_i2_l),
3470
                         .ifc_ifd_addr_sel_asi_i2_l(ifc_ifd_addr_sel_asi_i2_l),
3471
                         .ifc_ifd_addr_sel_old_i2_l(ifc_ifd_addr_sel_old_i2_l),
3472
                         .ifc_ifd_addr_sel_fill_i2_l(ifc_ifd_addr_sel_fill_i2_l),
3473
                         .mbist_icache_way(mbist_icache_way[1:0]),
3474
                         .mbist_icache_word(mbist_icache_word),
3475
                         .mbist_icache_index(mbist_icache_index[7:0]));
3476
 
3477
   sparc_ifu_ifqctl ifqctl(
3478
                           .so          (scan0_9),
3479
                           .si          (scan0_8),
3480
                           .ifd_ifc_cpxvalid_i1(lsu_ifu_cpxpkt_i1[144]),
3481
                           .lsu_ifu_cpxpkt_wayvld_i1 (lsu_ifu_cpxpkt_i1[133]),
3482
                           .ifq_sscan_data(ifq_sscan_data[3:0]),
3483
                           .rst_tri_en  (mux_drive_disable),
3484
 
3485
                           /*AUTOINST*/
3486
                           // Outputs
3487
                           .ifu_lsu_inv_clear(ifu_lsu_inv_clear),
3488
                           .ifu_lsu_ibuf_busy(ifu_lsu_ibuf_busy),
3489
                           .ifu_lsu_asi_ack(ifu_lsu_asi_ack),
3490
                           .ifu_lsu_ldxa_illgl_va_w2(ifu_lsu_ldxa_illgl_va_w2),
3491
                           .ifu_lsu_fwd_wr_ack(ifu_lsu_fwd_wr_ack),
3492
                           .ifu_lsu_pcxreq_d(ifu_lsu_pcxreq_d),
3493
                           .ifu_lsu_destid_s(ifu_lsu_destid_s[2:0]),
3494
                           .ifu_tlu_l2imiss(ifu_tlu_l2imiss[3:0]),
3495
                           .ifq_fcl_stallreq(ifq_fcl_stallreq),
3496
                           .ifq_swl_stallreq(ifq_swl_stallreq),
3497
                           .ifq_fcl_flush_sonly_e(ifq_fcl_flush_sonly_e),
3498
                           .ifq_fcl_wrreq_bf(ifq_fcl_wrreq_bf),
3499
                           .ifq_fcl_rdreq_bf(ifq_fcl_rdreq_bf),
3500
                           .ifq_fcl_icd_wrreq_bf(ifq_fcl_icd_wrreq_bf),
3501
                           .ifq_fcl_ictv_wrreq_bf(ifq_fcl_ictv_wrreq_bf),
3502
                           .ifq_erb_fwdrd_bf(ifq_erb_fwdrd_bf),
3503
                           .ifq_erb_rdtag_f(ifq_erb_rdtag_f),
3504
                           .ifq_erb_rdinst_f(ifq_erb_rdinst_f),
3505
                           .ifq_erb_asi_erren_i2(ifq_erb_asi_erren_i2),
3506
                           .ifq_erb_asi_errstat_i2(ifq_erb_asi_errstat_i2),
3507
                           .ifq_erb_asi_errinj_i2(ifq_erb_asi_errinj_i2),
3508
                           .ifq_erb_asi_erraddr_i2(ifq_erb_asi_erraddr_i2),
3509
                           .ifq_erb_asi_imask_i2(ifq_erb_asi_imask_i2),
3510
                           .ifq_erb_asiwr_i2(ifq_erb_asiwr_i2),
3511
                           .ifq_fcl_asird_bf(ifq_fcl_asird_bf),
3512
                           .ifq_fcl_asi_tid_bf(ifq_fcl_asi_tid_bf[1:0]),
3513
                           .ifq_erb_ue_rep(ifq_erb_ue_rep),
3514
                           .ifq_erb_ce_rep(ifq_erb_ce_rep),
3515
                           .ifq_erb_l2_ue(ifq_erb_l2_ue),
3516
                           .ifq_erb_io_ue(ifq_erb_io_ue),
3517
                           .ifq_erb_ifet_ce(ifq_erb_ifet_ce),
3518
                           .ifq_erb_l2err_tid(ifq_erb_l2err_tid[1:0]),
3519
                           .ifq_icv_wrdata_bf(ifq_icv_wrdata_bf),
3520
                           .ifq_icd_worden_bf(ifq_icd_worden_bf[3:0]),
3521
                           .ifq_fcl_fill_thr(ifq_fcl_fill_thr[3:0]),
3522
                           .ifq_dtu_thrrdy(ifq_dtu_thrrdy[3:0]),
3523
                           .ifq_dtu_pred_rdy(ifq_dtu_pred_rdy[3:0]),
3524
                           .ifc_ifd_filladdr4_i2(ifc_ifd_filladdr4_i2),
3525
                           .ifc_ifd_reqvalid_e(ifc_ifd_reqvalid_e),
3526
                           .ifc_ifd_idx_sel_fwd_i2(ifc_ifd_idx_sel_fwd_i2),
3527
                           .ifc_ifd_errinv_e(ifc_ifd_errinv_e),
3528
                           .ifc_ifd_uncached_e(ifc_ifd_uncached_e),
3529
                           .ifc_ifd_thrid_e(ifc_ifd_thrid_e[1:0]),
3530
                           .ifc_ifd_pcxline_adj_d(ifc_ifd_pcxline_adj_d[4:2]),
3531
                           .ifc_inv_asireq_i2(ifc_inv_asireq_i2),
3532
                           .ifc_ifd_repway_s(ifc_ifd_repway_s[1:0]),
3533
                           .ifc_ifd_milfill_sel_i2_l(ifc_ifd_milfill_sel_i2_l[3:0]),
3534
                           .ifc_ifd_finst_sel_l(ifc_ifd_finst_sel_l[3:0]),
3535
                           .ifc_ifd_milreq_sel_d_l(ifc_ifd_milreq_sel_d_l[3:0]),
3536
                           .ifc_ifd_ifqbyp_sel_fwd_l(ifc_ifd_ifqbyp_sel_fwd_l),
3537
                           .ifc_ifd_ifqbyp_sel_inq_l(ifc_ifd_ifqbyp_sel_inq_l),
3538
                           .ifc_ifd_ifqbyp_sel_asi_l(ifc_ifd_ifqbyp_sel_asi_l),
3539
                           .ifc_ifd_ifqbyp_sel_lsu_l(ifc_ifd_ifqbyp_sel_lsu_l),
3540
                           .ifc_ifd_ifqbyp_en_l(ifc_ifd_ifqbyp_en_l),
3541
                           .ifc_ifd_addr_sel_bist_i2_l(ifc_ifd_addr_sel_bist_i2_l),
3542
                           .ifc_ifd_addr_sel_asi_i2_l(ifc_ifd_addr_sel_asi_i2_l),
3543
                           .ifc_ifd_addr_sel_old_i2_l(ifc_ifd_addr_sel_old_i2_l),
3544
                           .ifc_ifd_addr_sel_fill_i2_l(ifc_ifd_addr_sel_fill_i2_l),
3545
                           .ifq_icd_data_sel_bist_i2(ifq_icd_data_sel_bist_i2),
3546
                           .ifq_icd_data_sel_fill_i2(ifq_icd_data_sel_fill_i2),
3547
                           .ifq_icd_data_sel_old_i2(ifq_icd_data_sel_old_i2),
3548
                           .ifc_ifd_ldmil_sel_new(ifc_ifd_ldmil_sel_new[3:0]),
3549
                           .ifc_ifd_ld_inq_i1(ifc_ifd_ld_inq_i1),
3550
                           .ifc_inv_ifqadv_i2(ifc_inv_ifqadv_i2),
3551
                           // Inputs
3552
                           .ifd_ifc_milhit_s(ifd_ifc_milhit_s[3:0]),
3553
                           .ifd_ifc_instoffset0(ifd_ifc_instoffset0[1:0]),
3554
                           .ifd_ifc_instoffset1(ifd_ifc_instoffset1[1:0]),
3555
                           .ifd_ifc_instoffset2(ifd_ifc_instoffset2[1:0]),
3556
                           .ifd_ifc_instoffset3(ifd_ifc_instoffset3[1:0]),
3557
                           .ifd_ifc_cpxreq_i1(ifd_ifc_cpxreq_i1[(143 - 140 + 1):0]),
3558
                           .ifd_ifc_cpxreq_nxt(ifd_ifc_cpxreq_nxt[3:0]),
3559
                           .ifd_ifc_cpxthr_nxt(ifd_ifc_cpxthr_nxt[1:0]),
3560
                           .ifd_ifc_cpxvld_i2(ifd_ifc_cpxvld_i2),
3561
                           .ifd_ifc_iobpkt_i2(ifd_ifc_iobpkt_i2),
3562
                           .ifd_ifc_4bpkt_i2(ifd_ifc_4bpkt_i2),
3563
                           .ifd_ifc_cpxnc_i2(ifd_ifc_cpxnc_i2),
3564
                           .ifd_ifc_fwd2ic_i2(ifd_ifc_fwd2ic_i2),
3565
                           .ifd_ifc_cpxce_i2(ifd_ifc_cpxce_i2),
3566
                           .ifd_ifc_cpxue_i2(ifd_ifc_cpxue_i2),
3567
                           .ifd_ifc_cpxms_i2(ifd_ifc_cpxms_i2),
3568
                           .ifd_ifc_miladdr4_i2(ifd_ifc_miladdr4_i2[3:0]),
3569
                           .ifd_ifc_asiaddr_i2(ifd_ifc_asiaddr_i2[3:2]),
3570
                           .ifd_ifc_asi_vachklo_i2(ifd_ifc_asi_vachklo_i2),
3571
                           .ifd_ifc_destid0(ifd_ifc_destid0[2:0]),
3572
                           .ifd_ifc_destid1(ifd_ifc_destid1[2:0]),
3573
                           .ifd_ifc_destid2(ifd_ifc_destid2[2:0]),
3574
                           .ifd_ifc_destid3(ifd_ifc_destid3[2:0]),
3575
                           .ifd_ifc_newdestid_s(ifd_ifc_newdestid_s[2:0]),
3576
                           .ifd_ifc_pcxline_d(ifd_ifc_pcxline_d[4:2]),
3577
                           .inv_ifc_inv_pending(inv_ifc_inv_pending),
3578
                           .fcl_ifq_icmiss_s1(fcl_ifq_icmiss_s1),
3579
                           .fcl_ifq_rdreq_s1(fcl_ifq_rdreq_s1),
3580
                           .fcl_ifq_thr_s1(fcl_ifq_thr_s1[1:0]),
3581
                           .fcl_ifq_canthr(fcl_ifq_canthr[3:0]),
3582
                           .fcl_ifq_grant_bf(fcl_ifq_grant_bf),
3583
                           .dtu_ifq_kill_latest_d(dtu_ifq_kill_latest_d),
3584
                           .erb_ifq_ifeterr_d1(erb_ifq_ifeterr_d1),
3585
                           .erb_ifq_itlberr_s1(erb_ifq_itlberr_s1),
3586
                           .lsu_ifu_pcxpkt_ack_d(lsu_ifu_pcxpkt_ack_d),
3587
                           .lsu_ifu_direct_map_l1(lsu_ifu_direct_map_l1),
3588
                           .lsu_ifu_asi_vld(lsu_ifu_asi_vld),
3589
                           .lsu_ifu_asi_state(lsu_ifu_asi_state[7:0]),
3590
                           .lsu_ifu_asi_load(lsu_ifu_asi_load),
3591
                           .lsu_ifu_asi_thrid(lsu_ifu_asi_thrid[1:0]),
3592
                           .fcl_ifq_icache_en_s_l(fcl_ifq_icache_en_s_l),
3593
                           .mbist_ifq_run_bist(mbist_ifq_run_bist),
3594
                           .mbist_icache_write(mbist_icache_write),
3595
                           .mbist_icache_read(mbist_icache_read),
3596
                           .ctu_sscan_tid(ctu_sscan_tid[3:0]),
3597
                           .rclk        (rclk),
3598
                           .se          (se),
3599
                           .gdbginit_l  (gdbginit_l),
3600
                           .arst_l      (arst_l),
3601
                           .grst_l      (grst_l),
3602
                           .sehold      (sehold));
3603
 
3604
   sparc_ifu_invctl invctl(
3605
                           .so          (scan0_10),
3606
                           .si          (scan0_9),
3607
                           /*AUTOINST*/
3608
                           // Outputs
3609
                           .inv_ifc_inv_pending(inv_ifc_inv_pending),
3610
                           .ifq_icv_wrindex_bf(ifq_icv_wrindex_bf[11:5]),
3611
                           .ifq_icv_wren_bf(ifq_icv_wren_bf[15:0]),
3612
                           .ifq_ict_dec_wrway_bf(ifq_ict_dec_wrway_bf[3:0]),
3613
                           .ifq_fcl_invreq_bf(ifq_fcl_invreq_bf),
3614
                           .ifq_erb_asiway_f(ifq_erb_asiway_f[1:0]),
3615
                           // Inputs
3616
                           .rclk        (rclk),
3617
                           .se          (se),
3618
                           .const_cpuid (const_cpuid[2:0]),
3619
                           .mbist_icache_write(mbist_icache_write),
3620
                           .lsu_ifu_ld_icache_index(lsu_ifu_ld_icache_index[11:5]),
3621
                           .lsu_ifu_ld_pcxpkt_vld(lsu_ifu_ld_pcxpkt_vld),
3622
                           .lsu_ifu_ld_pcxpkt_tid(lsu_ifu_ld_pcxpkt_tid[1:0]),
3623
                           .ifc_inv_ifqadv_i2(ifc_inv_ifqadv_i2),
3624
                           .ifc_inv_asireq_i2(ifc_inv_asireq_i2),
3625
                           .ifq_icd_index_bf(ifq_icd_index_bf[11:5]),
3626
                           .ifd_inv_ifqop_i2(ifd_inv_ifqop_i2[145-1:0]),
3627
                           .ifd_inv_wrway_i2(ifd_inv_wrway_i2[1:0]));
3628
 
3629
 
3630
   sparc_ifu_errdp  errdp(
3631
                          .so           (scan0_11),
3632
                          .si           (scan0_10),
3633
                         .ifq_erb_wrtag_f(ifq_ict_wrtag_f[(39 - 11)-1:0]),
3634
                          .ict_itlb_tags_f({ict_itlb_tag3_f[28:0],
3635
                                            ict_itlb_tag2_f[28:0],
3636
                                            ict_itlb_tag1_f[28:0],
3637
                                            ict_itlb_tag0_f[28:0]}),
3638
                          .wsel_erb_asidata_s({wsel_mbist_icache_data[65:64],
3639
                                               wsel_mbist_icache_data[31:0]}),
3640
 
3641
                                            /*AUTOINST*/
3642
                          // Outputs
3643
                          .ifu_lsu_ldxa_data_w2(ifu_lsu_ldxa_data_w2[63:0]),
3644
                          .erb_dtu_imask(erb_dtu_imask[38:0]),
3645
                          .erd_erc_tlbt_pe_s1(erd_erc_tlbt_pe_s1[1:0]),
3646
                          .erd_erc_tlbd_pe_s1(erd_erc_tlbd_pe_s1[1:0]),
3647
                          .erd_erc_tagpe_s1(erd_erc_tagpe_s1[3:0]),
3648
                          .erd_erc_nirpe_s1(erd_erc_nirpe_s1),
3649
                          .erd_erc_fetpe_s1(erd_erc_fetpe_s1),
3650
                          .erd_erc_tte_pgsz(erd_erc_tte_pgsz[2:0]),
3651
                          // Inputs
3652
                          .rclk         (rclk),
3653
                          .se           (se),
3654
                          .erb_reset    (erb_reset),
3655
                          .itlb_rd_tte_data(itlb_rd_tte_data[42:0]),
3656
                          .itlb_rd_tte_tag(itlb_rd_tte_tag[58:0]),
3657
                          .itlb_ifq_paddr_s(itlb_ifq_paddr_s[39:10]),
3658
                          .wsel_fdp_fetdata_s1(wsel_fdp_fetdata_s1[33:0]),
3659
                          .wsel_fdp_topdata_s1(wsel_fdp_topdata_s1[33:0]),
3660
                          .icv_itlb_valid_f(icv_itlb_valid_f[3:0]),
3661
                          .lsu_ifu_err_addr(lsu_ifu_err_addr[47:4]),
3662
                          .spu_ifu_err_addr_w2(spu_ifu_err_addr_w2[39:4]),
3663
                          .fdp_erb_pc_f (fdp_erb_pc_f[47:0]),
3664
                          .exu_ifu_err_reg_m(exu_ifu_err_reg_m[7:0]),
3665
                          .exu_ifu_err_synd_m(exu_ifu_err_synd_m[7:0]),
3666
                          .ffu_ifu_err_reg_w2(ffu_ifu_err_reg_w2[5:0]),
3667
                          .ffu_ifu_err_synd_w2(ffu_ifu_err_synd_w2[13:0]),
3668
                          .tlu_itlb_rw_index_g(tlu_itlb_rw_index_g[5:0]),
3669
                          .erc_erd_pgsz_b0(erc_erd_pgsz_b0),
3670
                          .erc_erd_pgsz_b1(erc_erd_pgsz_b1),
3671
                          .erc_erd_erren_asidata(erc_erd_erren_asidata[1:0]),
3672
                          .erc_erd_errstat_asidata(erc_erd_errstat_asidata[22:0]),
3673
                          .erc_erd_errinj_asidata(erc_erd_errinj_asidata[31:0]),
3674
                          .ifq_erb_asidata_i2(ifq_erb_asidata_i2[47:0]),
3675
                          .ifq_erb_wrindex_f(ifq_erb_wrindex_f[11:4]),
3676
                          .erc_erd_asiway_s1_l(erc_erd_asiway_s1_l[3:0]),
3677
                          .fcl_erb_itlbrd_data_s(fcl_erb_itlbrd_data_s),
3678
                          .erc_erd_ld_imask(erc_erd_ld_imask),
3679
                          .erc_erd_asisrc_sel_icd_s_l(erc_erd_asisrc_sel_icd_s_l),
3680
                          .erc_erd_asisrc_sel_misc_s_l(erc_erd_asisrc_sel_misc_s_l),
3681
                          .erc_erd_asisrc_sel_err_s_l(erc_erd_asisrc_sel_err_s_l),
3682
                          .erc_erd_asisrc_sel_itlb_s_l(erc_erd_asisrc_sel_itlb_s_l),
3683
                          .erc_erd_errasi_sel_en_l(erc_erd_errasi_sel_en_l),
3684
                          .erc_erd_errasi_sel_stat_l(erc_erd_errasi_sel_stat_l),
3685
                          .erc_erd_errasi_sel_inj_l(erc_erd_errasi_sel_inj_l),
3686
                          .erc_erd_errasi_sel_addr_l(erc_erd_errasi_sel_addr_l),
3687
                          .erc_erd_miscasi_sel_ict_l(erc_erd_miscasi_sel_ict_l),
3688
                          .erc_erd_miscasi_sel_imask_l(erc_erd_miscasi_sel_imask_l),
3689
                          .erc_erd_miscasi_sel_other_l(erc_erd_miscasi_sel_other_l),
3690
                          .erc_erd_asi_thr_l(erc_erd_asi_thr_l[3:0]),
3691
                          .erc_erd_eadr0_sel_irf_l(erc_erd_eadr0_sel_irf_l[3:0]),
3692
                          .erc_erd_eadr0_sel_itlb_l(erc_erd_eadr0_sel_itlb_l[3:0]),
3693
                          .erc_erd_eadr0_sel_frf_l(erc_erd_eadr0_sel_frf_l[3:0]),
3694
                          .erc_erd_eadr0_sel_lsu_l(erc_erd_eadr0_sel_lsu_l[3:0]),
3695
                          .erc_erd_eadr1_sel_pcd1_l(erc_erd_eadr1_sel_pcd1_l[3:0]),
3696
                          .erc_erd_eadr1_sel_l1pa_l(erc_erd_eadr1_sel_l1pa_l[3:0]),
3697
                          .erc_erd_eadr1_sel_l2pa_l(erc_erd_eadr1_sel_l2pa_l[3:0]),
3698
                          .erc_erd_eadr1_sel_other_l(erc_erd_eadr1_sel_other_l[3:0]),
3699
                          .erc_erd_eadr2_sel_mx1_l(erc_erd_eadr2_sel_mx1_l[3:0]),
3700
                          .erc_erd_eadr2_sel_wrt_l(erc_erd_eadr2_sel_wrt_l[3:0]),
3701
                          .erc_erd_eadr2_sel_mx0_l(erc_erd_eadr2_sel_mx0_l[3:0]),
3702
                          .erc_erd_eadr2_sel_old_l(erc_erd_eadr2_sel_old_l[3:0]));
3703
 
3704
   sparc_ifu_errctl errctl(
3705
                           .so          (scan0_12),
3706
                           .si          (scan0_11),
3707
                          .ifu_tlu_inst_vld_w(ifu_spu_inst_vld_w),
3708
 
3709
                           /*AUTOINST*/
3710
                           // Outputs
3711
                           .erc_erd_pgsz_b0(erc_erd_pgsz_b0),
3712
                           .erc_erd_pgsz_b1(erc_erd_pgsz_b1),
3713
                           .ifu_lsu_asi_rd_unc(ifu_lsu_asi_rd_unc),
3714
                           .ifu_lsu_ldxa_tid_w2(ifu_lsu_ldxa_tid_w2[1:0]),
3715
                           .ifu_lsu_ldxa_data_vld_w2(ifu_lsu_ldxa_data_vld_w2),
3716
                           .ifu_lsu_fwd_data_vld(ifu_lsu_fwd_data_vld),
3717
                           .ifu_lsu_error_inj(ifu_lsu_error_inj[3:0]),
3718
                           .ifu_exu_ecc_mask(ifu_exu_ecc_mask[7:0]),
3719
                           .ifu_exu_inj_irferr(ifu_exu_inj_irferr),
3720
                           .ifu_ffu_inj_frferr(ifu_ffu_inj_frferr),
3721
                           .ifu_exu_nceen_e(ifu_exu_nceen_e),
3722
                           .ifu_lsu_nceen(ifu_lsu_nceen[3:0]),
3723
                           .ifu_spu_nceen(ifu_spu_nceen[3:0]),
3724
                           .erb_fcl_spu_uetrap(erb_fcl_spu_uetrap[3:0]),
3725
                           .erb_ifq_itlberr_s1(erb_ifq_itlberr_s1),
3726
                           .erb_ifq_ifeterr_d1(erb_ifq_ifeterr_d1),
3727
                           .erb_dtu_ifeterr_d1(erb_dtu_ifeterr_d1),
3728
                           .erb_fcl_itlb_ce_d1(erb_fcl_itlb_ce_d1),
3729
                           .erb_fcl_ce_trapvec(erb_fcl_ce_trapvec[3:0]),
3730
                           .erb_fcl_ue_trapvec(erb_fcl_ue_trapvec[3:0]),
3731
                           .erb_fcl_ifet_uevec_d1(erb_fcl_ifet_uevec_d1[3:0]),
3732
                           .erc_erd_errstat_asidata(erc_erd_errstat_asidata[22:0]),
3733
                           .erc_erd_errinj_asidata(erc_erd_errinj_asidata[31:0]),
3734
                           .erc_erd_erren_asidata(erc_erd_erren_asidata[1:0]),
3735
                           .erc_erd_eadr0_sel_irf_l(erc_erd_eadr0_sel_irf_l[3:0]),
3736
                           .erc_erd_eadr0_sel_itlb_l(erc_erd_eadr0_sel_itlb_l[3:0]),
3737
                           .erc_erd_eadr0_sel_frf_l(erc_erd_eadr0_sel_frf_l[3:0]),
3738
                           .erc_erd_eadr0_sel_lsu_l(erc_erd_eadr0_sel_lsu_l[3:0]),
3739
                           .erc_erd_asiway_s1_l(erc_erd_asiway_s1_l[3:0]),
3740
                           .erc_erd_eadr1_sel_pcd1_l(erc_erd_eadr1_sel_pcd1_l[3:0]),
3741
                           .erc_erd_eadr1_sel_l1pa_l(erc_erd_eadr1_sel_l1pa_l[3:0]),
3742
                           .erc_erd_eadr1_sel_l2pa_l(erc_erd_eadr1_sel_l2pa_l[3:0]),
3743
                           .erc_erd_eadr1_sel_other_l(erc_erd_eadr1_sel_other_l[3:0]),
3744
                           .erc_erd_eadr2_sel_mx1_l(erc_erd_eadr2_sel_mx1_l[3:0]),
3745
                           .erc_erd_eadr2_sel_wrt_l(erc_erd_eadr2_sel_wrt_l[3:0]),
3746
                           .erc_erd_eadr2_sel_mx0_l(erc_erd_eadr2_sel_mx0_l[3:0]),
3747
                           .erc_erd_eadr2_sel_old_l(erc_erd_eadr2_sel_old_l[3:0]),
3748
                           .erc_erd_asi_thr_l(erc_erd_asi_thr_l[3:0]),
3749
                           .erc_erd_asisrc_sel_icd_s_l(erc_erd_asisrc_sel_icd_s_l),
3750
                           .erc_erd_asisrc_sel_misc_s_l(erc_erd_asisrc_sel_misc_s_l),
3751
                           .erc_erd_asisrc_sel_err_s_l(erc_erd_asisrc_sel_err_s_l),
3752
                           .erc_erd_asisrc_sel_itlb_s_l(erc_erd_asisrc_sel_itlb_s_l),
3753
                           .erc_erd_errasi_sel_en_l(erc_erd_errasi_sel_en_l),
3754
                           .erc_erd_errasi_sel_stat_l(erc_erd_errasi_sel_stat_l),
3755
                           .erc_erd_errasi_sel_inj_l(erc_erd_errasi_sel_inj_l),
3756
                           .erc_erd_errasi_sel_addr_l(erc_erd_errasi_sel_addr_l),
3757
                           .erc_erd_miscasi_sel_ict_l(erc_erd_miscasi_sel_ict_l),
3758
                           .erc_erd_miscasi_sel_imask_l(erc_erd_miscasi_sel_imask_l),
3759
                           .erc_erd_miscasi_sel_other_l(erc_erd_miscasi_sel_other_l),
3760
                           .erc_erd_ld_imask(erc_erd_ld_imask),
3761
                           .erb_reset   (erb_reset),
3762
                           // Inputs
3763
                           .rclk        (rclk),
3764
                           .se          (se),
3765
                           .arst_l      (arst_l),
3766
                           .grst_l      (grst_l),
3767
                           .erd_erc_tte_pgsz(erd_erc_tte_pgsz[2:0]),
3768
                           .icv_itlb_valid_f(icv_itlb_valid_f[3:0]),
3769
                           .fcl_erb_ievld_s1(fcl_erb_ievld_s1),
3770
                           .fcl_erb_tevld_s1(fcl_erb_tevld_s1),
3771
                           .fcl_erb_immuevld_s1(fcl_erb_immuevld_s1),
3772
                           .fcl_erb_inst_issue_d(fcl_erb_inst_issue_d),
3773
                           .fcl_erb_inst_vld_d1(fcl_erb_inst_vld_d1),
3774
                           .ifu_lsu_thrid_s(ifu_lsu_thrid_s[1:0]),
3775
                           .fcl_erb_asi_tid_f(fcl_erb_asi_tid_f[1:0]),
3776
                           .ifq_fcl_asi_tid_bf(ifq_fcl_asi_tid_bf[1:0]),
3777
                           .fcl_erb_clear_iferr(fcl_erb_clear_iferr[3:0]),
3778
                           .fcl_erb_itlbrd_vld_s(fcl_erb_itlbrd_vld_s),
3779
                           .fcl_erb_itlbrd_data_s(fcl_erb_itlbrd_data_s),
3780
                           .erd_erc_tagpe_s1(erd_erc_tagpe_s1[3:0]),
3781
                           .erd_erc_nirpe_s1(erd_erc_nirpe_s1),
3782
                           .erd_erc_fetpe_s1(erd_erc_fetpe_s1),
3783
                           .erd_erc_tlbt_pe_s1(erd_erc_tlbt_pe_s1[1:0]),
3784
                           .erd_erc_tlbd_pe_s1(erd_erc_tlbd_pe_s1[1:0]),
3785
                           .tlu_lsu_pstate_priv(tlu_lsu_pstate_priv[3:0]),
3786
                           .tlu_hpstate_priv  (tlu_hpstate_priv[3:0]),
3787
                           .lsu_ifu_dtlb_data_su(lsu_ifu_dtlb_data_su),
3788
                           .lsu_ifu_dtlb_data_ue(lsu_ifu_dtlb_data_ue),
3789
                           .lsu_ifu_dtlb_tag_ue(lsu_ifu_dtlb_tag_ue),
3790
                           .lsu_ifu_dcache_data_perror(lsu_ifu_dcache_data_perror),
3791
                           .lsu_ifu_dcache_tag_perror(lsu_ifu_dcache_tag_perror),
3792
                           .lsu_ifu_l2_unc_error(lsu_ifu_l2_unc_error),
3793
                           .lsu_ifu_l2_corr_error(lsu_ifu_l2_corr_error),
3794
                           .lsu_ifu_io_error(lsu_ifu_io_error),
3795
                           .lsu_ifu_error_tid(lsu_ifu_error_tid[1:0]),
3796
                           .spu_ifu_unc_err_w1(spu_ifu_unc_err_w1),
3797
                           .spu_ifu_mamem_err_w1(spu_ifu_mamem_err_w1),
3798
                           .spu_ifu_corr_err_w2(spu_ifu_corr_err_w2),
3799
                           .spu_ifu_int_w2(spu_ifu_int_w2),
3800
                           .spu_ifu_ttype_tid_w2(spu_ifu_ttype_tid_w2[1:0]),
3801
                           .lsu_ifu_inj_ack(lsu_ifu_inj_ack[3:0]),
3802
                           .ffu_ifu_ecc_ce_w2(ffu_ifu_ecc_ce_w2),
3803
                           .ffu_ifu_ecc_ue_w2(ffu_ifu_ecc_ue_w2),
3804
                           .ffu_ifu_inj_ack(ffu_ifu_inj_ack),
3805
                           .ffu_ifu_tid_w2(ffu_ifu_tid_w2[1:0]),
3806
                           .exu_ifu_ecc_ce_m(exu_ifu_ecc_ce_m),
3807
                           .exu_ifu_ecc_ue_m(exu_ifu_ecc_ue_m),
3808
                           .exu_ifu_inj_ack(exu_ifu_inj_ack),
3809
                           .ifq_erb_ue_rep(ifq_erb_ue_rep),
3810
                           .ifq_erb_ce_rep(ifq_erb_ce_rep),
3811
                           .ifq_erb_l2_ue(ifq_erb_l2_ue),
3812
                           .ifq_erb_io_ue(ifq_erb_io_ue),
3813
                           .ifq_erb_ifet_ce(ifq_erb_ifet_ce),
3814
                           .ifq_erb_l2err_tid(ifq_erb_l2err_tid[1:0]),
3815
                           .ifq_erb_rdtag_f(ifq_erb_rdtag_f),
3816
                           .ifq_erb_rdinst_f(ifq_erb_rdinst_f),
3817
                           .ifq_erb_asi_erren_i2(ifq_erb_asi_erren_i2),
3818
                           .ifq_erb_asi_errstat_i2(ifq_erb_asi_errstat_i2),
3819
                           .ifq_erb_asi_errinj_i2(ifq_erb_asi_errinj_i2),
3820
                           .ifq_erb_asi_erraddr_i2(ifq_erb_asi_erraddr_i2),
3821
                           .ifq_erb_asi_imask_i2(ifq_erb_asi_imask_i2),
3822
                           .ifq_erb_asiwr_i2(ifq_erb_asiwr_i2),
3823
                           .ifq_fcl_asird_bf(ifq_fcl_asird_bf),
3824
                           .ifq_erb_fwdrd_bf(ifq_erb_fwdrd_bf),
3825
                           .ifq_erb_asidata_i2(ifq_erb_asidata_i2[31:0]),
3826
                           .ifq_erb_asiway_f(ifq_erb_asiway_f[1:0]));
3827
 
3828
   // BIST Controller
3829
//   sparc_ifu_icd_arr_bist bist(// Outputs
3830
//                             .Test_fdp_icd_index_bf_0 (bist_ic_index[8:0]),
3831
//                             .Test_ifq_icd_wrway_bf_0 (bist_ic_way),
3832
//                             .Test_ifq_icd_wrdata_f_0 ({null_data[135:2], 
3833
//                                                        bist_ic_data[1:0]}),
3834
//                             .Test_fcl_icd_rdreq_bf_0 (bist_ic_read),
3835
//                             .Test_fcl_icd_wrreq_bf_0 (bist_ic_write),
3836
//                             .Test_ifq_icd_worden_bf_0 (bist_ic_worden),
3837
//                             .tselect (),
3838
//                             .tst_done (),
3839
//                             .fail_h (),
3840
//                             .scan_out (),
3841
//                             // Inputs
3842
//                             .clk (clk),
3843
//                             .diag_clk(1'b0),
3844
//                             .rst_l (rst_l),
3845
//                             .test_h (1'b0),
3846
//                             .debugz (1'b0),
3847
//                             .hold_l (1'b1),
3848
//                             .Test_icd_fdp_topdata_s1_0 (icd_fdp_topdata_s1),
3849
//                             .Test_icd_fdp_fetdata_s1_0 (icd_fdp_fetdata_s1));
3850
 
3851
   sparc_ifu_mbist mbist(
3852
                         .mbist_icache_data_in(wsel_mbist_icache_data[67:0]),
3853
                         .mbist_si      (scan0_12),
3854
                         .mbist_se      (se),
3855
 
3856
                         .mbist_icache_wdata(mbist_icache_wdata[7:0]),
3857
                         .mbist_dcache_wdata(mbist_write_data[7:0]),
3858
 
3859
                         .mbist_so      (scan0_13),
3860
                         .rclk           (rclk),
3861
 
3862
                         /*AUTOINST*/
3863
                         // Outputs
3864
                         .mbist_dcache_read(mbist_dcache_read),
3865
                         .mbist_dcache_write(mbist_dcache_write),
3866
                         .mbist_dcache_word(mbist_dcache_word),
3867
                         .mbist_dcache_index(mbist_dcache_index[6:0]),
3868
                         .mbist_dcache_way(mbist_dcache_way[1:0]),
3869
                         .mbist_icache_read(mbist_icache_read),
3870
                         .mbist_icache_write(mbist_icache_write),
3871
                         .mbist_icache_index(mbist_icache_index[7:0]),
3872
                         .mbist_icache_word(mbist_icache_word),
3873
                         .mbist_icache_way(mbist_icache_way[1:0]),
3874
                         .mbist_ifq_run_bist(mbist_ifq_run_bist),
3875
                         .mbist_done    (mbist_done),
3876
                         .mbist_dcache_fail(mbist_dcache_fail),
3877
                         .mbist_icache_fail(mbist_icache_fail),
3878
                         // Inputs
3879
                         .grst_l        (grst_l),
3880
                         .arst_l        (arst_l),
3881
                         .mbist_start   (mbist_start),
3882
                         .mbist_userdata_mode(mbist_userdata_mode),
3883
                         .mbist_bisi_mode(mbist_bisi_mode),
3884
                         .mbist_loop_mode(mbist_loop_mode),
3885
                         .mbist_loop_on_address(mbist_loop_on_address),
3886
                         .mbist_stop_on_fail(mbist_stop_on_fail),
3887
                         .mbist_stop_on_next_fail(mbist_stop_on_next_fail),
3888
                         .mbist_dcache_data_in(mbist_dcache_data_in[71:0]));
3889
 
3890
 
3891
   sparc_ifu_sscan sscan(
3892
                         .so            (so0),
3893
                         .si            (scan0_13),
3894
                         .ifq_sscan_test_data(ifq_sscan_data[3:0]),
3895
                         .lsu_sscan_test_data(lsu_sscan_data[15:0]),
3896
                         .tlu_sscan_test_data(tlu_sscan_data[62:0]),
3897
                         /*AUTOINST*/
3898
                         // Outputs
3899
                         .sparc_sscan_so(sparc_sscan_so),
3900
                         // Inputs
3901
                         .ctu_sscan_snap(ctu_sscan_snap),
3902
                         .ctu_sscan_se  (ctu_sscan_se),
3903
                         .ctu_tck       (ctu_tck),
3904
                         .se            (se),
3905
                         .swl_sscan_thrstate(swl_sscan_thrstate[10:0]),
3906
                         .rclk          (rclk));
3907
 
3908
   // floating outputs
3909
   sink #(4) s0(.in (ict_itlb_tag0_f[32:29]));
3910
   sink #(4) s1(.in (ict_itlb_tag1_f[32:29]));
3911
   sink #(4) s2(.in (ict_itlb_tag2_f[32:29]));
3912
   sink #(4) s3(.in (ict_itlb_tag3_f[32:29]));
3913
   sink #(2) s4(.in (fuse_icd_rid[5:4]));
3914
 
3915
 
3916
endmodule
3917
// Local Variables:
3918
// verilog-library-directories:("." "../../../srams/rtl" "../../../common/rtl")
3919
// End:

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.