mirror of https://github.com/YosysHQ/icestorm.git
Merge pull request #151 from mithro/hlc-lut-init
icebox_hlc2asc: Allow truth tables to be specified as init string.
This commit is contained in:
commit
25cda32bb8
|
|
@ -832,8 +832,19 @@ class LogicCell:
|
||||||
if fields[0] == 'lut' and len(fields) == 2 and self.lut_bits is None:
|
if fields[0] == 'lut' and len(fields) == 2 and self.lut_bits is None:
|
||||||
self.lut_bits = fields[1]
|
self.lut_bits = fields[1]
|
||||||
elif fields[0] == 'out' and len(fields) >= 3 and fields[1] == '=':
|
elif fields[0] == 'out' and len(fields) >= 3 and fields[1] == '=':
|
||||||
self.lut_bits = logic_expression_to_lut(
|
m = re.match("([0-9]+)'b([01]+)", fields[2])
|
||||||
' '.join(fields[2:]), ('in_0', 'in_1', 'in_2', 'in_3'))
|
if m:
|
||||||
|
lut_bits = m.group(2)
|
||||||
|
if len(lut_bits) != int(m.group(1)):
|
||||||
|
raise ParseError
|
||||||
|
m = len(lut_bits)
|
||||||
|
if m < 16:
|
||||||
|
lut_bits = (16-m) * "0" + lut_bits
|
||||||
|
# Verilog 16'bXXXX is MSB first but the bitstream wants LSB.
|
||||||
|
self.lut_bits = lut_bits[::-1]
|
||||||
|
else:
|
||||||
|
self.lut_bits = logic_expression_to_lut(
|
||||||
|
' '.join(fields[2:]), ('in_0', 'in_1', 'in_2', 'in_3'))
|
||||||
elif fields == ['enable_carry']:
|
elif fields == ['enable_carry']:
|
||||||
self.seq_bits[0] = '1'
|
self.seq_bits[0] = '1'
|
||||||
elif fields == ['enable_dff']:
|
elif fields == ['enable_dff']:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue