diff --git a/Documents/Computer diagram.svg b/Documents/Computer diagram.svg new file mode 100644 index 0000000..553b3b5 --- /dev/null +++ b/Documents/Computer diagram.svg @@ -0,0 +1,4 @@ + + + +
ALU
RAM
RAM Addr.
Register
Stack
Pointer
Data Bus
8 bits
EPROM
Instruction
Register
Timing
and
Control
A
Register
B
Register
Buffer
 
\ No newline at end of file diff --git a/Documents/Datasheets/8051.pdf b/Documents/Datasheets/8051.pdf new file mode 100644 index 0000000..e93a0cc Binary files /dev/null and b/Documents/Datasheets/8051.pdf differ diff --git a/Documents/D27C010-200V10.pdf b/Documents/Datasheets/D27C010-200V10.pdf similarity index 100% rename from Documents/D27C010-200V10.pdf rename to Documents/Datasheets/D27C010-200V10.pdf diff --git a/Documents/UM61256.pdf b/Documents/Datasheets/UM61256.pdf similarity index 100% rename from Documents/UM61256.pdf rename to Documents/Datasheets/UM61256.pdf diff --git a/README.md b/README.md index f842bae..c6399df 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,8 @@ The computer will be composed of : At first every part will be the "industrial" version : - The CPU from logic gates. - - The RAM a [SRAM](https://en.wikipedia.org/wiki/Static_random-access_memory) chip (*[UM61256BK-20](/Documents/UM61256.pdf) from 1993*) - - The ROM another chip (*[D27C010](/Documents/D27C010-200V10.pdf) from 1986 !*) + - The RAM a [SRAM](https://en.wikipedia.org/wiki/Static_random-access_memory) chip (*[UM61256BK-20](/Documents/Datasheets/UM61256.pdf) from 1993*) + - The ROM another chip (*[D27C010](/Documents/Datasheets/D27C010-200V10.pdf) from 1986 !*) Then the aim is to replace them with made from scratch versions. For the moment only the RAM is meant to be replaced with homemade magnetic core RAM. @@ -37,7 +37,7 @@ I do not need a LLM to understand and make a computer. ## Architecture choices The computer will be in 8 bits since the RAM and ROM are meant to be in 8 bits. -The CPU will have ports for inputs / outputs. +The CPU will have ports for inputs / outputs, not a north and south bridge. ## Design @@ -45,13 +45,31 @@ The design is inspired of great people hard work : - [Ben Eater's 8 bits breadboard computer](https://eater.net/8bit) - [Mattbatwings's minecraft computer tutorial](https://youtu.be/hAZEXqWLTmY?si=qgic0b28PMeOPs_l) +The core architecture will be inspired of the legendary [Intel's MCS-51](/Documents/Datasheets/8051.PDF) [microcontroller series](https://en.wikipedia.org/wiki/Intel_MCS-51). + +### Core architecture + +![Computer diagram.](/Documents/Computer%20diagram.svg) +Made with [Drawio](https://app.diagrams.net/). + +### Registers + +| Name | Long Name | Description | +| :--: | :---------------------- | :--------------------------- | +| IR | Instruction Register | Running instruction storage. | +| A | A Register | ALU first input register. | +| B | B Register | ALU second input register. | +| MAR | Memory Address Register | RAM heap access address. | +| SP | Stack pointer | RAM stack access pointer. | + ### The instruction set. -Every instruction is 8 bits long. And there is 3 bytes of data after the instruction. -Because the ROM is 8 bits, every instruction will take 4 bytes. -This property might help for [instruction pipelining](https://en.wikipedia.org/wiki/Instruction_pipelining) in the future. +Every instruction is 1 to 3 bytes long. +First is the opcode, and the optionnal 2 bytes are the operands. +Operands can be an data (1B), address (1B), or full address (2B). These are only real instructions. Pseudoinstruction will be defined later. | Mnemonic | Description | Pseudocode | | :-------: | :------------ | :------------ | +| \ No newline at end of file diff --git a/Schematic/.history b/Schematic/.history new file mode 160000 index 0000000..2dc7cfb --- /dev/null +++ b/Schematic/.history @@ -0,0 +1 @@ +Subproject commit 2dc7cfbde8efcd6289bdb70eea196c68d6c2beee diff --git a/Schematic/Schematic.kicad_pcb b/Schematic/Schematic.kicad_pcb new file mode 100644 index 0000000..ccd82d6 --- /dev/null +++ b/Schematic/Schematic.kicad_pcb @@ -0,0 +1,2 @@ +(kicad_pcb (version 20260206) (generator "pcbnew") (generator_version "10.0") +) \ No newline at end of file diff --git a/Schematic/Schematic.kicad_prl b/Schematic/Schematic.kicad_prl new file mode 100644 index 0000000..c7537e1 --- /dev/null +++ b/Schematic/Schematic.kicad_prl @@ -0,0 +1,105 @@ +{ + "board": { + "active_layer": 0, + "active_layer_preset": "", + "auto_track_width": true, + "hidden_netclasses": [], + "hidden_nets": [], + "high_contrast_mode": 0, + "net_color_mode": 1, + "opacity": { + "images": 0.6, + "pads": 1.0, + "shapes": 1.0, + "tracks": 1.0, + "vias": 1.0, + "zones": 0.6 + }, + "prototype_zone_fills": false, + "selection_filter": { + "dimensions": true, + "footprints": true, + "graphics": true, + "keepouts": true, + "lockedItems": false, + "otherItems": true, + "pads": true, + "text": true, + "tracks": true, + "vias": true, + "zones": true + }, + "visible_items": [ + "vias", + "footprint_text", + "footprint_anchors", + "ratsnest", + "grid", + "footprints_front", + "footprints_back", + "footprint_values", + "footprint_references", + "tracks", + "drc_errors", + "drawing_sheet", + "bitmaps", + "pads", + "zones", + "drc_warnings", + "drc_exclusions", + "locked_item_shadows", + "conflict_shadows", + "shapes", + "board_outline_area", + "ly_points" + ], + "visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff", + "zone_display_mode": 0 + }, + "git": { + "integration_disabled": false, + "repo_type": "", + "repo_username": "", + "ssh_key": "" + }, + "meta": { + "filename": "Schematic.kicad_prl", + "version": 5 + }, + "net_inspector_panel": { + "col_hidden": [], + "col_order": [], + "col_widths": [], + "custom_group_rules": [], + "expanded_rows": [], + "filter_by_net_name": true, + "filter_by_netclass": true, + "filter_text": "", + "group_by_constraint": false, + "group_by_netclass": false, + "show_time_domain_details": false, + "show_unconnected_nets": false, + "show_zero_pad_nets": false, + "sort_ascending": true, + "sorting_column": -1 + }, + "open_jobsets": [], + "project": { + "files": [] + }, + "schematic": { + "hierarchy_collapsed": [], + "selection_filter": { + "graphics": true, + "images": true, + "labels": true, + "lockedItems": false, + "otherItems": true, + "pins": true, + "ruleAreas": true, + "symbols": true, + "text": true, + "wires": true + } + } +} diff --git a/Schematic/Schematic.kicad_pro b/Schematic/Schematic.kicad_pro new file mode 100644 index 0000000..79e8b1e --- /dev/null +++ b/Schematic/Schematic.kicad_pro @@ -0,0 +1,435 @@ +{ + "board": { + "3dviewports": [], + "ipc2581": { + "bom_rev": "", + "dist": "", + "distpn": "", + "internal_id": "", + "mfg": "", + "mpn": "", + "sch_revision": "" + }, + "layer_pairs": [], + "layer_presets": [], + "viewports": [] + }, + "boards": [], + "component_class_settings": { + "assignments": [], + "meta": { + "version": 0 + }, + "sheet_component_classes": { + "enabled": false + } + }, + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "endpoint_off_grid": "warning", + "extra_units": "error", + "field_name_whitespace": "warning", + "footprint_filter": "ignore", + "footprint_link_issues": "warning", + "four_way_junction": "ignore", + "ground_pin_not_ground": "warning", + "hier_label_mismatch": "error", + "isolated_pin_label": "warning", + "label_dangling": "error", + "label_multiple_wires": "warning", + "lib_symbol_issues": "warning", + "lib_symbol_mismatch": "warning", + "missing_bidi_pin": "warning", + "missing_input_pin": "warning", + "missing_power_pin": "error", + "missing_unit": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "same_local_global_label": "warning", + "similar_label_and_power": "warning", + "similar_labels": "warning", + "similar_power": "warning", + "simulation_model_issue": "ignore", + "single_global_label": "ignore", + "stacked_pin_name": "warning", + "unannotated": "error", + "unconnected_wire_endpoint": "warning", + "undefined_netclass": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "Schematic.kicad_pro", + "version": 3 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "priority": 2147483647, + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.2, + "tuning_profile": "", + "via_diameter": 0.6, + "via_drill": 0.3, + "wire_width": 6 + } + ], + "meta": { + "version": 5 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "idf": "", + "netlist": "", + "plot": "", + "specctra_dsn": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "annotation": { + "method": 0, + "sort_order": 0 + }, + "bom_export_filename": "${PROJECTNAME}.csv", + "bom_fmt_presets": [], + "bom_fmt_settings": { + "field_delimiter": ",", + "keep_line_breaks": false, + "keep_tabs": false, + "name": "CSV", + "ref_delimiter": ",", + "ref_range_delimiter": "", + "string_delimiter": "\"" + }, + "bom_presets": [], + "bom_settings": { + "exclude_dnp": false, + "fields_ordered": [ + { + "group_by": false, + "label": "Reference", + "name": "Reference", + "show": true + }, + { + "group_by": false, + "label": "Qty", + "name": "${QUANTITY}", + "show": true + }, + { + "group_by": true, + "label": "Value", + "name": "Value", + "show": true + }, + { + "group_by": true, + "label": "DNP", + "name": "${DNP}", + "show": true + }, + { + "group_by": true, + "label": "Exclude from BOM", + "name": "${EXCLUDE_FROM_BOM}", + "show": true + }, + { + "group_by": true, + "label": "Exclude from Board", + "name": "${EXCLUDE_FROM_BOARD}", + "show": true + }, + { + "group_by": true, + "label": "Footprint", + "name": "Footprint", + "show": true + }, + { + "group_by": false, + "label": "Datasheet", + "name": "Datasheet", + "show": true + } + ], + "filter_string": "", + "group_symbols": true, + "include_excluded_from_bom": true, + "name": "Default Editing", + "sort_asc": true, + "sort_field": "Référence" + }, + "bus_aliases": {}, + "connection_grid_size": 50.0, + "drawing": { + "dashed_lines_dash_length_ratio": 12.0, + "dashed_lines_gap_length_ratio": 3.0, + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "hop_over_size_choice": 0, + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.375, + "operating_point_overlay_i_precision": 3, + "operating_point_overlay_i_range": "~A", + "operating_point_overlay_v_precision": 3, + "operating_point_overlay_v_range": "~V", + "overbar_offset_ratio": 1.23, + "pin_symbol_size": 25.0, + "text_offset_ratio": 0.15 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "page_layout_descr_file": "", + "plot_directory": "", + "reuse_designators": true, + "subpart_first_id": 65, + "subpart_id_separator": 0, + "top_level_sheets": [ + { + "filename": "Schematic.kicad_sch", + "name": "Racine", + "uuid": "7c16bacf-6b97-41f5-b52a-af7c003071ba" + } + ], + "used_designators": "U1-2", + "variants": [] + }, + "sheets": [ + [ + "7c16bacf-6b97-41f5-b52a-af7c003071ba", + "Racine" + ] + ], + "text_variables": {}, + "tuning_profiles": { + "meta": { + "version": 0 + }, + "tuning_profiles_impedance_geometric": [] + } +} diff --git a/Schematic/Schematic.kicad_sch b/Schematic/Schematic.kicad_sch new file mode 100644 index 0000000..a84b679 --- /dev/null +++ b/Schematic/Schematic.kicad_sch @@ -0,0 +1,1605 @@ +(kicad_sch + (version 20260306) + (generator "eeschema") + (generator_version "10.0") + (uuid "7c16bacf-6b97-41f5-b52a-af7c003071ba") + (paper "A0") + (lib_symbols + (symbol "Memory_EPROM:27C010" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (in_pos_files yes) + (duplicate_pin_numbers_are_jumpers no) + (property "Reference" "U" + (at -7.62 29.21 0) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "27C010" + (at 2.54 -31.75 0) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/doc0321.pdf" + (at 0 0 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Description" "OTP EPROM 1 MiBit (128 Ki x 8 Bit)" + (at 0 0 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "ki_keywords" "OTP EPROM 1MiBit" + (at 0 0 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "ki_fp_filters" "DIP*W15.24mm* PLCC*" + (at 0 0 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (symbol "27C010_1_1" + (rectangle + (start -7.62 27.94) + (end 7.62 -30.48) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (pin input line + (at -10.16 -22.86 0) + (length 2.54) + (name "VPP" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -15.24 0) + (length 2.54) + (name "A16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -12.7 0) + (length 2.54) + (name "A15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -5.08 0) + (length 2.54) + (name "A12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 7.62 0) + (length 2.54) + (name "A7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 10.16 0) + (length 2.54) + (name "A6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 12.7 0) + (length 2.54) + (name "A5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 15.24 0) + (length 2.54) + (name "A4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 17.78 0) + (length 2.54) + (name "A3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 20.32 0) + (length 2.54) + (name "A2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 22.86 0) + (length 2.54) + (name "A1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 25.4 0) + (length 2.54) + (name "A0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 10.16 25.4 180) + (length 2.54) + (name "D0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 10.16 22.86 180) + (length 2.54) + (name "D1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 10.16 20.32 180) + (length 2.54) + (name "D2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -33.02 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 10.16 17.78 180) + (length 2.54) + (name "D3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "17" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 10.16 15.24 180) + (length 2.54) + (name "D4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "18" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 10.16 12.7 180) + (length 2.54) + (name "D5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "19" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 10.16 10.16 180) + (length 2.54) + (name "D6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "20" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 10.16 7.62 180) + (length 2.54) + (name "D7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "21" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -25.4 0) + (length 2.54) + (name "~{CE}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "22" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 0 0) + (length 2.54) + (name "A10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "23" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -27.94 0) + (length 2.54) + (name "~{OE}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "24" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -2.54 0) + (length 2.54) + (name "A11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "25" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 2.54 0) + (length 2.54) + (name "A9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "26" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 5.08 0) + (length 2.54) + (name "A8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "27" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -7.62 0) + (length 2.54) + (name "A13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "28" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -10.16 0) + (length 2.54) + (name "A14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "29" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -10.16 -20.32 0) + (length 2.54) + (name "~{PGM}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "31" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 30.48 270) + (length 2.54) + (name "VCC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "32" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Memory_RAM:CY62256-70PC" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (in_pos_files yes) + (duplicate_pin_numbers_are_jumpers no) + (property "Reference" "U" + (at -10.16 20.955 0) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + ) + (property "Value" "CY62256-70PC" + (at 2.54 20.955 0) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + ) + (property "Footprint" "Package_DIP:DIP-28_W15.24mm" + (at 0 -2.54 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Datasheet" "https://ecee.colorado.edu/~mcclurel/Cypress_SRAM_CY62256.pdf" + (at 0 -2.54 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Description" "256K (32K x 8) Static RAM, 70ns, DIP-28" + (at 0 0 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "ki_keywords" "RAM SRAM CMOS MEMORY" + (at 0 0 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "ki_fp_filters" "DIP*W15.24mm*" + (at 0 0 0) + (show_name no) + (do_not_autoplace no) + (hide yes) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (symbol "CY62256-70PC_0_0" + (pin power_in line + (at 0 -22.86 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 22.86 270) + (length 2.54) + (name "VCC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "28" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (symbol "CY62256-70PC_0_1" + (rectangle + (start -10.16 20.32) + (end 10.16 -20.32) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "CY62256-70PC_1_1" + (pin input line + (at -12.7 -17.78 0) + (length 2.54) + (name "A14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 -12.7 0) + (length 2.54) + (name "A12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 0 0) + (length 2.54) + (name "A7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 2.54 0) + (length 2.54) + (name "A6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 5.08 0) + (length 2.54) + (name "A5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 7.62 0) + (length 2.54) + (name "A4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 10.16 0) + (length 2.54) + (name "A3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 12.7 0) + (length 2.54) + (name "A2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 15.24 0) + (length 2.54) + (name "A1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 17.78 0) + (length 2.54) + (name "A0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 12.7 17.78 180) + (length 2.54) + (name "Q0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 12.7 15.24 180) + (length 2.54) + (name "Q1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 12.7 12.7 180) + (length 2.54) + (name "Q2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 12.7 10.16 180) + (length 2.54) + (name "Q3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 12.7 7.62 180) + (length 2.54) + (name "Q4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 12.7 5.08 180) + (length 2.54) + (name "Q5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "17" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 12.7 2.54 180) + (length 2.54) + (name "Q6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "18" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin tri_state line + (at 12.7 0 180) + (length 2.54) + (name "Q7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "19" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at 12.7 -5.08 180) + (length 2.54) + (name "~{CS}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "20" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 -7.62 0) + (length 2.54) + (name "A10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "21" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at 12.7 -10.16 180) + (length 2.54) + (name "~{OE}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "22" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 -10.16 0) + (length 2.54) + (name "A11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "23" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 -5.08 0) + (length 2.54) + (name "A9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "24" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 -2.54 0) + (length 2.54) + (name "A8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "25" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -12.7 -15.24 0) + (length 2.54) + (name "A13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "26" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at 12.7 -12.7 180) + (length 2.54) + (name "~{WE}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "27" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + ) + (symbol + (lib_id "Memory_EPROM:27C010") + (at 416.56 115.57 0) + (unit 1) + (body_style 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (in_pos_files yes) + (dnp no) + (fields_autoplaced yes) + (uuid "572b1f2b-7d7d-46c0-9790-7f95c05bd94f") + (property "Reference" "U2" + (at 418.7033 82.55 0) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "27C010" + (at 418.7033 85.09 0) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 416.56 115.57 0) + (hide yes) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/doc0321.pdf" + (at 416.56 115.57 0) + (hide yes) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Description" "OTP EPROM 1 MiBit (128 Ki x 8 Bit)" + (at 416.56 115.57 0) + (hide yes) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (pin "22" + (uuid "862abc57-0008-4809-b425-26f3ca72e524") + ) + (pin "25" + (uuid "184cd5e0-2915-46f2-81ce-e0d360e05be3") + ) + (pin "21" + (uuid "d033461e-4ddf-4b99-8b59-7d71f915358c") + ) + (pin "14" + (uuid "c4647b59-4b9d-4435-8608-a2efe7e8a3ac") + ) + (pin "8" + (uuid "0a987ae7-5404-48be-a30b-d053890e27b7") + ) + (pin "31" + (uuid "79d2250b-1031-4d59-81e6-e9e9aa89f9e1") + ) + (pin "27" + (uuid "74a5aff7-9d51-4751-910e-fca7846ae8aa") + ) + (pin "2" + (uuid "4f7ffa6f-7c90-43b4-81c1-fbc61ea5037f") + ) + (pin "13" + (uuid "598e14ad-7e29-440f-9092-b3abb3901a3b") + ) + (pin "12" + (uuid "6634dd34-4584-4e11-9118-363d7ec1862b") + ) + (pin "10" + (uuid "0084be09-a638-484e-8b11-aa29287d8af5") + ) + (pin "3" + (uuid "9d6a4ea1-bd48-44cd-9e8a-39dbe628860c") + ) + (pin "1" + (uuid "d540a254-1b99-42d9-90a0-8190776a5067") + ) + (pin "16" + (uuid "1280f460-6c65-4ab9-bad3-9963c4d55bd1") + ) + (pin "17" + (uuid "890ee96c-372a-42c2-b13b-bbd7857a9804") + ) + (pin "32" + (uuid "56c9a4d2-9a2c-41fd-8fd8-263257395cd0") + ) + (pin "20" + (uuid "c687a49a-ee62-4c5b-a312-fda0ce001cf6") + ) + (pin "19" + (uuid "3e6b4c59-0e30-4fc0-93f3-0dbe6dbb8059") + ) + (pin "18" + (uuid "2bc043fa-8a46-45c3-9f7a-b340c7ce59d6") + ) + (pin "23" + (uuid "381bc9b5-255b-4d64-8c21-a4183f47882e") + ) + (pin "9" + (uuid "e0b37612-18b9-44d0-96d5-ab392f4856b5") + ) + (pin "11" + (uuid "9669f4d3-e9ac-419a-8987-8ec7d8d6c772") + ) + (pin "24" + (uuid "6bb7d8f1-7bdf-4ccb-b0b2-6d30d64a1145") + ) + (pin "26" + (uuid "2df5eb22-5965-4c95-8d6a-bd85345b70ec") + ) + (pin "15" + (uuid "6699976f-5063-49b7-b4ea-c6119f59c9e1") + ) + (pin "28" + (uuid "907cd38b-5e68-4545-9d45-150a5f16ccd3") + ) + (pin "29" + (uuid "eae14a5c-ecbf-4a32-a6d7-faaf762e4900") + ) + (pin "4" + (uuid "b52a1e8d-1846-4f38-b011-85777e4c266f") + ) + (pin "5" + (uuid "24719219-cc59-46af-a6fa-2c23bcd7f6a3") + ) + (pin "6" + (uuid "19b116d6-6f6e-4a36-be28-a26d3b991520") + ) + (pin "7" + (uuid "6b55c0f1-4daa-4492-8fb6-444bd29c221b") + ) + (instances + (project "Schematic" + (path "/7c16bacf-6b97-41f5-b52a-af7c003071ba" + (reference "U2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Memory_RAM:CY62256-70PC") + (at 414.02 397.51 0) + (unit 1) + (body_style 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (in_pos_files yes) + (dnp no) + (fields_autoplaced yes) + (uuid "783f60ef-6407-4dd1-8db2-94cbfaf6fcea") + (property "Reference" "U1" + (at 416.1633 372.11 0) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "CY62256-70PC" + (at 416.1633 374.65 0) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_DIP:DIP-28_W15.24mm" + (at 414.02 400.05 0) + (hide yes) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Datasheet" "https://ecee.colorado.edu/~mcclurel/Cypress_SRAM_CY62256.pdf" + (at 414.02 400.05 0) + (hide yes) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Description" "256K (32K x 8) Static RAM, 70ns, DIP-28" + (at 414.02 397.51 0) + (hide yes) + (show_name no) + (do_not_autoplace no) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (pin "13" + (uuid "5ebcbbf9-b82a-43ee-8b23-bd01a58bd599") + ) + (pin "12" + (uuid "5a58b0f9-ab53-4a70-8020-c7e13403c0fd") + ) + (pin "24" + (uuid "5ab6141c-3e22-416e-a060-3764c4f51f3a") + ) + (pin "6" + (uuid "395df459-d8db-44b7-9902-125e9441f816") + ) + (pin "14" + (uuid "fd4cf296-f7de-44e7-aa4b-c767dbdf490f") + ) + (pin "25" + (uuid "503a570d-8605-453a-9626-4f05ece2ba9c") + ) + (pin "15" + (uuid "9b168537-7ac0-4071-b0dc-3ae2dc2fce0e") + ) + (pin "23" + (uuid "7e99d311-9f1c-4a3f-916c-7b8f1baea45e") + ) + (pin "17" + (uuid "19f23f4c-9cab-4341-8ecd-a5210396cc67") + ) + (pin "20" + (uuid "70c1529b-57ae-4946-aa26-2ad664bde087") + ) + (pin "26" + (uuid "e1fdd1f7-a344-4dc3-898c-e6a141049ac4") + ) + (pin "27" + (uuid "2ceeafe3-e83c-4834-9c3b-72f90fdb53e7") + ) + (pin "18" + (uuid "b6b9dd26-da1b-4cf5-a880-59cae69d98f0") + ) + (pin "19" + (uuid "2eed49fc-fe83-4344-8957-ed50d9f28e85") + ) + (pin "16" + (uuid "00b8a6bc-63b4-44c7-a8f7-73d1217a7f37") + ) + (pin "7" + (uuid "02a6127f-5ccb-48eb-b6c6-98baa0afd5dd") + ) + (pin "11" + (uuid "9068d1d5-dc2e-4346-ad1c-d715683e43f9") + ) + (pin "21" + (uuid "dd8b83d8-d372-4c2e-a7aa-a617451789a7") + ) + (pin "28" + (uuid "ba509485-768f-4d93-98df-e3167443a787") + ) + (pin "22" + (uuid "16d0542a-b0f3-4c65-86e4-c41e44b15edc") + ) + (pin "5" + (uuid "45889228-596e-4ad5-91f5-c6caedd82ef1") + ) + (pin "4" + (uuid "6cf6202b-aded-4a3b-a97a-f22857a2451f") + ) + (pin "3" + (uuid "60a25dd6-bc62-45ea-9392-57917927bdf9") + ) + (pin "2" + (uuid "da0601fb-fda3-4991-badf-bd62b54e28fe") + ) + (pin "1" + (uuid "db2d81f9-d352-4ce6-98bc-15f419724ada") + ) + (pin "9" + (uuid "bfd370fd-547e-411b-9fb9-4078466ca1ad") + ) + (pin "8" + (uuid "3c0b7dc8-61e8-4a6a-84fc-660903417e62") + ) + (pin "10" + (uuid "c933e4c7-c9a4-4889-b2a7-b721b9b4dbcc") + ) + (instances + (project "Schematic" + (path "/7c16bacf-6b97-41f5-b52a-af7c003071ba" + (reference "U1") + (unit 1) + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) + (embedded_fonts no) +) diff --git a/Simulation/Computer Simulation.dig b/Simulation/Computer Simulation.dig new file mode 100644 index 0000000..b5d6a9f --- /dev/null +++ b/Simulation/Computer Simulation.dig @@ -0,0 +1,104 @@ + + + 2 + + + + RAMSinglePortSel + + + AddrBits + 15 + + + Label + UM61256BK + + + Bits + 8 + + + + + + ROM + + + AddrBits + 16 + + + isProgramMemory + true + + + Bits + 8 + + + intFormat + bin + + + + + + Ground + + + + + Probe + + + intFormat + dec + + + + + + Register + + + Label + Instruction Reg + + + Bits + 8 + + + + + + CounterPreset + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file