{"id":15220471,"url":"https://github.com/willbicks/dsdii-assembler","last_synced_at":"2026-03-13T23:07:24.031Z","repository":{"id":57662070,"uuid":"475084531","full_name":"willbicks/dsdii-assembler","owner":"willbicks","description":"Assembler for a MIPS processor implemented in VHDL as part of RIT's Digital Systems Design II class.","archived":false,"fork":false,"pushed_at":"2023-02-20T16:28:26.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-19T22:59:09.909Z","etag":null,"topics":["assembler","assembly","code-generation","mips","vhdl"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willbicks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-28T16:22:12.000Z","updated_at":"2022-04-08T19:06:57.000Z","dependencies_parsed_at":"2024-06-20T01:29:32.668Z","dependency_job_id":"99c353d4-75d7-4d33-b44d-17bbf56283f8","html_url":"https://github.com/willbicks/dsdii-assembler","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/willbicks/dsdii-assembler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbicks%2Fdsdii-assembler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbicks%2Fdsdii-assembler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbicks%2Fdsdii-assembler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbicks%2Fdsdii-assembler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willbicks","download_url":"https://codeload.github.com/willbicks/dsdii-assembler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbicks%2Fdsdii-assembler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30479016,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T20:45:58.186Z","status":"ssl_error","status_checked_at":"2026-03-13T20:45:20.133Z","response_time":60,"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":["assembler","assembly","code-generation","mips","vhdl"],"created_at":"2024-09-28T13:10:30.058Z","updated_at":"2026-03-13T23:07:24.012Z","avatar_url":"https://github.com/willbicks.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚙ DSDII Assembler\n\nDSDII Assembler parses MIPS instructions and generates machine code in various formats for a processor developed in RIT's Digital Systems Design II class. The class focuses on the VHDL and Verilog implementation of the processor itself, and this exercise is purely a personal side project.\n\n## Features\n\n### Instruction Parsing:\n\n- [x] R type instructions\n- [x] I type instructions\n- [ ] J type instructions (not implemented in our processor)\n- [x] Pseudo instructions (`nop`, `clear`, `move`)\n- [ ] Load immediate (pseudo `li`)\n- [x] Support for comments and blank lines\n\n### Code Generation:\n\n- [x] Raw hex machine code output\n- [x] Binary machine code output (with optional nibble or byte separators)\n- [x] VHDL code generation (byte addressable memory)\n- [x] VHDL code generation (word addressable memory)\n- [x] Generate VHDL comments with assembly instructions\n\n## Usage\n\n```shell\n$ dsdii-assembler -help\nUsage of dsdii-assembler:\n        dsdii-assembler version\n        dsdii-assembler [options...] \u003cinstruction\u003e\n\nOptions:\n  -i string\n        Input file containing assembly instructions. If not set, the instruction parameter should contain the singular instruction to be assembled.\n  -nop-buff uint\n        Optional number of nop instructions to include after each instruction.\n  -o string\n        Output file to write machine code to. (default \"stdout\")\n  -out-fmt string\n        Output format (hex, vhdl-byte, vhdl-word, binary, binary-nibble, binary-byte). (default \"hex\")\n  -q    Suppress printing version and status to stdout.\n```\n\n## Installation\n\n### Without Go Installed:\n\nIf you don't have Go installed on your computer, pre-compiled binaries for Windows, macOS, and Linux can be downloaded from the [releases section](https://github.com/willbicks/dsdii-assembler/releases).\n\nDownload the appropriate binary for your system, extract it, and add it your path or use it in-situ.\n\n### With Go Installed:\n\nIf you have the Go language tools installed on your computer, downloading and installing dsdii-assembler is as simple as:\n\n```shell\n$ go install github.com/willbicks/dsdii-assembler@latest\n```\n\nThis will download, compile, and install the binary in your Go path.\n\n## Examples\n\n```shell\n$ dsdii-assembler 'add $s0, $s1, $t3'\ndsdii-assembler v0.3.3\n022b8020\nassembled 1 line(s) in 0 ms\n```\n\n```shell\n$ dsdii-assembler -i .\\test.asm -out-fmt vhdl-byte\ndsdii-assembler v0.3.3\n-- generated by dsdii-assembler\nsignal instructions : mem_array := (\n      x\"00\", x\"00\", x\"00\", x\"00\", -- nop\n      x\"00\", x\"00\", x\"00\", x\"00\", -- nop\n      x\"00\", x\"00\", x\"00\", x\"00\", -- nop\n      x\"00\", x\"00\", x\"00\", x\"00\", -- nop\n      x\"20\", x\"10\", x\"00\", x\"1f\", -- addi $s0, $0, 31 # assembly comments included in VHDL\n      x\"20\", x\"11\", x\"00\", x\"03\", -- addi $s1, $0, 3\n      x\"20\", x\"12\", x\"00\", x\"04\", -- addi $s2, $0, 4\n      ...\n      x\"00\", x\"00\", x\"00\", x\"00\", -- nop\n      x\"02\", x\"11\", x\"40\", x\"20\", -- add $t0, $s0, $s1\n      x\"02\", x\"11\", x\"48\", x\"24\", -- and $t1, $s0, $s1\n      x\"02\", x\"11\", x\"50\", x\"19\", -- multu $t2, $s0, $s1\n      others =\u003e x\"00\"\n);\nassembled 37 line(s) in 9 ms\n```\n\n## Contributions\n\nContributions are welcome via pull request, as well as discussions via issues. Please ensure that all contributions are appropriately documented and tested.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillbicks%2Fdsdii-assembler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillbicks%2Fdsdii-assembler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillbicks%2Fdsdii-assembler/lists"}