JSON lib in Systemverilog
JSON是应用广泛的一种数据表示格式, JSONinSV是使用SystemVerilog实现的JSON库.
- ECMA-404
- RFC-8259
- json-tutorial
- IEEE1800-IEEE Standard for SystemVerilog
JSONinSV实现的功能规格主要是三个部分:
- JSON文本的解析, 包括从字符串解析和文本文件解析;
- JSON文本输出, 支持JSON顶层值输出到格式化字符串以及输出到文本文件;
- 支持JSON值的编辑;
对应JSON的值类型, JSONinSV的实现规格如下:
true, false, null
只支持直接对应的小写字面值;- 字符串. 理论上支持任意编码格式的字符串, 但是为了EDA工具的兼容性, 用户应当尽量使用纯ASCII字符集. 结合IEEE1800 5.9节以及RFC8259的第9章, JSONinSV支持的转义字符有:
"\""
"\\"
"\n"
"\t"
"\f"
- 数字统一解析为SystemVerilog中的real类型, 即IEEE574定义的64bit双精度浮点数. 需要支持大整数和高精度数据等超过64bit双精度浮点数表示的数据时, 建议用户使用字符串表示数值并在上层应用中实现.
- 列表, 支持空列表.
- 对象, 支持空对象. 对于key重复的值, 会使用后面的key-value成员进行覆盖.