{"id":15400736,"url":"https://github.com/paebbels/json-for-vhdl","last_synced_at":"2025-07-29T02:04:57.601Z","repository":{"id":41067112,"uuid":"41750895","full_name":"Paebbels/JSON-for-VHDL","owner":"Paebbels","description":"A JSON library implemented in VHDL.","archived":false,"fork":false,"pushed_at":"2022-09-05T07:38:35.000Z","size":141,"stargazers_count":78,"open_issues_count":7,"forks_count":17,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-15T22:54:46.158Z","etag":null,"topics":["fileformat","fpga","ghdl","json","lattice","modelsim","parser","questasim","simulation","synthesis","vhdl","xilinx"],"latest_commit_sha":null,"homepage":null,"language":"VHDL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Paebbels.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-01T16:41:25.000Z","updated_at":"2025-03-10T14:50:49.000Z","dependencies_parsed_at":"2023-01-17T20:05:44.595Z","dependency_job_id":null,"html_url":"https://github.com/Paebbels/JSON-for-VHDL","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Paebbels/JSON-for-VHDL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paebbels%2FJSON-for-VHDL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paebbels%2FJSON-for-VHDL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paebbels%2FJSON-for-VHDL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paebbels%2FJSON-for-VHDL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Paebbels","download_url":"https://codeload.github.com/Paebbels/JSON-for-VHDL/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paebbels%2FJSON-for-VHDL/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267617643,"owners_count":24116208,"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-07-29T02:00:12.549Z","response_time":2574,"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":["fileformat","fpga","ghdl","json","lattice","modelsim","parser","questasim","simulation","synthesis","vhdl","xilinx"],"created_at":"2024-10-01T15:54:48.808Z","updated_at":"2025-07-29T02:04:57.577Z","avatar_url":"https://github.com/Paebbels.png","language":"VHDL","funding_links":[],"categories":[],"sub_categories":[],"readme":"JSON-for-VHDL\n================================================================================\n\n[![CLA assistant](https://cla-assistant.io/readme/badge/Paebbels/JSON-for-VHDL)](https://cla-assistant.io/Paebbels/JSON-for-VHDL)\n\nJSON-for-VHDL is a library to parse and query JSON data structures in VHDL. The\ncomplete functionality is hosted in a single VHDL package, without special\ndependencies.\n\nTable of Content:\n================================================================================\n 1. [Overview](#1-overview)\n 2. [JSON - JavaScript Object Notation](#2-json---javascript-object-notation)\n 3. [Short Example](#2-short-example)\n 4. [Download](#3-download)\n\n\n\n1 Overview\n================================================================================\n\n\nThe JSON-for-VHDL library can be used to parse and query JSON data structures, which\nare read from disk. The data structure is read via VHDL file I/O functions and\nprocedures and parsed into a internal compressed representation. While the parsing is\ndone, a lightwight index is created to ease the navigation on the data structure.\n\nValues can be selected by simple path expressions.\n\n2 JSON - JavaScript Object Notation\n================================================================================\n\n**JavaScript Object Notation (JSON) Data Interchange Format** is specified in\n[RFC 7159](https://tools.ietf.org/html/rfc7159).\n\n\n3 Short Example\n================================================================================\n\nHere is a short example *.json file, which describes two common FPGA boards.\n\n    {  \"ML505\": {\n        \"FPGA\":        \"XC5VLX50T-1FF1136\",\n        \"Eth\": [{\n          \"PHY-Int\":   \"GMII\",\n          \"Device\":    \"MARVEL_88E1111\",\n          \"Address\":   \"0x74\"\n        }]\n      },\n      \"KC705\": {\n        \"FPGA\":        \"XC7K325T-2FFG900C\",\n        \"Eth\": [{\n          \"PHY-Int\":   \"GMII\",\n          \"Device\":    \"MARVEL_88E1111\",\n          \"Address\":   \"0x74\"\n        }],\n        \"IIC\": [{\n          \"Type\":      \"Switch\",\n          \"Adr\":       \"0x85\",\n          \"Devices\": [{\n            \"Name\":    \"Si570\",\n            \"Address\": \"0x3A\"\n          }]\n        }]\n      }\n    }\n\nReference the JSON package in VHDL:\n\n    use work.json.all;\n\nLoad a external *.json file, parse the data structure and select a value:\n\n    architecture rtl of Test is\n      constant ConfigFile   : STRING    := \"Boards.json\";\n      constant JSONContent\t: T_JSON    := jsonLoad(ConfigFile);\n    begin\n      assert (JSONContent.Error(1) = C_JSON_NUL)\n        report \"Error: \" \u0026 JSONContent.Error\n        severity ERROR;\n      assert FALSE\n        report \"Query='KC705/Eth/0/Address' Value='\" \u0026 jsonGetString(JSONContent, \"KC705/Eth/0/Address\") \u0026 \"'\"\n        severity NOTE;\n\n      -- print the compressed file content\n    --  assert FALSE\n    --    report \"JSON: \" \u0026 JSONContent.Content severity NOTE;\n    end architecture;\n\n4 Download\n================================================================================\nThe library can be [downloaded][31] as a zip-file (latest 'master' branch) or\ncloned with `git` from GitHub. GitHub offers HTTPS and SSH as transfer protocols.\n\nFor SSH protocol use the URL `ssh://git@github.com:Paebbels/JSON-for-VHDL.git` or command\nline instruction:\n\n    cd \u003cGitRoot\u003e\n    git clone ssh://git@github.com:Paebbels/JSON-for-VHDL.git JSON\n\nFor HTTPS protocol use the URL `https://github.com/Paebbels/JSON-for-VHDL.git` or command\nline instruction:\n\n    cd \u003cGitRoot\u003e\n    git clone https://github.com/Paebbels/JSON-for-VHDL.git JSON\n\n [31]: https://github.com/Paebbels/JSON-for-VHDL/archive/master.zip\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaebbels%2Fjson-for-vhdl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaebbels%2Fjson-for-vhdl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaebbels%2Fjson-for-vhdl/lists"}