From 6ad60f69a20c969ce46a605af9661b224d7e765d Mon Sep 17 00:00:00 2001 From: gojimmypi <13059545+gojimmypi@users.noreply.github.com> Date: Thu, 23 Dec 2021 12:10:43 -0800 Subject: [PATCH] Add ICE-V Wireless support --- README.md | 8 ++++++++ data/icev_wireless.pcf | 7 +++++++ servant.core | 31 ++++++++++++++++++++++++------- 3 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 data/icev_wireless.pcf diff --git a/README.md b/README.md index 4ef036f..d132d78 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,14 @@ Pmod pin JA1 is conntected to UART tx with 57600 baud rate. A USB to TTL connect fusesoc run --target=nexys_2_500 servant --uart_baudrate=57600 --firmware=$SERV/sw/zephyr_hello.hex +### ICE-V Wireless + +Pin 9 is used for UART output with 57600 baud rate. + + fusesoc run --target=icev_wireless servant + + iceprog build/servant_1.2.0/icestick-icestorm/servant_1.2.0.bin + ### iCESugar diff --git a/data/icev_wireless.pcf b/data/icev_wireless.pcf new file mode 100644 index 0000000..71c97ce --- /dev/null +++ b/data/icev_wireless.pcf @@ -0,0 +1,7 @@ +# 12 MHz clock +set_io i_clk 35 + +# RS232 +set_io q 9 + +# use q 39 for red, q 40 for green, q 41 for blue LED diff --git a/servant.core b/servant.core index cfc74d2..a24950f 100644 --- a/servant.core +++ b/servant.core @@ -65,7 +65,7 @@ filesets: - data/chameleon96/CV_96.v : {file_type : verilogSource} - servant/servive_clock_gen.v : {file_type : verilogSource} - servant/servive.v : {file_type : verilogSource} - + deca: files: - data/deca.sdc : {file_type : SDC} @@ -95,6 +95,7 @@ filesets: tinyfpga_bx: {files: [data/tinyfpga_bx.pcf : {file_type : PCF}]} icebreaker : {files: [data/icebreaker.pcf : {file_type : PCF}]} + icev_wireless : {files: [data/icev_wireless.pcf : {file_type : PCF}]} icesugar : {files: [data/icesugar.pcf : {file_type : PCF}]} alhambra : {files: [data/alhambra.pcf : {file_type : PCF}]} icestick : {files: [data/icestick.pcf : {file_type : PCF}]} @@ -122,7 +123,7 @@ filesets: - servant/servax.v : {file_type : verilogSource} - data/nexys_2.tcl : {file_type : tclSource} - data/nexys_2.ucf : {file_type : UCF} - + nexys_a7: files: - servant/servix_clock_gen.v : {file_type : verilogSource} @@ -211,9 +212,9 @@ targets: quartus: family : Cyclone V device : 5CSEBA6U19I7 - board_device_index : 2 + board_device_index : 2 toplevel: CV_96 - + deca: default_tool : quartus description: DECA development kit by Arrow / Terasic @@ -258,6 +259,17 @@ targets: pnr: next toplevel : service + icev_wireless: + default_tool : icestorm + filesets : [mem_files, soc, service, icev_wireless] + generate: [icev_wireless_pll] + parameters : [memfile, memsize, PLL=ICE40_PAD] + tools: + icestorm: + nextpnr_options: [--up5k, --freq, 16] + pnr: next + toplevel : service + icesugar: default_tool : icestorm description : iCE40UP5K Development Board by MuseLab @@ -507,7 +519,7 @@ parameters: RISCV_FORMAL: datatype : bool paramtype : vlogdefine - + MDU: datatype : int description : Enables RISC-V standard M-extension @@ -558,12 +570,12 @@ parameters: datatype : int description : Delay start of VCD dumping until the specified time paramtype : plusarg - + compressed: datatype : int description : Enable/Disable the Compressed extension paramtype : vlogparam - + align: datatype : int description : Enable/Disable the Misaligned access of instruction @@ -580,6 +592,11 @@ generate: parameters: freq_out : 16 + icev_wireless_pll: + generator: icepll + parameters: + freq_out : 16 + icesugar_pll: generator: icepll parameters: