mirror of https://github.com/YosysHQ/icestorm.git
Add icebreaker example project
This commit is contained in:
parent
722790ad3c
commit
d3a753f7d7
|
|
@ -0,0 +1,4 @@
|
|||
example.asc
|
||||
example.bin
|
||||
example.blif
|
||||
example.rpt
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
PROJ = example
|
||||
|
||||
PIN_DEF = icebreaker.pcf
|
||||
DEVICE = up5k
|
||||
|
||||
all: $(PROJ).rpt $(PROJ).bin
|
||||
|
||||
%.blif: %.v
|
||||
yosys -p 'synth_ice40 -top top -blif $@' $<
|
||||
|
||||
%.asc: $(PIN_DEF) %.blif
|
||||
arachne-pnr -d $(subst up,,$(subst hx,,$(subst lp,,$(DEVICE)))) -o $@ -p $^
|
||||
|
||||
%.bin: %.asc
|
||||
icepack $< $@
|
||||
|
||||
%.rpt: %.asc
|
||||
icetime -d $(DEVICE) -mtr $@ $<
|
||||
|
||||
%_tb: %_tb.v %.v
|
||||
iverilog -o $@ $^
|
||||
|
||||
%_tb.vcd: %_tb
|
||||
vvp -N $< +vcd=$@
|
||||
|
||||
%_syn.v: %.blif
|
||||
yosys -p 'read_blif -wideports $^; write_verilog $@'
|
||||
|
||||
%_syntb: %_tb.v %_syn.v
|
||||
iverilog -o $@ $^ `yosys-config --datdir/ice40/cells_sim.v`
|
||||
|
||||
%_syntb.vcd: %_syntb
|
||||
vvp -N $< +vcd=$@
|
||||
|
||||
prog: $(PROJ).bin
|
||||
iceprog $<
|
||||
|
||||
sudo-prog: $(PROJ).bin
|
||||
@echo 'Executing prog as root!!!'
|
||||
sudo iceprog $<
|
||||
|
||||
clean:
|
||||
rm -f $(PROJ).blif $(PROJ).asc $(PROJ).rpt $(PROJ).bin
|
||||
|
||||
.SECONDARY:
|
||||
.PHONY: all prog clean
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
module top (
|
||||
input CLK,
|
||||
|
||||
output LED1,
|
||||
output LED2,
|
||||
output LED3,
|
||||
output LED4,
|
||||
output LED5,
|
||||
|
||||
input BTN_N,
|
||||
input BTN1,
|
||||
input BTN2,
|
||||
input BTN3,
|
||||
|
||||
output LEDR_N,
|
||||
output LEDG_N,
|
||||
|
||||
output P1A1, P1A2, P1A3, P1A4, P1A7, P1A8, P1A9, P1A10,
|
||||
output P1B1, P1B2, P1B3, P1B4, P1B7, P1B8, P1B9, P1B10
|
||||
);
|
||||
|
||||
localparam BITS = 5;
|
||||
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 {LED1, LED2, LED3, LED4, LED5} = outcnt ^ (outcnt >> 1);
|
||||
|
||||
assign {LEDR_N, LEDG_N} = ~(!BTN_N + BTN1 + BTN2 + BTN3);
|
||||
|
||||
assign {P1A1, P1A2, P1A3, P1A4, P1A7, P1A8, P1A9, P1A10,
|
||||
P1B1, P1B2, P1B3, P1B4, P1B7, P1B8, P1B9, P1B10} = 1 << (outcnt & 15);
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
# 12 MHz clock
|
||||
set_io -nowarn CLK 35
|
||||
|
||||
# RS232
|
||||
set_io -nowarn RX 6
|
||||
set_io -nowarn TX 9
|
||||
|
||||
# LEDs and Button
|
||||
set_io -nowarn BTN_N 10
|
||||
set_io -nowarn LEDR_N 11
|
||||
set_io -nowarn LEDG_N 37
|
||||
|
||||
# RGB LED Driver
|
||||
set_io -nowarn LED_RED_N 39
|
||||
set_io -nowarn LED_GRN_N 40
|
||||
set_io -nowarn LED_BLU_N 41
|
||||
|
||||
# SPI Flash
|
||||
set_io -nowarn FLASH_SCK 15
|
||||
set_io -nowarn FLASH_SSB 16
|
||||
set_io -nowarn FLASH_IO0 14
|
||||
set_io -nowarn FLASH_IO1 17
|
||||
set_io -nowarn FLASH_IO2 12
|
||||
set_io -nowarn FLASH_IO3 13
|
||||
|
||||
# PMOD 1A
|
||||
set_io -nowarn P1A1 4
|
||||
set_io -nowarn P1A2 2
|
||||
set_io -nowarn P1A3 47
|
||||
set_io -nowarn P1A4 45
|
||||
set_io -nowarn P1A7 3
|
||||
set_io -nowarn P1A8 48
|
||||
set_io -nowarn P1A9 46
|
||||
set_io -nowarn P1A10 44
|
||||
|
||||
# PMOD 1B
|
||||
set_io -nowarn P1B1 43
|
||||
set_io -nowarn P1B2 38
|
||||
set_io -nowarn P1B3 34
|
||||
set_io -nowarn P1B4 31
|
||||
set_io -nowarn P1B7 42
|
||||
set_io -nowarn P1B8 36
|
||||
set_io -nowarn P1B9 32
|
||||
set_io -nowarn P1B10 28
|
||||
|
||||
# PMOD 2
|
||||
set_io -nowarn P2_1 27
|
||||
set_io -nowarn P2_2 25
|
||||
set_io -nowarn P2_3 21
|
||||
set_io -nowarn P2_4 19
|
||||
set_io -nowarn P2_7 26
|
||||
set_io -nowarn P2_8 23
|
||||
set_io -nowarn P2_9 20
|
||||
set_io -nowarn P2_10 18
|
||||
|
||||
# LEDs and Buttons (PMOD 2)
|
||||
set_io -nowarn LED1 27
|
||||
set_io -nowarn LED2 25
|
||||
set_io -nowarn LED3 21
|
||||
set_io -nowarn BTN2 19
|
||||
set_io -nowarn LED5 26
|
||||
set_io -nowarn LED4 23
|
||||
set_io -nowarn BTN1 20
|
||||
set_io -nowarn BTN3 18
|
||||
Loading…
Reference in New Issue