From c4bf02aeb0409b22d4c1e68db7484dafaf09bd4e Mon Sep 17 00:00:00 2001 From: Olof Kindgren Date: Thu, 10 Jun 2021 16:30:39 +0200 Subject: [PATCH] Add instruction life cycle flowchart to doc --- doc/index.rst | 8 +++++--- doc/life_cycle.png | Bin 0 -> 31391 bytes 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 doc/life_cycle.png diff --git a/doc/index.rst b/doc/index.rst index fb8c978..5912308 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -178,6 +178,10 @@ Instruction life cycle The life cycle of an instruction starts by the core issuing a request for a new instruction on the ibus and ends when the PC has been updated with the address of the next instruction. This section goes through what happens between those points for the various types of instructions. SERV distinguishes between two-stage and one-stage operations with the former category being all jump (branch), shift, slt and load/store instructions and the latter all other operations. In addition to this, exceptions are a special case. Only two-stage operations (jump, load/store) can cause an exception. Regardless of instruction type, they all start out the same way. +.. image:: life_cycle.png + +The bus requests begin by SERV raising o_ibus_cyc until the memory responds with an i_ibus_ack and presents the instruction on i_ibus_rdt. Upon seeing the ack, SERV will lower cyc to indicate the end of the bus cycle. + .. wavedrom:: { signal: [ @@ -198,11 +202,9 @@ The life cycle of an instruction starts by the core issuing a request for a new "a~>b","b~>c"] } -The bus requests begin by SERV raising o_ibus_cyc until the memory responds with an i_ibus_ack and presents the instruction on i_ibus_rdt. Upon seeing the ack, SERV will ower cyc to indicate the end of the bus cycle. - When the ack appears, two things happen in SERV. The relevant portions of the instruction such as opcode, funct3 and immediate value are saved in serv_decode and serv_immdec. The saved bits of the instruction is then decoded to create the internal control signals that corresponds to the current instruction. -The other thing to happen is that request to start accessing the register file is sent by strobing rf_rreq which prepares the register file for both read and write access. +The other thing to happen is that a request to start accessing the register file is sent by strobing rf_rreq which prepares the register file for both read and write access. .. wavedrom:: diff --git a/doc/life_cycle.png b/doc/life_cycle.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab3e9341abf0c8e837282cc460a222181e1b3a6 GIT binary patch literal 31391 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 k+ezn+a literal 0 HcmV?d00001