diff options
Diffstat (limited to 'icebox')
| -rw-r--r-- | icebox/Makefile | 101 | ||||
| -rw-r--r-- | icebox/icebox.py | 195 | ||||
| -rwxr-xr-x | icebox/icebox_asc2hlc.py | 8 | ||||
| -rwxr-xr-x | icebox/icebox_chipdb.py | 6 | ||||
| -rwxr-xr-x | icebox/icebox_colbuf.py | 6 | ||||
| -rwxr-xr-x | icebox/icebox_diff.py | 6 | ||||
| -rwxr-xr-x | icebox/icebox_explain.py | 6 | ||||
| -rwxr-xr-x | icebox/icebox_hlc2asc.py | 8 | ||||
| -rwxr-xr-x | icebox/icebox_html.py | 2 | ||||
| -rwxr-xr-x | icebox/icebox_maps.py | 19 | ||||
| -rwxr-xr-x | icebox/icebox_stat.py | 6 | ||||
| -rwxr-xr-x | icebox/icebox_vlog.py | 11 |
12 files changed, 299 insertions, 75 deletions
diff --git a/icebox/Makefile b/icebox/Makefile index 5088f46..38ec8a4 100644 --- a/icebox/Makefile +++ b/icebox/Makefile @@ -1,5 +1,11 @@ include ../config.mk +ifneq ($(shell uname -s),Darwin) + SED_I = sed -i +else + SED_I = sed -i '' +endif + all: chipdb-384.txt chipdb-1k.txt chipdb-8k.txt chipdb-5k.txt chipdb-lm4k.txt chipdb-u4k.txt chipdb-384.txt: icebox.py iceboxdb.py icebox_chipdb.py @@ -36,45 +42,66 @@ clean: rm -f icebox.pyc iceboxdb.pyc install: all - mkdir -p $(DESTDIR)$(PREFIX)/share/icebox + mkdir -p $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox mkdir -p $(DESTDIR)$(PREFIX)/bin - cp chipdb-384.txt $(DESTDIR)$(PREFIX)/share/icebox/ - cp chipdb-1k.txt $(DESTDIR)$(PREFIX)/share/icebox/ - cp chipdb-8k.txt $(DESTDIR)$(PREFIX)/share/icebox/ - cp chipdb-5k.txt $(DESTDIR)$(PREFIX)/share/icebox/ - cp chipdb-u4k.txt $(DESTDIR)$(PREFIX)/share/icebox/ - cp chipdb-lm4k.txt $(DESTDIR)$(PREFIX)/share/icebox/ - cp icebox.py $(DESTDIR)$(PREFIX)/bin/icebox.py - cp iceboxdb.py $(DESTDIR)$(PREFIX)/bin/iceboxdb.py - cp icebox_chipdb.py $(DESTDIR)$(PREFIX)/bin/icebox_chipdb$(PY_EXE) - cp icebox_diff.py $(DESTDIR)$(PREFIX)/bin/icebox_diff$(PY_EXE) - cp icebox_explain.py $(DESTDIR)$(PREFIX)/bin/icebox_explain$(PY_EXE) - cp icebox_asc2hlc.py $(DESTDIR)$(PREFIX)/bin/icebox_asc2hlc$(PY_EXE) - cp icebox_hlc2asc.py $(DESTDIR)$(PREFIX)/bin/icebox_hlc2asc$(PY_EXE) - cp icebox_colbuf.py $(DESTDIR)$(PREFIX)/bin/icebox_colbuf$(PY_EXE) - cp icebox_html.py $(DESTDIR)$(PREFIX)/bin/icebox_html$(PY_EXE) - cp icebox_maps.py $(DESTDIR)$(PREFIX)/bin/icebox_maps$(PY_EXE) - cp icebox_vlog.py $(DESTDIR)$(PREFIX)/bin/icebox_vlog$(PY_EXE) - cp icebox_stat.py $(DESTDIR)$(PREFIX)/bin/icebox_stat$(PY_EXE) + cp chipdb-384.txt $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/ + cp chipdb-1k.txt $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/ + cp chipdb-8k.txt $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/ + cp chipdb-5k.txt $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/ + cp chipdb-u4k.txt $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/ + cp chipdb-lm4k.txt $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/ + cp icebox.py $(DESTDIR)$(PREFIX)/bin/$(subst -,_,$(PROGRAM_PREFIX))icebox.py + cp iceboxdb.py $(DESTDIR)$(PREFIX)/bin/$(subst -,_,$(PROGRAM_PREFIX))iceboxdb.py + cp icebox_chipdb.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_chipdb$(PY_EXE) + cp icebox_diff.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_diff$(PY_EXE) + cp icebox_explain.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_explain$(PY_EXE) + cp icebox_asc2hlc.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_asc2hlc$(PY_EXE) + cp icebox_hlc2asc.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_hlc2asc$(PY_EXE) + cp icebox_colbuf.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_colbuf$(PY_EXE) + cp icebox_html.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_html$(PY_EXE) + cp icebox_maps.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_maps$(PY_EXE) + cp icebox_vlog.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_vlog$(PY_EXE) + cp icebox_stat.py $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_stat$(PY_EXE) + $(SED_I) 's+import iceboxdb+import $(subst -,_,$(PROGRAM_PREFIX))iceboxdb as iceboxdb+g' $(DESTDIR)$(PREFIX)/bin/$(subst -,_,$(PROGRAM_PREFIX))icebox.py + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_chipdb$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_diff$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_diff$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_explain$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_explain$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_asc2hlc$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_asc2hlc$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_hlc2asc$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_hlc2asc$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_colbuf$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_colbuf$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_html$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_html$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_maps$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_maps$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_vlog$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_vlog$(PY_EXE) + $(SED_I) 's+/usr/local/share/icebox+$(PREFIX)/share/$(PROGRAM_PREFIX)icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_vlog$(PY_EXE) + $(SED_I) 's+import icebox+import $(subst -,_,$(PROGRAM_PREFIX))icebox as icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_stat$(PY_EXE) + $(SED_I) 's+from icebox+from $(subst -,_,$(PROGRAM_PREFIX))icebox+g' $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_stat$(PY_EXE) uninstall: - rm -f $(DESTDIR)$(PREFIX)/bin/icebox.py - rm -f $(DESTDIR)$(PREFIX)/bin/iceboxdb.py - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_chipdb$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_diff$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_explain$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_asc2hlc$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_hlc2asc$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_colbuf$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_html$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_maps$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_vlog$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/bin/icebox_stat$(PY_EXE) - rm -f $(DESTDIR)$(PREFIX)/share/icebox/chipdb-384.txt - rm -f $(DESTDIR)$(PREFIX)/share/icebox/chipdb-1k.txt - rm -f $(DESTDIR)$(PREFIX)/share/icebox/chipdb-8k.txt - rm -f $(DESTDIR)$(PREFIX)/share/icebox/chipdb-lm4k.txt - rm -f $(DESTDIR)$(PREFIX)/share/icebox/chipdb-u4k.txt - -rmdir $(DESTDIR)$(PREFIX)/share/icebox + rm -f $(DESTDIR)$(PREFIX)/bin/$(subst -,_,$(PROGRAM_PREFIX))cebox.py + rm -f $(DESTDIR)$(PREFIX)/bin/$(subst -,_,$(PROGRAM_PREFIX))iceboxdb.py + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_chipdb$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_diff$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_explain$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_asc2hlc$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_hlc2asc$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_colbuf$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_html$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_maps$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_vlog$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_PREFIX)icebox_stat$(PY_EXE) + rm -f $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/chipdb-384.txt + rm -f $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/chipdb-1k.txt + rm -f $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/chipdb-8k.txt + rm -f $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/chipdb-lm4k.txt + rm -f $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox/chipdb-u4k.txt + -rmdir $(DESTDIR)$(PREFIX)/share/$(PROGRAM_PREFIX)icebox .PHONY: all check clean install uninstall diff --git a/icebox/icebox.py b/icebox/icebox.py index 0422f13..a7631a2 100644 --- a/icebox/icebox.py +++ b/icebox/icebox.py @@ -1954,7 +1954,8 @@ pllinfo_db = { "PLLOUT_SELECT_B_1": (12, 31, "PLLCONFIG_3"), # Numeric Parameters - "SHIFTREG_DIV_MODE": (12, 31, "PLLCONFIG_4"), + "SHIFTREG_DIV_MODE_0": (12, 31, "PLLCONFIG_4"), + "SHIFTREG_DIV_MODE_1": (14, 31, "PLLCONFIG_6"), "FDA_FEEDBACK_0": (12, 31, "PLLCONFIG_9"), "FDA_FEEDBACK_1": (13, 31, "PLLCONFIG_1"), "FDA_FEEDBACK_2": (13, 31, "PLLCONFIG_2"), @@ -5785,6 +5786,198 @@ extra_cells_db = { }, "u4k" : { + ("SPI", (0, 0, 0)): { + "MCSNO0": (0, 3, "slf_op_1"), + "MCSNO1": (0, 3, "slf_op_3"), + "MCSNO2": (0, 3, "slf_op_6"), + "MCSNO3": (0, 4, "slf_op_0"), + "MCSNOE0": (0, 3, "slf_op_2"), + "MCSNOE1": (0, 3, "slf_op_4"), + "MCSNOE2": (0, 3, "slf_op_7"), + "MCSNOE3": (0, 4, "slf_op_1"), + "MI": (0, 2, "lutff_0/in_1"), + "MO": (0, 2, "slf_op_5"), + "MOE": (0, 2, "slf_op_6"), + "SBACKO": (0, 2, "slf_op_0"), + "SBADRI0": (0, 1, "lutff_1/in_1"), + "SBADRI1": (0, 1, "lutff_2/in_1"), + "SBADRI2": (0, 2, "lutff_0/in_3"), + "SBADRI3": (0, 2, "lutff_1/in_3"), + "SBADRI4": (0, 2, "lutff_2/in_3"), + "SBADRI5": (0, 2, "lutff_3/in_3"), + "SBADRI6": (0, 2, "lutff_4/in_3"), + "SBADRI7": (0, 2, "lutff_5/in_3"), + "SBCLKI": (0, 1, "clk"), + "SBDATI0": (0, 1, "lutff_1/in_3"), + "SBDATI1": (0, 1, "lutff_2/in_3"), + "SBDATI2": (0, 1, "lutff_3/in_3"), + "SBDATI3": (0, 1, "lutff_4/in_3"), + "SBDATI4": (0, 1, "lutff_5/in_3"), + "SBDATI5": (0, 1, "lutff_6/in_3"), + "SBDATI6": (0, 1, "lutff_7/in_3"), + "SBDATI7": (0, 1, "lutff_0/in_1"), + "SBDATO0": (0, 1, "slf_op_0"), + "SBDATO1": (0, 1, "slf_op_1"), + "SBDATO2": (0, 1, "slf_op_2"), + "SBDATO3": (0, 1, "slf_op_3"), + "SBDATO4": (0, 1, "slf_op_4"), + "SBDATO5": (0, 1, "slf_op_5"), + "SBDATO6": (0, 1, "slf_op_6"), + "SBDATO7": (0, 1, "slf_op_7"), + "SBRWI": (0, 1, "lutff_0/in_3"), + "SBSTBI": (0, 2, "lutff_6/in_3"), + "SCKI": (0, 2, "lutff_1/in_1"), + "SCKO": (0, 2, "slf_op_7"), + "SCKOE": (0, 3, "slf_op_0"), + "SCSNI": (0, 2, "lutff_2/in_1"), + "SI": (0, 2, "lutff_7/in_3"), + "SO": (0, 2, "slf_op_3"), + "SOE": (0, 2, "slf_op_4"), + "SPIIRQ": (0, 2, "slf_op_1"), + "SPIWKUP": (0, 2, "slf_op_2"), + "SPI_ENABLE_0": (7, 0, "cbit2usealt_in_0"), + "SPI_ENABLE_1": (6, 0, "cbit2usealt_in_0"), + "SPI_ENABLE_2": (7, 0, "cbit2usealt_in_1"), + "SPI_ENABLE_3": (6, 0, "cbit2usealt_in_1"), + }, + ("SPI", (25, 0, 1)): { + "MCSNO0": (25, 3, "slf_op_1"), + "MCSNO1": (25, 3, "slf_op_3"), + "MCSNO2": (25, 3, "slf_op_6"), + "MCSNO3": (25, 4, "slf_op_0"), + "MCSNOE0": (25, 3, "slf_op_2"), + "MCSNOE1": (25, 3, "slf_op_4"), + "MCSNOE2": (25, 3, "slf_op_7"), + "MCSNOE3": (25, 4, "slf_op_1"), + "MI": (25, 2, "lutff_0/in_1"), + "MO": (25, 2, "slf_op_5"), + "MOE": (25, 2, "slf_op_6"), + "SBACKO": (25, 2, "slf_op_0"), + "SBADRI0": (25, 1, "lutff_1/in_1"), + "SBADRI1": (25, 1, "lutff_2/in_1"), + "SBADRI2": (25, 2, "lutff_0/in_3"), + "SBADRI3": (25, 2, "lutff_1/in_3"), + "SBADRI4": (25, 2, "lutff_2/in_3"), + "SBADRI5": (25, 2, "lutff_3/in_3"), + "SBADRI6": (25, 2, "lutff_4/in_3"), + "SBADRI7": (25, 2, "lutff_5/in_3"), + "SBCLKI": (25, 1, "clk"), + "SBDATI0": (25, 1, "lutff_1/in_3"), + "SBDATI1": (25, 1, "lutff_2/in_3"), + "SBDATI2": (25, 1, "lutff_3/in_3"), + "SBDATI3": (25, 1, "lutff_4/in_3"), + "SBDATI4": (25, 1, "lutff_5/in_3"), + "SBDATI5": (25, 1, "lutff_6/in_3"), + "SBDATI6": (25, 1, "lutff_7/in_3"), + "SBDATI7": (25, 1, "lutff_0/in_1"), + "SBDATO0": (25, 1, "slf_op_0"), + "SBDATO1": (25, 1, "slf_op_1"), + "SBDATO2": (25, 1, "slf_op_2"), + "SBDATO3": (25, 1, "slf_op_3"), + "SBDATO4": (25, 1, "slf_op_4"), + "SBDATO5": (25, 1, "slf_op_5"), + "SBDATO6": (25, 1, "slf_op_6"), + "SBDATO7": (25, 1, "slf_op_7"), + "SBRWI": (25, 1, "lutff_0/in_3"), + "SBSTBI": (25, 2, "lutff_6/in_3"), + "SCKI": (25, 2, "lutff_1/in_1"), + "SCKO": (25, 2, "slf_op_7"), + "SCKOE": (25, 3, "slf_op_0"), + "SCSNI": (25, 2, "lutff_2/in_1"), + "SI": (25, 2, "lutff_7/in_3"), + "SO": (25, 2, "slf_op_3"), + "SOE": (25, 2, "slf_op_4"), + "SPIIRQ": (25, 2, "slf_op_1"), + "SPIWKUP": (25, 2, "slf_op_2"), + "SPI_ENABLE_0": (24, 0, "cbit2usealt_in_0"), + "SPI_ENABLE_1": (24, 0, "cbit2usealt_in_1"), + "SPI_ENABLE_2": (23, 0, "cbit2usealt_in_0"), + "SPI_ENABLE_3": (23, 0, "cbit2usealt_in_1"), + }, + ("I2C", (0, 21, 0)): { + "I2CIRQ": (0, 20, "slf_op_7"), + "I2CWKUP": (0, 19, "slf_op_5"), + "I2C_ENABLE_0": (13, 21, "cbit2usealt_in_0"), + "I2C_ENABLE_1": (12, 21, "cbit2usealt_in_1"), + "SBACKO": (0, 20, "slf_op_6"), + "SBADRI0": (0, 20, "lutff_1/in_0"), + "SBADRI1": (0, 20, "lutff_2/in_0"), + "SBADRI2": (0, 20, "lutff_3/in_0"), + "SBADRI3": (0, 20, "lutff_4/in_0"), + "SBADRI4": (0, 20, "lutff_5/in_0"), + "SBADRI5": (0, 20, "lutff_6/in_0"), + "SBADRI6": (0, 20, "lutff_7/in_0"), + "SBADRI7": (0, 19, "lutff_2/in_0"), + "SBCLKI": (0, 20, "clk"), + "SBDATI0": (0, 19, "lutff_5/in_0"), + "SBDATI1": (0, 19, "lutff_6/in_0"), + "SBDATI2": (0, 19, "lutff_7/in_0"), + "SBDATI3": (0, 20, "lutff_0/in_3"), + "SBDATI4": (0, 20, "lutff_5/in_1"), + "SBDATI5": (0, 20, "lutff_6/in_1"), + "SBDATI6": (0, 20, "lutff_7/in_1"), + "SBDATI7": (0, 20, "lutff_0/in_0"), + "SBDATO0": (0, 19, "slf_op_6"), + "SBDATO1": (0, 19, "slf_op_7"), + "SBDATO2": (0, 20, "slf_op_0"), + "SBDATO3": (0, 20, "slf_op_1"), + "SBDATO4": (0, 20, "slf_op_2"), + "SBDATO5": (0, 20, "slf_op_3"), + "SBDATO6": (0, 20, "slf_op_4"), + "SBDATO7": (0, 20, "slf_op_5"), + "SBRWI": (0, 19, "lutff_4/in_0"), + "SBSTBI": (0, 19, "lutff_3/in_0"), + "SCLI": (0, 19, "lutff_2/in_1"), + "SCLO": (0, 19, "slf_op_3"), + "SCLOE": (0, 19, "slf_op_4"), + "SDAI": (0, 19, "lutff_1/in_1"), + "SDAO": (0, 19, "slf_op_1"), + "SDAOE": (0, 19, "slf_op_2"), + "SDA_INPUT_DELAYED": (12, 21, "SDA_input_delay"), + "SDA_OUTPUT_DELAYED": (12, 21, "SDA_output_delay"), + }, + ("I2C", (25, 21, 0)): { + "I2CIRQ": (25, 20, "slf_op_7"), + "I2CWKUP": (25, 19, "slf_op_5"), + "I2C_ENABLE_0": (19, 21, "cbit2usealt_in_1"), + "I2C_ENABLE_1": (19, 21, "cbit2usealt_in_0"), + "SBACKO": (25, 20, "slf_op_6"), + "SBADRI0": (25, 20, "lutff_1/in_0"), + "SBADRI1": (25, 20, "lutff_2/in_0"), + "SBADRI2": (25, 20, "lutff_3/in_0"), + "SBADRI3": (25, 20, "lutff_4/in_0"), + "SBADRI4": (25, 20, "lutff_5/in_0"), + "SBADRI5": (25, 20, "lutff_6/in_0"), + "SBADRI6": (25, 20, "lutff_7/in_0"), + "SBADRI7": (25, 19, "lutff_2/in_0"), + "SBCLKI": (25, 20, "clk"), + "SBDATI0": (25, 19, "lutff_5/in_0"), + "SBDATI1": (25, 19, "lutff_6/in_0"), + "SBDATI2": (25, 19, "lutff_7/in_0"), + "SBDATI3": (25, 20, "lutff_0/in_3"), + "SBDATI4": (25, 20, "lutff_5/in_1"), + "SBDATI5": (25, 20, "lutff_6/in_1"), + "SBDATI6": (25, 20, "lutff_7/in_1"), + "SBDATI7": (25, 20, "lutff_0/in_0"), + "SBDATO0": (25, 19, "slf_op_6"), + "SBDATO1": (25, 19, "slf_op_7"), + "SBDATO2": (25, 20, "slf_op_0"), + "SBDATO3": (25, 20, "slf_op_1"), + "SBDATO4": (25, 20, "slf_op_2"), + "SBDATO5": (25, 20, "slf_op_3"), + "SBDATO6": (25, 20, "slf_op_4"), + "SBDATO7": (25, 20, "slf_op_5"), + "SBRWI": (25, 19, "lutff_4/in_0"), + "SBSTBI": (25, 19, "lutff_3/in_0"), + "SCLI": (25, 19, "lutff_2/in_1"), + "SCLO": (25, 19, "slf_op_3"), + "SCLOE": (25, 19, "slf_op_4"), + "SDAI": (25, 19, "lutff_1/in_1"), + "SDAO": (25, 19, "slf_op_1"), + "SDAOE": (25, 19, "slf_op_2"), + "SDA_INPUT_DELAYED": (19, 21, "SDA_input_delay"), + "SDA_OUTPUT_DELAYED": (19, 21, "SDA_output_delay"), + }, ("HFOSC", (0, 21, 1)) : { "CLKHFPU": (0, 19, "lutff_0/in_1"), "CLKHFEN": (0, 19, "lutff_7/in_3"), diff --git a/icebox/icebox_asc2hlc.py b/icebox/icebox_asc2hlc.py index 003106f..8e64997 100755 --- a/icebox/icebox_asc2hlc.py +++ b/icebox/icebox_asc2hlc.py @@ -1068,7 +1068,7 @@ def main(): except getopt.GetoptError as e: sys.stderr.write("%s: %s\n" % (program_short_name, e.msg)) sys.stderr.write("Try `%s --help' for more information.\n" - % sys.argv[0]) + % program_short_name) sys.exit(1) for opt, arg in opts: @@ -1085,7 +1085,7 @@ Usage: %s [OPTION]... FILE If you have a bug report, please file an issue on github: https://github.com/rlutz/icestorm/issues -""" % sys.argv[0]) +""" % program_short_name) sys.exit(0) if opt == '--version': @@ -1113,13 +1113,13 @@ GNU General Public License for more details. if not args: sys.stderr.write("%s: missing argument\n" % (program_short_name)) sys.stderr.write("Try `%s --help' for more information.\n" - % sys.argv[0]) + % program_short_name) sys.exit(1) if len(args) != 1: sys.stderr.write("%s: too many arguments\n" % (program_short_name)) sys.stderr.write("Try `%s --help' for more information.\n" - % sys.argv[0]) + % program_short_name) sys.exit(1) ic = icebox.iceconfig() diff --git a/icebox/icebox_chipdb.py b/icebox/icebox_chipdb.py index 9c8d6df..722ec37 100755 --- a/icebox/icebox_chipdb.py +++ b/icebox/icebox_chipdb.py @@ -16,7 +16,7 @@ # import icebox -import getopt, sys, re +import getopt, sys, re, os mode_384 = False mode_lm4k = False @@ -26,7 +26,7 @@ mode_8k = False def usage(): print(""" -Usage: icebox_chipdb [options] [bitmap.asc] +Usage: %s [options] [bitmap.asc] -3 create chipdb for 384 device @@ -42,7 +42,7 @@ Usage: icebox_chipdb [options] [bitmap.asc] -u create chipdb for u4k device -""") +""" % os.path.basename(sys.argv[0])) sys.exit(0) try: diff --git a/icebox/icebox_colbuf.py b/icebox/icebox_colbuf.py index ec6843e..3003a90 100755 --- a/icebox/icebox_colbuf.py +++ b/icebox/icebox_colbuf.py @@ -17,21 +17,21 @@ import icebox from icebox import re_match_cached -import getopt, sys, re +import getopt, sys, re, os check_mode = False fixup_mode = False def usage(): print(""" -Usage: icebox_colbuf [options] [input.asc [output.asc]] +Usage: %s [options] [input.asc [output.asc]] -c check colbuf bits -f fix colbuf bits -""") +""" % os.path.basename(sys.argv[0])) sys.exit(1) try: diff --git a/icebox/icebox_diff.py b/icebox/icebox_diff.py index 5252fc4..f433bcf 100755 --- a/icebox/icebox_diff.py +++ b/icebox/icebox_diff.py @@ -17,13 +17,13 @@ import icebox from icebox import re_match_cached -import sys +import sys, os import re if len(sys.argv) != 3: print(""" -Usage: icebox_diff bitmap1.asc bitmap2.asc -""") +Usage: %s bitmap1.asc bitmap2.asc +""" % os.path.basename(sys.argv[0])) sys.exit(0) print("Reading file '%s'.." % sys.argv[1]) diff --git a/icebox/icebox_explain.py b/icebox/icebox_explain.py index f843c09..25061ab 100755 --- a/icebox/icebox_explain.py +++ b/icebox/icebox_explain.py @@ -17,7 +17,7 @@ import icebox from icebox import re_match_cached, re_search_cached -import getopt, sys, re +import getopt, sys, re, os print_bits = False print_map = False @@ -26,7 +26,7 @@ print_all = False def usage(): print(""" -Usage: icebox_explain [options] [bitmap.asc] +Usage: %s [options] [bitmap.asc] -b print config bit names for each config statement @@ -39,7 +39,7 @@ Usage: icebox_explain [options] [bitmap.asc] -t '<x-coordinate> <y-coordinate>' print only the specified tile -""") +""" % os.path.basename(sys.argv[0])) sys.exit(0) try: diff --git a/icebox/icebox_hlc2asc.py b/icebox/icebox_hlc2asc.py index a95f610..59d2f69 100755 --- a/icebox/icebox_hlc2asc.py +++ b/icebox/icebox_hlc2asc.py @@ -1147,7 +1147,7 @@ def main(): except getopt.GetoptError as e: sys.stderr.write("%s: %s\n" % (program_short_name, e.msg)) sys.stderr.write("Try `%s --help' for more information.\n" - % sys.argv[0]) + % program_short_name) sys.exit(1) for opt, arg in opts: @@ -1161,7 +1161,7 @@ Usage: %s [OPTION]... FILE If you have a bug report, please file an issue on github: https://github.com/rlutz/icestorm/issues -""" % sys.argv[0]) +""" % program_short_name) sys.exit(0) if opt == '--version': @@ -1184,13 +1184,13 @@ GNU General Public License for more details. if not args: sys.stderr.write("%s: missing argument\n" % (program_short_name)) sys.stderr.write("Try `%s --help' for more information.\n" - % sys.argv[0]) + % program_short_name) sys.exit(1) if len(args) != 1: sys.stderr.write("%s: too many arguments\n" % (program_short_name)) sys.stderr.write("Try `%s --help' for more information.\n" - % sys.argv[0]) + % program_short_name) sys.exit(1) if args[0] == '-': diff --git a/icebox/icebox_html.py b/icebox/icebox_html.py index b710f61..3785a45 100755 --- a/icebox/icebox_html.py +++ b/icebox/icebox_html.py @@ -27,7 +27,7 @@ mode384 = False tx, ty = 0, 0 def usage(): - print("Usage: %s [options]" % sys.argv[0]) + print("Usage: %s [options]" % os.path.basename(sys.argv[0])) print(" -x tile_x_coordinate") print(" -y tile_y_coordinate") print(" -d outdir") diff --git a/icebox/icebox_maps.py b/icebox/icebox_maps.py index 35ff316..062335d 100755 --- a/icebox/icebox_maps.py +++ b/icebox/icebox_maps.py @@ -17,20 +17,21 @@ import icebox from icebox import re_match_cached -import getopt, sys, re +import getopt, sys, re, os mode = None def usage(): + program_short_name = os.path.basename(sys.argv[0]) print("Usage:") - print(" icebox_maps -m bitmaps") - print(" icebox_maps -m io_tile_nets_l") - print(" icebox_maps -m io_tile_nets_r") - print(" icebox_maps -m io_tile_nets_t") - print(" icebox_maps -m io_tile_nets_b") - print(" icebox_maps -m logic_tile_nets") - print(" icebox_maps -m ramb_tile_nets") - print(" icebox_maps -m ramt_tile_nets") + print(" %s -m bitmaps" % program_short_name) + print(" %s -m io_tile_nets_l" % program_short_name) + print(" %s -m io_tile_nets_r" % program_short_name) + print(" %s -m io_tile_nets_t" % program_short_name) + print(" %s -m io_tile_nets_b" % program_short_name) + print(" %s -m logic_tile_nets" % program_short_name) + print(" %s -m ramb_tile_nets" % program_short_name) + print(" %s -m ramt_tile_nets" % program_short_name) sys.exit(0) try: diff --git a/icebox/icebox_stat.py b/icebox/icebox_stat.py index ec404fb..5752267 100755 --- a/icebox/icebox_stat.py +++ b/icebox/icebox_stat.py @@ -17,18 +17,18 @@ import icebox from icebox import re_match_cached -import getopt, sys, re +import getopt, sys, re, os verbose = False def usage(): print(""" -Usage: icebox_stat [options] [bitmap.asc] +Usage: %s [options] [bitmap.asc] -v verbose output -""") +""" % os.path.basename(sys.argv[0])) sys.exit(0) try: diff --git a/icebox/icebox_vlog.py b/icebox/icebox_vlog.py index a2c7950..74ac3d3 100755 --- a/icebox/icebox_vlog.py +++ b/icebox/icebox_vlog.py @@ -17,7 +17,7 @@ import icebox from icebox import re_match_cached, re_sub_cached, re_search_cached -import getopt, sys, re +import getopt, sys, re, os strip_comments = False strip_interconn = False @@ -34,7 +34,7 @@ modname = "chip" def usage(): print(""" -Usage: icebox_vlog [options] [bitmap.asc] +Usage: %s [options] [bitmap.asc] -s strip comments from output @@ -70,7 +70,7 @@ Usage: icebox_vlog [options] [bitmap.asc] -D enable exactly-one-driver checks -""") +""" % os.path.basename(sys.argv[0])) sys.exit(0) try: @@ -477,7 +477,10 @@ for pllid in ic.pll_list(): if plltype != "100": text_func.append(" .PLLOUT_SELECT_PORTA(\"%s\")," % get_pll_outsel(pllinfo, "PLLOUT_SELECT_A")) text_func.append(" .PLLOUT_SELECT_PORTB(\"%s\")," % get_pll_outsel(pllinfo, "PLLOUT_SELECT_B")) - text_func.append(" .SHIFTREG_DIV_MODE(1'b%s)," % get_pll_bit(pllinfo, "SHIFTREG_DIV_MODE")) + if ic.device == "5k": + text_func.append(" .SHIFTREG_DIV_MODE(2'b%s)," % get_pll_bits(pllinfo, "SHIFTREG_DIV_MODE", 2)) + else: + text_func.append(" .SHIFTREG_DIV_MODE(1'b%s)," % get_pll_bit(pllinfo, "SHIFTREG_DIV_MODE")) text_func.append(" .FDA_FEEDBACK(4'b%s)," % get_pll_bits(pllinfo, "FDA_FEEDBACK", 4)) text_func.append(" .FDA_RELATIVE(4'b%s)," % get_pll_bits(pllinfo, "FDA_RELATIVE", 4)) text_func.append(" .DIVR(4'b%s)," % get_pll_bits(pllinfo, "DIVR", 4)) |
