From bad3b601ccfaae20102f57c1a127fce559969cb5 Mon Sep 17 00:00:00 2001 From: lawrie Date: Sat, 31 Mar 2018 10:14:15 +0100 Subject: [PATCH 1/2] Added support for Blackice II --- boards/blackice2/README.md | 21 +++++ boards/blackice2/images/upduino_v1.jpg | Bin 0 -> 29152 bytes boards/blackice2/images/upduino_v2.jpg | Bin 0 -> 14490 bytes boards/blackice2/yosys/Makefile | 71 ++++++++++++++ boards/blackice2/yosys/blackice2.pcf | 38 ++++++++ rtl/boards/blackice2/apple1_hx8k.v | 126 +++++++++++++++++++++++++ 6 files changed, 256 insertions(+) create mode 100644 boards/blackice2/README.md create mode 100644 boards/blackice2/images/upduino_v1.jpg create mode 100644 boards/blackice2/images/upduino_v2.jpg create mode 100644 boards/blackice2/yosys/Makefile create mode 100644 boards/blackice2/yosys/blackice2.pcf create mode 100644 rtl/boards/blackice2/apple1_hx8k.v diff --git a/boards/blackice2/README.md b/boards/blackice2/README.md new file mode 100644 index 0000000..55b76a2 --- /dev/null +++ b/boards/blackice2/README.md @@ -0,0 +1,21 @@ +# Blackice II with Digilent Pmods support + +This adds support for building the apple one design for [mystorm Blackice II](https://github.com/mystorm-org/BlackIce-II) with attached Digilent Pmods for vga and ps2 + +## Peripheral support + +VGA port is working through a Digilent VGA Pmod on Pmod 7/8/9/10 + +PS/2 keyboard uses a Digilent PS/2 Pmod on Pmod 12 + +## Building +Install a recent IceStorm toolchain, and: + +``` +$ cd yosys +$ make +``` + +## Use + +To load BASIC type "E000R" with CAPS LOCK on. diff --git a/boards/blackice2/images/upduino_v1.jpg b/boards/blackice2/images/upduino_v1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4fa0dcc6a916430e0b273debab1e0830e9aa0d45 GIT binary patch literal 29152 zcmbTdWl$VJ7dEwNr=RYgsbll__i+tCqN=E(2tY#v05YBm;Bg(0pa22e0RZai z04@Lk@C<;3Mh3um;?SN70F4%a^Ru3 zME~X4|I3ohFeJ<;18On%!f?MHqTYl&b^%DA0rJtTG0OdoNuYrQfR2WNfsToRh4r7upannO2Vjz7k+BHMW0QZd#ChTI zTqr!{`!m)zHQf~2lL$6pE6)gAJW48R8d~<39IrUJL`22JB_yTZzEeaY<=e`On(A`i91) z=9bo;-oE~U!J*-isp*;7Ir!iCh4qcit?ixNe|!7L)3fu7%PZ9N&3|w`t>^!Q^;G{) zWd9Fbq))ieF)=YPasGn~4c+fQz)3N&SOl@jm3V-(eP0IJ0Zd_JjZ3Kmt z=Oi8_o5(sl@;}i2i|qd$u!#R($o>zo|BGu8@D_l9j{cwPi7=lotY`n(7A!m*9PDQV zcmxFac=-5)L}Vm{M5ILc_#~7hq~y;jC@2Vssi-NRQee_2pYyyA51JF)JZB1 z*t(QBQrpCB;HN-^L7d*Jm>MsNUi7&Wz`kmCkw}$clx~_muZ8tU#>@oQU9>HpEVT_R zGJbc=4!)&m$j4m@#dM{fH3C_ERiMW^$@e3|3IQ8EOs#ND2ZdsdCI0?w)GwFOIHIv* zy0&#O(WH9MG7Wpn^vRonN}F;N?C0egu^}SI=`nEVLqk2$;nXHRj5PA0(5H@7@tJ)D zd|li8JAM0(^72S@M(hutN2WU#<&{__vTcFAp@*oLo}NjAyHA#HKcHcvho2gR*h*3I=yS`-IL@Z|tB^U`iBCcJ>rBt~KWFA^lJ#5>my@WXN7|Ctuu2S; zPQhTMT>aKRXQEV3wfvE<*6chdX>6$Ie3Ks zu35`A&?Ffo_H2BQi2{qtdlcjjZV@ z@8J}uK9wnK@sAinlX_p`ToPLP2(U?x zZ;eTor7~XJKLcipO*uE@&;V?XwF03Y7f^G7^&8ZCZm1eL2V3>=yjBHXa(dqdyfzkJ z+VTa4^kSHdYOs!KQQhmIt8ZrXHQA&K6v@V(W$@T7ORrFlG zq5Cs)4z@tYx{;57flNkjb&UfpXW&{xi#ZD>5Ft_!u3Q}WOrr5BUwN3{4 zcFj$tOVzqd$NP7WfchWtZB^o`4dmv$Mb9+QEU-gzy-Yj9?ra|cxaJ>4aQi91VBi24&pcBvH6DQbM-A5vc{s+L4Fc)s*RVQ(N2xKxhTB5-ok{7PC?dbTB&T%pA~WlPP@96CHBWhwTpW>#+jY`KF%i
    8n} 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 literal 0 HcmV?d00001 diff --git a/boards/blackice2/images/upduino_v2.jpg b/boards/blackice2/images/upduino_v2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c0ba6b6ba981aaacb44c147c716a42817f369da2 GIT binary patch literal 14490 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 literal 0 HcmV?d00001 diff --git a/boards/blackice2/yosys/Makefile b/boards/blackice2/yosys/Makefile new file mode 100644 index 0000000..5065932 --- /dev/null +++ b/boards/blackice2/yosys/Makefile @@ -0,0 +1,71 @@ +DEVICE = hx8k +PIN_DEF=blackice2.pcf + +SOURCEDIR = ../../../rtl +BUILDDIR = build + +all: apple1 prog + +info: + @echo " To build: make apple1" + @echo " To program: make prog" + @echo "To build report: make report" + @echo " To clean up: make clean" + +dir: + mkdir -p $(BUILDDIR) + +# ------ TEMPLATES ------ +$(BUILDDIR)/%.blif: $(SOURCEDIR)/%.v + yosys -q -p "chparam -list; hierarchy -top apple1_top; synth_ice40 -blif $@" $^ + +$(BUILDDIR)/%.asc: $(PIN_DEF) $(BUILDDIR)/%.blif + arachne-pnr -d 8k -P tq144:4k -o $@ -p $^ + +$(BUILDDIR)/%.bin: $(BUILDDIR)/%.asc + icepack $^ $@ + +%.rpt: $(BUILDDIR)/%.asc + icetime -d $(DEVICE) -P $(PACKAGE) -c $(FREQ_PLL) -mtr $@ $< + +%_tb.vvp: %_tb.v %.v + iverilog -o $@ $^ + +%_tb.vcd: %_tb.vvp + vvp -N $< +vcd=$@ + +# ------ APPLE 1 ------ +apple1: dir $(BUILDDIR)/apple1.bin +report: dir apple1.rpt + +$(BUILDDIR)/apple1.bin: $(BUILDDIR)/apple1.asc +$(BUILDDIR)/apple1.asc: $(BUILDDIR)/apple1.blif +$(BUILDDIR)/apple1.blif: $(SOURCEDIR)/apple1.v \ + $(SOURCEDIR)/clock.v \ + $(SOURCEDIR)/pwr_reset.v \ + $(SOURCEDIR)/ram.v \ + $(SOURCEDIR)/rom_wozmon.v \ + $(SOURCEDIR)/rom_basic.v \ + $(SOURCEDIR)/cpu/arlet_6502.v \ + $(SOURCEDIR)/cpu/arlet/ALU.v \ + $(SOURCEDIR)/cpu/arlet/cpu.v \ + $(SOURCEDIR)/uart/uart.v \ + $(SOURCEDIR)/uart/async_tx_rx.v \ + $(SOURCEDIR)/vga/vga.v \ + $(SOURCEDIR)/vga/vram.v \ + $(SOURCEDIR)/vga/font_rom.v \ + $(SOURCEDIR)/ps2keyboard/debounce.v \ + $(SOURCEDIR)/ps2keyboard/ps2keyboard.v \ + $(SOURCEDIR)/boards/blackice2/apple1_hx8k.v + +apple1.rpt: $(BUILDDIR)/apple1.asc + +prog: dir $(BUILDDIR)/apple1.bin + cat $(filter-out $<,$^) >/dev/ttyACM0 + +# ------ HELPERS ------ +clean: + rm -rf build apple1.rpt + +.SECONDARY: +.PHONY: all info clean prog iceprog diff --git a/boards/blackice2/yosys/blackice2.pcf b/boards/blackice2/yosys/blackice2.pcf new file mode 100644 index 0000000..407ffae --- /dev/null +++ b/boards/blackice2/yosys/blackice2.pcf @@ -0,0 +1,38 @@ +# For the Blackice II board + +### UART +set_io uart_rx 88 +set_io uart_tx 85 +set_io uart_cts 94 + +### LEDs +set_io led[0] 71 +set_io led[1] 67 +set_io led[2] 68 +set_io led[3] 70 + +### VGA Display +set_io vga_h_sync 8 +set_io vga_v_sync 7 +set_io vga_r[3] 15 +set_io vga_r[2] 16 +set_io vga_r[1] 19 +set_io vga_r[0] 20 +set_io vga_g[3] 1 +set_io vga_g[2] 2 +set_io vga_g[1] 9 +set_io vga_g[0] 10 +set_io vga_b[3] 11 +set_io vga_b[2] 12 +set_io vga_b[1] 17 +set_io vga_b[0] 18 + +set_io clk 129 + +set_io ps2_din 32 +set_io ps2_clk 26 + +### Buttons +set_io button[0] 63 +set_io button[1] 64 + diff --git a/rtl/boards/blackice2/apple1_hx8k.v b/rtl/boards/blackice2/apple1_hx8k.v new file mode 100644 index 0000000..22e6094 --- /dev/null +++ b/rtl/boards/blackice2/apple1_hx8k.v @@ -0,0 +1,126 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// +// Description: Apple 1 implementation for the Blackeice II ICE40HX8K + +// +// Author.....: Lawrie Griffiths and Alan Garfield +// Date.......: 31-3-2018 +// + +module apple1_top #( + parameter BASIC_FILENAME = "../../../roms/basic.hex", + parameter FONT_ROM_FILENAME = "../../../roms/vga_font_bitreversed.hex", + parameter RAM_FILENAME = "../../../roms/ram.hex", + parameter VRAM_FILENAME = "../../../roms/vga_vram.bin", + parameter WOZMON_ROM_FILENAME = "../../../roms/wozmon.hex" +) ( + input clk, // 100 MHz board clock + + // I/O interface to computer + input uart_rx, // asynchronous serial data input from computer + output uart_tx, // asynchronous serial data output to computer + output uart_cts, // clear to send flag to computer - not used + + // I/O interface to keyboard + input ps2_clk, // PS/2 keyboard serial clock input + input ps2_din, // PS/2 keyboard serial data input + + // Outputs to VGA display + output vga_h_sync, // hozizontal VGA sync pulse + output vga_v_sync, // vertical VGA sync pulse + + output [3:0] vga_r, // red VGA signal + output [3:0] vga_g, // green VGA signal + output [3:0] vga_b, // blue VGA signal + + // Debugging ports + output [3:0] led, + input [1:0] button // 2 buttons on board +); + + assign led[0] = 1; + assign led[1] = reset_n; + assign led[2] = clr_screen_n; + assign led[3] = 0; + + wire clk25; + + // =============================================================== + // System Clock generation (25MHz) + // =============================================================== + + reg [1:0] clkpre = 2'b00; // prescaler, from 100MHz to 25MHz + + always @(posedge clk) + begin + clkpre <= clkpre + 1; + end + wire clk25 = clkpre[1]; + + wire vga_bit; + + // set the monochrome base colour here.. + assign vga_r[3:0] = vga_bit ? 4'b1000 : 4'b0000; + assign vga_g[3:0] = vga_bit ? 4'b1111 : 4'b0000; + assign vga_b[3:0] = vga_bit ? 4'b1000 : 4'b0000; + + // debounce reset button + wire reset_n; + debounce reset_button ( + .clk25(clk25), + .rst(1'b0), + .sig_in(button[0]), + .sig_out(reset_n) + ); + + // debounce clear screen button + wire clr_screen_n; + debounce clr_button ( + .clk25(clk25), + .rst(~reset_n), + .sig_in(button[1]), + .sig_out(clr_screen_n) + ); + + // apple one main system + apple1 #( + .BASIC_FILENAME (BASIC_FILENAME), + .FONT_ROM_FILENAME (FONT_ROM_FILENAME), + .RAM_FILENAME (RAM_FILENAME), + .VRAM_FILENAME (VRAM_FILENAME), + .WOZMON_ROM_FILENAME (WOZMON_ROM_FILENAME) + ) my_apple1( + .clk25(clk25), + .rst_n(reset_n), + + .uart_rx(uart_rx), + .uart_tx(uart_tx), + .uart_cts(uart_cts), + + .ps2_clk(ps2_clk), + .ps2_din(ps2_din), + .ps2_select(1'b1), // PS/2 enabled, UART TX disabled + //.ps2_select(1'b0), // PS/2 disabled, UART TX enabled + + .vga_h_sync(vga_h_sync), + .vga_v_sync(vga_v_sync), + .vga_red(vga_bit), + //.vga_grn(vga_bit), + //.vga_blu(vga_bit), + .vga_cls(~clr_screen_n), + ); +endmodule From 08c147cb73db087da5a1c130fc1d884c5bf2e3af Mon Sep 17 00:00:00 2001 From: lawrie Date: Sat, 31 Mar 2018 10:19:49 +0100 Subject: [PATCH 2/2] removed wrong images --- boards/blackice2/images/upduino_v1.jpg | Bin 29152 -> 0 bytes boards/blackice2/images/upduino_v2.jpg | Bin 14490 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 boards/blackice2/images/upduino_v1.jpg delete mode 100644 boards/blackice2/images/upduino_v2.jpg diff --git a/boards/blackice2/images/upduino_v1.jpg b/boards/blackice2/images/upduino_v1.jpg deleted file mode 100644 index 4fa0dcc6a916430e0b273debab1e0830e9aa0d45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29152 zcmbTdWl$VJ7dEwNr=RYgsbll__i+tCqN=E(2tY#v05YBm;Bg(0pa22e0RZai z04@Lk@C<;3Mh3um;?SN70F4%a^Ru3 zME~X4|I3ohFeJ<;18On%!f?MHqTYl&b^%DA0rJtTG0OdoNuYrQfR2WNfsToRh4r7upannO2Vjz7k+BHMW0QZd#ChTI zTqr!{`!m)zHQf~2lL$6pE6)gAJW48R8d~<39IrUJL`22JB_yTZzEeaY<=e`On(A`i91) z=9bo;-oE~U!J*-isp*;7Ir!iCh4qcit?ixNe|!7L)3fu7%PZ9N&3|w`t>^!Q^;G{) zWd9Fbq))ieF)=YPasGn~4c+fQz)3N&SOl@jm3V-(eP0IJ0Zd_JjZ3Kmt z=Oi8_o5(sl@;}i2i|qd$u!#R($o>zo|BGu8@D_l9j{cwPi7=lotY`n(7A!m*9PDQV zcmxFac=-5)L}Vm{M5ILc_#~7hq~y;jC@2Vssi-NRQee_2pYyyA51JF)JZB1 z*t(QBQrpCB;HN-^L7d*Jm>MsNUi7&Wz`kmCkw}$clx~_muZ8tU#>@oQU9>HpEVT_R zGJbc=4!)&m$j4m@#dM{fH3C_ERiMW^$@e3|3IQ8EOs#ND2ZdsdCI0?w)GwFOIHIv* zy0&#O(WH9MG7Wpn^vRonN}F;N?C0egu^}SI=`nEVLqk2$;nXHRj5PA0(5H@7@tJ)D zd|li8JAM0(^72S@M(hutN2WU#<&{__vTcFAp@*oLo}NjAyHA#HKcHcvho2gR*h*3I=yS`-IL@Z|tB^U`iBCcJ>rBt~KWFA^lJ#5>my@WXN7|Ctuu2S; zPQhTMT>aKRXQEV3wfvE<*6chdX>6$Ie3Ks zu35`A&?Ffo_H2BQi2{qtdlcjjZV@ z@8J}uK9wnK@sAinlX_p`ToPLP2(U?x zZ;eTor7~XJKLcipO*uE@&;V?XwF03Y7f^G7^&8ZCZm1eL2V3>=yjBHXa(dqdyfzkJ z+VTa4^kSHdYOs!KQQhmIt8ZrXHQA&K6v@V(W$@T7ORrFlG zq5Cs)4z@tYx{;57flNkjb&UfpXW&{xi#ZD>5Ft_!u3Q}WOrr5BUwN3{4 zcFj$tOVzqd$NP7WfchWtZB^o`4dmv$Mb9+QEU-gzy-Yj9?ra|cxaJ>4aQi91VBi24&pcBvH6DQbM-A5vc{s+L4Fc)s*RVQ(N2xKxhTB5-ok{7PC?dbTB&T%pA~WlPP@96CHBWhwTpW>#+jY`KF%i
      8n} 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 diff --git a/boards/blackice2/images/upduino_v2.jpg b/boards/blackice2/images/upduino_v2.jpg deleted file mode 100644 index c0ba6b6ba981aaacb44c147c716a42817f369da2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14490 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