Commit Graph

674 Commits

Author SHA1 Message Date
Simon Schubert be0bca0230 u4k: add SMCCLK cell location
icecube uses SMCCLK.CLK to "legalize" output cells.  Unclear what this
is for, but it appears in almost all outputs.
2019-02-22 22:35:55 +01:00
Simon Schubert d76ac32ec9 iCE40 Ultra = iCE5LP = u4k port 2019-02-22 22:35:55 +01:00
Clifford Wolf c0cbae88ab
Merge pull request #197 from delvers/master
add boost dependencie for fedora
2018-12-31 15:51:00 +01:00
David Elvers f43f88cf24
add boost dependencies for fedora 2018-12-29 16:48:46 +01:00
Clifford Wolf 9671b760f8 Merge branch 'master' of github.com:cliffordwolf/icestorm 2018-11-09 12:08:47 +01:00
Clifford Wolf 06c11f9c77
Merge pull request #188 from esden/docs-nextpnr
Added NextPNR deps and install instructions to docs.
2018-11-09 12:08:07 +01:00
Piotr Esden-Tempski e57ad02afb Added NextPNR deps and install instructions to docs. 2018-11-08 16:38:58 -08:00
Clifford Wolf 8eedb8cf04 Build optimized binaries by default
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-10-30 11:33:36 +01:00
Clifford Wolf 90f0e40cb8
Merge pull request #184 from nathanrossi/nrossi/portable-chipdb
icetime: Add support for searching for chipdb relative to binary
2018-10-30 11:28:34 +01:00
Clifford Wolf 8f738342bc
Merge pull request #187 from jburgess777/icebox-compile-warning
Fix compile warning in icetime.cc
2018-10-30 11:26:26 +01:00
Jon Burgess ccb2b40412 Fix compile warning in icetime.cc
icetime.cc: In function ‘std::__cxx11::string ecnetname_to_vlog(std::__cxx11::string)’:
icetime.cc:1323:32: warning: catching polymorphic type ‘class std::invalid_argument’ by value [-Wcatch-value=]
  } catch(std::invalid_argument e) { // Not numeric and stoi throws exception
2018-10-28 19:27:56 +00:00
Clifford Wolf 5ab07ed32a
Merge pull request #178 from elmsfu/hlc/add_symbols_support
hlc: parse '.sym>' to track signal names from HLC to ASC
2018-10-10 13:46:31 +02:00
Clifford Wolf 8f61acd055 Reference latest Lattice iCE Technology Library
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-09-04 15:28:56 +02:00
Nathan Rossi c1c13f3b3e icetime: Add support for searching for chipdb relative to binary
Like yosys and arachne-pnr, allow for searching for the desired chipdb
file relative to the executing binaries directory. This allows for
portable builds of icetime without needing to specify the exact path to
the needed chipdb file with the -C arg.

In order to support this icetime must be able to get the
"proc_self_dirname" path just like yosys and arachne-pnr. As such copy
the equivalent code to get this path information. To avoid cluttering
the icetime.cc file with this code, place it in a separate iceutil.cc
file.

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
2018-09-03 23:11:26 +10:00
Clifford Wolf 3681ade2c7 Force flash to exist QPI mode in iceprog
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-09-02 17:11:52 +02:00
Clifford Wolf 9df21fcb02 iceprog: switch to SPI mode 0, add -s option, add flash_reset
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-09-02 16:29:18 +02:00
Clifford Wolf b153645922
Merge pull request #182 from awygle/lm
Add support for cm36 and swg25tr lm4k packages.
2018-08-30 10:25:40 +02:00
Andrew Wygle 9dbc14410f Add support for cm36 and swg25tr lm4k packages. 2018-08-28 08:29:53 -07:00
Clifford Wolf c02a4000f4 Merge branch 'esden-iceprog-work' 2018-08-19 15:21:18 +02:00
Clifford Wolf 22e8b744da Minor style changes in iceprog
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19 15:21:04 +02:00
Clifford Wolf 65ae583b3e iceprog coding style, don't use "assert" as variable name
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19 15:12:51 +02:00
Piotr Esden-Tempski 9a58588772 Slightly more robust flash wait function.
In cases when the FLASH chip is bit flaky and the status register
"bounces" this flash_wait should be able to perform a bit better.

Also added more verbose output around block erase.
2018-08-18 16:13:27 -07:00
Piotr Esden-Tempski 868ac2d93f Add a function to read and decode the status register.
Very useful for debugging purposes. ;)
2018-08-18 15:53:38 -07:00
Piotr Esden-Tempski 20ef4efd8b Added the FTDI cable pinout for reference. 2018-08-18 15:29:11 -07:00
Piotr Esden-Tempski f4ff8f7630 Improved JEDEC ID read function.
The function now checks how long the extended JEDEC ID field is for the
particular FLASH chip and only reads the amount provided by the chip.
2018-08-18 15:26:37 -07:00
Piotr Esden-Tempski 3ba1acf31b Replaced some more magic numbers with FLASH command IDs.
I missed those the first time around.
2018-08-18 14:46:12 -07:00
Piotr Esden-Tempski ee7eae0be8 Added easier to read chip_select/reset functions.
Just calling a gpio function with two numbers was not very self
explanatory. The functions now refer to the actual indended action, chip
(de)select for flash, reset and chip (de)select for sram. Reading the
code and understanding what steps are taken should be easier now.
2018-08-18 14:41:42 -07:00
Piotr Esden-Tempski 96b1a90f28 Added more code comments.
Main point was to group the code into three logical segments:
* MPSSE/FTDI defines and functions
* FLASH defines and functions
* iceprog implementation core

While I was at it I also added a few comments for stuff that was not
immediately obvious what it does.
2018-08-16 14:22:53 -07:00
Clifford Wolf 7e732889f0
Merge pull request #180 from litghost/add_5x
Add 5k support to hlc2asc.
2018-08-09 22:10:35 +02:00
Keith Rothman 497028cf5a Add 5k support to hlc2asc.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2018-08-09 13:01:18 -07:00
Clifford Wolf 8cac6c5840 Also install text timing databases
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 16:04:04 +02:00
Elms 542e9ef0f3 icebox: parse '.sym>' HLC to track signal names 2018-07-26 10:12:56 -07:00
Clifford Wolf 4582202121
Merge pull request #176 from elmsfu/hlc2asc/lut_keyword_fix
icebox_hlc2asc: fix _lut_ keyword parsing
2018-07-20 15:05:46 +02:00
Clifford Wolf d992fc76ae
Merge pull request #175 from daveshah1/fix_lutcascade
icetime: Remove non-existent paths from ce/sr to ltout
2018-07-20 15:02:38 +02:00
Elms 61aa5c5094 icebox_hlc2asc: fix _lut_ keyword parsing
'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.
2018-07-19 16:03:20 -07:00
David Shah c588247387 icetime: Remove non-existent paths from ce/sr to ltout
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 18:51:17 +02:00
Larry Doolittle e0eaaf5b91 Spelling fixes in messages 2018-07-19 13:59:42 +02:00
Clifford Wolf 6528b96bec
Merge pull request #173 from osresearch/parallel-make
Allow parallel make all to build each subdir simultaneously
2018-07-17 13:44:04 +02:00
Trammell Hudson 1b1538deb4
Allow parallel make all to build each subdir simultaneously 2018-07-17 07:40:28 -04:00
Clifford Wolf 5aeb5c9b4d
Merge pull request #172 from mithro/hlc-glb
hlc: Use glb_network for current device.
2018-07-17 10:51:55 +02:00
Tim 'mithro' Ansell 22f10b9e22 hlc: Use glb_network for current device.
Previously the 1k global networks were hard coded. This now uses the
values from the given part.
2018-07-16 18:05:49 -07:00
Clifford Wolf 6a1bd78687
Merge pull request #169 from mithro/patch-1
Update README to be clearer
2018-07-10 21:21:58 +02:00
Clifford Wolf 763eb0f217
Merge pull request #168 from elmsfu/hlc2asc/verilog_literal_ram_data
icebox_hlc2asc: Allow data of ram to use verilog literal format
2018-07-10 21:21:13 +02:00
Clifford Wolf 9ccdd95ff7
Merge pull request #167 from mithro/icebox_vlog_drivers
icebox_vlog: Better information about drivers for nets.
2018-07-10 21:20:59 +02:00
Clifford Wolf 2d1f1f6258
Merge pull request #164 from mithro/global-fix
Fix spelling and io_X/GLOBAL_OUTPUT_NETWORK
2018-07-10 21:20:20 +02:00
Clifford Wolf 28d9f2f1ac
Merge pull request #170 from mithro/const-lut-out
icebox_vlog: Fix constant LUT output.
2018-07-10 21:19:38 +02:00
Tim 'mithro' Ansell d0f654b0c6 icebox_vlog: Fix constant LUT output. 2018-07-08 18:18:56 -07:00
Tim 'mithro' Ansell ef618927ca icebox_vlog: Save error message to file and print it.
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']
```
2018-07-08 15:59:53 -07:00
Tim Ansell 69d32b129b
Update README to be clearer
The example doesn't work out of the box with the iCEblink40-lp1k board.
2018-07-03 13:19:58 -07:00
Elms 41ac3eaeab icebox_hlc2asc: Allow data of ram to use verilog literal format 2018-07-03 11:31:43 -07:00