diff options
Diffstat (limited to 'icezum')
-rw-r--r-- | icezum/counter-8bits/Makefile | 32 | ||||
-rw-r--r-- | icezum/counter-8bits/README.md | 16 | ||||
-rw-r--r-- | icezum/counter-8bits/counter8.pcf | 9 | ||||
-rw-r--r-- | icezum/counter-8bits/counter8.vhdl | 38 |
4 files changed, 95 insertions, 0 deletions
diff --git a/icezum/counter-8bits/Makefile b/icezum/counter-8bits/Makefile new file mode 100644 index 0000000..c618b42 --- /dev/null +++ b/icezum/counter-8bits/Makefile @@ -0,0 +1,32 @@ +PROJ = counter8 +PIN_DEF = counter8.pcf +DEVICE = hx1k + +all: $(PROJ).rpt $(PROJ).bin + +%.blif: %.vhdl + ghdl -a $(PROJ).vhdl + yosys -m ../../ghdl.so -p 'ghdl $(PROJ); synth_ice40 -blif $@' + + +%.asc: $(PIN_DEF) %.blif + arachne-pnr -d $(subst hx,,$(subst lp,,$(DEVICE))) -o $@ -p $^ + +%.bin: %.asc + icepack $< $@ + +%.rpt: %.asc + icetime -d $(DEVICE) -mtr $@ $< + +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 work-obj93.cf + +.SECONDARY: +.PHONY: all prog clean diff --git a/icezum/counter-8bits/README.md b/icezum/counter-8bits/README.md new file mode 100644 index 0000000..e61330b --- /dev/null +++ b/icezum/counter-8bits/README.md @@ -0,0 +1,16 @@ +A hello world example for the **Icezum Alhambra board** +It just blinks all the leds + +Execute + +```sh +$ make +``` + +for synthesizing the example and + +```sh +$ make prog +``` + +for programing the board diff --git a/icezum/counter-8bits/counter8.pcf b/icezum/counter-8bits/counter8.pcf new file mode 100644 index 0000000..9d25064 --- /dev/null +++ b/icezum/counter-8bits/counter8.pcf @@ -0,0 +1,9 @@ +set_io --warn-no-port led0 95 # output
+set_io --warn-no-port led1 96 # output
+set_io --warn-no-port led2 97 # output
+set_io --warn-no-port led3 98 # output
+set_io --warn-no-port led4 99 # output
+set_io --warn-no-port led5 101 # output
+set_io --warn-no-port led6 102 # output
+set_io --warn-no-port led7 104 # output
+set_io --warn-no-port clk 21
diff --git a/icezum/counter-8bits/counter8.vhdl b/icezum/counter-8bits/counter8.vhdl new file mode 100644 index 0000000..4c5017e --- /dev/null +++ b/icezum/counter-8bits/counter8.vhdl @@ -0,0 +1,38 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity counter8 is + port (clk : in std_logic; + led0, led1, led2, led3, led4, led5, led6, led7 : out std_logic); +end counter8; + +architecture synth of counter8 is + + signal clk_6hz : std_logic; + +begin + + -- Presscaler + prescaler: process(clk) + variable timer : unsigned (20 downto 0):=(others=>'0'); + begin + if rising_edge(clk) then + timer := timer + 1; + clk_6hz <= timer(20); + end if; + end process; + + -- 8 bits counter + process (clk_6hz) + variable temp : unsigned (7 downto 0); + begin + if rising_edge(clk_6hz) then + temp:= temp + 1; + + -- Show the counter on the icezum Alhambra leds + (led7, led6, led5, led4, led3, led2, led1, led0) <= temp; + end if; + end process; + +end synth; |