{"id":28107021,"url":"https://github.com/ams/cadr4","last_synced_at":"2026-01-24T12:08:50.520Z","repository":{"id":204513245,"uuid":"712033884","full_name":"ams/cadr4","owner":"ams","description":"CADR4 -- accurate model of the MIT CADR","archived":false,"fork":false,"pushed_at":"2025-08-22T18:58:20.000Z","size":127021,"stargazers_count":17,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-22T20:58:48.900Z","etag":null,"topics":["cadr","lisp","lisp-machine","lispmachine","machine","mit","retrocomputing"],"latest_commit_sha":null,"homepage":"http://tumbleweed.nu/lm-3","language":"VHDL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ams.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-30T16:55:38.000Z","updated_at":"2025-08-22T18:58:24.000Z","dependencies_parsed_at":"2025-08-22T20:12:14.861Z","dependency_job_id":"b8f713da-ca4e-46e4-a7fb-8e16c9ae50e9","html_url":"https://github.com/ams/cadr4","commit_stats":null,"previous_names":["ams/cadr4"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ams/cadr4","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams%2Fcadr4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams%2Fcadr4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams%2Fcadr4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams%2Fcadr4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ams","download_url":"https://codeload.github.com/ams/cadr4/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ams%2Fcadr4/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28727384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cadr","lisp","lisp-machine","lispmachine","machine","mit","retrocomputing"],"created_at":"2025-05-14T00:33:15.379Z","updated_at":"2026-01-24T12:08:50.515Z","avatar_url":"https://github.com/ams.png","language":"VHDL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cadr4\n\nExperiments of the third kind...  This is an attempt at making a\nfaithful and accurate HDL implementation of CADR.  There will be no\nattempt at making this synthesizable (at this time)!\n\n## Random chit-chat\n\nThere is a IRC channel on irc.libera.net, ##lispm for random\nchit-chat.  Feel free to send bugs directly to ams@gnu.org.\n\n## Setup\n\n### Prerequisites\n\n- Git\n- GNU Make\n- Python 3\n- [GHDL](http://ghdl.free.fr/) with the GCC or LLVM code generator or [NVC](https://github.com/nickg/nvc)\n- optionally some sort of FST/VCD viewer:\n  - [Surfer](https://surfer-project.org)\n  - [GTKWave](https://gtkwave.sourceforge.net/)\n  \n### Makefile\n\nMakefile is divided into three parts; Makefile.config and Makefile.common are always used.\n\nMakefile.ghdl and Makefile.nvc are used depending on the value of the CADR4_HDLCOMPILER variable (ghdl or nvc). Default is ghdl.\n\n### Build\n\n```\ngit clone https://github.com/ams/cadr4\ncd cadr4\nmake\n```\n\nAll build artifacts are created under `build` directory.\n\n### Run\n\n#### Run CADR\n\nTwo special testbenches cadr_tb and cadr_boot_tb are autogenerated by make (build/cadr_tb.vhd and build/cadr_boot_tb.vhd), and it connects everything in CADR and ICMEM. cadr_boot_tb auto boots CADR.\n\n```\nmake run-cadr_tb or run-cadr_boot_tb\n```\n\nThe diagnostic display (5x 7-segment LED displays with dot) is displayed on the console.\n\n#### Run Tests\n\n```\nmake check\n```\n\nruns all available tests.\n\n## wave.opt file (GHDL)\n\nThis is only applicable when GHDL is used.\n\nIf there is a `wave.opt` file at the project root, it is used as waveform options file in GHDL (`--read-wave-opt`).\n\nIf the file contains \"recreate\" in its first line, the file is deleted and recreated. This will show all signal paths.\n\nIf the file contains \"ignore\" in its first line, the file is ignored, `--read-wave-opt` is not used.\n\n## top.include and top.exclude files (NVC)\n\nThis is only applicable when NVC is used.\n\nNVC by default uses top.include and top.exclude files (where top representes the name of the top-level unit name) in the project root.\n\nEvery signal in the design hierarchy is saved to `build/signals.nvc` gtkwave save file with `wf-%` target.\n\n## File Organization\n\n- cadr: cadr and icmem components based on CADR schematics\n- cadr1: busint components based on CADR1 schematics\n- cosim_vhpi: VHPI cosimulation sources for NVC\n- cosim_vpi: VPI cosimulation sources for GHDL\n- dip: dip components used by cadr, icmem and busint components\n- doc: various documents and resources\n- helper: non-CADR components required to run cadr_tb\n- rom: ROM files loaded to CADR (P)ROMs and RAMs\n- scripts: utility scripts\n- soap: utility to generate SUDS (*_suds.vhd) files\n- ttl: ttl components used by dip components\n\nEach folder have a README.md containing more information.\n\n## Packages\n\n- work.cadr_book: cadr components\n- work.icmem_book: icmem components\n- work.busint_book: busint components\n- work.dip: dip components\n- work.amd,ecc,fairchild,intel,signetics,sn74,other: ttl components\n- work.misc: misc functions and procedures (no components)\n\n## Documentation\n\n- [The CADR Microprocessor](https://tumbleweed.nu/r/lm-3/uv/cadr.html)\n- [Implementation of a List Processing Machine](https://tumbleweed.nu/r/lm-3/uv/knight-thesis.html)\n- [CADR Schematics](https://tumbleweed.nu/lm-3/schematics.html)\n- [Interactive CADR Schematics](https://www.nexoid.at/cadr/clock1.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fams%2Fcadr4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fams%2Fcadr4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fams%2Fcadr4/lists"}