From 7cd988ef678e7c5c0f611703ff2155724b9401e1 Mon Sep 17 00:00:00 2001 From: waleed-lm Date: Tue, 13 Oct 2020 15:36:42 +0500 Subject: [PATCH] Aligner Updated --- el2_ifu_aln_ctl.fir | 6 +++--- el2_ifu_aln_ctl.v | 14 ++++++++------ src/main/scala/ifu/el2_ifu_aln_ctl.scala | 12 ++++++------ .../classes/ifu/el2_ifu_aln_ctl.class | Bin 192183 -> 192167 bytes 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/el2_ifu_aln_ctl.fir b/el2_ifu_aln_ctl.fir index 890f1113..569ad067 100644 --- a/el2_ifu_aln_ctl.fir +++ b/el2_ifu_aln_ctl.fir @@ -2439,9 +2439,9 @@ circuit el2_ifu_aln_ctl : node _T_225 = bits(misc0eff, 53, 53) @[el2_ifu_aln_ctl.scala 217:21] f0icaf <= _T_225 @[el2_ifu_aln_ctl.scala 217:10] node f0ictype = bits(misc0eff, 52, 51) @[el2_ifu_aln_ctl.scala 218:26] - node f0prett = bits(misc0eff, 50, 20) @[el2_ifu_aln_ctl.scala 219:25] - node f0poffset = bits(misc0eff, 19, 8) @[el2_ifu_aln_ctl.scala 220:27] - node f0fghr = bits(misc0eff, 7, 0) @[el2_ifu_aln_ctl.scala 221:24] + node f0prett = bits(misc0eff, 50, 18) @[el2_ifu_aln_ctl.scala 219:25] + node f0poffset = bits(misc0eff, 17, 5) @[el2_ifu_aln_ctl.scala 220:27] + node f0fghr = bits(misc0eff, 4, 0) @[el2_ifu_aln_ctl.scala 221:24] node _T_226 = bits(io.ifu_bp_hist1_f, 1, 1) @[el2_ifu_aln_ctl.scala 223:37] node _T_227 = bits(io.ifu_bp_hist0_f, 1, 1) @[el2_ifu_aln_ctl.scala 223:58] node _T_228 = bits(io.ifu_bp_pc4_f, 1, 1) @[el2_ifu_aln_ctl.scala 223:77] diff --git a/el2_ifu_aln_ctl.v b/el2_ifu_aln_ctl.v index 092e3c94..e9d736b3 100644 --- a/el2_ifu_aln_ctl.v +++ b/el2_ifu_aln_ctl.v @@ -824,9 +824,9 @@ module el2_ifu_aln_ctl( wire f0dbecc = misc0eff[54]; // @[el2_ifu_aln_ctl.scala 216:25] wire f0icaf = misc0eff[53]; // @[el2_ifu_aln_ctl.scala 217:21] wire [1:0] f0ictype = misc0eff[52:51]; // @[el2_ifu_aln_ctl.scala 218:26] - wire [30:0] f0prett = misc0eff[50:20]; // @[el2_ifu_aln_ctl.scala 219:25] - wire [11:0] f0poffset = misc0eff[19:8]; // @[el2_ifu_aln_ctl.scala 220:27] - wire [7:0] f0fghr = misc0eff[7:0]; // @[el2_ifu_aln_ctl.scala 221:24] + wire [32:0] f0prett = misc0eff[50:18]; // @[el2_ifu_aln_ctl.scala 219:25] + wire [12:0] f0poffset = misc0eff[17:5]; // @[el2_ifu_aln_ctl.scala 220:27] + wire [4:0] f0fghr = misc0eff[4:0]; // @[el2_ifu_aln_ctl.scala 221:24] wire [23:0] _T_251 = {brdata1,brdata0}; // @[Cat.scala 29:58] wire [23:0] _T_254 = {brdata2,brdata1}; // @[Cat.scala 29:58] wire [23:0] _T_257 = {brdata0,brdata2}; // @[Cat.scala 29:58] @@ -974,6 +974,8 @@ module el2_ifu_aln_ctl( wire _T_752 = first4B & alignhist0[1]; // @[el2_ifu_aln_ctl.scala 387:42] wire _T_753 = _T_750 | _T_752; // @[el2_ifu_aln_ctl.scala 387:31] wire i0_ends_f1 = first4B & _T_516; // @[el2_ifu_aln_ctl.scala 389:28] + wire [12:0] _T_756 = i0_ends_f1 ? {{1'd0}, f1poffset} : f0poffset; // @[el2_ifu_aln_ctl.scala 390:27] + wire [32:0] _T_758 = i0_ends_f1 ? {{2'd0}, f1prett} : f0prett; // @[el2_ifu_aln_ctl.scala 392:25] wire _T_769 = io_i0_brp_valid & i0_brp_pc4; // @[el2_ifu_aln_ctl.scala 398:42] wire _T_770 = _T_769 & first2B; // @[el2_ifu_aln_ctl.scala 398:56] wire _T_771 = ~i0_brp_pc4; // @[el2_ifu_aln_ctl.scala 398:89] @@ -994,17 +996,17 @@ module el2_ifu_aln_ctl( assign io_ifu_fb_consume1 = _T_313 & _T_1; // @[el2_ifu_aln_ctl.scala 55:22 el2_ifu_aln_ctl.scala 258:22] assign io_ifu_fb_consume2 = _T_316 & _T_1; // @[el2_ifu_aln_ctl.scala 56:22 el2_ifu_aln_ctl.scala 259:22] assign io_ifu_i0_bp_index = _T_739 ? firstpc_hash : secondpc_hash; // @[el2_ifu_aln_ctl.scala 57:22 el2_ifu_aln_ctl.scala 400:22] - assign io_ifu_i0_bp_fghr = i0_ends_f1 ? f1fghr : f0fghr; // @[el2_ifu_aln_ctl.scala 58:21 el2_ifu_aln_ctl.scala 402:21] + assign io_ifu_i0_bp_fghr = i0_ends_f1 ? f1fghr : {{3'd0}, f0fghr}; // @[el2_ifu_aln_ctl.scala 58:21 el2_ifu_aln_ctl.scala 402:21] assign io_ifu_i0_bp_btag = _T_739 ? firstbrtag_hash : secondbrtag_hash; // @[el2_ifu_aln_ctl.scala 59:21 el2_ifu_aln_ctl.scala 404:21] assign io_ifu_pmu_instr_aligned = io_dec_i0_decode_d & _T_786; // @[el2_ifu_aln_ctl.scala 60:28 el2_ifu_aln_ctl.scala 410:28] assign io_ifu_i0_cinst = aligndata[15:0]; // @[el2_ifu_aln_ctl.scala 61:19 el2_ifu_aln_ctl.scala 346:19] assign io_i0_brp_valid = _T_723 | _T_727; // @[el2_ifu_aln_ctl.scala 378:19] - assign io_i0_brp_toffset = i0_ends_f1 ? f1poffset : f0poffset; // @[el2_ifu_aln_ctl.scala 390:21] + assign io_i0_brp_toffset = _T_756[11:0]; // @[el2_ifu_aln_ctl.scala 390:21] assign io_i0_brp_hist = {_T_748,_T_753}; // @[el2_ifu_aln_ctl.scala 386:18] assign io_i0_brp_br_error = _T_770 | _T_773; // @[el2_ifu_aln_ctl.scala 398:22] assign io_i0_brp_br_start_error = _T_658 & alignbrend[0]; // @[el2_ifu_aln_ctl.scala 394:29] assign io_i0_brp_bank = _T_739 ? f0pc[1] : secondpc[1]; // @[el2_ifu_aln_ctl.scala 396:29] - assign io_i0_brp_prett = i0_ends_f1 ? f1prett : f0prett; // @[el2_ifu_aln_ctl.scala 392:19] + assign io_i0_brp_prett = _T_758[30:0]; // @[el2_ifu_aln_ctl.scala 392:19] assign io_i0_brp_way = _T_739 ? alignway[0] : alignway[1]; // @[el2_ifu_aln_ctl.scala 384:17] assign io_i0_brp_ret = _T_730 | _T_732; // @[el2_ifu_aln_ctl.scala 380:17] assign decompressed_io_din = aligndata[15:0]; // @[el2_ifu_aln_ctl.scala 406:23] diff --git a/src/main/scala/ifu/el2_ifu_aln_ctl.scala b/src/main/scala/ifu/el2_ifu_aln_ctl.scala index 131b5bb0..cedf5903 100644 --- a/src/main/scala/ifu/el2_ifu_aln_ctl.scala +++ b/src/main/scala/ifu/el2_ifu_aln_ctl.scala @@ -213,12 +213,12 @@ class el2_ifu_aln_ctl extends Module with el2_lib { val f1poffset = misc1eff(BHT_GHR_SIZE+11, BHT_GHR_SIZE) val f1fghr = misc1eff(BHT_GHR_SIZE-1, 0) - val f0dbecc = misc0eff(misc0eff.getWidth-1) - f0icaf := misc0eff(misc0eff.getWidth-2) - val f0ictype = misc0eff(misc0eff.getWidth-3,misc0eff.getWidth-4) - val f0prett = misc0eff(misc0eff.getWidth-5,misc0eff.getWidth-35) - val f0poffset = misc0eff(BHT_GHR_SIZE+11, BHT_GHR_SIZE) - val f0fghr = misc0eff(BHT_GHR_SIZE-1, 0) + val f0dbecc = misc0eff(MHI) + f0icaf := misc0eff(MHI-1) + val f0ictype = misc0eff(MHI-2, MHI-3) + val f0prett = misc0eff(MHI-4,MHI-36) + val f0poffset = misc0eff(MHI-37, MHI-49) + val f0fghr = misc0eff(MHI-50, 0) brdata_in := Cat(io.ifu_bp_hist1_f(1),io.ifu_bp_hist0_f(1),io.ifu_bp_pc4_f(1),io.ifu_bp_way_f(1),io.ifu_bp_valid_f(1), io.ifu_bp_ret_f(1), io.ifu_bp_hist1_f(0),io.ifu_bp_hist0_f(0),io.ifu_bp_pc4_f(0),io.ifu_bp_way_f(0), diff --git a/target/scala-2.12/classes/ifu/el2_ifu_aln_ctl.class b/target/scala-2.12/classes/ifu/el2_ifu_aln_ctl.class index eb86f9fa390edd1e614ce96938b398c2b06ecbba..85ee99879d17620445e8a40561060a1cb01c0d5d 100644 GIT binary patch delta 2381 zcmXBWc~p~E8V2zD2K`tB3u9}m9_z^9X=^FW!WuCNuJ>UJE=bU@@D_B#_HT;)!!stgc?NS< zO%sLscm{j^cJvRjwlvX<5yAeGem{p~So=}%2=<@W9&~^j)O`38v4@!B1hHJaT%3-q z7q^LzB8MctlGivv5+_NMWFq%UIwZ%DFQg--0h}OREX|Z=A)BO~(vzGZ6Uj!&MkAAC z8rceDtL&7ln-ik%NB+6ZmD zHUU|zwQB90plj3})1Bai;@;v%#RHt6_t#I<2XTTS$Pj7>Lv|Z}FkIsVW0-NiF$($6 zIAnau2_}=tWvb(Z(u&fC(nd}&?=c@ScW^@4^K!p(e@?K(TQV%T*z(-!XT{lCZ*8;2 z;l(zmt;Keb6DkMoo^~Hjuurs4v*Q=o_t}ryJ2|1Ms_H;h3nw`2jwVMlCsePj=Bo=i z!MV!0&8bBmah`FW;{;cjYrZS0-S&p4WQGUN@~yQBQJ*z+*x-UX_TPo$*slxA z+0epU?0M8=_9AKxd&Nh;Pb~TliDI6Shx|Sbk4+%Y*h}OU=Oph%ku)Mcmwe+_k?-O~ z$!2;x`FonM>~;EM%3o-FN*o0$<`Dm<)O!?|`jRFo{pg)EqIc7}=)H_odM9HY zy`MRTrexkjzND$DC-i4^3k7H8Qi#TnrfMe92bwOLo)bx-Iald}oF1By>!7d|J@nVS zITXHnCQ0%KNLH|&BG$f3k?Tj(+zrEM-o_`iVDoK?;xAFmwoaa63-f7F(PLVyolXhb za7xr}rH{1(v`n{}6uRBCy!a}m>3t|;hnZA{w<*ieMVgWU$}M?DD~;1=m1#QVn`BgA zilVh94XronX+!Bw+O(^UwwRr?wQP_ID*~vf;uRHI-XxtRnu;xhq_?_ghb_cLC6$lK zR8>Kxj&d?rXHmIRO%`V}*<91e?pjL@S2tDH{DEAx^;A<=+rIyrXz4JXV_rVV-u)~; z{4ty8vy6qX)#7wm3amgJ4O75A5g&!6!q$p+!;*l1x}SY=cA& z%Yc0>zzU^}uw2+S z*=X1bm{!JMD`7>l6|g*5v1}=96-+1VhOLI_WzDdB*k`k2*f_SG&15@fC$a#>@4%-a zdI-f&P&7vOp;&-oNemBL1KSys4O%H0=#3M-SlFWvw%#}0>W zgjL9Yfo+17C*6i^hFO!&!?wUI$y?l)@W9ICEZ|n4EkzI82CGWRhZVx?iV#>4tXeS+ zriD3DWiTDgl{y(#409?YVV}Wjl~ZAQSdFqDwjH)xc@?$;R+knCGr;)zG+$r|a8J5> z$421ZboY);um)8qY$vQyH33!%+o!q-+XZV_03i~2E4rb$lt+|V_lNv1IP_69AHSCyH3vQ2C1uuk1xSPkrW@c^tA)>V81RtGzw4`RHR&u-wC`jNmr zz>|hB6zgH94S}!**eSy`*j`w-;WTU?>?>mwtPys`I0LpH_O)2 zW^s?O4fdVY-D`(kvABC3ub0lkp+!s@*;66TqHI z_o%y2yl!{z{Uq#1yL<0n!fx0*VW(g>?G3Qgu->W`*jKRIRh6)A*eyph>}%LR95&b) z*q!P^*f+4Bs&ipyVRxNc<`wR94tUSG5_lfi=RAj^0DIs(1iJvc?{bg&BJ82dJ?cxa OpMU$uboh?Q!|(rm$Q(5Q delta 2397 zcmXxmdr(tn8V2z1jr0=)6>X_oS`>9xx7zAr)pnI!z#Cp5(Sj9$U=mD3sdxcJ1cP{j z(U^#7%!vUK#XDH7C?M5>)k@KWxb3=KwRl@~Ra~u|T`$vJxBG;d{pYJaoZ`hMo~(Cpxl-pvE^2(LR$|E|b45f0Ik{ zO!+eTN@TsfReqjJicrNnia|)7Vud0f*{En!NL*6(Rt{7SMrJAVl?BL?%68=?E~)yf zhN^}kvsHzvV&rMncdE-=N_>$NoD|BXq_s&~lD2Y5-B%s09*WFX7pjZ7S<;ZEzb1l9 zshz2hQ=f7vtuW1&=HOC>kg+|(!zJzeT7@=_OPR5miJ2NM=~TMex@6=--7mUVT+$EJ zkJgXjlA+$vYQT#dV~p{}DadQaN5&^yGW9h@n{c72-E`e_i%Z#t?7ZyNToSl2K!`Ns zFh?*5MxZf(!JcYQ zNB-gnb@btq!{<2SsN+)k-tva>CN4RTJI^`Wxa10RMY*E6?w9V_8GgWILdCR4D5E?0CqEOG`kbm#_q-^v3v2i*`4^i?Ea*E?BV1~ ztZT|k_K&H{+2g5Q?8!6(`)OJydzz5Keop9M|C~OJ{cHMZ_H4!<+4C87?8VHH?B&co z?B6qgV*i;nfxVh#VZWLaClX8inPln^>Y;u?uW5|bQ*(oYXCJ1JIms0IaS?@mTtZ>V zdg`4rnZi<*QlGgR>OHrR!sa?D{F5Z=H;+^JyaalEoAc~wnh2Bo< zPj97-ps2KJ8kly62BrU&qBEvbRECa*Xj8~MH1jzPS}x8y#3u%wH|=NzJs zKJB6jxhWL8d>ScM5~=cbQ2eToXmY_Ynp*e)XwwDJ`Wr0;6PM zGR+lc(LAA?=39u;E$c~ZIYtZ0?vvgcNm-k#$!Hrzi)K;xOcLtS-oUGyz+U$urKwG?w z92I-1ymAjYs|v{FTTO0XGkN^+UG=oH`e>u~itLjh^P4QVS6awp zwnEO>;9lu0hAo$`gk`|;EEBd$ehjt%maiBD)4>W9Auv5`wIUy8fE6k- zVOg*>3JJClR-~wh8DVRcgJGtS$7Z%p846qkELIi(vr#Nj>S2pvX5}T=5?HCS36=v} zuNnsX6eg&`VM}2fRK>7dSeeQMTL!bJF2k0?tg2?%3fRU;TJ|>E#6D!3CoN+An0Ygf zwxm!LSE6W7e1>8kiugf;<-@int%0qAIn+a8t6|&JynY!PddtX$~{c4BU}c04xD|GCZ*Lu!@XQSSie_je~7~RcS}U z1XyLJ24;czGbg~xU_Mp6RJDj~5Cc=(p>tG%;@Qa)*>|`evaV%#kcCrhn<3c2gJ5X#8f>89LS1%Z06|fV6 z2384c6l!2qurCD{%m-_-T!i^yr!0-Iov@P|3APK?T=oc74g1PEmYIWl?FOE<4g~H2 zw%8I-+zUHn8w1-1``Y#ZwjcJ5?R(e(*jalz>>#YwJ{492JLl*FtA(}MU&0Q-zID{W zK8Ia!RKgC!&X+gAj=IFLvyW|dxupaik zJ21iq*mq)}*9f~T26`u8e-;DlY=ZqD2G;o{>@S`(u#>PWoJ5zgE8sP6 zVARbhUiAj{-U93N2KIg$_M^8Q_BHH=w*htrcDOLnCD;SsSy(&lzCSSPi?A+#VALJ3 Ohu#06_S}~B=>0#0zZ4w+