Port example to iceblink40 board.

This commit is contained in:
Kalle Raiskila 2016-01-31 13:01:18 +02:00 committed by Kalle Raiskila
parent f1592d01ee
commit 438c0b55ae
4 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,26 @@
PROJ = example
PIN_DEF = iceblink.pcf
DEVICE = 1k
all: $(PROJ).bin
%.blif: %.v
yosys -p 'synth_ice40 -top top -blif $@' $<
%.asc: $(PIN_DEF) %.blif
arachne-pnr -d $(DEVICE) -o $@ -p $^ -P vq100
%.bin: %.asc
icepack $< $@
prog: $(PROJ).bin
iCEburn.py -e -v -w $<
sudo-prog: $(PROJ).bin
@echo 'Executing prog as root!!!'
iCEburn.py -e -v -w $<
clean:
rm -f $(PROJ).blif $(PROJ).asc $(PROJ).bin
.PHONY: all prog clean

10
examples/iceblink/README Normal file
View File

@ -0,0 +1,10 @@
Note, there are at least two similar looking versions of the iCEblink40 evaluation board:
-iCEblink40-HX1K
-iCEblink40-LP1K
This example assumes the iCEblink40-HX1K board.
The iCEblink40 boards have an on-board programmer with USB interface from Digilent.
You need iCEburn to program the FPGA via this interface (or the original vendor
tools).
https://github.com/davidcarne/iceBurn

View File

@ -0,0 +1,24 @@
/* Binary counter displayed on LEDs (the 4 green ones on the right).
* Changes value about once a second.
*/
module top (
input clk,
output LED2,
output LED3,
output LED4,
output LED5
);
localparam BITS = 4;
localparam LOG2DELAY = 22;
reg [BITS+LOG2DELAY-1:0] counter = 0;
reg [BITS-1:0] outcnt;
always@(posedge clk) begin
counter <= counter + 1;
outcnt <= counter >> LOG2DELAY;
end
assign {LED2, LED3, LED4, LED5} = outcnt;
endmodule

View File

@ -0,0 +1,5 @@
set_io LED2 59
set_io LED3 56
set_io LED4 53
set_io LED5 51
set_io clk 13