mirror of https://github.com/YosysHQ/icestorm.git
Better error message when bit pattern is missing.
Previously;
```
self.apply_directive('buffer', src, dst)
File "/usr/local/google/home/tansell/work/catx/vtr/env/conda/bin/icebox_hlc2asc", line 698, in apply_directive
bits, = [entry[0] for entry in self.db if entry[1:] == fields]
ValueError: not enough values to unpack (expected 1, got 0)
```
Now:
```
Parse error in line 2108:
span12_y4_g14_0 -> span4_y4_g11_7 <-> span4_x7_g4_0
No bit pattern for ['buffer', 'sp12_h_r_11', 'sp4_h_r_7'] in LogicTile(1k, 7, 4)
```
This commit is contained in:
parent
f7e9fec63a
commit
dd55658266
|
|
@ -692,10 +692,15 @@ class Tile:
|
|||
self.bits_set = set()
|
||||
self.bits_cleared = set()
|
||||
|
||||
def __str__(self):
|
||||
return "{}({}, {}, {})".format(self.__class__.__name__, self.ic.device, self.x, self.y)
|
||||
|
||||
def apply_directive(self, *fields):
|
||||
fields = list(fields)
|
||||
bits, = [entry[0] for entry in self.db if entry[1:] == fields]
|
||||
self.set_bits(bits)
|
||||
bits = [entry[0] for entry in self.db if entry[1:] == fields]
|
||||
if len(bits) == 0:
|
||||
raise ParseError("No bit pattern for {} in {}".format(fields, self))
|
||||
self.set_bits(bits[0])
|
||||
|
||||
def set_bits(self, bits):
|
||||
bits_set = set()
|
||||
|
|
@ -1010,9 +1015,12 @@ def main1(path):
|
|||
stack.append(stack[-1].new_block(fields[:-1]))
|
||||
else:
|
||||
stack[-1].read(fields)
|
||||
except ParseError:
|
||||
except ParseError as e:
|
||||
sys.stderr.write("Parse error in line %d:\n" % (i + 1))
|
||||
sys.stderr.write(line)
|
||||
if e.args:
|
||||
sys.stderr.write("\n")
|
||||
print(*e.args, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
if len(stack) != 1:
|
||||
sys.stderr.write("Parse error: unexpected end of file")
|
||||
|
|
|
|||
Loading…
Reference in New Issue