From aa16bc40b6c7db767e05f460d8992721c7a8a55d Mon Sep 17 00:00:00 2001 From: Olof Kindgren Date: Wed, 2 Dec 2020 15:55:45 +0100 Subject: [PATCH] Move ibus_cyc handling to serv_state --- doc/index.rst | 6 ++++-- doc/serv_ctrl.png | Bin 11766 -> 10850 bytes doc/serv_ctrl_int.png | Bin 48574 -> 42052 bytes rtl/serv_ctrl.v | 45 +++++++++++++++++------------------------- rtl/serv_state.v | 17 ++++++++++++++++ rtl/serv_top.v | 6 ++---- 6 files changed, 41 insertions(+), 33 deletions(-) diff --git a/doc/index.rst b/doc/index.rst index e393a36..20eb826 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -77,7 +77,7 @@ serv_ctrl .. image:: serv_ctrl.png -serv_ctrl keeps track of the current PC and contains the logic needed to calculate the next PC. The PC is stored in shift register with a parellel output connected to the instruction bus. New instructions are fetched by asserting o_ibus_cyc until there is a response on i_ibus_ack. Instruction fetches occur when the reset signal is deasserted, which is what gets SERV started, or when the PC has finished updating its value. +serv_ctrl keeps track of the current PC and contains the logic needed to calculate the next PC. The PC is stored in shift register with a parellel output connected to the instruction bus. The new PC can come from three sources. For normal instructions, it is incremented by four, which is the next 32-bit address. Jumps can be absolute or relative to the current PC. Absolute jumps are precalculated in serv_bufreg and written directly to the PC. PC relative jumps have the offset part precalculated in serv_bufreg which gets added to the current PC before storing as the new PC. The third source for the new PC comes from the CSR registers when entering or returning traps. @@ -120,7 +120,9 @@ serv_rf_ram_if converts between the SERV RF IF and the serv_rf_ram interface serv_state ^^^^^^^^^^ -serv_state keeps track of the state for the core and contains all dynamic control signals during an operations life time. Also controls the accesses towards the RF and dbus +serv_state keeps track of the state for the core and contains all dynamic control signals during an operations life time. Also controls the accesses towards the RF, ibus and dbus + +New instructions are fetched by asserting o_ibus_cyc until there is a response on i_ibus_ack. Instruction fetches occur when the reset signal is deasserted, which is what gets SERV started, or when the PC has finished updating its value. shift_reg ^^^^^^^^^ diff --git a/doc/serv_ctrl.png b/doc/serv_ctrl.png index 469b133c8d0d2751b9fba765135da15250b1aeb1..d3647762441184d38b7c52e5a8541d4e1e47c8c9 100644 GIT binary patch literal 10850 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
^rw6)#D2=?sp8nVA64Z6%~XX49zPSk|Gwh< zAA#QgE?j?!u^{%>x*=jG&o(2|Yqo{!>ekSE`L(k}%ZwYM`$@j1g2ce(U&U~e2s`KD zIiU^*gJ&B~5D)GmB|ZgJgJQg^GQs;EzbY5GP*O88Z&vHK6;f4Ar>|63Y5n=kN$xs>`ozEShwo+fLjj-v?@2St7tfxv_K!MVYX zM@2lB#pzhxJ%$u=~?&t}}MbqMo&Y5@09TnOL zQ+V_8>-Nq;{}R!$A9=Fa3Qt&ve6Q?`$eZ9DpoCoMtAt&N#fqd)jvw9;=)9>MIvw)q zOTT|vWYOQpk}j*GNVC$rhW}TaCpbyLuSH}oFeUKMe)PTQ?~|MK)?@y{occp>?%cj^ zSnu9XQ8``bZ;IVfmG~0)UHN%O{DaK%v6!Yk5O;V?7PPJqy7qA`o6+rs^K!9Kov)y3 z8cL3*(m7^OIUWoz-h=YwVug{R4bCwWhi_RTpG6R*Se;NPuF?I z?~el(ttL`(^iv7jxQ$O)J@jnU;m)|_J3jvH4YgE?o0Kz>y*$)F?`LjPQeZLq+k~rw zrz?^G*^=8a;aSY+e#-2vJes5HKW14u^IRM(LOM1kMknC&TXIecpeshR!ZIl>>HV=M zDql68s7hBHpXGA913KEK7v~1!4ZyaLGpKQU)X!&yeBE3hm6cg`3$%A{JkRMWVN>Kz zaa5&?(-@`Et*2LguD3PS*Y|^jx3!_6flS)_2y828x8JObmmlSecd6hdC`NAE|C0Xk z$)(c;w{PFJK**>$?dI;aCnuNm?+v7G7zm~loa^oQ~m5< zU6FT3zO1H~G@v0^+xsJ4g@I3Mg3(56tyv zdcJ*78E0zW$pw(z_gEqT)#Rd7${uODv$MHR-46JgkIhE%2rvr&cF-Sx2>Rr}ONKy; zU)SsHF+M{8di?e0??md#(()(98VzppdXTEsC+`qCeOkXaF_*82e$AkToQ-+Ya;ms z9-kTjtYtZ11&r~n_607@>)%&FP4&gU#5v^qd`H@qquBLHiUA3*yG2Ds%b(b-ezj3j z>2QifJYXO{GRm&1b0R}lK*)O7h=`p!^} z-oAfbsZTuLb?{&2>pD>NKE`+U(~r2})D=7ifu{WAyUy= z8R9^Fnxr{}E!n%~Kx@DMnQGyj0AL%GWx{_GUeF>PXaYU=9}RzYLPe~a!kd!};f1vk zRR_6tH_-V1YcN@1V3WwEi*qUVjiepT50*uqx!J87l{-O@kRJbCfNDL&L4`N@Hw4|> zt+%*xYbZ3>bcjC@mTdbvT3*WU+BS$gzFnqc>YLM!ros-!4jwKyO6SU7l(%4P9ltTZ z=ZRWM6y}P@Az$=4pU?*sB;1}uuzhGtv_ys_wya#$Fz;05~{v7a_% zj4P+2!H6flGQg3b+Cap|7r>Ven3c=5`xxYqfLkdj%toraFS4SeYHP1*_q@WTY58re ze+Q)D8Q@{5)-EnB4GpGzH{9`m$L#Yu{|#n?Ne7(!|DU1u445xnMK6{AuEGOSosnPp zcy8JfcymH)Z*zLOY){z6cK`@)+u2fnl{3_Z$*v-cr7hy(1Z!*1E5+;0BFDZ0dQlf} z!knoOH*(Nd-3f#g5GpOUVfdob(v#A4fT+HC^X9|bw=YT>toe?ujJM|%J$;(2si_&V z*d2&XRI*6#%SOfOc)Z%q*X8cIdUFYT^kHu9Wv5~WsMYly0NME>R)+odZ!5soj`UOn zrvRRQV8H$T`}Z2k%F%#;*WmN}NiMwTpNOPm&qauB+gA(Tw9q(w_=3H&pGbwv3G7#Z zW=*ZFqbQlPwQt{^>ETV>zm+!%z?clo&{Yu}Sn8}+xxO+1!d}Pzf{cS>?U&&lQqh}% lTDL{`Sh3p@@j`7ws6vJw;zLDGc{{p8d_BQ|k literal 11766 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 diff --git a/doc/serv_ctrl_int.png b/doc/serv_ctrl_int.png index 292145e8a19d88a819e3e9a0a2db4619e7ff898b..f017a6a58ddceb44e0a659c7cf2a9eba2fb748c1 100644 GIT binary patch literal 42052 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 diff --git a/rtl/serv_ctrl.v b/rtl/serv_ctrl.v index 826f0b2..5a5554e 100644 --- a/rtl/serv_ctrl.v +++ b/rtl/serv_ctrl.v @@ -4,32 +4,28 @@ module serv_ctrl parameter RESET_PC = 32'd0, parameter WITH_CSR = 1) ( - input wire clk, - input wire i_rst, + input wire clk, + input wire i_rst, //State - input wire i_pc_en, - input wire i_cnt12to31, - input wire i_cnt0, - input wire i_cnt2, - input wire i_cnt_done, + input wire i_pc_en, + input wire i_cnt12to31, + input wire i_cnt0, + input wire i_cnt2, + input wire i_cnt_done, //Control - input wire i_jump, - input wire i_jal_or_jalr, - input wire i_utype, - input wire i_pc_rel, - input wire i_trap, + input wire i_jump, + input wire i_jal_or_jalr, + input wire i_utype, + input wire i_pc_rel, + input wire i_trap, //Data - input wire i_imm, - input wire i_buf, - input wire i_csr_pc, - output wire o_rd, - output wire o_bad_pc, + input wire i_imm, + input wire i_buf, + input wire i_csr_pc, + output wire o_rd, + output wire o_bad_pc, //External - output reg [31:0] o_ibus_adr, - output wire o_ibus_cyc, - input wire i_ibus_ack); - - reg en_pc_r; + output reg [31:0] o_ibus_adr); wire pc_plus_4; wire pc_plus_4_cy; @@ -67,17 +63,12 @@ module serv_ctrl assign pc_plus_offset_aligned = pc_plus_offset & !i_cnt0; - assign o_ibus_cyc = en_pc_r & !i_pc_en; - initial if (RESET_STRATEGY == "NONE") o_ibus_adr = RESET_PC; always @(posedge clk) begin pc_plus_4_cy_r <= i_pc_en & pc_plus_4_cy; pc_plus_offset_cy_r <= i_pc_en & pc_plus_offset_cy; - if (i_ibus_ack | i_pc_en | i_rst) - en_pc_r <= i_pc_en | i_rst; - if (RESET_STRATEGY == "NONE") begin if (i_pc_en) o_ibus_adr <= {new_pc, o_ibus_adr[31:1]}; diff --git a/rtl/serv_state.v b/rtl/serv_state.v index 9701180..27ef1b0 100644 --- a/rtl/serv_state.v +++ b/rtl/serv_state.v @@ -8,6 +8,7 @@ module serv_state output wire o_trap_taken, output reg o_pending_irq, input wire i_dbus_ack, + output wire o_ibus_cyc, input wire i_ibus_ack, output wire o_rf_rreq, output wire o_rf_wreq, @@ -50,6 +51,7 @@ module serv_state reg [4:2] o_cnt; reg [3:0] o_cnt_r; + reg ibus_cyc; //Update PC in RUN or TRAP states assign o_ctrl_pc_en = o_cnt_en & !o_init; @@ -98,7 +100,22 @@ module serv_state initial if (RESET_STRATEGY == "NONE") o_cnt_r = 4'b0001; + + assign o_ibus_cyc = ibus_cyc & !i_rst; + always @(posedge i_clk) begin + //ibus_cyc changes on three conditions. + //1. i_rst is asserted. Together with the async gating above, o_ibus_cyc + // will be asserted as soon as the reset is released. This is how the + // first instruction is fetced + //2. o_cnt_done and o_ctrl_pc_en are asserted. This means that SERV just + // finished updating the PC, is done with the current instruction and + // o_ibus_cyc gets asserted to fetch a new instruction + //3. When i_ibus_ack, a new instruction is fetched and o_ibus_cyc gets + // deasserted to finish the transaction + if (i_ibus_ack | o_cnt_done | i_rst) + ibus_cyc <= o_ctrl_pc_en | i_rst; + if (o_cnt_done) o_ctrl_jump <= o_init & take_branch; diff --git a/rtl/serv_top.v b/rtl/serv_top.v index 0bb0f4e..c7fc54f 100644 --- a/rtl/serv_top.v +++ b/rtl/serv_top.v @@ -197,6 +197,7 @@ module serv_top //External .o_dbus_cyc (o_dbus_cyc), .i_dbus_ack (i_dbus_ack), + .o_ibus_cyc (o_ibus_cyc), .i_ibus_ack (i_ibus_ack), //RF Interface .o_rf_rreq (o_rf_rreq), @@ -322,10 +323,7 @@ module serv_top .o_rd (ctrl_rd), .o_bad_pc (bad_pc), //External - .o_ibus_adr (o_ibus_adr), - .o_ibus_cyc (o_ibus_cyc), - .i_ibus_ack (i_ibus_ack)); - + .o_ibus_adr (o_ibus_adr)); serv_alu alu (