mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-26 01:14:37 +00:00 
			
		
		
		
	| 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. | ||
|---|---|---|
| .. | ||
| json.cc | ||
| Makefile.inc | ||