diff options
author | tgingold <tgingold@users.noreply.github.com> | 2017-02-16 20:09:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-16 20:09:22 +0100 |
commit | 8e6b63247b396fde8116cc714b5d1049a9aef41e (patch) | |
tree | 0bb239f5913d4623406e7d3f6bc85ed59f980529 | |
parent | 56a6d968b646f60d8c248b9838455431382081ea (diff) | |
parent | bedecee054b7dc8db5a1dfa265696665f4270c67 (diff) | |
download | ghdl-yosys-plugin-8e6b63247b396fde8116cc714b5d1049a9aef41e.tar.gz ghdl-yosys-plugin-8e6b63247b396fde8116cc714b5d1049a9aef41e.tar.bz2 ghdl-yosys-plugin-8e6b63247b396fde8116cc714b5d1049a9aef41e.zip |
Merge pull request #8 from Obijuan/master
8 bits binary counter example for the Icezum Alhambra board
-rw-r--r-- | .gitignore | 8 | ||||
-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 |
5 files changed, 103 insertions, 0 deletions
@@ -1,2 +1,10 @@ *.d .gdb_history +*.bin +*.asc +*.blif +*.cf +*.rpt +*.o +*.so + 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; |