From 6e6b67b9ea316b64c22027082b160c41b26a7ac5 Mon Sep 17 00:00:00 2001 From: obijuan Date: Thu, 16 Feb 2017 20:02:16 +0100 Subject: .asc, .bin, .blif, .rpt, .cf added to .gitignore --- .gitignore | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index a551be6..3e4a084 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,10 @@ *.d .gdb_history +*.bin +*.asc +*.blif +*.cf +*.rpt +*.o +*.so + -- cgit v1.2.3 From bedecee054b7dc8db5a1dfa265696665f4270c67 Mon Sep 17 00:00:00 2001 From: obijuan Date: Thu, 16 Feb 2017 20:03:03 +0100 Subject: Icezum Alhambra board example: 8-bit counter displayed on leds --- icezum/counter-8bits/Makefile | 32 ++++++++++++++++++++++++++++++++ icezum/counter-8bits/README.md | 16 ++++++++++++++++ icezum/counter-8bits/counter8.pcf | 9 +++++++++ icezum/counter-8bits/counter8.vhdl | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 icezum/counter-8bits/Makefile create mode 100644 icezum/counter-8bits/README.md create mode 100644 icezum/counter-8bits/counter8.pcf create mode 100644 icezum/counter-8bits/counter8.vhdl 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; -- cgit v1.2.3