diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-02 22:11:02 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-02 22:11:02 +0100 |
| commit | 5a76ab8976b63a7f27b244d31db0ee1ffdc53fde (patch) | |
| tree | 4c46aa478452cb707b22711517d93139879fd0ba | |
| parent | 4798a0ca3d2d63c451afac9d15bd0834ea83094e (diff) | |
[toolchain] rework some parts of the ISA (logisim)
also renamed newcpu.hpp to 64k.hpp
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
| -rw-r--r-- | C++Kit/AsmKit/Arch/64k.hpp (renamed from C++Kit/AsmKit/Arch/NewCPU.hpp) | 25 | ||||
| -rw-r--r-- | CompilerDriver/cc.cxx | 2 | ||||
| -rw-r--r-- | CompilerDriver/ccplus.cxx | 2 | ||||
| -rw-r--r-- | CompilerDriver/ld.cxx | 6 | ||||
| -rw-r--r-- | CompilerDriver/masm.cxx | 2 | ||||
| -rw-r--r-- | CompilerFrontend/cl/dparse.d | 21 | ||||
| -rw-r--r-- | PDF/README.txt | 2 | ||||
| -rw-r--r-- | PDF/X64000.circ | 692 |
8 files changed, 105 insertions, 647 deletions
diff --git a/C++Kit/AsmKit/Arch/NewCPU.hpp b/C++Kit/AsmKit/Arch/64k.hpp index 36dcbcc..4cd09d8 100644 --- a/C++Kit/AsmKit/Arch/NewCPU.hpp +++ b/C++Kit/AsmKit/Arch/64k.hpp @@ -11,9 +11,8 @@ #include <C++Kit/Defines.hpp> -// @brief NewCPU backend for C++ Kit a RISC architecture. -// It aims to be as simple as the Motorola 68k -// @file Arch/NewCPU.hpp +// @brief 64x0 support. +// @file Arch/64k.hpp #define kAsmOpcodeDecl(__NAME, __OPCODE, __FUNCT3, __FUNCT7) \ { .fName = __NAME, .fOpcode = __OPCODE, .fFunct3 = __FUNCT3, .fFunct7 = __FUNCT7 }, @@ -42,23 +41,23 @@ inline std::vector<NCOpcode> kOpcodesStd = { kAsmOpcodeDecl("jr", 0b1110011, 0b0001011, kAsmJump) // jump to register kAsmOpcodeDecl("jal", 0b1110011, 0b0000001, kAsmJump) kAsmOpcodeDecl("mv", 0b0100011, 0b101, kAsmRegToReg) - kAsmOpcodeDecl("psh", 0b1101011, 0b0, kAsmImmediate) // push to sp + kAsmOpcodeDecl("psh", 0b0111011, 0b0, kAsmImmediate) // push to sp kAsmOpcodeDecl("pop", 0b0111011, 0b1, kAsmImmediate) // pop from sp. - kAsmOpcodeDecl("bg", 0b1100011, 0b111, kAsmRegToReg) - kAsmOpcodeDecl("bl", 0b1101011, 0b011, kAsmRegToReg) - kAsmOpcodeDecl("beq", 0b1101011, 0b000, kAsmRegToReg) + kAsmOpcodeDecl("bg", 0b1100111, 0b111, kAsmRegToReg) + kAsmOpcodeDecl("bl", 0b1100111, 0b011, kAsmRegToReg) + kAsmOpcodeDecl("beq", 0b1100111, 0b000, kAsmRegToReg) kAsmOpcodeDecl("bne", 0b1100111, 0b001, kAsmRegToReg) - kAsmOpcodeDecl("bge", 0b1100011, 0b101, kAsmRegToReg) - kAsmOpcodeDecl("ble", 0b1111011, 0b100, kAsmRegToReg) - kAsmOpcodeDecl("stw", 0b1100011, 0b100, kAsmImmediate) - kAsmOpcodeDecl("ldw", 0b1010011, 0b100, kAsmImmediate) + kAsmOpcodeDecl("bge", 0b1100111, 0b101, kAsmRegToReg) + kAsmOpcodeDecl("ble", 0b1100111, 0b100, kAsmRegToReg) + kAsmOpcodeDecl("stw", 0b0001111, 0b100, kAsmImmediate) + kAsmOpcodeDecl("ldw", 0b0001111, 0b100, kAsmImmediate) kAsmOpcodeDecl("lda", 0b0001111, 0b101, kAsmImmediate) - kAsmOpcodeDecl("sta", 0b0000111, 0b001, kAsmImmediate) + kAsmOpcodeDecl("sta", 0b0001111, 0b001, kAsmImmediate) kAsmOpcodeDecl("add", 0b0101011, 0b100, kAsmImmediate) kAsmOpcodeDecl("dec", 0b0101011, 0b101, kAsmImmediate) kAsmOpcodeDecl("scall", 0b1110011, 0b00, kAsmSyscall) kAsmOpcodeDecl("sbreak", 0b1110011, 0b01, kAsmSyscall) - kAsmOpcodeDecl("mh", 0b1110011, 0b011111, kAsmJump) + kAsmOpcodeDecl("mh", 0b1110011, 0b1111111, kAsmJump) }; // \brief NewCPU register prefix diff --git a/CompilerDriver/cc.cxx b/CompilerDriver/cc.cxx index 8fc35e6..66a8294 100644 --- a/CompilerDriver/cc.cxx +++ b/CompilerDriver/cc.cxx @@ -13,7 +13,7 @@ #include <fstream> #include <iostream> #include <uuid/uuid.h> -#include <C++Kit/AsmKit/Arch/NewCPU.hpp> +#include <C++Kit/AsmKit/Arch/64k.hpp> #include <C++Kit/ParserKit.hpp> #define kOk 0 diff --git a/CompilerDriver/ccplus.cxx b/CompilerDriver/ccplus.cxx index a6bd950..e028326 100644 --- a/CompilerDriver/ccplus.cxx +++ b/CompilerDriver/ccplus.cxx @@ -14,7 +14,7 @@ #include <iostream> #include <stack> #include <utility> -#include <C++Kit/AsmKit/Arch/NewCPU.hpp> +#include <C++Kit/AsmKit/Arch/64k.hpp> #include <C++Kit/ParserKit.hpp> #define kOk 0 diff --git a/CompilerDriver/ld.cxx b/CompilerDriver/ld.cxx index a74e62e..664803d 100644 --- a/CompilerDriver/ld.cxx +++ b/CompilerDriver/ld.cxx @@ -259,7 +259,7 @@ int main(int argc, char** argv) std::size_t cnt = ae_header.fCount; if (kVerbose) - kStdOut << "ld: AE: header found, record count: " << cnt << "\n"; + kStdOut << "ld: object header found, record count: " << cnt << "\n"; pef_container.Count = cnt; @@ -308,7 +308,7 @@ ld_mark_header: command_header.Size = ae_records[ae_record_index].fSize; if (kVerbose) - kStdOut << "ld: AE: record: " << ae_records[ae_record_index].fName << " was marked.\n"; + kStdOut << "ld: object record: " << ae_records[ae_record_index].fName << " was marked.\n"; pef_command_hdrs.emplace_back(command_header); } @@ -582,4 +582,4 @@ ld_continue_search: return 0; } -// Last rev 28-12-23
\ No newline at end of file +// Last rev 2-1-23
\ No newline at end of file diff --git a/CompilerDriver/masm.cxx b/CompilerDriver/masm.cxx index c7662a9..ed15bf3 100644 --- a/CompilerDriver/masm.cxx +++ b/CompilerDriver/masm.cxx @@ -18,7 +18,7 @@ ///////////////////////////////////////////////////////////////////////////////////////// -#include <C++Kit/AsmKit/Arch/NewCPU.hpp> +#include <C++Kit/AsmKit/Arch/64k.hpp> #include <C++Kit/ParserKit.hpp> #include <C++Kit/StdKit/PEF.hpp> #include <C++Kit/StdKit/AE.hpp> diff --git a/CompilerFrontend/cl/dparse.d b/CompilerFrontend/cl/dparse.d deleted file mode 100644 index b6537ec..0000000 --- a/CompilerFrontend/cl/dparse.d +++ /dev/null @@ -1,21 +0,0 @@ - -/* - * ======================================================== - * - * MP-UX C Compiler - * Copyright WestCo, all rights reserved. - * - * ======================================================== - */ - -module cl.dparse; - -//Parse D syntax, from a line to AST. - -struct ast_type -{ - string p_keyword; - ast_type* p_prev; - ast_type* p_next; -} - diff --git a/PDF/README.txt b/PDF/README.txt new file mode 100644 index 0000000..7cfec4b --- /dev/null +++ b/PDF/README.txt @@ -0,0 +1,2 @@ +The X64000 draft papers +They contain thing that might appear through the next iteration of 64k.
\ No newline at end of file diff --git a/PDF/X64000.circ b/PDF/X64000.circ index b23336d..8c3d7ec 100644 --- a/PDF/X64000.circ +++ b/PDF/X64000.circ @@ -90,9 +90,6 @@ <a name="width" val="16"/> </comp> <comp lib="1" loc="(450,480)" name="AND Gate"/> - <comp lib="8" loc="(195,90)" name="Text"> - <a name="text" val="32k reset line"/> - </comp> <wire from="(320,380)" to="(320,410)"/> <wire from="(320,410)" to="(360,410)"/> <wire from="(350,590)" to="(500,590)"/> @@ -587,631 +584,112 @@ <wire from="(930,460)" to="(930,530)"/> <wire from="(930,570)" to="(930,640)"/> </circuit> - <circuit name="XIC"> - <a name="appearance" val="logisim_evolution"/> - <a name="circuit" val="XIC"/> + <circuit name="X1101"> + <a name="circuit" val="X1101"/> <a name="circuitnamedboxfixedsize" val="true"/> <a name="simulationFrequency" val="1.0"/> - <comp lib="0" loc="(1070,1260)" name="Pin"> + <comp lib="0" loc="(1090,1240)" name="Pull Resistor"/> + <comp lib="0" loc="(1100,1020)" name="Pin"> <a name="appearance" val="classic"/> - <a name="label" val="A16HL"/> - <a name="output" val="true"/> - <a name="tristate" val="true"/> - <a name="width" val="16"/> + <a name="label" val="B"/> </comp> - <comp lib="0" loc="(110,710)" name="Constant"> - <a name="facing" val="north"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(1150,1050)" name="Splitter"> - <a name="facing" val="north"/> - <a name="fanout" val="16"/> - <a name="incoming" val="16"/> - </comp> - <comp lib="0" loc="(1160,1130)" name="Splitter"> - <a name="bit1" val="0"/> - <a name="bit10" val="0"/> - <a name="bit11" val="0"/> - <a name="bit12" val="0"/> - <a name="bit13" val="0"/> - <a name="bit14" val="0"/> - <a name="bit15" val="0"/> - <a name="bit16" val="1"/> - <a name="bit17" val="1"/> - <a name="bit18" val="1"/> - <a name="bit19" val="1"/> - <a name="bit2" val="0"/> - <a name="bit20" val="1"/> - <a name="bit21" val="1"/> - <a name="bit22" val="1"/> - <a name="bit23" val="1"/> - <a name="bit24" val="1"/> - <a name="bit25" val="1"/> - <a name="bit26" val="1"/> - <a name="bit27" val="1"/> - <a name="bit28" val="1"/> - <a name="bit29" val="1"/> - <a name="bit3" val="0"/> - <a name="bit30" val="1"/> - <a name="bit31" val="1"/> - <a name="bit4" val="0"/> - <a name="bit5" val="0"/> - <a name="bit6" val="0"/> - <a name="bit7" val="0"/> - <a name="bit8" val="0"/> - <a name="bit9" val="0"/> - <a name="facing" val="north"/> - <a name="incoming" val="32"/> + <comp lib="0" loc="(1100,1070)" name="Pin"> + <a name="appearance" val="classic"/> + <a name="label" val="B1"/> </comp> - <comp lib="0" loc="(1280,1240)" name="Pin"> + <comp lib="0" loc="(1100,970)" name="Pin"> <a name="appearance" val="classic"/> - <a name="label" val="A16H"/> - <a name="output" val="true"/> - <a name="tristate" val="true"/> - <a name="width" val="16"/> + <a name="label" val="A"/> </comp> - <comp lib="0" loc="(1310,1030)" name="Splitter"> - <a name="facing" val="north"/> - <a name="fanout" val="16"/> - <a name="incoming" val="16"/> + <comp lib="0" loc="(1100,990)" name="Pin"> + <a name="appearance" val="classic"/> + <a name="label" val="A1"/> </comp> - <comp lib="0" loc="(1370,1280)" name="Pin"> + <comp lib="0" loc="(1150,1360)" name="Pin"> <a name="appearance" val="classic"/> - <a name="label" val="A16L"/> + <a name="label" val="Q"/> <a name="output" val="true"/> - <a name="tristate" val="true"/> - <a name="width" val="16"/> - </comp> - <comp lib="0" loc="(140,790)" name="Pull Resistor"> - <a name="facing" val="north"/> </comp> - <comp lib="0" loc="(1470,1010)" name="Splitter"> - <a name="facing" val="north"/> - <a name="fanout" val="16"/> - <a name="incoming" val="16"/> - </comp> - <comp lib="0" loc="(1480,1080)" name="Splitter"> - <a name="bit1" val="0"/> - <a name="bit10" val="0"/> - <a name="bit11" val="0"/> - <a name="bit12" val="0"/> - <a name="bit13" val="0"/> - <a name="bit14" val="0"/> - <a name="bit15" val="0"/> - <a name="bit16" val="1"/> - <a name="bit17" val="1"/> - <a name="bit18" val="1"/> - <a name="bit19" val="1"/> - <a name="bit2" val="0"/> - <a name="bit20" val="1"/> - <a name="bit21" val="1"/> - <a name="bit22" val="1"/> - <a name="bit23" val="1"/> - <a name="bit24" val="1"/> - <a name="bit25" val="1"/> - <a name="bit26" val="1"/> - <a name="bit27" val="1"/> - <a name="bit28" val="1"/> - <a name="bit29" val="1"/> - <a name="bit3" val="0"/> - <a name="bit30" val="1"/> - <a name="bit31" val="1"/> - <a name="bit4" val="0"/> - <a name="bit5" val="0"/> - <a name="bit6" val="0"/> - <a name="bit7" val="0"/> - <a name="bit8" val="0"/> - <a name="bit9" val="0"/> - <a name="facing" val="north"/> - <a name="incoming" val="32"/> - </comp> - <comp lib="0" loc="(1490,1200)" name="Splitter"> - <a name="bit1" val="0"/> - <a name="bit10" val="0"/> - <a name="bit11" val="0"/> - <a name="bit12" val="0"/> - <a name="bit13" val="0"/> - <a name="bit14" val="0"/> - <a name="bit15" val="0"/> - <a name="bit16" val="0"/> - <a name="bit17" val="0"/> - <a name="bit18" val="0"/> - <a name="bit19" val="0"/> - <a name="bit2" val="0"/> - <a name="bit20" val="0"/> - <a name="bit21" val="0"/> - <a name="bit22" val="0"/> - <a name="bit23" val="0"/> - <a name="bit24" val="0"/> - <a name="bit25" val="0"/> - <a name="bit26" val="0"/> - <a name="bit27" val="0"/> - <a name="bit28" val="0"/> - <a name="bit29" val="0"/> - <a name="bit3" val="0"/> - <a name="bit30" val="0"/> - <a name="bit31" val="0"/> - <a name="bit32" val="1"/> - <a name="bit33" val="1"/> - <a name="bit34" val="1"/> - <a name="bit35" val="1"/> - <a name="bit36" val="1"/> - <a name="bit37" val="1"/> - <a name="bit38" val="1"/> - <a name="bit39" val="1"/> - <a name="bit4" val="0"/> - <a name="bit40" val="1"/> - <a name="bit41" val="1"/> - <a name="bit42" val="1"/> - <a name="bit43" val="1"/> - <a name="bit44" val="1"/> - <a name="bit45" val="1"/> - <a name="bit46" val="1"/> - <a name="bit47" val="1"/> - <a name="bit48" val="1"/> - <a name="bit49" val="1"/> - <a name="bit5" val="0"/> - <a name="bit50" val="1"/> - <a name="bit51" val="1"/> - <a name="bit52" val="1"/> - <a name="bit53" val="1"/> - <a name="bit54" val="1"/> - <a name="bit55" val="1"/> - <a name="bit56" val="1"/> - <a name="bit57" val="1"/> - <a name="bit58" val="1"/> - <a name="bit59" val="1"/> - <a name="bit6" val="0"/> - <a name="bit60" val="1"/> - <a name="bit61" val="1"/> - <a name="bit62" val="1"/> - <a name="bit63" val="1"/> - <a name="bit7" val="0"/> - <a name="bit8" val="0"/> - <a name="bit9" val="0"/> - <a name="facing" val="north"/> - <a name="incoming" val="64"/> - </comp> - <comp lib="0" loc="(1490,1240)" name="Tunnel"> - <a name="facing" val="north"/> - <a name="label" val="RegIn"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(190,210)" name="Constant"> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(190,320)" name="Constant"> - <a name="value" val="0x2"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(190,430)" name="Constant"> - <a name="value" val="0x4"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(190,90)" name="Constant"> - <a name="value" val="0x3"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(210,970)" name="Constant"> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(280,530)" name="Splitter"> - <a name="bit1" val="0"/> - <a name="bit10" val="0"/> - <a name="bit11" val="0"/> - <a name="bit12" val="0"/> - <a name="bit13" val="0"/> - <a name="bit14" val="0"/> - <a name="bit15" val="0"/> - <a name="bit16" val="0"/> - <a name="bit17" val="0"/> - <a name="bit18" val="0"/> - <a name="bit19" val="0"/> - <a name="bit2" val="0"/> - <a name="bit20" val="0"/> - <a name="bit21" val="0"/> - <a name="bit22" val="0"/> - <a name="bit23" val="0"/> - <a name="bit24" val="0"/> - <a name="bit25" val="0"/> - <a name="bit26" val="0"/> - <a name="bit27" val="0"/> - <a name="bit28" val="0"/> - <a name="bit29" val="0"/> - <a name="bit3" val="0"/> - <a name="bit30" val="0"/> - <a name="bit31" val="0"/> - <a name="bit32" val="1"/> - <a name="bit33" val="1"/> - <a name="bit34" val="1"/> - <a name="bit35" val="1"/> - <a name="bit36" val="1"/> - <a name="bit37" val="1"/> - <a name="bit38" val="1"/> - <a name="bit39" val="1"/> - <a name="bit4" val="0"/> - <a name="bit40" val="1"/> - <a name="bit41" val="1"/> - <a name="bit42" val="1"/> - <a name="bit43" val="1"/> - <a name="bit44" val="1"/> - <a name="bit45" val="1"/> - <a name="bit46" val="1"/> - <a name="bit47" val="1"/> - <a name="bit48" val="1"/> - <a name="bit49" val="1"/> - <a name="bit5" val="0"/> - <a name="bit50" val="1"/> - <a name="bit51" val="1"/> - <a name="bit52" val="1"/> - <a name="bit53" val="1"/> - <a name="bit54" val="1"/> - <a name="bit55" val="1"/> - <a name="bit56" val="1"/> - <a name="bit57" val="1"/> - <a name="bit58" val="1"/> - <a name="bit59" val="1"/> - <a name="bit6" val="0"/> - <a name="bit60" val="1"/> - <a name="bit61" val="1"/> - <a name="bit62" val="1"/> - <a name="bit63" val="1"/> - <a name="bit7" val="0"/> - <a name="bit8" val="0"/> - <a name="bit9" val="0"/> + <comp lib="0" loc="(1210,1040)" name="Pull Resistor"/> + <comp lib="0" loc="(1230,1320)" name="Pull Resistor"/> + <comp lib="0" loc="(1240,1040)" name="Pull Resistor"/> + <comp lib="0" loc="(1250,1210)" name="Pull Resistor"/> + <comp lib="0" loc="(1270,1040)" name="Pull Resistor"/> + <comp lib="0" loc="(1300,1040)" name="Pull Resistor"/> + <comp lib="1" loc="(1150,1250)" name="AND Gate"> <a name="facing" val="south"/> - <a name="incoming" val="64"/> + <a name="size" val="30"/> </comp> - <comp lib="0" loc="(30,640)" name="Constant"> - <a name="facing" val="north"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(300,550)" name="Splitter"> - <a name="bit1" val="0"/> - <a name="bit10" val="0"/> - <a name="bit11" val="0"/> - <a name="bit12" val="0"/> - <a name="bit13" val="0"/> - <a name="bit14" val="0"/> - <a name="bit15" val="0"/> - <a name="bit16" val="1"/> - <a name="bit17" val="1"/> - <a name="bit18" val="1"/> - <a name="bit19" val="1"/> - <a name="bit2" val="0"/> - <a name="bit20" val="1"/> - <a name="bit21" val="1"/> - <a name="bit22" val="1"/> - <a name="bit23" val="1"/> - <a name="bit24" val="1"/> - <a name="bit25" val="1"/> - <a name="bit26" val="1"/> - <a name="bit27" val="1"/> - <a name="bit28" val="1"/> - <a name="bit29" val="1"/> - <a name="bit3" val="0"/> - <a name="bit30" val="1"/> - <a name="bit31" val="1"/> - <a name="bit4" val="0"/> - <a name="bit5" val="0"/> - <a name="bit6" val="0"/> - <a name="bit7" val="0"/> - <a name="bit8" val="0"/> - <a name="bit9" val="0"/> + <comp lib="1" loc="(1170,1310)" name="AND Gate"> <a name="facing" val="south"/> - <a name="incoming" val="32"/> - </comp> - <comp lib="0" loc="(510,880)" name="Clock"/> - <comp lib="0" loc="(520,750)" name="Constant"> - <a name="facing" val="north"/> - <a name="value" val="0x5"/> - <a name="width" val="3"/> + <a name="size" val="30"/> </comp> - <comp lib="0" loc="(540,800)" name="Constant"> - <a name="facing" val="north"/> - <a name="value" val="0x5"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(600,190)" name="Tunnel"> - <a name="label" val="RO1"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(600,300)" name="Tunnel"> - <a name="label" val="RO2"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(600,410)" name="Tunnel"> - <a name="label" val="RO3"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(600,70)" name="Tunnel"> - <a name="label" val="RO1"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(80,130)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="RegId"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(80,190)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="RegIn"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(80,230)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="RegId"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(80,300)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="RegIn"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(80,340)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="RegId"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(80,410)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="RegIn"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(80,450)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="RegId"/> - <a name="width" val="3"/> - </comp> - <comp lib="0" loc="(80,70)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="RegIn"/> - <a name="width" val="64"/> - </comp> - <comp lib="0" loc="(820,940)" name="Splitter"> + <comp lib="1" loc="(1180,1200)" name="AND Gate"> <a name="facing" val="south"/> - <a name="fanout" val="64"/> - <a name="incoming" val="64"/> + <a name="size" val="30"/> + </comp> + <wire from="(1090,1240)" to="(1090,1270)"/> + <wire from="(1090,1270)" to="(1150,1270)"/> + <wire from="(1100,1020)" to="(1140,1020)"/> + <wire from="(1100,1070)" to="(1160,1070)"/> + <wire from="(1100,970)" to="(1190,970)"/> + <wire from="(1100,990)" to="(1170,990)"/> + <wire from="(1140,1020)" to="(1140,1130)"/> + <wire from="(1140,1130)" to="(1140,1220)"/> + <wire from="(1140,1130)" to="(1300,1130)"/> + <wire from="(1150,1250)" to="(1150,1270)"/> + <wire from="(1150,1270)" to="(1160,1270)"/> + <wire from="(1150,1360)" to="(1170,1360)"/> + <wire from="(1160,1070)" to="(1160,1090)"/> + <wire from="(1160,1090)" to="(1160,1220)"/> + <wire from="(1160,1090)" to="(1270,1090)"/> + <wire from="(1160,1270)" to="(1160,1280)"/> + <wire from="(1170,1040)" to="(1170,1170)"/> + <wire from="(1170,1040)" to="(1210,1040)"/> + <wire from="(1170,1310)" to="(1170,1340)"/> + <wire from="(1170,1340)" to="(1170,1360)"/> + <wire from="(1170,1340)" to="(1230,1340)"/> + <wire from="(1170,990)" to="(1170,1040)"/> + <wire from="(1180,1200)" to="(1180,1250)"/> + <wire from="(1180,1250)" to="(1180,1280)"/> + <wire from="(1180,1250)" to="(1250,1250)"/> + <wire from="(1190,1060)" to="(1190,1170)"/> + <wire from="(1190,1060)" to="(1240,1060)"/> + <wire from="(1190,970)" to="(1190,1060)"/> + <wire from="(1230,1320)" to="(1230,1340)"/> + <wire from="(1240,1040)" to="(1240,1060)"/> + <wire from="(1250,1210)" to="(1250,1250)"/> + <wire from="(1270,1040)" to="(1270,1090)"/> + <wire from="(1300,1040)" to="(1300,1130)"/> + </circuit> + <circuit name="X1110"> + <a name="circuit" val="X1110"/> + <a name="circuitnamedboxfixedsize" val="true"/> + <a name="simulationFrequency" val="1.0"/> + <comp lib="0" loc="(350,350)" name="Pin"> + <a name="appearance" val="classic"/> + <a name="label" val="IssueReset"/> </comp> - <comp lib="0" loc="(870,1200)" name="Pin"> + <comp lib="0" loc="(770,350)" name="Bit Extender"> + <a name="in_width" val="16"/> + <a name="out_width" val="64"/> + </comp> + <comp lib="0" loc="(940,450)" name="Pin"> <a name="appearance" val="classic"/> - <a name="label" val="A16HH"/> + <a name="facing" val="west"/> + <a name="label" val="ResetLow"/> <a name="output" val="true"/> - <a name="tristate" val="true"/> - <a name="width" val="16"/> - </comp> - <comp lib="0" loc="(990,1110)" name="Splitter"> - <a name="facing" val="north"/> - <a name="fanout" val="16"/> - <a name="incoming" val="16"/> + <a name="width" val="64"/> </comp> - <comp lib="3" loc="(230,860)" name="Adder"> + <comp lib="1" loc="(890,350)" name="NOT Gate"> <a name="width" val="64"/> </comp> - <comp lib="4" loc="(240,630)" name="ROM"> - <a name="addrWidth" val="16"/> - <a name="appearance" val="logisim_evolution"/> - <a name="contents">addr/data: 16 64 -8*0 1 1 1 5*0 16*1 -</a> - <a name="dataWidth" val="64"/> - </comp> - <comp lib="8" loc="(109,36)" name="Text"> - <a name="text" val="Data registers"/> - </comp> - <comp lib="8" loc="(1122,865)" name="Text"> - <a name="text" val="- each value must be 16-bit, otherwise UD"/> - </comp> - <comp lib="8" loc="(1134,840)" name="Text"> - <a name="text" val="- big endian"/> - </comp> - <comp lib="8" loc="(1508,982)" name="Text"> - <a name="text" val="32-bit low"/> - </comp> - <comp lib="8" loc="(797,167)" name="Text"> - <a name="text" val="so that we write pre-boot code"/> - </comp> - <comp lib="8" loc="(842,1146)" name="Text"> - <a name="text" val="32-bit high"/> - </comp> - <comp lib="8" loc="(952,919)" name="Text"> - <a name="text" val="this value is 64-bit wide"/> - </comp> - <comp lib="8" loc="(960,121)" name="Text"> - <a name="text" val="This chip has a builtin flashable rom"/> - </comp> - <comp loc="(280,520)" name="X64"> - <a name="label" val="R6"/> - </comp> - <comp loc="(490,190)" name="X64"> - <a name="label" val="R1"/> - </comp> - <comp loc="(490,300)" name="X64"> - <a name="label" val="R2"/> - </comp> - <comp loc="(490,410)" name="X64"> - <a name="label" val="R3"/> - </comp> - <comp loc="(490,70)" name="X64"> - <a name="label" val="R4"/> - </comp> - <comp loc="(760,690)" name="X64"> - <a name="label" val="R5"/> - </comp> - <wire from="(100,340)" to="(100,360)"/> - <wire from="(100,360)" to="(270,360)"/> - <wire from="(1000,1110)" to="(1000,1200)"/> - <wire from="(1000,1110)" to="(1140,1110)"/> - <wire from="(1000,960)" to="(1000,1030)"/> - <wire from="(1010,1060)" to="(1010,1200)"/> - <wire from="(1010,1060)" to="(1150,1060)"/> - <wire from="(1010,1200)" to="(1120,1200)"/> - <wire from="(1010,960)" to="(1010,1030)"/> - <wire from="(1020,960)" to="(1020,1030)"/> - <wire from="(1030,960)" to="(1030,1030)"/> - <wire from="(1040,960)" to="(1040,1030)"/> - <wire from="(1050,960)" to="(1050,1030)"/> - <wire from="(1060,960)" to="(1060,1030)"/> - <wire from="(1070,1260)" to="(1120,1260)"/> - <wire from="(1070,960)" to="(1070,1030)"/> - <wire from="(1080,960)" to="(1080,1030)"/> - <wire from="(1090,960)" to="(1090,1030)"/> - <wire from="(110,660)" to="(110,710)"/> - <wire from="(1100,960)" to="(1100,1030)"/> - <wire from="(1110,960)" to="(1110,1030)"/> - <wire from="(1120,1200)" to="(1120,1260)"/> - <wire from="(1120,960)" to="(1120,1030)"/> - <wire from="(1130,960)" to="(1130,1030)"/> - <wire from="(1140,960)" to="(1140,1030)"/> - <wire from="(1150,1050)" to="(1150,1060)"/> - <wire from="(1150,1060)" to="(1150,1110)"/> - <wire from="(1150,960)" to="(1150,1010)"/> - <wire from="(1160,1130)" to="(1160,1180)"/> - <wire from="(1160,1180)" to="(1470,1180)"/> - <wire from="(1160,960)" to="(1160,1010)"/> - <wire from="(1170,960)" to="(1170,1010)"/> - <wire from="(1180,960)" to="(1180,1010)"/> - <wire from="(1190,960)" to="(1190,1010)"/> - <wire from="(1200,960)" to="(1200,1010)"/> - <wire from="(1210,960)" to="(1210,1010)"/> - <wire from="(1220,960)" to="(1220,1010)"/> - <wire from="(1230,960)" to="(1230,1010)"/> - <wire from="(1240,960)" to="(1240,1010)"/> - <wire from="(1250,960)" to="(1250,1010)"/> - <wire from="(1260,960)" to="(1260,1010)"/> - <wire from="(1270,960)" to="(1270,1010)"/> - <wire from="(1280,1240)" to="(1310,1240)"/> - <wire from="(1280,960)" to="(1280,1010)"/> - <wire from="(1290,960)" to="(1290,1010)"/> - <wire from="(1300,960)" to="(1300,1010)"/> - <wire from="(1310,1030)" to="(1310,1060)"/> - <wire from="(1310,1060)" to="(1310,1240)"/> - <wire from="(1310,1060)" to="(1460,1060)"/> - <wire from="(1310,960)" to="(1310,990)"/> - <wire from="(1320,960)" to="(1320,990)"/> - <wire from="(1330,960)" to="(1330,990)"/> - <wire from="(1340,960)" to="(1340,990)"/> - <wire from="(1350,960)" to="(1350,990)"/> - <wire from="(1360,960)" to="(1360,990)"/> - <wire from="(1370,1280)" to="(1380,1280)"/> - <wire from="(1370,960)" to="(1370,990)"/> - <wire from="(1380,1030)" to="(1380,1280)"/> - <wire from="(1380,1030)" to="(1470,1030)"/> - <wire from="(1380,960)" to="(1380,990)"/> - <wire from="(1390,960)" to="(1390,990)"/> - <wire from="(140,780)" to="(140,790)"/> - <wire from="(140,780)" to="(300,780)"/> - <wire from="(1400,960)" to="(1400,990)"/> - <wire from="(1410,960)" to="(1410,990)"/> - <wire from="(1420,960)" to="(1420,990)"/> - <wire from="(1430,960)" to="(1430,990)"/> - <wire from="(1440,960)" to="(1440,990)"/> - <wire from="(1450,960)" to="(1450,990)"/> - <wire from="(1460,960)" to="(1460,990)"/> - <wire from="(1470,1010)" to="(1470,1030)"/> - <wire from="(1470,1030)" to="(1470,1060)"/> - <wire from="(1480,1080)" to="(1480,1180)"/> - <wire from="(1490,1200)" to="(1490,1240)"/> - <wire from="(160,870)" to="(160,940)"/> - <wire from="(160,870)" to="(190,870)"/> - <wire from="(160,940)" to="(220,940)"/> - <wire from="(170,640)" to="(170,670)"/> - <wire from="(170,670)" to="(490,670)"/> - <wire from="(190,210)" to="(270,210)"/> - <wire from="(190,320)" to="(270,320)"/> - <wire from="(190,430)" to="(270,430)"/> - <wire from="(190,90)" to="(270,90)"/> - <wire from="(20,520)" to="(20,740)"/> - <wire from="(20,520)" to="(60,520)"/> - <wire from="(20,740)" to="(240,740)"/> - <wire from="(210,970)" to="(220,970)"/> - <wire from="(220,940)" to="(220,970)"/> - <wire from="(230,450)" to="(230,480)"/> - <wire from="(230,450)" to="(270,450)"/> - <wire from="(230,480)" to="(520,480)"/> - <wire from="(230,620)" to="(230,640)"/> - <wire from="(230,620)" to="(320,620)"/> - <wire from="(230,640)" to="(240,640)"/> - <wire from="(230,860)" to="(240,860)"/> - <wire from="(240,740)" to="(240,860)"/> - <wire from="(250,110)" to="(250,230)"/> - <wire from="(250,110)" to="(270,110)"/> - <wire from="(250,230)" to="(250,340)"/> - <wire from="(250,230)" to="(270,230)"/> - <wire from="(250,340)" to="(250,390)"/> - <wire from="(250,340)" to="(270,340)"/> - <wire from="(250,390)" to="(520,390)"/> - <wire from="(280,520)" to="(280,530)"/> - <wire from="(280,520)" to="(350,520)"/> - <wire from="(290,550)" to="(290,560)"/> - <wire from="(30,540)" to="(30,640)"/> - <wire from="(30,540)" to="(60,540)"/> - <wire from="(300,600)" to="(300,780)"/> - <wire from="(300,600)" to="(350,600)"/> - <wire from="(310,570)" to="(310,580)"/> - <wire from="(320,570)" to="(320,620)"/> - <wire from="(350,520)" to="(350,600)"/> - <wire from="(350,600)" to="(350,610)"/> - <wire from="(40,580)" to="(40,660)"/> - <wire from="(40,580)" to="(60,580)"/> - <wire from="(40,660)" to="(110,660)"/> - <wire from="(480,690)" to="(540,690)"/> - <wire from="(490,190)" to="(600,190)"/> - <wire from="(490,300)" to="(600,300)"/> - <wire from="(490,410)" to="(600,410)"/> - <wire from="(490,650)" to="(490,670)"/> - <wire from="(490,650)" to="(520,650)"/> - <wire from="(490,670)" to="(510,670)"/> - <wire from="(490,70)" to="(600,70)"/> - <wire from="(50,560)" to="(50,640)"/> - <wire from="(50,560)" to="(60,560)"/> - <wire from="(50,640)" to="(170,640)"/> - <wire from="(510,670)" to="(510,840)"/> - <wire from="(510,840)" to="(530,840)"/> - <wire from="(510,880)" to="(530,880)"/> - <wire from="(520,390)" to="(520,480)"/> - <wire from="(520,480)" to="(520,650)"/> - <wire from="(520,710)" to="(520,750)"/> - <wire from="(520,710)" to="(540,710)"/> - <wire from="(530,730)" to="(530,840)"/> - <wire from="(530,730)" to="(540,730)"/> - <wire from="(530,840)" to="(530,880)"/> - <wire from="(540,750)" to="(540,800)"/> - <wire from="(760,690)" to="(820,690)"/> - <wire from="(80,130)" to="(270,130)"/> - <wire from="(80,190)" to="(270,190)"/> - <wire from="(80,230)" to="(90,230)"/> - <wire from="(80,300)" to="(270,300)"/> - <wire from="(80,340)" to="(100,340)"/> - <wire from="(80,410)" to="(270,410)"/> - <wire from="(80,450)" to="(90,450)"/> - <wire from="(80,70)" to="(270,70)"/> - <wire from="(820,690)" to="(820,940)"/> - <wire from="(830,960)" to="(830,1090)"/> - <wire from="(840,960)" to="(840,1090)"/> - <wire from="(850,960)" to="(850,1090)"/> - <wire from="(860,960)" to="(860,1090)"/> - <wire from="(870,1200)" to="(1000,1200)"/> - <wire from="(870,960)" to="(870,1090)"/> - <wire from="(880,960)" to="(880,1090)"/> - <wire from="(890,960)" to="(890,1090)"/> - <wire from="(90,230)" to="(90,250)"/> - <wire from="(90,250)" to="(270,250)"/> - <wire from="(90,450)" to="(90,470)"/> - <wire from="(90,470)" to="(270,470)"/> - <wire from="(90,780)" to="(140,780)"/> - <wire from="(90,780)" to="(90,850)"/> - <wire from="(90,850)" to="(190,850)"/> - <wire from="(900,960)" to="(900,1090)"/> - <wire from="(910,960)" to="(910,1090)"/> - <wire from="(920,960)" to="(920,1090)"/> - <wire from="(930,960)" to="(930,1090)"/> - <wire from="(940,960)" to="(940,1090)"/> - <wire from="(950,960)" to="(950,1090)"/> - <wire from="(960,960)" to="(960,1090)"/> - <wire from="(970,960)" to="(970,1090)"/> - <wire from="(980,960)" to="(980,1090)"/> - <wire from="(990,1110)" to="(1000,1110)"/> - <wire from="(990,960)" to="(990,1030)"/> + <comp loc="(620,350)" name="RST"/> + <wire from="(350,350)" to="(400,350)"/> + <wire from="(620,350)" to="(730,350)"/> + <wire from="(770,350)" to="(860,350)"/> + <wire from="(890,350)" to="(910,350)"/> + <wire from="(910,350)" to="(910,450)"/> + <wire from="(910,450)" to="(940,450)"/> </circuit> </project> |
