| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
'self.lut_bits is None' was always false. The _lut_ keyword is used by asc2hlc, so when converting asc->hlc->asc the lut_bits were always all zeros.
|
| |
|
|
|
|
|
| |
Previously the 1k global networks were hard coded. This now uses the
values from the given part.
|
|\
| |
| | |
icebox_hlc2asc: Allow data of ram to use verilog literal format
|
| | |
|
|\ \
| | |
| | | |
icebox_vlog: Better information about drivers for nets.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously if you were doing;
`icebox_vlog example.asc > example_bit.v` you would just get;
```
Traceback (most recent call last):
File "icebox_vlog.py", line 947, in <module>
assert False
AssertionError
```
Now you get;
```
Traceback (most recent call last):
File "icebox_vlog.py", line 948, in <module>
assert False, "\n ".join(emsg)
AssertionError: Single-driver-check failed for 2 nets:
n10 has 0 drivers: []
n15 has 2 drivers: ['clk', 'clk2']
```
|
| |/ |
|
|\ \
| | |
| | | |
Fix spelling and io_X/GLOBAL_OUTPUT_NETWORK
|
| | | |
|
| |/ |
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| | |
icebox_hlcsort: Adding a tool for canonicalizing HLC files.
|
| |
| |
| |
| |
| | |
This is done by sorting all the commands inside a block. Doing so makes
it much easier to diff two files.
|
|/
|
|
|
|
|
|
| |
Current code fails with the following;
```
Parse error in line 94:
span4_y3_g15_6 -> local_g0_3 -> D_OUT_0
```
|
|\
| |
| | |
icebox_hlc2asc: Allow truth tables to be specified as init string.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Examples;
```hlc
lutff_5 {
# - Parameters -------
# LUT_INIT = 0111111110000000
local_g3_4 -> lutff_5/in_0
local_g0_6 -> lutff_5/in_1
local_g2_7 -> lutff_5/in_2
lutff_5/out -> span4_x3_g12_11
lutff_5/out -> local_g3_5 -> lutff_5/in_3
out = 16'b0111111110000000
enable_dff
}
```
```hlc
lutff_4 {
local_g3_5 -> lutff_4/in_2
lutff_4/out -> span12_y12_g6_0
out = 16'b0000000000010000
enable_dff
}
```
```hlc
lutff_2 {
# - Parameters -------
# LUT_INIT = 01
lutff_2/out -> span12_y12_g8_0
lutff_2/out -> span12_x2_g14_0
lutff_2/out -> local_g0_2 -> lutff_2/in_0
out = 2'b01
enable_dff
}
```
|
|\ \
| | |
| | | |
Remove bidir stuff in HLC
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As mentioned in ca6b2d9ebd521ecec58b9b5627c9380355adeab1, the 'routing'
switches are not actually bidirectional. This makes the '<->' specifier
very misleading.
Instead use '~>' to differentiate it from the 'buffer' switches.
|
| |/
| |
| |
| | |
See ca6b2d9ebd521ecec58b9b5627c9380355adeab1.
|
|\ \
| | |
| | | |
icebox_hlc2asc: Accept device types such as HX1K
|
| |/ |
|
|\ \
| | |
| | | |
icebox: Fix driver detection for LUT cascade.
|
| |/
| |
| |
| | |
The lutff_X/lout is a driver signal.
|
|/
|
|
| |
sig values where "1'b0" and "1'b1" not "0" or "1".
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now;
-----------------
Parse error in line 364:
span4_y9_g7_10 <-> span4_x3_g13_5
conflicting bits ['!B12[8]', '!B12[9]', 'B12[10]']
setting:{(12, 10)} - current clear:{(12, 10), (12, 8)}
clearing:{(12, 9), (12, 8)} - current set :{(12, 9)}
-----------------
Previously;
-----------------
File "icebox_hlc2asc.py", line 742, in apply_directive
self.set_bits(bits)
File "icebox_hlc2asc.py", line 762, in set_bits
raise ParseError("conflicting bits")
TypeError: __init__() takes 1 positional argument but 2 were given
-----------------
|
|\
| |
| | |
Allow routing (bidir) entries to be looked up in either direction.
|
| | |
|
|\|
| |
| | |
Support both `abc/123` and `123` forms of specifying tracks.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
```
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
IE
```
lutff_1 {
lutff_1/out -> local_g2_1 -> lutff_1/in_0
local_g2_2 -> lutff_1/in_3
local_g2_7 -> lutff_1/in_2
}
```
|
| |
| |
| |
| | |
Kind of fixes #145.
|
|/
|
|
| |
Signed-off-by: David Shah <davey1576@gmail.com>
|
|\
| |
| | |
Icebox support for ice40 LM
|
| | |
|
| | |
|
| |
| |
| |
| | |
Config SPI pins weren't present in ioctrl_lm4k.sh
|
| | |
|
| | |
|
| |
| |
| |
| | |
Needs testing.
|
| | |
|
| | |
|
|/
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| |
|