Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add iCESugar-nano board #145

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions data/icesugar_nano.pcf
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# 12 MHz external clock
set_io i_clk D1

# LED
set_io o_led B6

# UART
set_io o_uart_tx B3
16 changes: 16 additions & 0 deletions servant.core
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,11 @@ filesets:

icesugar : {files: [data/icesugar.pcf : {file_type : PCF}]}

icesugar_nano:
files:
- data/icesugar_nano.pcf : {file_type : PCF}
- servant/servant_ice40_cm36.v : {file_type : verilogSource}

icev_wireless : {files: [data/icev_wireless.pcf : {file_type : PCF}]}

gmm7550:
Expand Down Expand Up @@ -440,6 +445,17 @@ targets:
pnr: next
toplevel : service

icesugar-nano:
default_tool : icestorm
description : iCE40LP1K Development Board by MuseLab
filesets : [mem_files, soc, icesugar_nano]
parameters : [memfile=blinky.hex, memsize=7168]
tools:
icestorm:
nextpnr_options: [--lp1k, --package, cm36, --freq, 12]
pnr: next
toplevel : servant_ice40_cm36

icev_wireless:
default_tool : icestorm
description: ICE-V Wireless
Expand Down
34 changes: 34 additions & 0 deletions servant/servant_ice40_cm36.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
`default_nettype none
module servant_ice40_cm36 (
input wire i_clk,
output wire o_led,
output wire o_uart_tx
);

parameter memfile = "blinky.hex";
parameter memsize = 7168;

wire wb_clk;
wire wb_rst;
wire q;

/* Duplicate the SERV output to both LED and UART pins. */
assign o_led = q;
assign o_uart_tx = q;

/* iCE40 CM36 has no PLL. Drive everything from the external clock. */
assign wb_clk = i_clk;

/* Board has no button that can be used for reset. */
assign wb_rst = 1'b0;

servant #(
.memfile(memfile),
.memsize(memsize)
) servant (
.wb_clk(wb_clk),
.wb_rst(wb_rst),
.q (q)
);

endmodule