{"id":31780698,"url":"https://github.com/kiselkovd/verilog_nand_complicated","last_synced_at":"2026-02-17T16:00:49.134Z","repository":{"id":316542252,"uuid":"1063807041","full_name":"KiselkovD/verilog_nand_complicated","owner":"KiselkovD","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-25T06:51:46.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-10T08:18:45.501Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Verilog","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/KiselkovD.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-25T06:31:04.000Z","updated_at":"2025-09-25T06:51:49.000Z","dependencies_parsed_at":"2025-09-25T08:39:44.550Z","dependency_job_id":"58cce33a-3cc9-47cc-9882-75ad8fc8c9a1","html_url":"https://github.com/KiselkovD/verilog_nand_complicated","commit_stats":null,"previous_names":["kiselkovd/verilog_nand_complicated"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/KiselkovD/verilog_nand_complicated","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiselkovD%2Fverilog_nand_complicated","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiselkovD%2Fverilog_nand_complicated/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiselkovD%2Fverilog_nand_complicated/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiselkovD%2Fverilog_nand_complicated/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KiselkovD","download_url":"https://codeload.github.com/KiselkovD/verilog_nand_complicated/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiselkovD%2Fverilog_nand_complicated/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29549203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":[],"created_at":"2025-10-10T08:17:54.167Z","updated_at":"2026-02-17T16:00:49.112Z","avatar_url":"https://github.com/KiselkovD.png","language":"Verilog","funding_links":[],"categories":[],"sub_categories":[],"readme":"Этот проект реализует простой дизайн процессора (CPU) и тестовый стенд на языке описания аппаратуры Verilog. Он включает основной модуль CPU, построенный из набора встроенных и пользовательских компонентов, а также тестбенч для симуляции и проверки функциональности с использованием файлового ввода.\n\nСтруктура проекта\n\n- CPU.v: Верхнеуровневый модуль CPU, определяющий datapath и сигналы управления.\n- TC_Universe.v: Модуль тестового стенда для симуляции с генерацией тактового сигнала и сброса, включая файловый ввод/вывод.\n- build-CPU-iverilog.cmd: Скрипт сборки для компиляции и запуска проекта с помощью Icarus Verilog.\n- builtin_components/: Директория с предопределёнными базовыми логическими модулями, такими как сумматоры, мультиплексоры, счётчики, регистры и логические элементы.\n- custom_components/: Директория с самописными компонентами, включая ALU, блоки управления, регистры с расширенными функциями, обработку условий и логику программы. Подпапка 'lol' содержит вспомогательные модули, например, COND.v и and8.v.\n\nОсновные модули\n\nCPU.v\n- Модуль CPU имеет входы clk, rst и 8-битный вход Input; на выходе — 8-битный Output.\n- Внутри используются экземпляры декодеров (TC_Decoder3), сплиттеров, логических элементов, мультиплексоров, счётчиков, регистров, ALU и управляющих блоков.\n- Параметры UUID и NAME служат для уникальной идентификации инстанций модулей, что облегчает модульное переиспользование и отладку.\n- Внутренние сигналы (wired с уникальными номерами) связывают компоненты для реализации декодирования инструкций, оценки условий, операций с регистрами, вычислений ALU и переключения выхода.\n\nTC_Universe.v\n- Обеспечивает генерацию тактового сигнала (clk) и синхронного сброса (rst).\n- Загружает входные данные из указанного файла в память и последовательно подает их на вход CPU по управляющим сигналам.\n- Отслеживает выходы CPU и выводит полученные символы в консоль для проверки при симуляции.\n- Управляет переключением такта и сброса в среде симуляции.\n\nИспользование\n\n1. Скомпилируйте и запустите проект с помощью Icarus Verilog, используя скрипт build-CPU-iverilog.cmd.\n2. При необходимости укажите файл входных данных через аргумент командной строки INPUT_FILE во время симуляции.\n3. Просматривайте консольный вывод с выходными сигналами CPU в ходе симуляции.\n\nОсобенности\n\n- Модульный дизайн с параметризуемыми и переиспользуемыми блоками.\n- Тестбенч поддерживает файловый ввод/вывод для реалистичных последовательностей данных.\n- Параметризация UUID для улучшенной трассировки экземпляров.\n- Управление данными ввода/вывода с помощью импульсных управляющих сигналов в тестбенче.\n\nТребования\n\n- Icarus Verilog (iverilog и vvp) для компиляции и симуляции.\n- Командная оболочка Windows для запуска скрипта сборки.\n\nПримечания\n\n- Имена сигналов и проводников сгенерированы автоматически и могут выглядеть непривычно; для понимания их роли смотрите соответствующие модули компонентов.\n- Ширина данных CPU — 8 бит.\n- Дизайн ориентирован на образовательные и экспериментальные задачи в области цифрового дизайна, архитектуры процессоров и симуляции на Verilog.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiselkovd%2Fverilog_nand_complicated","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiselkovd%2Fverilog_nand_complicated","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiselkovd%2Fverilog_nand_complicated/lists"}