📄 3_10serv
字号:
end u0537
5'b11111: begin u0538
if (system.CHIP.IFU.BTC.BTC_TYPE) MNE_CALL = MNE_CALL+1; u0539
else MNE_BT_A = MNE_BT_A+1; u0540
end u0541
5'b00111: MNE_BF = MNE_BF+1; u0542
5'b10111: MNE_BF_A = MNE_BF_A+1; u0543
endcase u0544
if (system.CHIP.IFU.BTC.BTC_TYPE==1'b0) begin u0545
if (system.CHIP.IFU.BTC.TARGET < system.CHIP.IFU.BTC.PC) begin u0546
if (system.CHIP.IFU.BTC.BTC_TAKEN) Bcc_t_r = Bcc_t_r + 1; u0547
else Bcc_nt_r = Bcc_nt_r + 1; u0548
last_direction_forward = 1'b0; u0549
Dist = system.CHIP.IFU.BTC.PC - system.CHIP.IFU.BTC.TARGET; u0550
Bcc_Width = 1; u0551
end u0552
else begin u0553
if (system.CHIP.IFU.BTC.BTC_TAKEN) Bcc_t_f = Bcc_t_f + 1; u0554
else Bcc_nt_f = Bcc_nt_f + 1; u0555
last_direction_forward = 1'b1; u0556
Dist = system.CHIP.IFU.BTC.TARGET - system.CHIP.IFU.BTC.PC; u0557
Bcc_Width = 0; u0558
end u0559
casez(Dist[17:0]) u0560
18'b000000000000000001 : Bcc_Width = Bcc_Width + 1; u0561
18'b00000000000000001? : Bcc_Width = Bcc_Width + 2; u0562
18'b0000000000000001?? : Bcc_Width = Bcc_Width + 3; u0563
18'b000000000000001??? : Bcc_Width = Bcc_Width + 4; u0564
18'b00000000000001???? : Bcc_Width = Bcc_Width + 5; u0565
18'b0000000000001????? : Bcc_Width = Bcc_Width + 6; u0566
18'b000000000001?????? : Bcc_Width = Bcc_Width + 7; u0567
18'b00000000001??????? : Bcc_Width = Bcc_Width + 8; u0568
18'b0000000001???????? : Bcc_Width = Bcc_Width + 9; u0569
18'b000000001????????? : Bcc_Width = Bcc_Width + 10; u0570
18'b00000001?????????? : Bcc_Width = Bcc_Width + 11; u0571
18'b0000001??????????? : Bcc_Width = Bcc_Width + 12; u0572
18'b000001???????????? : Bcc_Width = Bcc_Width + 13; u0573
18'b00001????????????? : Bcc_Width = Bcc_Width + 14; u0574
18'b0001?????????????? : Bcc_Width = Bcc_Width + 15; u0575
18'b001??????????????? : Bcc_Width = Bcc_Width + 16; u0576
18'b01???????????????? : Bcc_Width = Bcc_Width + 17; u0577
18'b1????????????????? : Bcc_Width = Bcc_Width + 18; u0578
endcase u0579
Bcc_Cnt = Bcc_Cnt + 1; u0580
Bcc_Dist[Bcc_Width] = Bcc_Dist[Bcc_Width] + 1; u0581
end u0582
end u0583
u0584
if (system.CHIP.WORK_WB) begin u0585
casez(I4) u0586
32'b11101011_00000_??????????????????? : SRIS_Cnt = SRIS_Cnt + 1; u0587
32'h49000000 : NOP_Cnt = NOP_Cnt + 1; u0588
endcase u0589
end u0590
u0591
if (system.CHIP.WORK_WB) begin u0592
if (I4[31:24] == 8'b11111100) begin u0593
Dist = I4[18:0]; u0594
if (Dist[18]) begin u0595
if (T4) Bcc_t_r = Bcc_t_r + 1; u0596
else Bcc_nt_r = Bcc_nt_r + 1; u0597
Dist = -Dist; u0598
Bcc_Width = 1; u0599
end u0600
else begin u0601
if (T4) Bcc_t_f = Bcc_t_f + 1; u0602
else Bcc_nt_f = Bcc_nt_f + 1; u0603
Bcc_Width = 0; u0604
end u0605
casez(Dist[17:0]) u0606
18'b000000000000000001 : Bcc_Width = Bcc_Width + 1; u0607
18'b00000000000000001? : Bcc_Width = Bcc_Width + 2; u0608
18'b0000000000000001?? : Bcc_Width = Bcc_Width + 3; u0609
18'b000000000000001??? : Bcc_Width = Bcc_Width + 4; u0610
18'b00000000000001???? : Bcc_Width = Bcc_Width + 5; u0611
18'b0000000000001????? : Bcc_Width = Bcc_Width + 6; u0612
18'b000000000001?????? : Bcc_Width = Bcc_Width + 7; u0613
18'b00000000001??????? : Bcc_Width = Bcc_Width + 8; u0614
18'b0000000001???????? : Bcc_Width = Bcc_Width + 9; u0615
18'b000000001????????? : Bcc_Width = Bcc_Width + 10; u0616
18'b00000001?????????? : Bcc_Width = Bcc_Width + 11; u0617
18'b0000001??????????? : Bcc_Width = Bcc_Width + 12; u0618
18'b000001???????????? : Bcc_Width = Bcc_Width + 13; u0619
18'b00001????????????? : Bcc_Width = Bcc_Width + 14; u0620
18'b0001?????????????? : Bcc_Width = Bcc_Width + 15; u0621
18'b001??????????????? : Bcc_Width = Bcc_Width + 16; u0622
18'b01???????????????? : Bcc_Width = Bcc_Width + 17; u0623
18'b1????????????????? : Bcc_Width = Bcc_Width + 18; u0624
endcase u0625
Bcc_Cnt = Bcc_Cnt + 1; u0626
Bcc_Dist[Bcc_Width] = Bcc_Dist[Bcc_Width] + 1; u0627
end u0628
end u0629
u0630
// u0631
// ALU u0632
// u0633
if (system.CHIP.WORK_EX) begin u0634
casez(I2[31:19]) u0635
13'b01????0??????: Ins_ALU = Ins_ALU+1; u0636
13'b01????1??????: begin u0637
Ins_ALU = Ins_ALU+1; u0638
Ins_Flag = Ins_Flag+1; u0639
end u0640
endcase u0641
if ((I2[31:30] == 2'b01) && (I2[24] == 1'b0)) begin u0642
Dist_ALU = I2[13:0]; u0643
if (Dist_ALU[13]) begin u0644
Dist_ALU = -Dist_ALU; u0645
ALU_Width = 1; u0646
end u0647
else ALU_Width = 0; u0648
casez(Dist_ALU[12:0]) u0649
13'b0000000000001 : ALU_Width = ALU_Width + 1; u0650
13'b000000000001? : ALU_Width = ALU_Width + 2; u0651
13'b00000000001?? : ALU_Width = ALU_Width + 3; u0652
13'b0000000001??? : ALU_Width = ALU_Width + 4; u0653
13'b000000001???? : ALU_Width = ALU_Width + 5; u0654
13'b00000001????? : ALU_Width = ALU_Width + 6; u0655
13'b0000001?????? : ALU_Width = ALU_Width + 7; u0656
13'b000001??????? : ALU_Width = ALU_Width + 8; u0657
13'b00001???????? : ALU_Width = ALU_Width + 9; u0658
13'b0001????????? : ALU_Width = ALU_Width + 10; u0659
13'b001?????????? : ALU_Width = ALU_Width + 11; u0660
13'b01??????????? : ALU_Width = ALU_Width + 12; u0661
13'b1???????????? : ALU_Width = ALU_Width + 13; u0662
endcase u0663
ALU_Cnt = ALU_Cnt + 1; u0664
ALU_Imm[ALU_Width] = ALU_Imm[ALU_Width] + 1; u0665
end u0666
end u0667
u0668
// u0669
// WB u0670
// u0671
if (system.CHIP.WORK_MA) begin u0672
casez(I3[31:24]) u0673
8'b0010???1: begin u0674
if ((I3[18:14]!=5'b0) && (I3[4:0]!=5'b0)) u0675
St_Cnt = St_Cnt + 1; u0676
end u0677
endcase u0678
if (I3[31:30] == 2'b00) begin u0679
Ins_MA = Ins_MA + 1; u0680
if (I3[24] == 1'b0) begin // immediate access u0681
Dist_MACC = I3[13:0]; u0682
if (Dist_MACC[13]) begin u0683
Dist_MACC = -Dist_MACC; u0684
MACC_Width = 1; u0685
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -