{"id":18006954,"url":"https://github.com/yne/vcd","last_synced_at":"2025-07-14T23:10:58.829Z","repository":{"id":23636629,"uuid":"27006529","full_name":"yne/vcd","owner":"yne","description":"VCD file (Value Change Dump) command line viewer","archived":false,"fork":false,"pushed_at":"2022-12-17T23:24:29.000Z","size":245,"stargazers_count":116,"open_issues_count":3,"forks_count":12,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-07T11:47:12.349Z","etag":null,"topics":["cli","gtkwave","vcd","vhdl"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"yne"}},"created_at":"2014-11-22T17:32:04.000Z","updated_at":"2025-03-24T16:18:35.000Z","dependencies_parsed_at":"2022-08-22T03:50:08.227Z","dependency_job_id":null,"html_url":"https://github.com/yne/vcd","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/yne/vcd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yne%2Fvcd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yne%2Fvcd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yne%2Fvcd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yne%2Fvcd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yne","download_url":"https://codeload.github.com/yne/vcd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yne%2Fvcd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265366074,"owners_count":23753444,"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","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":["cli","gtkwave","vcd","vhdl"],"created_at":"2024-10-30T01:11:23.721Z","updated_at":"2025-07-14T23:10:58.807Z","avatar_url":"https://github.com/yne.png","language":"C","funding_links":["https://github.com/sponsors/yne"],"categories":[],"sub_categories":[],"readme":"\u003cimg src=.github/logo.svg width=100% height=200\u003e\n\nValue Change Dump (.vcd) command line viewer for Windows, Linux and MacOS\n\n```yml\n# SKIP=13 vcd \u003c samples/basic.vcd\nglobal:\n  zoom: 2\n  date: Fri Nov 21 16:56:29 2014\n  total: 43\n  skip: 13\n  time:\n    scale: 1.00\n    unit:  fs\n    line       : \"13                  23                  33                  \"\nchannels:\n  default:\n    e_clk      : \"╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔\"\n    e_rst      : \"▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔\"\n    e_ren      : \"▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔╲▁▁▁╱▔▔▔╲▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁╱▔▔▔▔▔▔▔\"\n    e_wen      : \"▁▁▁▁▁▁▁▁▁▁▁▁╱▔▔▔╲▁▁▁╱▔▔▔╲▁▁▁╱▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔\"\n    e_d[3:0]   : \"3 3 4 4 5 5 Z Z 6 6 Z Z 7 7 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z \"\n    e_q[3:0]   : \"Z Z Z Z Z Z Z Z Z Z Z Z Z 3 3 Z Z 4 4 5 5 6 6 7 7 0 0 Z Z Z \"\n    e_empty    : \"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁╱▔▔▔▔▔▔▔▔▔▔▔▔▔\"\n    e_mid      : \"▁▁╱▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔╲▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\"\n    e_full     : \"▁▁▁▁▁▁▁▁▁▁╱▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔╲▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\"\n  fifo1:\n    clk        : \"╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔╲▁╱▔\"\n    rst        : \"▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔\"\n    ren        : \"▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔╲▁▁▁╱▔▔▔╲▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁╱▔▔▔▔▔▔▔\"\n    wen        : \"▁▁▁▁▁▁▁▁▁▁▁▁╱▔▔▔╲▁▁▁╱▔▔▔╲▁▁▁╱▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔\"\n    d[3:0]     : \"3 3 4 4 5 5 Z Z 6 6 Z Z 7 7 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z \"\n    q[3:0]     : \"Z Z Z Z Z Z Z Z Z Z Z Z Z 3 3 Z Z 4 4 5 5 6 6 7 7 0 0 Z Z Z \"\n    empty      : \"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁╱▔▔▔▔▔▔▔▔▔▔▔▔▔\"\n    mid        : \"▁▁╱▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔╲▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\"\n    full       : \"▁▁▁▁▁▁▁▁▁▁╱▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔╲▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\"\n    w_adr[1:0] : \"2 3 3 0 0 1 1 1 1 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 \"\n    r_adr[1:0] : \"1 1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3 0 0 1 1 2 2 3 3 3 3 3 3 3 \"\n```\n\n## Installation\n\n### From prebuilt binary\n\nManually download install a [prebuilt binary](../../releases)\n\n### From sources\n\n```bash\nmake\nsudo make install\n```\n\n### From Package Manager\n\nArch-based distribution:\n\n```bash\nyay -S vcd\n```\n\n## Usage\n\n```bash\nvcd \u003c in.vcd            # output to screen\nvcd \u003c in.vcd \u003e out.yml  # output to file\nvcd \u003c in.vcd | less -S  # scrollable view\n```\n\n## Query\n\nThe default `vcd` output is a valid YAML file, so you can process it with many tools like [`yq`](https://github.com/mikefarah/yq) or [`shyaml`](https://github.com/0k/shyaml)\n\n```bash\n# print the first 9 sample of the clk channel in the fifo1 scope\nvcd \u003c samples/basic.vcd | yq .channels.fifo1.clk[0:9]\nvcd \u003c samples/basic.vcd | shyaml -y get-value channels.default.e_clk\n```\n\n## Styling\n\nWaveform, position, color can be customized using environment variables.\n\n```bash\n# skip the 9 first samples\nSKIP=9 vcd \u003c in.vcd | less -S\n# Disable RAISE/DROWN transition\nRAISE=\"\" DROWN=\"\" vcd \u003c in.vcd\n# color the bus value in green using StartTeX/EndTeXt (STX/ETX) variables\nSTX=$(printf \"\\x1b[32m\") ETX=$(printf \"\\x1b[0m\") vcd \u003c in.vcd\n```\n\n## Auto-Refresh\n\nThe following snippet endlessly wait for a change on the `in.vcd` file.\nThen, when it happen, regenerate the `out.yml` graph and refresh the `less -S out.yml` scrollable display by sending a \"R\" keypress (for refreshing).\n\n```bash\necho \"hi ! please modify 'in.vcd' to refresh me\" \u003e out.yml\nwhile inotifywait -q -e modify -e close_write in.vcd ; do\n  vcd \u003c in.vcd \u003e out.yml           # regenerate out.yml\n  screen -x -r bridge -X stuff R   # send Refresh command to foreground less -S\ndone \u0026                             # this loop will run in background\nscreen -S bridge less -S out.yml   # the foreground \"less -S\" display\n# don't forget to stop the background loop using `kill %1` or fg + ^C\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyne%2Fvcd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyne%2Fvcd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyne%2Fvcd/lists"}