From b35bfa11524c08d6f0dc5d089ce8c51b068ccd0a Mon Sep 17 00:00:00 2001 From: Fischer Moseley <42497969+fischermoseley@users.noreply.github.com> Date: Sun, 14 Apr 2024 13:00:53 -0700 Subject: [PATCH] doc: fix typo and migrate read timing diagram --- doc/architecture.md | 5 ++--- doc/assets/read_transaction.json5 | 26 ++++++++++++++++++++++++++ doc/assets/read_transaction.png | Bin 28645 -> 0 bytes 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 doc/assets/read_transaction.json5 delete mode 100644 doc/assets/read_transaction.png diff --git a/doc/architecture.md b/doc/architecture.md index c0c3da8..0cbe59a 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -28,9 +28,8 @@ The data bus is designed for simplicity, and consists of five signals used to pe Each core has a bus input and output port, so that cores can be daisy-chained together. When it receives an incoming bus transaction (signalled by `valid`), the core checks the address on the wire against its own memory space. If the address lies within the core, the core will perform the requested operation against its own memory space. In the case of a read, it places the data at that address on `data`, and in the case of a write, it copies the value of `data` to the specified location in memory. However, if the address lies outside of the memory of the core, then no operations are performed. -![](assets/read_transaction.png){:style="width:49%"} - -![Write Transaction](https://svg.wavedrom.com/github/fmoseley/manta/render_wavedrom_directly/doc/assets/write_transaction.json5){:style="width:49%"} +![Read Transaction](https://svg.wavedrom.com/github/fischermoseley/manta/render_wavedrom_directly/doc/assets/read_transaction.json5){:style="width:49%"} +![Write Transaction](https://svg.wavedrom.com/github/fischermoseley/manta/render_wavedrom_directly/doc/assets/write_transaction.json5){:style="width:49%"} ## Message Format diff --git a/doc/assets/read_transaction.json5 b/doc/assets/read_transaction.json5 new file mode 100644 index 0000000..33e609b --- /dev/null +++ b/doc/assets/read_transaction.json5 @@ -0,0 +1,26 @@ +{ + signal: [ + {name: 'clk', wave: 'p...|....'}, + {}, + ['input port', + {name: 'addr', wave: 'x3x.|....', data: ['A0']}, + {name: 'data', wave: 'xxx.|....', data: ["D0"]}, + {name: 'rw', wave: 'x0x.|....'}, + {name: 'valid', wave: '010.|....'}, + ], + + {}, {}, + + ['output port', + {name: 'addr', wave: 'x...|.3x.', data: ['A0']}, + {name: 'data', wave: 'x...|.8x.', data: ['D0']}, + {name: 'rw', wave: 'x...|.0x.'}, + {name: 'valid', wave: '0...|.10.'}, + ], + + {}, {}, + + ], + head: {text: 'Read Transaction'}, + config: {hscale: 1} +} diff --git a/doc/assets/read_transaction.png b/doc/assets/read_transaction.png deleted file mode 100644 index 113302e50199698c127f33b8393d49e6289a132d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28645 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 z 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