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

📄 3_10serv

📁 大型risc处理器设计源代码,这是书中的代码 基于流水线的risc cpu设计
💻
📖 第 1 页 / 共 5 页
字号:
            & system.CHIP.IFU.BTC.NEW_FLAGS     // flags invalid                 u0387
        //  & ~system.CHIP.IFU.BTC.BTC_TYPE     // BCC                           u0388
            & system.CHIP.IFU.BTC.BCACHE.CCODE[2:0] != 3'b111) // no CBra        u0389
          begin                                                                  u0390
          CBra_Pred = CBra_Pred + 1;                                             u0391
        end                                                                      u0392
                                                                                 u0393
        // Wrong forecasts                                                       u0394
        if (system.CHIP.IFU.BTC_CORRECT                                          u0395
            & system.CHIP.IFU.SHIFT) begin                                       u0396
          BC_Cnt = BC_Cnt + 1;                                                   u0397
          if (system.CHIP.IFU.BTC.LAST_HITAKEN &&                                u0398
              !system.CHIP.IFU.BTC.LAST_TAKEN) begin                             u0399
            if (last_direction_forward) begin                                    u0400
              Bcc_t_f = Bcc_t_f - 1;                                             u0401
              Bcc_nt_f = Bcc_nt_f + 1;                                           u0402
            end                                                                  u0403
            else begin                                                           u0404
              Bcc_t_r = Bcc_t_r - 1;                                             u0405
              Bcc_nt_r = Bcc_nt_r + 1;                                           u0406
            end                                                                  u0407
          end                                                                    u0408
          else begin                                                             u0409
            if (last_direction_forward) begin                                    u0410
              Bcc_t_f = Bcc_t_f + 1;                                             u0411
              Bcc_nt_f = Bcc_nt_f - 1;                                           u0412
            end                                                                  u0413
            else begin                                                           u0414
              Bcc_t_r = Bcc_t_r + 1;                                             u0415
              Bcc_nt_r = Bcc_nt_r - 1;                                           u0416
            end                                                                  u0417
          end                                                                    u0418
        end                                                                      u0419
                                                                                 u0420
        // Count instructions                                                    u0421
        if (system.CHIP.WORK_WB)                                                 u0422
          casez(I4[31:19])                                                       u0423
            13'b0100000??????: MNE_AND = MNE_AND+1;                              u0424
            13'b0100001??????: MNE_AND_F = MNE_AND_F+1;                          u0425
            13'b0100010??????: MNE_OR = MNE_OR+1;                                u0426
            13'b0100011??????: MNE_OR_F = MNE_OR_F+1;                            u0427
            13'b0100100??????: MNE_XOR = MNE_XOR+1;                              u0428
            13'b0100101??????: MNE_XOR_F = MNE_XOR_F+1;                          u0429
            13'b0101000??????: MNE_LSL = MNE_LSL+1;                              u0430
            13'b0101001??????: MNE_LSL_F = MNE_LSL_F+1;                          u0431
            13'b0101010??????: MNE_LSR = MNE_LSR+1;                              u0432
            13'b0101011??????: MNE_LSR_F = MNE_LSR_F+1;                          u0433
            13'b0101100??????: MNE_ASR = MNE_ASR+1;                              u0434
            13'b0101101??????: MNE_ASR_F = MNE_ASR_F+1;                          u0435
            13'b0101110??????: MNE_ROT = MNE_ROT+1;                              u0436
            13'b0101111??????: MNE_ROT_F = MNE_ROT_F+1;                          u0437
            13'b0110000??????: MNE_ADD = MNE_ADD+1;                              u0438
            13'b0110001??????: MNE_ADD_F = MNE_ADD_F+1;                          u0439
            13'b0110010??????: MNE_ADDC = MNE_ADDC+1;                            u0440
            13'b0110011??????: MNE_ADDC_F = MNE_ADDC_F+1;                        u0441
            13'b0110100??????: MNE_SUB = MNE_SUB+1;                              u0442
            13'b0110101??????: MNE_SUB_F = MNE_SUB_F+1;                          u0443
            13'b0110110??????: MNE_SUBC = MNE_SUBC+1;                            u0444
            13'b0110111??????: MNE_SUBC_F = MNE_SUBC_F+1;                        u0445
            13'b0111100??????: MNE_MUL = MNE_MUL+1;                              u0446
            13'b0111101??????: MNE_MUL_F = MNE_MUL_F+1;                          u0447
            13'b0111110??????: MNE_DIV = MNE_DIV+1;                              u0448
            13'b0111111??????: MNE_DIV_F = MNE_DIV_F+1;                          u0449
            13'b1111110000110: MNE_BGT = MNE_BGT+1;                              u0450
            13'b1111110010110: MNE_BGT_A = MNE_BGT_A+1;                          u0451
            13'b1111110001110: MNE_BLE = MNE_BLE+1;                              u0452
            13'b1111110011110: MNE_BLE_A = MNE_BLE_A+1;                          u0453
            13'b1111110000101: MNE_BGE = MNE_BGE+1;                              u0454
            13'b1111110010101: MNE_BGE_A = MNE_BGE_A+1;                          u0455
            13'b1111110001101: MNE_BLT = MNE_BLT+1;                              u0456
            13'b1111110011101: MNE_BLT_A = MNE_BLT_A+1;                          u0457
            13'b1111110000011: MNE_BHI = MNE_BHI+1;                              u0458
            13'b1111110010011: MNE_BHI_A = MNE_BHI_A+1;                          u0459
            13'b1111110001011: MNE_BLS = MNE_BLS+1;                              u0460
            13'b1111110011011: MNE_BLS_A = MNE_BLS_A+1;                          u0461
            13'b1111110000010: MNE_BPL = MNE_BPL+1;                              u0462
            13'b1111110010010: MNE_BPL_A = MNE_BPL_A+1;                          u0463
            13'b1111110001010: MNE_BMI = MNE_BMI+1;                              u0464
            13'b1111110011010: MNE_BMI_A = MNE_BMI_A+1;                          u0465
            13'b1111110000000: MNE_BNE = MNE_BNE+1;                              u0466
            13'b1111110010000: MNE_BNE_A = MNE_BNE_A+1;                          u0467
            13'b1111110001000: MNE_BEQ = MNE_BEQ+1;                              u0468
            13'b1111110011000: MNE_BEQ_A = MNE_BEQ_A+1;                          u0469
            13'b1111110000100: MNE_BVC = MNE_BVC+1;                              u0470
            13'b1111110010100: MNE_BVC_A = MNE_BVC_A+1;                          u0471
            13'b1111110001100: MNE_BVS = MNE_BVS+1;                              u0472
            13'b1111110011100: MNE_BVS_A = MNE_BVS_A+1;                          u0473
            13'b1111110000001: MNE_BCC = MNE_BCC+1;                              u0474
            13'b1111110010001: MNE_BCC_A = MNE_BCC_A+1;                          u0475
            13'b1111110001001: MNE_BCS = MNE_BCS+1;                              u0476
            13'b1111110011001: MNE_BCS_A = MNE_BCS_A+1;                          u0477
            13'b1111110001111: MNE_BT = MNE_BT+1;                                u0478
            13'b1111110011111: MNE_BT_A = MNE_BT_A+1;                            u0479
            13'b1111110000111: MNE_BF = MNE_BF+1;                                u0480
            13'b1111110010111: MNE_BF_A = MNE_BF_A+1;                            u0481
            13'b11111110?????: MNE_RETI = MNE_RETI+1;                            u0482
            13'b11111101?????: MNE_SWI = MNE_SWI+1;                              u0483
            13'b11111111?????: MNE_HALT = MNE_HALT+1;                            u0484
            13'b10???????????: MNE_CALL = MNE_CALL+1;                            u0485
            13'b00000????????: MNE_LDUB = MNE_LDUB+1;                            u0486
            13'b00001?0??????: MNE_LDUD = MNE_LDUD+1;                            u0487
            13'b00001?1??????: MNE_LDUQ = MNE_LDUQ+1;                            u0488
            13'b00010????????: MNE_LDSB = MNE_LDSB+1;                            u0489
            13'b00011?0??????: MNE_LDSD = MNE_LDSD+1;                            u0490
            13'b00011?1??????: MNE_LDSQ = MNE_LDSQ+1;                            u0491
            13'b00100????????: MNE_STB = MNE_STB+1;                              u0492
            13'b00101?0??????: MNE_STD = MNE_STD+1;                              u0493
            13'b00101?1??????: MNE_STQ = MNE_STQ+1;                              u0494
            13'b0011?????????: MNE_SWP = MNE_SWP+1;                              u0495
            13'b11100000?????: MNE_LDH = MNE_LDH+1;                              u0496
            13'b11100111?????: MNE_CLC = MNE_CLC+1;                              u0497
            13'b11101010?????: MNE_LRFS = MNE_LRFS+1;                            u0498
            13'b11101011?????: MNE_SRIS = MNE_SRIS+1;                            u0499
            default: MNE_UNKNOWN = MNE_UNKNOWN+1;                                u0500
          endcase                                                                u0501
                                                                                 u0502
        if (system.CHIP.IFU.BTC_HIT & ~system.CHIP.IFU.BTC_CORRECT               u0503
            & system.CHIP.IFU.SHIFT) begin                                       u0504
          casez({system.CHIP.IFU.BTC.ANNUL,system.CHIP.IFU.BTC.CCODE})           u0505
            5'b00110: MNE_BGT = MNE_BGT+1;                                       u0506
            5'b10110: MNE_BGT_A = MNE_BGT_A+1;                                   u0507
            5'b01110: MNE_BLE = MNE_BLE+1;                                       u0508
            5'b11110: MNE_BLE_A = MNE_BLE_A+1;                                   u0509
            5'b00101: MNE_BGE = MNE_BGE+1;                                       u0510
            5'b10101: MNE_BGE_A = MNE_BGE_A+1;                                   u0511
            5'b01101: MNE_BLT = MNE_BLT+1;                                       u0512
            5'b11101: MNE_BLT_A = MNE_BLT_A+1;                                   u0513
            5'b00011: MNE_BHI = MNE_BHI+1;                                       u0514
            5'b10011: MNE_BHI_A = MNE_BHI_A+1;                                   u0515
            5'b01011: MNE_BLS = MNE_BLS+1;                                       u0516
            5'b11011: MNE_BLS_A = MNE_BLS_A+1;                                   u0517
            5'b00010: MNE_BPL = MNE_BPL+1;                                       u0518
            5'b10010: MNE_BPL_A = MNE_BPL_A+1;                                   u0519
            5'b01010: MNE_BMI = MNE_BMI+1;                                       u0520
            5'b11010: MNE_BMI_A = MNE_BMI_A+1;                                   u0521
            5'b00000: MNE_BNE = MNE_BNE+1;                                       u0522
            5'b10000: MNE_BNE_A = MNE_BNE_A+1;                                   u0523
            5'b01000: MNE_BEQ = MNE_BEQ+1;                                       u0524
            5'b11000: MNE_BEQ_A = MNE_BEQ_A+1;                                   u0525
            5'b00100: MNE_BVC = MNE_BVC+1;                                       u0526
            5'b10100: MNE_BVC_A = MNE_BVC_A+1;                                   u0527
            5'b01100: MNE_BVS = MNE_BVS+1;                                       u0528
            5'b11100: MNE_BVS_A = MNE_BVS_A+1;                                   u0529
            5'b00001: MNE_BCC = MNE_BCC+1;                                       u0530
            5'b10001: MNE_BCC_A = MNE_BCC_A+1;                                   u0531
            5'b01001: MNE_BCS = MNE_BCS+1;                                       u0532
            5'b11001: MNE_BCS_A = MNE_BCS_A+1;                                   u0533
            5'b01111: begin                                                      u0534
                        if (system.CHIP.IFU.BTC.BTC_TYPE) MNE_CALL = MNE_CALL+1; u0535
                        else MNE_BT = MNE_BT+1;                                  u0536

⌨️ 快捷键说明

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