{"id":29192583,"url":"https://github.com/johnjohnlin/nicotb","last_synced_at":"2025-09-01T07:33:14.285Z","repository":{"id":79171354,"uuid":"96236364","full_name":"johnjohnlin/nicotb","owner":"johnjohnlin","description":"A lightweight library to perform Python/Verilog co-simulation with Python3.3 coroutine + numpy. The name Nicotb cames from NatIve COroutine TestBench.","archived":false,"fork":false,"pushed_at":"2023-12-24T02:58:06.000Z","size":246,"stargazers_count":21,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-31T07:37:03.711Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnjohnlin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-07-04T16:26:32.000Z","updated_at":"2024-04-19T05:37:47.000Z","dependencies_parsed_at":"2023-05-18T17:15:45.286Z","dependency_job_id":null,"html_url":"https://github.com/johnjohnlin/nicotb","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/johnjohnlin/nicotb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjohnlin%2Fnicotb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjohnlin%2Fnicotb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjohnlin%2Fnicotb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjohnlin%2Fnicotb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnjohnlin","download_url":"https://codeload.github.com/johnjohnlin/nicotb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnjohnlin%2Fnicotb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273088772,"owners_count":25043560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-07-02T01:37:29.044Z","updated_at":"2025-09-01T07:33:14.244Z","avatar_url":"https://github.com/johnjohnlin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/johnjohnlin/nicotb.svg?branch=master)](https://travis-ci.com/johnjohnlin/nicotb.svg?branch=master)\n\n# Introduction\n\nNicotb is Python-Verilog co-simulation framework.\nIt is lightweight and can be installed with little efforts,\nand it is also extensible to provide UVM-like simulation for verifying many well-known hardware protocols.\nCurrently Nicotb supports generic Verilog simulator that support VPI (Ncverilog, Vcs) as well as cycle-based simulator (verilator).\n\n# Fast Setup\n\nIf your system are shipped with new toolchains, then this will work for you.\n```\ngit clone https://github.com/johnjohnlin/nicotb\ncd nicotb\npython3 setup.py install --user\npython3 -c \"import nicotb\"\n```\n\nIf you are using the OS with outdated (stable) softwares like CentOS,\nthen you can use something like this.\n```\nexport CC=/opt/rh/devtoolset-7/root/bin/gcc\nexport VCS=\"vcs -cpp /opt/rh/devtoolset-7/root/bin/g++\"\nexport CXX=/opt/rh/devtoolset-7/root/bin/g++\nexport PY=/opt/rh/rh-python36/root/usr/bin/python3.6\ngit clone https://github.com/johnjohnlin/nicotb\ncd nicotb\n$(PY) setup.py install --user\n$(PY) -c \"import nicotb\"\n```\n\nSimply \u003ctt\u003eimport nicotb\u003c/tt\u003e is not that useful, for using nicotb for RTL verification,\nplease see the examples in \u003ctt\u003esim\u003c/tt\u003e or read the [document page](https://johnjohnlin.github.io/nicotb/).\nAlso, reading \u003ctt\u003e.travis.yml\u003c/tt\u003e to see how we run the regression can be useful,\nand for obvious reasons we only run the regression with Verilator.\n\n# Document\n\nThe [document page](https://johnjohnlin.github.io/nicotb/) is hosted by Github pages.\n\n# Tested, supported platforms\n\nWe have tested Nicotb on as many environments as possible,\nand these are the environments on which we can successfully Nicotb.\n\n* CentOS 7\n\t* Python 3, Numpy, and g++ 7, through EPEL (tested at 2019)\n\t* Compiled Verilator 4.016\n\t* Vcs\n* ArchLinux \u0026 Ubuntu 18.04\n\t* Verilator 4.0xx, Python 3.6+, Numpy, and g++ 7+, through apt-get or pacman (tested at 2018-2019)\n\t* Ncverilog\n* Ubuntu 14.04\n\t* apt-get Verilator 3.9xx\n\t* Used for CI, see also .travis.yml\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnjohnlin%2Fnicotb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnjohnlin%2Fnicotb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnjohnlin%2Fnicotb/lists"}