From aa8bc096788412e4b019598046cc3d2547179d93 Mon Sep 17 00:00:00 2001 From: tobias Date: Sun, 10 May 2026 14:42:23 +0200 Subject: [PATCH] Design PC, add Readme --- README.md | 16 ++++ assets/architecture.png | Bin 0 -> 20245 bytes circuit.circ | 160 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 README.md create mode 100644 assets/architecture.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..de34934 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# TTL Calculator + +## Architecture + +![](assets/architecture.png) + +## Specs + +- 8 Bit +- Commands: + - LOAD + - ADD + - SUB + - STL + - OUT + - HLT diff --git a/assets/architecture.png b/assets/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..b9c653ff6226cc37bf0768dd62028eb8b8616f0d GIT binary patch literal 20245 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 + + + @@ -12,7 +15,17 @@ - + + + + + + + + + + + @@ -56,5 +69,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +