Special case handling
This commit is contained in:
parent
5ce6ab64f4
commit
83345aeddb
|
|
@ -433,7 +433,7 @@ Chip Bitstream::deserialise_chip()
|
||||||
val |= Die::FF_INIT_RESET << (i * 2);
|
val |= Die::FF_INIT_RESET << (i * 2);
|
||||||
else if (v == 0xc0)
|
else if (v == 0xc0)
|
||||||
val |= Die::FF_INIT_SET << (i * 2);
|
val |= Die::FF_INIT_SET << (i * 2);
|
||||||
else
|
else if (v != 0x00)
|
||||||
BITSTREAM_FATAL(stringf("Unknown CPE state %d on pos %d,%d\n", v, x_pos, y_pos),
|
BITSTREAM_FATAL(stringf("Unknown CPE state %d on pos %d,%d\n", v, x_pos, y_pos),
|
||||||
rd.get_offset());
|
rd.get_offset());
|
||||||
}
|
}
|
||||||
|
|
@ -660,6 +660,9 @@ Bitstream Bitstream::serialise_chip(const Chip &chip)
|
||||||
if (iteration == 0) {
|
if (iteration == 0) {
|
||||||
// First iteration does not setup CPE at all
|
// First iteration does not setup CPE at all
|
||||||
std::fill(data.begin(), data.begin() + 40, 0);
|
std::fill(data.begin(), data.begin() + 40, 0);
|
||||||
|
// Empty configuration is skipped
|
||||||
|
if (std::all_of(data.begin(), data.end(), [](uint8_t i) { return i == 0; }))
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
// 2nd iteration with no changes if no FF initialization
|
// 2nd iteration with no changes if no FF initialization
|
||||||
if (iteration == 1 && ff_init) {
|
if (iteration == 1 && ff_init) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue