Fixes.
This commit is contained in:
		| @@ -512,7 +512,7 @@ has all the stages, but drive it with a state machine that executes one stage at | ||||
| instead of running them concurrently. Then we will see what needs to be modified when | ||||
| all the stages run concurrently. | ||||
|  | ||||
| Following all good books in processor design (Patterson, Harris...) we will start | ||||
| Following all good books in processor design (Patterson & Hennessy, Harris & Harris) we will start | ||||
| with a super classical design with 5 stages: | ||||
|  | ||||
| | acronym | long name            | description                           | | ||||
| @@ -612,7 +612,7 @@ Let us summarize the rules: | ||||
|    else is done to the result; | ||||
|  | ||||
| Or put differently: in state `B`, on the left of `<=` there can be only a `BC_`-prefixed | ||||
| register. On the right of `<=` or `=` there can be only a `BC_`-prefixed register, a `B_`-prefixed | ||||
| register. On the right of `<=` or `=` there can be only a `AB_`-prefixed register, a `B_`-prefixed | ||||
| wire or some combinations of these... | ||||
|  | ||||
| However, there are two **exceptions to the rules** (else it would be too simple !): | ||||
| @@ -1326,7 +1326,7 @@ pipeline. Can we blow less bubbles in there ? | ||||
|  | ||||
| ## Step 5: reading and writing the register file in the same cycle | ||||
|  | ||||
| If you read the good books on processor design (Patterson, Harris and Harris), they say that | ||||
| If you read the good books on processor design (Patterson and Hennessy, Harris and Harris), they say that | ||||
| the data written to the register file by `W` can be read by `D` *in the same cycle*, so why | ||||
| do we stall until the instruction leaves `W` ? | ||||
|  | ||||
| @@ -1378,7 +1378,7 @@ The source is in [pipeline5.v](pipeline5.v). | ||||
|  | ||||
| Let us see now how to "do it right", with a combinatorial access in the register file, | ||||
| so that we really can write the register file and read it in the same cycle, as described | ||||
| in the good books (Patterson, Harris & Harris): | ||||
| in the good books (Patterson & Hennessy, Harris & Harris): | ||||
|  | ||||
| ```verilog | ||||
|    reg [31:0] RegisterBank [0:31]; | ||||
| @@ -1531,7 +1531,7 @@ the ULX3S: | ||||
|   a combinatorial register file (emulated or real) where a written | ||||
|   value can be read in the same cycle (hence pipeline control logic | ||||
|   is simpler) | ||||
| - ... and finally it drops again when we add register forwaring logic. | ||||
| - ... and finally it drops again when we add register forwarding logic. | ||||
|  | ||||
| But we made no effort optimizing Fmax, our goal up to now was mainly to | ||||
| reduce CPI. Let us see what we can do now. | ||||
|   | ||||
| @@ -31,11 +31,14 @@ it from this repository when selected as the SoC's processor). | ||||
|  | ||||
| From Blinky to RISC-V | ||||
| --------------------- | ||||
| In [this tutorial](https://github.com/BrunoLevy/learn-fpga/blob/master/FemtoRV/TUTORIALS/FROM_BLINKER_TO_RISCV/README.md), | ||||
| In [Episode I](https://github.com/BrunoLevy/learn-fpga/blob/master/FemtoRV/TUTORIALS/FROM_BLINKER_TO_RISCV/README.md), | ||||
| you will learn to build your own RISC-V processor, step by step, | ||||
| starting from the simplest design (that blinks a LED), to a fully | ||||
| functional RISC-V core that can compute and display graphics. | ||||
|  | ||||
| In [Episode II](https://github.com/BrunoLevy/learn-fpga/blob/master/FemtoRV/TUTORIALS/FROM_BLINKER_TO_RISCV/PIPELINE.md), | ||||
| you will learn how to design a pipelined processor. | ||||
|  | ||||
| Basic: more basic things I wrote during May 2020 - June 2020   | ||||
| ------------------------------------------------------------ | ||||
| Files are [here](https://github.com/BrunoLevy/learn-fpga/tree/master/Basic). | ||||
|   | ||||
		Reference in New Issue
	
	Block a user