Skip to content
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