All Projects → Paebbels → JSON-for-VHDL

Paebbels / JSON-for-VHDL

Licence: other
A JSON library implemented in VHDL.

Programming Languages

VHDL
269 projects
TeX
3793 projects
powershell
5483 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to JSON-for-VHDL

Edalize
An abstraction library for interfacing EDA tools
Stars: ✭ 270 (+382.14%)
Mutual labels:  fpga, simulation, vhdl, synthesis
docker
Scripts to build and use docker images including GHDL
Stars: ✭ 27 (-51.79%)
Mutual labels:  simulation, vhdl, synthesis, ghdl
fpga-docker
Tools for running FPGA vendor toolchains with Docker
Stars: ✭ 54 (-3.57%)
Mutual labels:  fpga, vhdl, xilinx, lattice
PoC-Examples
This repository contains synthesizable examples which use the PoC-Library.
Stars: ✭ 27 (-51.79%)
Mutual labels:  fpga, vhdl, synthesis
vim-hdl
Vim plugin to aid VHDL development (for LSP, see https://github.com/suoto/hdl_checker)
Stars: ✭ 59 (+5.36%)
Mutual labels:  vhdl, xilinx, modelsim
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (-55.36%)
Mutual labels:  fpga, vhdl, synthesis
fphdl
VHDL-2008 Support Library
Stars: ✭ 36 (-35.71%)
Mutual labels:  simulation, vhdl, synthesis
intfftk
Fully pipelined Integer Scaled / Unscaled Radix-2 Forward/Inverse Fast Fourier Transform (FFT) IP-core for newest Xilinx FPGAs (Source language - VHDL / Verilog). GNU GPL 3.0.
Stars: ✭ 43 (-23.21%)
Mutual labels:  fpga, vhdl, xilinx
Livehd
Live Hardware Development (LiveHD), a productive infrastructure for Synthesis and Simulation
Stars: ✭ 110 (+96.43%)
Mutual labels:  fpga, simulation, synthesis
virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (-32.14%)
Mutual labels:  fpga, xilinx
BenEaterVHDL
VHDL project to run a simple 8-bit computer very similar to the one built by Ben Eater (see https://eater.net)
Stars: ✭ 30 (-46.43%)
Mutual labels:  fpga, vhdl
async fifo
A dual clock asynchronous FIFO written in verilog, tested with Icarus Verilog
Stars: ✭ 117 (+108.93%)
Mutual labels:  fpga, synthesis
platform-lattice ice40
Lattice iCE40: development platform for PlatformIO
Stars: ✭ 34 (-39.29%)
Mutual labels:  fpga, lattice
vhdl-hdmi-out
HDMI Out VHDL code for 7-series Xilinx FPGAs
Stars: ✭ 36 (-35.71%)
Mutual labels:  fpga, vhdl
captouch
👇 Add capacitive touch buttons to any FPGA!
Stars: ✭ 96 (+71.43%)
Mutual labels:  fpga, vhdl
SpinalCrypto
SpinalHDL - Cryptography libraries
Stars: ✭ 36 (-35.71%)
Mutual labels:  fpga, vhdl
vboard
Virtual development board for HDL design
Stars: ✭ 32 (-42.86%)
Mutual labels:  vhdl, ghdl
zc pcie dma
DMA attacks over PCI Express based on Xilinx Zynq-7000 series SoC
Stars: ✭ 37 (-33.93%)
Mutual labels:  fpga, xilinx
vivado-docker
Dockerfile with Vivado for CI
Stars: ✭ 22 (-60.71%)
Mutual labels:  fpga, xilinx
PothosZynq
DMA source and sink blocks for Xilinx Zynq FPGAs
Stars: ✭ 19 (-66.07%)
Mutual labels:  fpga, xilinx

JSON-for-VHDL

CLA assistant

JSON-for-VHDL is a library to parse and query JSON data structures in VHDL. The complete functionality is hosted in a single VHDL package, without special dependencies.

Table of Content:

  1. Overview
  2. JSON - JavaScript Object Notation
  3. Short Example
  4. Download

1 Overview

The JSON-for-VHDL library can be used to parse and query JSON data structures, which are read from disk. The data structure is read via VHDL file I/O functions and procedures and parsed into a internal compressed representation. While the parsing is done, a lightwight index is created to ease the navigation on the data structure.

Values can be selected by simple path expressions.

2 JSON - JavaScript Object Notation

JavaScript Object Notation (JSON) Data Interchange Format is specified in RFC 7159.

3 Short Example

Here is a short example *.json file, which describes two common FPGA boards.

{  "ML505": {
    "FPGA":        "XC5VLX50T-1FF1136",
    "Eth": [{
      "PHY-Int":   "GMII",
      "Device":    "MARVEL_88E1111",
      "Address":   "0x74"
    }]
  },
  "KC705": {
    "FPGA":        "XC7K325T-2FFG900C",
    "Eth": [{
      "PHY-Int":   "GMII",
      "Device":    "MARVEL_88E1111",
      "Address":   "0x74"
    }],
    "IIC": [{
      "Type":      "Switch",
      "Adr":       "0x85",
      "Devices": [{
        "Name":    "Si570",
        "Address": "0x3A"
      }]
    }]
  }
}

Reference the JSON package in VHDL:

use work.json.all;

Load a external *.json file, parse the data structure and select a value:

architecture rtl of Test is
  constant ConfigFile   : STRING    := "Boards.json";
  constant JSONContent	: T_JSON    := jsonLoad(ConfigFile);
begin
  assert (JSONContent.Error(1) = C_JSON_NUL)
    report "Error: " & JSONContent.Error
    severity ERROR;
  assert FALSE
    report "Query='KC705/Eth/0/Address' Value='" & jsonGetString(JSONContent, "KC705/Eth/0/Address") & "'"
    severity NOTE;

  -- print the compressed file content
--  assert FALSE
--    report "JSON: " & JSONContent.Content severity NOTE;
end architecture;

4 Download

The library can be downloaded as a zip-file (latest 'master' branch) or cloned with git from GitHub. GitHub offers HTTPS and SSH as transfer protocols.

For SSH protocol use the URL ssh://[email protected]:Paebbels/JSON-for-VHDL.git or command line instruction:

cd <GitRoot>
git clone ssh://[email protected]:Paebbels/JSON-for-VHDL.git JSON

For HTTPS protocol use the URL https://github.com/Paebbels/JSON-for-VHDL.git or command line instruction:

cd <GitRoot>
git clone https://github.com/Paebbels/JSON-for-VHDL.git JSON
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].