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

Subversion Repositories s1_core

[/] [s1_core/] [trunk/] [hdl/] [rtl/] [sparc_core/] [sparc_ffu.v] - Blame information for rev 95

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_ffu.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
//  Module Name: sparc_ffu
24
//  Description: This is the top level for the floating point frontend unit (ffu).
25
//  It instantiates the control (ffu_ctl), datapath (ffu_dp), and register file
26
//                      (frf).
27
*/
28
 
29
/*
30
/* ========== Copyright Header Begin ==========================================
31
*
32
* OpenSPARC T1 Processor File: iop.h
33
* Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
34
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
35
*
36
* The above named program is free software; you can redistribute it and/or
37
* modify it under the terms of the GNU General Public
38
* License version 2 as published by the Free Software Foundation.
39
*
40
* The above named program is distributed in the hope that it will be
41
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
42
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
43
* General Public License for more details.
44
*
45
* You should have received a copy of the GNU General Public
46
* License along with this work; if not, write to the Free Software
47
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
48
*
49
* ========== Copyright Header End ============================================
50
*/
51
//-*- verilog -*-
52
////////////////////////////////////////////////////////////////////////
53
/*
54
//
55
//  Description:        Global header file that contain definitions that
56
//                      are common/shared at the IOP chip level
57
*/
58
////////////////////////////////////////////////////////////////////////
59
 
60
 
61
// Address Map Defines
62
// ===================
63
 
64
 
65
 
66
 
67
// CMP space
68
 
69
 
70
 
71
// IOP space
72
 
73
 
74
 
75
 
76
                               //`define ENET_ING_CSR     8'h84
77
                               //`define ENET_EGR_CMD_CSR 8'h85
78
 
79
 
80
 
81
 
82
 
83
 
84
 
85
 
86
 
87
 
88
 
89
 
90
 
91
 
92
 
93
// L2 space
94
 
95
 
96
 
97
// More IOP space
98
 
99
 
100
 
101
 
102
 
103
//Cache Crossbar Width and Field Defines
104
//======================================
105
 
106
 
107
 
108
 
109
 
110
 
111
 
112
 
113
 
114
 
115
 
116
 
117
 
118
 
119
 
120
 
121
 
122
 
123
 
124
 
125
 
126
 
127
 
128
 
129
 
130
 
131
 
132
 
133
 
134
 
135
 
136
 
137
 
138
 
139
 
140
 
141
 
142
 
143
 
144
 
145
 
146
 
147
 
148
 
149
 
150
//bits 133:128 are shared by different fields
151
//for different packet types.
152
 
153
 
154
 
155
 
156
 
157
 
158
 
159
 
160
 
161
 
162
 
163
 
164
 
165
 
166
 
167
 
168
 
169
 
170
 
171
 
172
 
173
 
174
 
175
 
176
 
177
 
178
 
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
 
212
 
213
 
214
//End cache crossbar defines
215
 
216
 
217
// Number of COS supported by EECU 
218
 
219
 
220
 
221
// 
222
// BSC bus sizes
223
// =============
224
//
225
 
226
// General
227
 
228
 
229
 
230
 
231
// CTags
232
 
233
 
234
 
235
 
236
 
237
 
238
 
239
 
240
 
241
 
242
 
243
 
244
 
245
// reinstated temporarily
246
 
247
 
248
 
249
 
250
// CoS
251
 
252
 
253
 
254
 
255
 
256
 
257
// L2$ Bank
258
 
259
 
260
 
261
// L2$ Req
262
 
263
 
264
 
265
 
266
 
267
 
268
 
269
 
270
 
271
 
272
 
273
 
274
 
275
// L2$ Ack
276
 
277
 
278
 
279
 
280
 
281
 
282
 
283
 
284
// Enet Egress Command Unit
285
 
286
 
287
 
288
 
289
 
290
 
291
 
292
 
293
 
294
 
295
 
296
 
297
 
298
 
299
// Enet Egress Packet Unit
300
 
301
 
302
 
303
 
304
 
305
 
306
 
307
 
308
 
309
 
310
 
311
 
312
 
313
// This is cleaved in between Egress Datapath Ack's
314
 
315
 
316
 
317
 
318
 
319
 
320
 
321
 
322
// Enet Egress Datapath
323
 
324
 
325
 
326
 
327
 
328
 
329
 
330
 
331
 
332
 
333
 
334
 
335
 
336
 
337
 
338
 
339
// In-Order / Ordered Queue: EEPU
340
// Tag is: TLEN, SOF, EOF, QID = 15
341
 
342
 
343
 
344
 
345
 
346
 
347
// Nack + Tag Info + CTag
348
 
349
 
350
 
351
 
352
// ENET Ingress Queue Management Req
353
 
354
 
355
 
356
 
357
 
358
 
359
 
360
 
361
 
362
 
363
 
364
 
365
// ENET Ingress Queue Management Ack
366
 
367
 
368
 
369
 
370
 
371
 
372
 
373
 
374
// Enet Ingress Packet Unit
375
 
376
 
377
 
378
 
379
 
380
 
381
 
382
 
383
 
384
 
385
 
386
 
387
// ENET Ingress Packet Unit Ack
388
 
389
 
390
 
391
 
392
 
393
 
394
 
395
// In-Order / Ordered Queue: PCI
396
// Tag is: CTAG
397
 
398
 
399
 
400
 
401
 
402
// PCI-X Request
403
 
404
 
405
 
406
 
407
 
408
 
409
 
410
 
411
 
412
 
413
 
414
// PCI_X Acknowledge
415
 
416
 
417
 
418
 
419
 
420
 
421
 
422
 
423
 
424
 
425
 
426
//
427
// BSC array sizes
428
//================
429
//
430
 
431
 
432
 
433
 
434
 
435
 
436
 
437
 
438
 
439
 
440
 
441
 
442
// ECC syndrome bits per memory element
443
 
444
 
445
 
446
 
447
//
448
// BSC Port Definitions
449
// ====================
450
//
451
// Bits 7 to 4 of curr_port_id
452
 
453
 
454
 
455
 
456
 
457
 
458
 
459
 
460
// Number of ports of each type
461
 
462
 
463
// Bits needed to represent above
464
 
465
 
466
// How wide the linked list pointers are
467
// 60b for no payload (2CoS)
468
// 80b for payload (2CoS)
469
 
470
//`define BSC_OBJ_PTR   80
471
//`define BSC_HD1_HI    69
472
//`define BSC_HD1_LO    60
473
//`define BSC_TL1_HI    59
474
//`define BSC_TL1_LO    50
475
//`define BSC_CT1_HI    49
476
//`define BSC_CT1_LO    40
477
//`define BSC_HD0_HI    29
478
//`define BSC_HD0_LO    20
479
//`define BSC_TL0_HI    19
480
//`define BSC_TL0_LO    10
481
//`define BSC_CT0_HI     9
482
//`define BSC_CT0_LO     0
483
 
484
 
485
 
486
 
487
 
488
 
489
 
490
 
491
 
492
 
493
 
494
 
495
 
496
 
497
 
498
 
499
 
500
 
501
 
502
 
503
 
504
 
505
 
506
 
507
 
508
 
509
 
510
 
511
 
512
 
513
 
514
 
515
 
516
 
517
// I2C STATES in DRAMctl
518
 
519
 
520
 
521
 
522
 
523
 
524
 
525
//
526
// IOB defines
527
// ===========
528
//
529
 
530
 
531
 
532
 
533
 
534
 
535
 
536
 
537
 
538
 
539
 
540
 
541
 
542
 
543
 
544
 
545
 
546
 
547
 
548
//`define IOB_INT_STAT_WIDTH   32
549
//`define IOB_INT_STAT_HI      31
550
//`define IOB_INT_STAT_LO       0
551
 
552
 
553
 
554
 
555
 
556
 
557
 
558
 
559
 
560
 
561
 
562
 
563
 
564
 
565
 
566
 
567
 
568
 
569
 
570
 
571
 
572
 
573
 
574
 
575
 
576
 
577
 
578
 
579
 
580
 
581
 
582
 
583
 
584
 
585
 
586
 
587
 
588
 
589
 
590
 
591
 
592
 
593
 
594
 
595
 
596
 
597
 
598
 
599
 
600
// fixme - double check address mapping
601
// CREG in `IOB_INT_CSR space
602
 
603
 
604
 
605
 
606
 
607
 
608
 
609
 
610
 
611
 
612
// CREG in `IOB_MAN_CSR space
613
 
614
 
615
 
616
 
617
 
618
 
619
 
620
 
621
 
622
 
623
 
624
 
625
 
626
 
627
 
628
 
629
 
630
 
631
 
632
 
633
 
634
 
635
 
636
 
637
 
638
 
639
 
640
 
641
 
642
 
643
 
644
 
645
 
646
 
647
 
648
 
649
 
650
// Address map for TAP access of SPARC ASI
651
 
652
 
653
 
654
 
655
 
656
 
657
 
658
 
659
 
660
 
661
 
662
 
663
 
664
//
665
// CIOP UCB Bus Width
666
// ==================
667
//
668
//`define IOB_EECU_WIDTH       16  // ethernet egress command
669
//`define EECU_IOB_WIDTH       16
670
 
671
//`define IOB_NRAM_WIDTH       16  // NRAM (RLDRAM previously)
672
//`define NRAM_IOB_WIDTH        4
673
 
674
 
675
 
676
 
677
//`define IOB_ENET_ING_WIDTH   32  // ethernet ingress
678
//`define ENET_ING_IOB_WIDTH    8
679
 
680
//`define IOB_ENET_EGR_WIDTH    4  // ethernet egress
681
//`define ENET_EGR_IOB_WIDTH    4
682
 
683
//`define IOB_ENET_MAC_WIDTH    4  // ethernet MAC
684
//`define ENET_MAC_IOB_WIDTH    4
685
 
686
 
687
 
688
 
689
//`define IOB_BSC_WIDTH         4  // BSC
690
//`define BSC_IOB_WIDTH         4
691
 
692
 
693
 
694
 
695
 
696
 
697
 
698
//`define IOB_CLSP_WIDTH        4  // clk spine unit
699
//`define CLSP_IOB_WIDTH        4
700
 
701
 
702
 
703
 
704
 
705
//
706
// CIOP UCB Buf ID Type
707
// ====================
708
//
709
 
710
 
711
 
712
//
713
// Interrupt Device ID
714
// ===================
715
//
716
// Caution: DUMMY_DEV_ID has to be 9 bit wide
717
//          for fields to line up properly in the IOB.
718
 
719
 
720
 
721
//
722
// Soft Error related definitions 
723
// ==============================
724
//
725
 
726
 
727
 
728
//
729
// CMP clock
730
// =========
731
//
732
 
733
 
734
 
735
 
736
//
737
// NRAM/IO Interface
738
// =================
739
//
740
 
741
 
742
 
743
 
744
 
745
 
746
 
747
 
748
 
749
 
750
//
751
// NRAM/ENET Interface
752
// ===================
753
//
754
 
755
 
756
 
757
 
758
 
759
 
760
 
761
//
762
// IO/FCRAM Interface
763
// ==================
764
//
765
 
766
 
767
 
768
 
769
 
770
 
771
//
772
// PCI Interface
773
// ==================
774
// Load/store size encodings
775
// -------------------------
776
// Size encoding
777
// 000 - byte
778
// 001 - half-word
779
// 010 - word
780
// 011 - double-word
781
// 100 - quad
782
 
783
 
784
 
785
 
786
 
787
 
788
//
789
// JBI<->SCTAG Interface
790
// =======================
791
// Outbound Header Format
792
 
793
 
794
 
795
 
796
 
797
 
798
 
799
 
800
 
801
 
802
 
803
 
804
 
805
 
806
 
807
 
808
 
809
 
810
 
811
 
812
 
813
 
814
 
815
 
816
 
817
 
818
 
819
// Inbound Header Format
820
 
821
 
822
 
823
 
824
 
825
 
826
 
827
 
828
 
829
 
830
 
831
 
832
 
833
 
834
 
835
 
836
 
837
 
838
 
839
 
840
//
841
// JBI->IOB Mondo Header Format
842
// ============================
843
//
844
 
845
 
846
 
847
 
848
 
849
 
850
 
851
 
852
 
853
 
854
 
855
 
856
 
857
 
858
// JBI->IOB Mondo Bus Width/Cycle
859
// ==============================
860
// Cycle  1 Header[15:8]
861
// Cycle  2 Header[ 7:0]
862
// Cycle  3 J_AD[127:120]
863
// Cycle  4 J_AD[119:112]
864
// .....
865
// Cycle 18 J_AD[  7:  0]
866
 
867
 
868
 
869
 
870
 
871
 
872
 
873
 
874
 
875
module sparc_ffu (/*AUTOARG*/
876
   // Outputs
877
   so, ffu_tlu_trap_ue, ffu_tlu_trap_other, ffu_tlu_trap_ieee754,
878
   ffu_tlu_ill_inst_m, ffu_tlu_fpu_tid, ffu_tlu_fpu_cmplt,
879
   ffu_lsu_kill_fst_w, ffu_lsu_fpop_rq_vld, ffu_lsu_blk_st_va_e,
880
   ffu_lsu_blk_st_e, ffu_ifu_tid_w2, ffu_ifu_stallreq,
881
   ffu_ifu_inj_ack, ffu_ifu_fst_ce_w, ffu_ifu_fpop_done_w2,
882
   ffu_ifu_err_synd_w2, ffu_ifu_err_reg_w2, ffu_ifu_ecc_ue_w2,
883
   ffu_ifu_ecc_ce_w2, ffu_ifu_cc_w2, ffu_ifu_cc_vld_w2, ffu_lsu_data,
884
   short_so0, ffu_exu_rsr_data_m,
885
   // Inputs
886
   si, sehold, se, rclk, lsu_ffu_stb_full3, lsu_ffu_stb_full2,
887
   lsu_ffu_stb_full1, lsu_ffu_stb_full0, lsu_ffu_ld_vld,
888
   lsu_ffu_ld_data, lsu_ffu_flush_pipe_w, lsu_ffu_blk_asi_e,
889
   lsu_ffu_bld_cnt_w, lsu_ffu_ack, ifu_tlu_sraddr_d,
890
   ifu_tlu_inst_vld_w, ifu_tlu_flush_w, ifu_tlu_flsh_inst_e,
891
   ifu_lsu_ld_inst_e, ifu_ffu_visop_d, ifu_ffu_tid_d,
892
   ifu_ffu_stfsr_d, ifu_ffu_quad_op_e, ifu_ffu_mvcnd_m,
893
   ifu_ffu_ldxfsr_d, ifu_ffu_ldst_single_d, ifu_ffu_ldfsr_d,
894
   ifu_ffu_inj_frferr, ifu_ffu_fst_d, ifu_ffu_frs2_d, ifu_ffu_frs1_d,
895
   ifu_ffu_frd_d, ifu_ffu_fpopcode_d, ifu_ffu_fpop2_d,
896
   ifu_ffu_fpop1_d, ifu_ffu_fld_d, ifu_ffu_fcc_num_d,
897
   ifu_exu_nceen_e, ifu_exu_ecc_mask, ifu_exu_disable_ce_e, grst_l,
898
   exu_ffu_wsr_inst_e, exu_ffu_ist_e, exu_ffu_gsr_scale_m,
899
   exu_ffu_gsr_rnd_m, exu_ffu_gsr_mask_m, exu_ffu_gsr_align_m,
900
   cpx_vld, cpx_req, cpx_fpu_data, cpx_fpexc, cpx_fcmp, cpx_fccval,
901
   arst_l, mux_drive_disable, mem_write_disable, short_si0,
902
//sotheas,8/17/04: eco 6529
903
   lsu_ffu_st_dtlb_perr_g
904
//////////////////////////////////
905
   ) ;
906
 
907
   output [80:0]        ffu_lsu_data;           // From dp of sparc_ffu_dp.v, ...
908
   output               short_so0;
909
 
910
   input                mux_drive_disable;
911
   input                mem_write_disable;
912
   input                short_si0;
913
   /*AUTOINPUT*/
914
   // Beginning of automatic inputs (from unused autoinst inputs)
915
   input                arst_l;                 // To ctl of sparc_ffu_ctl.v
916
   input [1:0]          cpx_fccval;             // To ctl of sparc_ffu_ctl.v
917
   input                cpx_fcmp;               // To ctl of sparc_ffu_ctl.v
918
   input [4:0]          cpx_fpexc;              // To ctl of sparc_ffu_ctl.v
919
   input [63:0]         cpx_fpu_data;           // To dp of sparc_ffu_dp.v
920
   input [3:0]          cpx_req;                // To ctl of sparc_ffu_ctl.v
921
   input                cpx_vld;                // To ctl of sparc_ffu_ctl.v
922
   input [2:0]          exu_ffu_gsr_align_m;    // To ctl of sparc_ffu_ctl.v
923
   input [31:0]         exu_ffu_gsr_mask_m;     // To ctl of sparc_ffu_ctl.v
924
   input [2:0]          exu_ffu_gsr_rnd_m;      // To ctl of sparc_ffu_ctl.v
925
   input [4:0]          exu_ffu_gsr_scale_m;    // To ctl of sparc_ffu_ctl.v
926
   input                exu_ffu_ist_e;          // To ctl of sparc_ffu_ctl.v
927
   input                exu_ffu_wsr_inst_e;     // To ctl of sparc_ffu_ctl.v
928
   input                grst_l;                 // To ctl of sparc_ffu_ctl.v
929
   input                ifu_exu_disable_ce_e;   // To ctl of sparc_ffu_ctl.v
930
   input [6:0]          ifu_exu_ecc_mask;       // To ctl of sparc_ffu_ctl.v
931
   input                ifu_exu_nceen_e;        // To ctl of sparc_ffu_ctl.v
932
   input [1:0]          ifu_ffu_fcc_num_d;      // To ctl of sparc_ffu_ctl.v
933
   input                ifu_ffu_fld_d;          // To ctl of sparc_ffu_ctl.v
934
   input                ifu_ffu_fpop1_d;        // To ctl of sparc_ffu_ctl.v
935
   input                ifu_ffu_fpop2_d;        // To ctl of sparc_ffu_ctl.v
936
   input [8:0]          ifu_ffu_fpopcode_d;     // To ctl of sparc_ffu_ctl.v
937
   input [4:0]          ifu_ffu_frd_d;          // To ctl of sparc_ffu_ctl.v
938
   input [4:0]          ifu_ffu_frs1_d;         // To ctl of sparc_ffu_ctl.v
939
   input [4:0]          ifu_ffu_frs2_d;         // To ctl of sparc_ffu_ctl.v
940
   input                ifu_ffu_fst_d;          // To ctl of sparc_ffu_ctl.v
941
   input                ifu_ffu_inj_frferr;     // To ctl of sparc_ffu_ctl.v
942
   input                ifu_ffu_ldfsr_d;        // To ctl of sparc_ffu_ctl.v
943
   input                ifu_ffu_ldst_single_d;  // To ctl of sparc_ffu_ctl.v
944
   input                ifu_ffu_ldxfsr_d;       // To ctl of sparc_ffu_ctl.v
945
   input                ifu_ffu_mvcnd_m;        // To ctl of sparc_ffu_ctl.v
946
   input                ifu_ffu_quad_op_e;      // To ctl of sparc_ffu_ctl.v
947
   input                ifu_ffu_stfsr_d;        // To ctl of sparc_ffu_ctl.v
948
   input [1:0]          ifu_ffu_tid_d;          // To ctl of sparc_ffu_ctl.v
949
   input                ifu_ffu_visop_d;        // To ctl of sparc_ffu_ctl.v
950
   input                ifu_lsu_ld_inst_e;      // To ctl of sparc_ffu_ctl.v
951
   input                ifu_tlu_flsh_inst_e;    // To ctl of sparc_ffu_ctl.v
952
   input                ifu_tlu_flush_w;        // To ctl of sparc_ffu_ctl.v
953
   input                ifu_tlu_inst_vld_w;     // To ctl of sparc_ffu_ctl.v
954
   input [6:0]          ifu_tlu_sraddr_d;       // To ctl of sparc_ffu_ctl.v
955
   input                lsu_ffu_ack;            // To ctl of sparc_ffu_ctl.v
956
   input [2:0]          lsu_ffu_bld_cnt_w;      // To ctl of sparc_ffu_ctl.v
957
   input                lsu_ffu_blk_asi_e;      // To ctl of sparc_ffu_ctl.v
958
   input                lsu_ffu_flush_pipe_w;   // To ctl of sparc_ffu_ctl.v
959
   input [63:0]         lsu_ffu_ld_data;        // To dp of sparc_ffu_dp.v
960
   input                lsu_ffu_ld_vld;         // To ctl of sparc_ffu_ctl.v
961
   input                lsu_ffu_stb_full0;      // To ctl of sparc_ffu_ctl.v
962
   input                lsu_ffu_stb_full1;      // To ctl of sparc_ffu_ctl.v
963
   input                lsu_ffu_stb_full2;      // To ctl of sparc_ffu_ctl.v
964
   input                lsu_ffu_stb_full3;      // To ctl of sparc_ffu_ctl.v
965
   input                lsu_ffu_st_dtlb_perr_g; // sotheas,8/17/04: fixed eco 6529, signal to sparc_ffu_ctl.v
966
   input                rclk;                   // To frf of bw_r_frf.v, ...
967
   input                se;                     // To frf of bw_r_frf.v, ...
968
   input                sehold;                 // To frf of bw_r_frf.v
969
   input                si;                     // To dp of sparc_ffu_dp.v
970
   // End of automatics
971
   /*AUTOOUTPUT*/
972
   // Beginning of automatic outputs (from unused autoinst outputs)
973
   output [3:0]         ffu_ifu_cc_vld_w2;      // From ctl of sparc_ffu_ctl.v
974
   output [7:0]         ffu_ifu_cc_w2;          // From ctl of sparc_ffu_ctl.v
975
   output               ffu_ifu_ecc_ce_w2;      // From ctl of sparc_ffu_ctl.v
976
   output               ffu_ifu_ecc_ue_w2;      // From ctl of sparc_ffu_ctl.v
977
   output [5:0]         ffu_ifu_err_reg_w2;     // From ctl of sparc_ffu_ctl.v
978
   output [13:0]        ffu_ifu_err_synd_w2;    // From ctl of sparc_ffu_ctl.v
979
   output               ffu_ifu_fpop_done_w2;   // From ctl of sparc_ffu_ctl.v
980
   output               ffu_ifu_fst_ce_w;       // From ctl of sparc_ffu_ctl.v
981
   output               ffu_ifu_inj_ack;        // From ctl of sparc_ffu_ctl.v
982
   output               ffu_ifu_stallreq;       // From ctl of sparc_ffu_ctl.v
983
   output [1:0]         ffu_ifu_tid_w2;         // From ctl of sparc_ffu_ctl.v
984
   output               ffu_lsu_blk_st_e;       // From ctl of sparc_ffu_ctl.v
985
   output [5:3]         ffu_lsu_blk_st_va_e;    // From ctl of sparc_ffu_ctl.v
986
   output               ffu_lsu_fpop_rq_vld;    // From ctl of sparc_ffu_ctl.v
987
   output               ffu_lsu_kill_fst_w;     // From ctl of sparc_ffu_ctl.v
988
   output               ffu_tlu_fpu_cmplt;      // From ctl of sparc_ffu_ctl.v
989
   output [1:0]         ffu_tlu_fpu_tid;        // From ctl of sparc_ffu_ctl.v
990
   output               ffu_tlu_ill_inst_m;     // From ctl of sparc_ffu_ctl.v
991
   output               ffu_tlu_trap_ieee754;   // From ctl of sparc_ffu_ctl.v
992
   output               ffu_tlu_trap_other;     // From ctl of sparc_ffu_ctl.v
993
   output               ffu_tlu_trap_ue;        // From ctl of sparc_ffu_ctl.v
994
   output               so;                     // From dp of sparc_ffu_dp.v
995
   // End of automatics
996
   /*AUTOWIRE*/
997
   // Beginning of automatic wires (for undeclared instantiated-module outputs)
998
   wire                 ctl_dp_ecc_sel_frf;     // From ctl of sparc_ffu_ctl.v
999
   wire [9:0]           ctl_dp_exc_w2;          // From ctl of sparc_ffu_ctl.v
1000
   wire [7:0]           ctl_dp_fcc_w2;          // From ctl of sparc_ffu_ctl.v
1001
   wire                 ctl_dp_flip_fpu;        // From ctl of sparc_ffu_ctl.v
1002
   wire                 ctl_dp_flip_lsu;        // From ctl of sparc_ffu_ctl.v
1003
   wire [3:0]           ctl_dp_fp_thr;          // From ctl of sparc_ffu_ctl.v
1004
   wire [3:0]           ctl_dp_fsr_sel_fpu;     // From ctl of sparc_ffu_ctl.v
1005
   wire [3:0]           ctl_dp_fsr_sel_ld;      // From ctl of sparc_ffu_ctl.v
1006
   wire [3:0]           ctl_dp_fsr_sel_old;     // From ctl of sparc_ffu_ctl.v
1007
   wire [2:0]           ctl_dp_ftt_w2;          // From ctl of sparc_ffu_ctl.v
1008
   wire [3:0]           ctl_dp_gsr_wsr_w2;      // From ctl of sparc_ffu_ctl.v
1009
   wire                 ctl_dp_new_rs1;         // From ctl of sparc_ffu_ctl.v
1010
   wire                 ctl_dp_noflip_fpu;      // From ctl of sparc_ffu_ctl.v
1011
   wire                 ctl_dp_noflip_lsu;      // From ctl of sparc_ffu_ctl.v
1012
   wire                 ctl_dp_noshift64_frf;   // From ctl of sparc_ffu_ctl.v
1013
   wire                 ctl_dp_output_sel_frf;  // From ctl of sparc_ffu_ctl.v
1014
   wire                 ctl_dp_output_sel_fsr;  // From ctl of sparc_ffu_ctl.v
1015
   wire                 ctl_dp_output_sel_rs1;  // From ctl of sparc_ffu_ctl.v
1016
   wire                 ctl_dp_output_sel_rs2;  // From ctl of sparc_ffu_ctl.v
1017
   wire                 ctl_dp_rd_ecc;          // From ctl of sparc_ffu_ctl.v
1018
   wire                 ctl_dp_rs2_frf_read;    // From ctl of sparc_ffu_ctl.v
1019
   wire                 ctl_dp_rs2_keep_data;   // From ctl of sparc_ffu_ctl.v
1020
   wire                 ctl_dp_rs2_sel_fpu_lsu; // From ctl of sparc_ffu_ctl.v
1021
   wire                 ctl_dp_rs2_sel_vis;     // From ctl of sparc_ffu_ctl.v
1022
   wire                 ctl_dp_rst_l;           // From ctl of sparc_ffu_ctl.v
1023
   wire                 ctl_dp_shift_frf_left;  // From ctl of sparc_ffu_ctl.v
1024
   wire                 ctl_dp_shift_frf_right; // From ctl of sparc_ffu_ctl.v
1025
   wire [1:0]           ctl_dp_sign;            // From ctl of sparc_ffu_ctl.v
1026
   wire [3:0]           ctl_dp_thr_e;           // From ctl of sparc_ffu_ctl.v
1027
   wire [36:0]          ctl_dp_wsr_data_w2;     // From ctl of sparc_ffu_ctl.v
1028
   wire                 ctl_dp_zero_low32_frf;  // From ctl of sparc_ffu_ctl.v
1029
   wire [6:0]           ctl_frf_addr;           // From ctl of sparc_ffu_ctl.v
1030
   wire                 ctl_frf_ren;            // From ctl of sparc_ffu_ctl.v
1031
   wire [1:0]           ctl_frf_wen;            // From ctl of sparc_ffu_ctl.v
1032
   wire                 ctl_vis_add32;          // From ctl of sparc_ffu_ctl.v
1033
   wire                 ctl_vis_align0;         // From ctl of sparc_ffu_ctl.v
1034
   wire                 ctl_vis_align2;         // From ctl of sparc_ffu_ctl.v
1035
   wire                 ctl_vis_align4;         // From ctl of sparc_ffu_ctl.v
1036
   wire                 ctl_vis_align6;         // From ctl of sparc_ffu_ctl.v
1037
   wire                 ctl_vis_align_odd;      // From ctl of sparc_ffu_ctl.v
1038
   wire                 ctl_vis_cin;            // From ctl of sparc_ffu_ctl.v
1039
   wire                 ctl_vis_log_constant;   // From ctl of sparc_ffu_ctl.v
1040
   wire                 ctl_vis_log_invert_rs1; // From ctl of sparc_ffu_ctl.v
1041
   wire                 ctl_vis_log_invert_rs2; // From ctl of sparc_ffu_ctl.v
1042
   wire                 ctl_vis_log_pass_const; // From ctl of sparc_ffu_ctl.v
1043
   wire                 ctl_vis_log_pass_rs1;   // From ctl of sparc_ffu_ctl.v
1044
   wire                 ctl_vis_log_pass_rs2;   // From ctl of sparc_ffu_ctl.v
1045
   wire                 ctl_vis_log_sel_nand;   // From ctl of sparc_ffu_ctl.v
1046
   wire                 ctl_vis_log_sel_nor;    // From ctl of sparc_ffu_ctl.v
1047
   wire                 ctl_vis_log_sel_pass;   // From ctl of sparc_ffu_ctl.v
1048
   wire                 ctl_vis_log_sel_xor;    // From ctl of sparc_ffu_ctl.v
1049
   wire                 ctl_vis_sel_add;        // From ctl of sparc_ffu_ctl.v
1050
   wire                 ctl_vis_sel_align;      // From ctl of sparc_ffu_ctl.v
1051
   wire                 ctl_vis_sel_log;        // From ctl of sparc_ffu_ctl.v
1052
   wire                 ctl_vis_subtract;       // From ctl of sparc_ffu_ctl.v
1053
   wire [4:0]           dp_ctl_fsr_aexc;        // From dp of sparc_ffu_dp.v
1054
   wire [4:0]           dp_ctl_fsr_cexc;        // From dp of sparc_ffu_dp.v
1055
   wire [7:0]           dp_ctl_fsr_fcc;         // From dp of sparc_ffu_dp.v
1056
   wire [1:0]           dp_ctl_fsr_rnd;         // From dp of sparc_ffu_dp.v
1057
   wire [4:0]           dp_ctl_fsr_tem;         // From dp of sparc_ffu_dp.v
1058
   wire [31:0]          dp_ctl_gsr_mask_e;      // From dp of sparc_ffu_dp.v
1059
   wire [4:0]           dp_ctl_gsr_scale_e;     // From dp of sparc_ffu_dp.v
1060
   wire [7:0]           dp_ctl_ld_fcc;          // From dp of sparc_ffu_dp.v
1061
   wire [1:0]           dp_ctl_rs2_sign;        // From dp of sparc_ffu_dp.v
1062
   wire [6:0]           dp_ctl_synd_out_high;   // From dp of sparc_ffu_dp.v
1063
   wire [6:0]           dp_ctl_synd_out_low;    // From dp of sparc_ffu_dp.v
1064
   wire [63:0]          dp_vis_rs1_data;        // From dp of sparc_ffu_dp.v
1065
   wire [63:0]          dp_vis_rs2_data;        // From dp of sparc_ffu_dp.v
1066
   wire [77:0]          frf_dp_data;            // From frf of bw_r_frf.v
1067
   wire [63:0]          vis_dp_rd_data;         // From vis of sparc_ffu_vis.v
1068
   // End of automatics
1069
   wire [77:0]          dp_frf_data;
1070
 
1071
   output [63:0]        ffu_exu_rsr_data_m;
1072
   wire [31:0]          ffu_exu_rsr_data_hi_m;
1073
   wire [2:0]          ffu_exu_rsr_data_mid_m;
1074
   wire [7:0]          ffu_exu_rsr_data_lo_m;
1075
 
1076
   wire                short_scan_1;
1077
 
1078
   assign              ffu_exu_rsr_data_m[63:0] = {ffu_exu_rsr_data_hi_m[31:0], 4'b0,
1079
                                                   ffu_exu_rsr_data_mid_m[2:0], 17'b0,
1080
                                                   ffu_exu_rsr_data_lo_m[7:0]};
1081
 
1082
   bw_r_frf frf(
1083
                .si(short_si0),
1084
                .so(short_scan_1),
1085
                .dp_frf_data            (dp_frf_data[77:0]),
1086
                .rst_tri_en             (mem_write_disable),
1087
                /*AUTOINST*/
1088
                // Outputs
1089
                .frf_dp_data            (frf_dp_data[77:0]),
1090
                // Inputs
1091
                .rclk                   (rclk),
1092
                .se                     (se),
1093
                .sehold                 (sehold),
1094
                .ctl_frf_wen            (ctl_frf_wen[1:0]),
1095
                .ctl_frf_ren            (ctl_frf_ren),
1096
                .ctl_frf_addr           (ctl_frf_addr[6:0]));
1097
 
1098
   sparc_ffu_dp dp(
1099
                   .dp_frf_data         ({dp_frf_data[70:39],dp_frf_data[31:0]}),
1100
                   /*AUTOINST*/
1101
                   // Outputs
1102
                   .so                  (so),
1103
                   .ffu_lsu_data        (ffu_lsu_data[63:0]),
1104
                   .dp_vis_rs1_data     (dp_vis_rs1_data[63:0]),
1105
                   .dp_vis_rs2_data     (dp_vis_rs2_data[63:0]),
1106
                   .dp_ctl_rs2_sign     (dp_ctl_rs2_sign[1:0]),
1107
                   .dp_ctl_fsr_fcc      (dp_ctl_fsr_fcc[7:0]),
1108
                   .dp_ctl_fsr_rnd      (dp_ctl_fsr_rnd[1:0]),
1109
                   .dp_ctl_fsr_tem      (dp_ctl_fsr_tem[4:0]),
1110
                   .dp_ctl_fsr_aexc     (dp_ctl_fsr_aexc[4:0]),
1111
                   .dp_ctl_fsr_cexc     (dp_ctl_fsr_cexc[4:0]),
1112
                   .dp_ctl_ld_fcc       (dp_ctl_ld_fcc[7:0]),
1113
                   .dp_ctl_gsr_mask_e   (dp_ctl_gsr_mask_e[31:0]),
1114
                   .dp_ctl_gsr_scale_e  (dp_ctl_gsr_scale_e[4:0]),
1115
                   .dp_ctl_synd_out_low (dp_ctl_synd_out_low[6:0]),
1116
                   .dp_ctl_synd_out_high(dp_ctl_synd_out_high[6:0]),
1117
                   // Inputs
1118
                   .rclk                (rclk),
1119
                   .se                  (se),
1120
                   .si                  (si),
1121
                   .ctl_dp_rst_l        (ctl_dp_rst_l),
1122
                   .frf_dp_data         (frf_dp_data[77:0]),
1123
                   .cpx_fpu_data        (cpx_fpu_data[63:0]),
1124
                   .lsu_ffu_ld_data     (lsu_ffu_ld_data[63:0]),
1125
                   .vis_dp_rd_data      (vis_dp_rd_data[63:0]),
1126
                   .ctl_dp_wsr_data_w2  (ctl_dp_wsr_data_w2[36:0]),
1127
                   .ctl_dp_sign         (ctl_dp_sign[1:0]),
1128
                   .ctl_dp_exc_w2       (ctl_dp_exc_w2[9:0]),
1129
                   .ctl_dp_fcc_w2       (ctl_dp_fcc_w2[7:0]),
1130
                   .ctl_dp_ftt_w2       (ctl_dp_ftt_w2[2:0]),
1131
                   .ctl_dp_noshift64_frf(ctl_dp_noshift64_frf),
1132
                   .ctl_dp_shift_frf_right(ctl_dp_shift_frf_right),
1133
                   .ctl_dp_shift_frf_left(ctl_dp_shift_frf_left),
1134
                   .ctl_dp_zero_low32_frf(ctl_dp_zero_low32_frf),
1135
                   .ctl_dp_output_sel_rs1(ctl_dp_output_sel_rs1),
1136
                   .ctl_dp_output_sel_rs2(ctl_dp_output_sel_rs2),
1137
                   .ctl_dp_output_sel_frf(ctl_dp_output_sel_frf),
1138
                   .ctl_dp_output_sel_fsr(ctl_dp_output_sel_fsr),
1139
                   .ctl_dp_noflip_lsu   (ctl_dp_noflip_lsu),
1140
                   .ctl_dp_flip_lsu     (ctl_dp_flip_lsu),
1141
                   .ctl_dp_noflip_fpu   (ctl_dp_noflip_fpu),
1142
                   .ctl_dp_flip_fpu     (ctl_dp_flip_fpu),
1143
                   .ctl_dp_rs2_frf_read (ctl_dp_rs2_frf_read),
1144
                   .ctl_dp_rs2_sel_vis  (ctl_dp_rs2_sel_vis),
1145
                   .ctl_dp_rs2_sel_fpu_lsu(ctl_dp_rs2_sel_fpu_lsu),
1146
                   .ctl_dp_rs2_keep_data(ctl_dp_rs2_keep_data),
1147
                   .ctl_dp_rd_ecc       (ctl_dp_rd_ecc),
1148
                   .ctl_dp_fp_thr       (ctl_dp_fp_thr[3:0]),
1149
                   .ctl_dp_fsr_sel_old  (ctl_dp_fsr_sel_old[3:0]),
1150
                   .ctl_dp_fsr_sel_ld   (ctl_dp_fsr_sel_ld[3:0]),
1151
                   .ctl_dp_fsr_sel_fpu  (ctl_dp_fsr_sel_fpu[3:0]),
1152
                   .ctl_dp_gsr_wsr_w2   (ctl_dp_gsr_wsr_w2[3:0]),
1153
                   .ctl_dp_thr_e        (ctl_dp_thr_e[3:0]),
1154
                   .ctl_dp_new_rs1      (ctl_dp_new_rs1),
1155
                   .ctl_dp_ecc_sel_frf  (ctl_dp_ecc_sel_frf));
1156
 
1157
   sparc_ffu_ctl ctl(
1158
                     .si(short_scan_1),
1159
                     .so                (short_so0),
1160
                     .ffu_exu_rsr_data_hi_m(ffu_exu_rsr_data_hi_m[31:0]),
1161
                     .ffu_exu_rsr_data_lo_m(ffu_exu_rsr_data_lo_m[7:0]),
1162
                     .ffu_exu_rsr_data_mid_m(ffu_exu_rsr_data_mid_m[2:0]),
1163
                     .ctl_frf_write_synd({dp_frf_data[77:71],dp_frf_data[38:32]}),
1164
                     .rst_tri_en        (mux_drive_disable),
1165
                     /*AUTOINST*/
1166
                     // Outputs
1167
                     .ctl_dp_gsr_wsr_w2 (ctl_dp_gsr_wsr_w2[3:0]),
1168
                     .ctl_dp_thr_e      (ctl_dp_thr_e[3:0]),
1169
                     .ctl_dp_wsr_data_w2(ctl_dp_wsr_data_w2[36:0]),
1170
                     .ctl_vis_add32     (ctl_vis_add32),
1171
                     .ctl_vis_align0    (ctl_vis_align0),
1172
                     .ctl_vis_align2    (ctl_vis_align2),
1173
                     .ctl_vis_align4    (ctl_vis_align4),
1174
                     .ctl_vis_align6    (ctl_vis_align6),
1175
                     .ctl_vis_align_odd (ctl_vis_align_odd),
1176
                     .ctl_vis_cin       (ctl_vis_cin),
1177
                     .ctl_vis_log_constant(ctl_vis_log_constant),
1178
                     .ctl_vis_log_invert_rs1(ctl_vis_log_invert_rs1),
1179
                     .ctl_vis_log_invert_rs2(ctl_vis_log_invert_rs2),
1180
                     .ctl_vis_log_pass_const(ctl_vis_log_pass_const),
1181
                     .ctl_vis_log_pass_rs1(ctl_vis_log_pass_rs1),
1182
                     .ctl_vis_log_pass_rs2(ctl_vis_log_pass_rs2),
1183
                     .ctl_vis_log_sel_nand(ctl_vis_log_sel_nand),
1184
                     .ctl_vis_log_sel_nor(ctl_vis_log_sel_nor),
1185
                     .ctl_vis_log_sel_pass(ctl_vis_log_sel_pass),
1186
                     .ctl_vis_log_sel_xor(ctl_vis_log_sel_xor),
1187
                     .ctl_vis_sel_add   (ctl_vis_sel_add),
1188
                     .ctl_vis_sel_align (ctl_vis_sel_align),
1189
                     .ctl_vis_sel_log   (ctl_vis_sel_log),
1190
                     .ctl_vis_subtract  (ctl_vis_subtract),
1191
                     .ctl_dp_rst_l      (ctl_dp_rst_l),
1192
                     .ffu_ifu_fpop_done_w2(ffu_ifu_fpop_done_w2),
1193
                     .ffu_ifu_cc_vld_w2 (ffu_ifu_cc_vld_w2[3:0]),
1194
                     .ffu_ifu_cc_w2     (ffu_ifu_cc_w2[7:0]),
1195
                     .ffu_ifu_tid_w2    (ffu_ifu_tid_w2[1:0]),
1196
                     .ffu_ifu_stallreq  (ffu_ifu_stallreq),
1197
                     .ffu_ifu_ecc_ce_w2 (ffu_ifu_ecc_ce_w2),
1198
                     .ffu_ifu_ecc_ue_w2 (ffu_ifu_ecc_ue_w2),
1199
                     .ffu_ifu_err_reg_w2(ffu_ifu_err_reg_w2[5:0]),
1200
                     .ffu_ifu_err_synd_w2(ffu_ifu_err_synd_w2[13:0]),
1201
                     .ffu_ifu_fst_ce_w  (ffu_ifu_fst_ce_w),
1202
                     .ffu_lsu_kill_fst_w(ffu_lsu_kill_fst_w),
1203
                     .ffu_ifu_inj_ack   (ffu_ifu_inj_ack),
1204
                     .ffu_lsu_data      (ffu_lsu_data[80:64]),
1205
                     .ffu_lsu_fpop_rq_vld(ffu_lsu_fpop_rq_vld),
1206
                     .ffu_lsu_blk_st_va_e(ffu_lsu_blk_st_va_e[5:3]),
1207
                     .ffu_lsu_blk_st_e  (ffu_lsu_blk_st_e),
1208
                     .ffu_tlu_trap_ieee754(ffu_tlu_trap_ieee754),
1209
                     .ffu_tlu_trap_other(ffu_tlu_trap_other),
1210
                     .ffu_tlu_trap_ue   (ffu_tlu_trap_ue),
1211
                     .ffu_tlu_ill_inst_m(ffu_tlu_ill_inst_m),
1212
                     .ffu_tlu_fpu_tid   (ffu_tlu_fpu_tid[1:0]),
1213
                     .ffu_tlu_fpu_cmplt (ffu_tlu_fpu_cmplt),
1214
                     .ctl_frf_ren       (ctl_frf_ren),
1215
                     .ctl_frf_wen       (ctl_frf_wen[1:0]),
1216
                     .ctl_frf_addr      (ctl_frf_addr[6:0]),
1217
                     .ctl_dp_fp_thr     (ctl_dp_fp_thr[3:0]),
1218
                     .ctl_dp_fcc_w2     (ctl_dp_fcc_w2[7:0]),
1219
                     .ctl_dp_ftt_w2     (ctl_dp_ftt_w2[2:0]),
1220
                     .ctl_dp_exc_w2     (ctl_dp_exc_w2[9:0]),
1221
                     .ctl_dp_ecc_sel_frf(ctl_dp_ecc_sel_frf),
1222
                     .ctl_dp_output_sel_rs1(ctl_dp_output_sel_rs1),
1223
                     .ctl_dp_output_sel_rs2(ctl_dp_output_sel_rs2),
1224
                     .ctl_dp_output_sel_frf(ctl_dp_output_sel_frf),
1225
                     .ctl_dp_output_sel_fsr(ctl_dp_output_sel_fsr),
1226
                     .ctl_dp_rs2_frf_read(ctl_dp_rs2_frf_read),
1227
                     .ctl_dp_rs2_sel_vis(ctl_dp_rs2_sel_vis),
1228
                     .ctl_dp_rs2_sel_fpu_lsu(ctl_dp_rs2_sel_fpu_lsu),
1229
                     .ctl_dp_rs2_keep_data(ctl_dp_rs2_keep_data),
1230
                     .ctl_dp_rd_ecc     (ctl_dp_rd_ecc),
1231
                     .ctl_dp_fsr_sel_ld (ctl_dp_fsr_sel_ld[3:0]),
1232
                     .ctl_dp_fsr_sel_fpu(ctl_dp_fsr_sel_fpu[3:0]),
1233
                     .ctl_dp_fsr_sel_old(ctl_dp_fsr_sel_old[3:0]),
1234
                     .ctl_dp_noshift64_frf(ctl_dp_noshift64_frf),
1235
                     .ctl_dp_shift_frf_right(ctl_dp_shift_frf_right),
1236
                     .ctl_dp_shift_frf_left(ctl_dp_shift_frf_left),
1237
                     .ctl_dp_zero_low32_frf(ctl_dp_zero_low32_frf),
1238
                     .ctl_dp_new_rs1    (ctl_dp_new_rs1),
1239
                     .ctl_dp_sign       (ctl_dp_sign[1:0]),
1240
                     .ctl_dp_flip_fpu   (ctl_dp_flip_fpu),
1241
                     .ctl_dp_flip_lsu   (ctl_dp_flip_lsu),
1242
                     .ctl_dp_noflip_fpu (ctl_dp_noflip_fpu),
1243
                     .ctl_dp_noflip_lsu (ctl_dp_noflip_lsu),
1244
                     // Inputs
1245
                     .dp_ctl_gsr_mask_e (dp_ctl_gsr_mask_e[31:0]),
1246
                     .dp_ctl_gsr_scale_e(dp_ctl_gsr_scale_e[4:0]),
1247
                     .exu_ffu_gsr_align_m(exu_ffu_gsr_align_m[2:0]),
1248
                     .exu_ffu_gsr_mask_m(exu_ffu_gsr_mask_m[31:0]),
1249
                     .exu_ffu_gsr_rnd_m (exu_ffu_gsr_rnd_m[2:0]),
1250
                     .exu_ffu_gsr_scale_m(exu_ffu_gsr_scale_m[4:0]),
1251
                     .exu_ffu_wsr_inst_e(exu_ffu_wsr_inst_e),
1252
                     .ifu_tlu_sraddr_d  (ifu_tlu_sraddr_d[6:0]),
1253
                     .lsu_ffu_st_dtlb_perr_g  (lsu_ffu_st_dtlb_perr_g), //sotheas,8/17/04: fixed eco 6529
1254
                     .rclk              (rclk),
1255
                     .se                (se),
1256
                     .grst_l            (grst_l),
1257
                     .arst_l            (arst_l),
1258
                     .dp_ctl_rs2_sign   (dp_ctl_rs2_sign[1:0]),
1259
                     .cpx_vld           (cpx_vld),
1260
                     .cpx_fcmp          (cpx_fcmp),
1261
                     .cpx_req           (cpx_req[3:0]),
1262
                     .cpx_fccval        (cpx_fccval[1:0]),
1263
                     .cpx_fpexc         (cpx_fpexc[4:0]),
1264
                     .dp_ctl_fsr_fcc    (dp_ctl_fsr_fcc[7:0]),
1265
                     .dp_ctl_fsr_rnd    (dp_ctl_fsr_rnd[1:0]),
1266
                     .dp_ctl_fsr_tem    (dp_ctl_fsr_tem[4:0]),
1267
                     .dp_ctl_fsr_aexc   (dp_ctl_fsr_aexc[4:0]),
1268
                     .dp_ctl_fsr_cexc   (dp_ctl_fsr_cexc[4:0]),
1269
                     .dp_ctl_synd_out_low(dp_ctl_synd_out_low[6:0]),
1270
                     .dp_ctl_synd_out_high(dp_ctl_synd_out_high[6:0]),
1271
                     .ifu_ffu_fpop1_d   (ifu_ffu_fpop1_d),
1272
                     .ifu_ffu_fpop2_d   (ifu_ffu_fpop2_d),
1273
                     .ifu_ffu_visop_d   (ifu_ffu_visop_d),
1274
                     .ifu_ffu_fpopcode_d(ifu_ffu_fpopcode_d[8:0]),
1275
                     .ifu_ffu_frs1_d    (ifu_ffu_frs1_d[4:0]),
1276
                     .ifu_ffu_frs2_d    (ifu_ffu_frs2_d[4:0]),
1277
                     .ifu_ffu_frd_d     (ifu_ffu_frd_d[4:0]),
1278
                     .ifu_ffu_fld_d     (ifu_ffu_fld_d),
1279
                     .ifu_ffu_fst_d     (ifu_ffu_fst_d),
1280
                     .ifu_ffu_ldst_single_d(ifu_ffu_ldst_single_d),
1281
                     .ifu_ffu_tid_d     (ifu_ffu_tid_d[1:0]),
1282
                     .ifu_ffu_fcc_num_d (ifu_ffu_fcc_num_d[1:0]),
1283
                     .ifu_ffu_mvcnd_m   (ifu_ffu_mvcnd_m),
1284
                     .ifu_ffu_inj_frferr(ifu_ffu_inj_frferr),
1285
                     .ifu_exu_ecc_mask  (ifu_exu_ecc_mask[6:0]),
1286
                     .ifu_ffu_ldfsr_d   (ifu_ffu_ldfsr_d),
1287
                     .ifu_ffu_ldxfsr_d  (ifu_ffu_ldxfsr_d),
1288
                     .ifu_ffu_stfsr_d   (ifu_ffu_stfsr_d),
1289
                     .ifu_ffu_quad_op_e (ifu_ffu_quad_op_e),
1290
                     .ifu_tlu_inst_vld_w(ifu_tlu_inst_vld_w),
1291
                     .lsu_ffu_flush_pipe_w(lsu_ffu_flush_pipe_w),
1292
                     .ifu_tlu_flush_w   (ifu_tlu_flush_w),
1293
                     .lsu_ffu_ack       (lsu_ffu_ack),
1294
                     .lsu_ffu_ld_vld    (lsu_ffu_ld_vld),
1295
                     .lsu_ffu_bld_cnt_w (lsu_ffu_bld_cnt_w[2:0]),
1296
                     .dp_ctl_ld_fcc     (dp_ctl_ld_fcc[7:0]),
1297
                     .ifu_exu_nceen_e   (ifu_exu_nceen_e),
1298
                     .ifu_exu_disable_ce_e(ifu_exu_disable_ce_e),
1299
                     .lsu_ffu_blk_asi_e (lsu_ffu_blk_asi_e),
1300
                     .exu_ffu_ist_e     (exu_ffu_ist_e),
1301
                     .ifu_tlu_flsh_inst_e(ifu_tlu_flsh_inst_e),
1302
                     .ifu_lsu_ld_inst_e (ifu_lsu_ld_inst_e),
1303
                     .lsu_ffu_stb_full0 (lsu_ffu_stb_full0),
1304
                     .lsu_ffu_stb_full1 (lsu_ffu_stb_full1),
1305
                     .lsu_ffu_stb_full2 (lsu_ffu_stb_full2),
1306
                     .lsu_ffu_stb_full3 (lsu_ffu_stb_full3));
1307
 
1308
   sparc_ffu_vis vis(/*AUTOINST*/
1309
                     // Outputs
1310
                     .vis_dp_rd_data    (vis_dp_rd_data[63:0]),
1311
                     // Inputs
1312
                     .dp_vis_rs1_data   (dp_vis_rs1_data[63:0]),
1313
                     .dp_vis_rs2_data   (dp_vis_rs2_data[63:0]),
1314
                     .ctl_vis_sel_add   (ctl_vis_sel_add),
1315
                     .ctl_vis_sel_log   (ctl_vis_sel_log),
1316
                     .ctl_vis_sel_align (ctl_vis_sel_align),
1317
                     .ctl_vis_add32     (ctl_vis_add32),
1318
                     .ctl_vis_subtract  (ctl_vis_subtract),
1319
                     .ctl_vis_cin       (ctl_vis_cin),
1320
                     .ctl_vis_align0    (ctl_vis_align0),
1321
                     .ctl_vis_align2    (ctl_vis_align2),
1322
                     .ctl_vis_align4    (ctl_vis_align4),
1323
                     .ctl_vis_align6    (ctl_vis_align6),
1324
                     .ctl_vis_align_odd (ctl_vis_align_odd),
1325
                     .ctl_vis_log_sel_pass(ctl_vis_log_sel_pass),
1326
                     .ctl_vis_log_sel_nand(ctl_vis_log_sel_nand),
1327
                     .ctl_vis_log_sel_nor(ctl_vis_log_sel_nor),
1328
                     .ctl_vis_log_sel_xor(ctl_vis_log_sel_xor),
1329
                     .ctl_vis_log_invert_rs1(ctl_vis_log_invert_rs1),
1330
                     .ctl_vis_log_invert_rs2(ctl_vis_log_invert_rs2),
1331
                     .ctl_vis_log_constant(ctl_vis_log_constant),
1332
                     .ctl_vis_log_pass_const(ctl_vis_log_pass_const),
1333
                     .ctl_vis_log_pass_rs1(ctl_vis_log_pass_rs1),
1334
                     .ctl_vis_log_pass_rs2(ctl_vis_log_pass_rs2));
1335
endmodule // sparc_ffu
1336
// Local Variables:
1337
// verilog-library-directories:("." "../../../srams/rtl")
1338
// End:
1339
 

powered by: WebSVN 2.1.0

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