From e3079eacbe0d07725d529632ad8c03b8e9fc77f4 Mon Sep 17 00:00:00 2001 From: Marno van der Maas Date: Fri, 8 Nov 2024 14:44:31 +0000 Subject: [PATCH] Block diagram: fixes and improved looks - Move background to its own layer - Make font sizes consistent - Fix icache and pc background Previously the background was morphed around the text, this makes it a background again. - Remove redundant rectangle The instruction memory interface had two rectangles, one black and one purple. I removed the purple one that was bleeding through in the corners. - Instruction fetch alignment The Instruction fetch block was not the same height and was not top aligned with the other blocks. - Align text with boxes This essentially aligns all the text insides the blocks - Standardize lines as 0.265mm The lines between blocks and the ones making the triangular shapes were mostly 0.265mm with a few exceptions. - Stroke width of block outlines same Made all the stroke widths for all the blocks 0.5mm. I've made the outer box a nice round 1.0mm. - Use lowRISC colors E0384F for the background (including the start of the gradient) A21F4F for the outside line - Alignment of in/out arrows Many of these arrows were not aligned, this improves that alignment. - Add white background to instr inf Instruction memory interface lost its white background when the purple outline was removed. This commits adds it back in. - Use Liberation Sans everywhere Exo 2 is not supported natively in browsers and there was no easy way to embed fonts in SVG where Inkscape knew about it. - Fade to white, not transparent - PMP check font is now smaller - Add background to debug request input - Make text under prefetcher bigger so it is rendered on GitHub - Execute text is now its own block so that it is rendered on GitHub --- doc/03_reference/images/blockdiagram.svg | 726 +++++++++++------------ 1 file changed, 338 insertions(+), 388 deletions(-) diff --git a/doc/03_reference/images/blockdiagram.svg b/doc/03_reference/images/blockdiagram.svg index 16924ccffd..434212afeb 100644 --- a/doc/03_reference/images/blockdiagram.svg +++ b/doc/03_reference/images/blockdiagram.svg @@ -7,7 +7,7 @@ viewBox="0 0 278.31393 171.93503" version="1.1" id="svg8" - inkscape:version="1.2.2 (732a01da63, 2022-12-09, custom)" + inkscape:version="1.4 (1:1.4+202410161351+e7c3feb100)" sodipodi:docname="blockdiagram.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" @@ -170,11 +170,11 @@ + style="stop-color:#e0384f;stop-opacity:1;" /> + style="stop-color:#ffffff;stop-opacity:1;" /> + originy="-7.6729128" + spacingy="1" + spacingx="1" + units="mm" /> @@ -219,10 +222,72 @@ image/svg+xml - + + + Ibex Core + + + Optional feature + + - - Ibex Core - - + transform="translate(4.9999998e-7)" /> + style="fill:#e0384f;fill-opacity:1"> + style="fill:#e0384f;fill-opacity:1"> PMP Check + x="95.049042" + y="-78.270035" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:0.264583">PMP Check Data Memory Interface - + x="208.96339" + y="-174.18018" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;stroke-width:0.264583">Data Memory Interface + y="152.24498" /> + + + PC + + @@ -372,7 +428,7 @@ height="59.391598" width="12.959267" id="rect1153" - style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.659176;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" ry="2.1321681" /> - ICache PrefetchPrefetchBuffer + Buffer + x="-29.435354" + y="196.35132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;stroke-width:0.264583" + id="tspan1190-5">ICache - Configuration chooses ICache or Prefetch Buffer - - - PC - - - Execute - + transform="translate(-58.421206,77.46063)" + style="fill:#e0384f;fill-opacity:1"> + style="fill:#e0384f;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;stroke-opacity:1" /> PMP Check ImmImmRegPCFwd LSU @@ -622,39 +619,40 @@ Writeback + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;stroke-width:0.264583">Writeback Instruction Fetch + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;stroke-width:0.264583">Instruction Fetch Decode and Execute + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;stroke-width:0.264583">Decode and Execute + transform="translate(-79.323437,93.33562)" + style="fill:#ffffff;fill-opacity:1"> + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> Instruction Memory Interface @@ -691,34 +689,16 @@ rx="1.6447315" /> Register File - - Optional feature @@ -741,22 +721,22 @@ sodipodi:nodetypes="ccccccc" inkscape:connector-curvature="0" id="path1305-5-0-2-3-3" - d="m -40.429528,221.00229 1.322922,-1.32291 -1.322922,-1.32292 h -1.32292 l -1.322908,1.32292 1.322908,1.32291 z" + d="m -40.583836,221.00229 1.322922,-1.32291 -1.322922,-1.32292 h -1.32292 l -1.322908,1.32292 1.322908,1.32291 z" style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> @@ -945,7 +925,7 @@ @@ -997,62 +977,37 @@ - - - - - - - - - ALU + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;stroke-width:0.264583">ALU + style="fill:#e0384f;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;stroke-opacity:1" /> Mult/Div + x="62.986069" + y="252.99501" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;stroke-width:0.264583">Mul/Div + @@ -1218,22 +1161,22 @@ id="text10113" /> debug_req_i + x="-84.083794" + y="147.39972" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;stroke-width:0.264583px">debug_req_i @@ -1249,14 +1192,14 @@ CSRs + x="52.964939" + y="213.9061" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';stroke-width:0.264583">CSRs - Decoder + x="42.79118" + y="195.0114" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';stroke-width:0.264583">Decoder + Execute + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" /> + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" /> + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" /> + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" /> Compressed InstructionCompressedDecoder + x="-20.243507" + y="256.28146" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93889px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;stroke-width:0.264583" + id="tspan1320">Instruction Decoder Controller - - - - + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';stroke-width:0.264583">Controller + + + Configuration choosesICache or Prefetch Buffer