diff options
author | Marcin KoĆcielnicki <mwk@0x04.net> | 2020-02-01 10:21:19 +0100 |
---|---|---|
committer | Marcelina KoĆcielnicka <mwk@0x04.net> | 2020-02-01 16:16:26 +0100 |
commit | 00fba627118fb536686b3d30f3b81f71b513cd51 (patch) | |
tree | a973c48450b6000a07bd9fde9c2dcf3e5c4e33e7 /CHANGELOG | |
parent | a1c840ca5d6e8b580e21ae48550570aa9665741a (diff) | |
download | yosys-00fba627118fb536686b3d30f3b81f71b513cd51.tar.gz yosys-00fba627118fb536686b3d30f3b81f71b513cd51.tar.bz2 yosys-00fba627118fb536686b3d30f3b81f71b513cd51.zip |
json: remove the 32-bit parameter special case
Before, the rules for encoding parameters in JSON were as follows:
- if the parameter is not a string:
- if it is exactly 32 bits long and there are no z or x bits, emit it
as an int
- otherwise, emit it as a string made of 0/1/x/z characters
- if the parameter is a string:
- if it contains only 0/1/x/z characters, append a space at the end
to distinguish it from a non-string
- otherwise, emit it directly
However, this caused a problem in the json11 parser used in nextpnr:
yosys emits unsigned ints, and nextpnr parses them as signed, using
the value of INT_MIN for values that overflow the signed int range.
This caused destruction of LUT5 initialization values. Since both
nextpnr and yosys parser can also accept 32-bit parameters in the
same encoding as other widths, let's just remove that special case.
The old behavior is still left behind a `-compat-int` flag, in case
someone relies on it.
Diffstat (limited to 'CHANGELOG')
0 files changed, 0 insertions, 0 deletions