Skip to content

Commit

Permalink
Add basic lm4k support (no hard IP)
Browse files Browse the repository at this point in the history
  • Loading branch information
awygle committed May 12, 2018
1 parent e4a3657 commit 9763e6e
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 3 deletions.
8 changes: 7 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ ifneq ($(CXX),$(HOST_CXX))
endif

.PHONY: all
all: bin/arachne-pnr$(EXE) share/arachne-pnr/chipdb-384.bin share/arachne-pnr/chipdb-1k.bin share/arachne-pnr/chipdb-8k.bin share/arachne-pnr/chipdb-5k.bin
all: bin/arachne-pnr$(EXE) share/arachne-pnr/chipdb-384.bin share/arachne-pnr/chipdb-1k.bin share/arachne-pnr/chipdb-8k.bin share/arachne-pnr/chipdb-5k.bin share/arachne-pnr/chipdb-lm4k.bin

ARACHNE_VER = 0.1+$(shell test -e .git && echo `git log --oneline | wc -l`+`git diff --name-only HEAD | wc -l`)
GIT_REV = $(shell git rev-parse --verify --short HEAD 2>/dev/null || echo UNKNOWN)
Expand Down Expand Up @@ -77,6 +77,10 @@ share/arachne-pnr/chipdb-5k.bin: bin/arachne-pnr-host $(ICEBOX)/chipdb-5k.txt
mkdir -p share/arachne-pnr
./bin/arachne-pnr-host -d 8k -c $(ICEBOX)/chipdb-5k.txt --write-binary-chipdb share/arachne-pnr/chipdb-5k.bin

share/arachne-pnr/chipdb-lm4k.bin: bin/arachne-pnr-host $(ICEBOX)/chipdb-lm4k.txt
mkdir -p share/arachne-pnr
./bin/arachne-pnr-host -d 8k -c $(ICEBOX)/chipdb-lm4k.txt --write-binary-chipdb share/arachne-pnr/chipdb-lm4k.bin

tests/test_bv: tests/test_bv.o
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^

Expand Down Expand Up @@ -138,6 +142,7 @@ mxebin:
mv share/arachne-pnr/chipdb-1k.bin arachne-pnr-win32/
mv share/arachne-pnr/chipdb-8k.bin arachne-pnr-win32/
mv share/arachne-pnr/chipdb-5k.bin arachne-pnr-win32/
mv share/arachne-pnr/chipdb-lm4k.bin arachne-pnr-win32/
$(MAKE) clean
$(MAKE) CC=/usr/local/src/mxe/usr/bin/i686-w64-mingw32.static-gcc CXX=/usr/local/src/mxe/usr/bin/i686-w64-mingw32.static-g++ CXXFLAGS="$(CXXFLAGS) -DMXE_DIR_STRUCTURE" bin/arachne-pnr
mv bin/arachne-pnr arachne-pnr-win32/arachne-pnr.exe
Expand All @@ -154,6 +159,7 @@ install: all
cp share/arachne-pnr/chipdb-1k.bin $(DESTDIR)$(PREFIX)/share/arachne-pnr/chipdb-1k.bin
cp share/arachne-pnr/chipdb-8k.bin $(DESTDIR)$(PREFIX)/share/arachne-pnr/chipdb-8k.bin
cp share/arachne-pnr/chipdb-5k.bin $(DESTDIR)$(PREFIX)/share/arachne-pnr/chipdb-5k.bin
cp share/arachne-pnr/chipdb-lm4k.bin $(DESTDIR)$(PREFIX)/share/arachne-pnr/chipdb-lm4k.bin

.PHONY: uninstall
uninstall:
Expand Down
4 changes: 4 additions & 0 deletions src/arachne-pnr.cc
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ usage()
<< " 384 - Lattice Semiconductor iCE40LP384\n"
<< " 1k - Lattice Semiconductor iCE40LP/HX1K\n"
<< " 5k - Lattice Semiconductor iCE40UP5K\n"
<< " lm4k - Lattice Semiconductor iCE40LM4K\n"
<< " 8k - Lattice Semiconductor iCE40LP/HX8K\n"
<< " Default: 1k\n"
<< "\n"
Expand Down Expand Up @@ -315,6 +316,7 @@ main(int argc, const char **argv)
if (device != "384"
&& device != "1k"
&& device != "5k"
&& device != "lm4k"
&& device != "8k")
fatal(fmt("unknown device: " << device));

Expand All @@ -327,6 +329,8 @@ main(int argc, const char **argv)
package_name = "tq144";
else if (device == "5k")
package_name = "sg48";
else if (device == "lm4k")
package_name = "cm49";
else
{
assert(device == "8k");
Expand Down
2 changes: 1 addition & 1 deletion src/place.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1133,7 +1133,7 @@ Placer::place_initial()
logic_column_free[i] = 2;
logic_column_last[i] = 31;
}
else if (chipdb->device == "5k"
else if ((chipdb->device == "5k" || chipdb->device == "lm4k")
&& (logic_columns[i] == 1
|| logic_columns[i] == 24)) // FIXME(daveshah1): check this
{
Expand Down
2 changes: 1 addition & 1 deletion src/route.cc
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ Router::Router(DesignState &ds, int max_passes_v)
std::make_pair(fmt("ram/MASK_" << i), true));

}
else if (chipdb->device == "5k")
else if (chipdb->device == "5k" || chipdb->device == "lm4k")
{
for (int i = 0; i <= 7; ++i)
extend(ram_gate_chip,
Expand Down

0 comments on commit 9763e6e

Please sign in to comment.