fpga: add iCEStick btled example.
This commit is contained in:
		
							parent
							
								
									50b0827983
								
							
						
					
					
						commit
						ef5e3dc7fd
					
				| 
						 | 
					@ -56,9 +56,10 @@ bitwise/ion/ion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# apio cruft
 | 
					# apio cruft
 | 
				
			||||||
.sconsign.dblite
 | 
					.sconsign.dblite
 | 
				
			||||||
hardware.blif
 | 
					 | 
				
			||||||
hardware.asc
 | 
					hardware.asc
 | 
				
			||||||
hardware.bin
 | 
					hardware.bin
 | 
				
			||||||
 | 
					hardware.blif
 | 
				
			||||||
 | 
					hardware.out
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# platformio cruft
 | 
					# platformio cruft
 | 
				
			||||||
.pio
 | 
					.pio
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					[env]
 | 
				
			||||||
 | 
					board = icestick
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,142 @@
 | 
				
			||||||
 | 
					# -----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#- Icestick constraint file (.pcf)
 | 
				
			||||||
 | 
					#- By Juan Gonzalez (Obijuan)
 | 
				
			||||||
 | 
					#- April - 2016
 | 
				
			||||||
 | 
					#- GPL license
 | 
				
			||||||
 | 
					# -----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# --  Pinout: http://www.pighixxx.com/test/2016/02/icestick-pinout/
 | 
				
			||||||
 | 
					# --  Guide: https://github.com/Obijuan/open-fpga-verilog-tutorial/blob/master/tutorial/doc/icestickusermanual.pdf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -- Icestick leds map
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#           D1
 | 
				
			||||||
 | 
					#        D4 D5 D2
 | 
				
			||||||
 | 
					#           D3
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# --    D1-D4: Red leds
 | 
				
			||||||
 | 
					# --    D5: green led
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ------------ Red leds ------------------------------------------------------
 | 
				
			||||||
 | 
					set_io --warn-no-port D1 99
 | 
				
			||||||
 | 
					set_io --warn-no-port D2 98
 | 
				
			||||||
 | 
					set_io --warn-no-port D3 97
 | 
				
			||||||
 | 
					set_io --warn-no-port D4 96
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ------------ Green led -----------------------------------------------------
 | 
				
			||||||
 | 
					set_io --warn-no-port D5 95
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ------------ IrDA ----------------------------------------------------------
 | 
				
			||||||
 | 
					set_io --warn-no-port IrDA_TX 105
 | 
				
			||||||
 | 
					set_io --warn-no-port IrDA_RX 106
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-- SD = 0, enable IrDA
 | 
				
			||||||
 | 
					set_io --warn-no-port SD 107
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ------------ PMOD connector ------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Pmod standar numeration (Oriented according the icestick, with the
 | 
				
			||||||
 | 
					#               usb connector pointing to the left and IRda to the right)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      --------
 | 
				
			||||||
 | 
					#     |  12  6 |
 | 
				
			||||||
 | 
					#     |  11  5 |
 | 
				
			||||||
 | 
					#     |  10  4 |
 | 
				
			||||||
 | 
					#     |  9   3 |
 | 
				
			||||||
 | 
					#     |  8   2 |
 | 
				
			||||||
 | 
					#     |  7   1 | <
 | 
				
			||||||
 | 
					#      --------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   FPGA pins:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     ----------
 | 
				
			||||||
 | 
					#    | 3V3  3V3 |
 | 
				
			||||||
 | 
					#    | GND  GND |
 | 
				
			||||||
 | 
					#    | 91    81 |
 | 
				
			||||||
 | 
					#    | 90    80 |
 | 
				
			||||||
 | 
					#    | 88    79 |
 | 
				
			||||||
 | 
					#    | 87    78 | <
 | 
				
			||||||
 | 
					#     ----------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					set_io --warn-no-port PMOD1 78
 | 
				
			||||||
 | 
					set_io --warn-no-port PMOD2 79
 | 
				
			||||||
 | 
					set_io --warn-no-port PMOD3 80
 | 
				
			||||||
 | 
					set_io --warn-no-port PMOD4 81
 | 
				
			||||||
 | 
					set_io --warn-no-port PMOD7 87
 | 
				
			||||||
 | 
					set_io --warn-no-port PMOD8 88
 | 
				
			||||||
 | 
					set_io --warn-no-port PMOD9 90
 | 
				
			||||||
 | 
					set_io --warn-no-port PMOD10 91
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ------------------------ EXPANSION I/O ------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# -- Numeration
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Top Row (TR):
 | 
				
			||||||
 | 
					#                                       v
 | 
				
			||||||
 | 
					#          --------------------------------
 | 
				
			||||||
 | 
					#         |  10  9  8  7  6  5 4  3  2  1  |
 | 
				
			||||||
 | 
					#          --------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Bottom Row (BR):
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#                                       v
 | 
				
			||||||
 | 
					#          --------------------------------
 | 
				
			||||||
 | 
					#         |  10  9  8  7  6  5 4  3  2  1  |
 | 
				
			||||||
 | 
					#          --------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# --- FPGA pins
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Top Row (TR)
 | 
				
			||||||
 | 
					#                                                       v
 | 
				
			||||||
 | 
					#        --------------------------------------------------
 | 
				
			||||||
 | 
					#       | 119  118  117  116  115  114  113  112  GND  3v3 |
 | 
				
			||||||
 | 
					#        --------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Bottom Row (BR)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#                                                       v
 | 
				
			||||||
 | 
					#         -------------------------------------------------
 | 
				
			||||||
 | 
					#        | 44   45   47   48   56   60   61   62  GND  3v3 |
 | 
				
			||||||
 | 
					#         -------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# -- Top Row
 | 
				
			||||||
 | 
					set_io --warn-no-port TR3 112
 | 
				
			||||||
 | 
					set_io --warn-no-port TR4 113
 | 
				
			||||||
 | 
					set_io --warn-no-port TR5 114
 | 
				
			||||||
 | 
					set_io --warn-no-port TR6 115
 | 
				
			||||||
 | 
					set_io --warn-no-port TR7 116
 | 
				
			||||||
 | 
					set_io --warn-no-port TR8 117
 | 
				
			||||||
 | 
					set_io --warn-no-port TR9 118
 | 
				
			||||||
 | 
					set_io --warn-no-port TR10 119
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# -- Bottom Row
 | 
				
			||||||
 | 
					set_io --warn-no-port BR3 62
 | 
				
			||||||
 | 
					set_io --warn-no-port BR4 61
 | 
				
			||||||
 | 
					set_io --warn-no-port BR5 60
 | 
				
			||||||
 | 
					set_io --warn-no-port BR6 56
 | 
				
			||||||
 | 
					set_io --warn-no-port BR7 48
 | 
				
			||||||
 | 
					set_io --warn-no-port BR8 47
 | 
				
			||||||
 | 
					set_io --warn-no-port BR9 45
 | 
				
			||||||
 | 
					set_io --warn-no-port BR10 44
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -------------------------- SYSTEM CLOCK ------------------------------------
 | 
				
			||||||
 | 
					set_io --warn-no-port CLK 21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -------------------------- FTDI --------------------------------------------
 | 
				
			||||||
 | 
					# --- FTDI 0:
 | 
				
			||||||
 | 
					set_io --warn-no-port RES  66
 | 
				
			||||||
 | 
					set_io --warn-no-port DONE 65
 | 
				
			||||||
 | 
					set_io --warn-no-port SS   71
 | 
				
			||||||
 | 
					set_io --warn-no-port MISO 67
 | 
				
			||||||
 | 
					set_io --warn-no-port MOSI 68
 | 
				
			||||||
 | 
					set_io --warn-no-port SCK  70
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# --- FTDI 1: (Serial port)
 | 
				
			||||||
 | 
					set_io --warn-no-port DCD 1
 | 
				
			||||||
 | 
					set_io --warn-no-port DSR 2
 | 
				
			||||||
 | 
					set_io --warn-no-port DTR 3
 | 
				
			||||||
 | 
					set_io --warn-no-port CTS 4
 | 
				
			||||||
 | 
					set_io --warn-no-port RTS 7
 | 
				
			||||||
 | 
					set_io --warn-no-port TX  8
 | 
				
			||||||
 | 
					set_io --warn-no-port RX  9
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					/// btled: button-toggled LED.
 | 
				
			||||||
 | 
					/// This is a port of the TinyFPGA btled to the iCEStick.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module top (
 | 
				
			||||||
 | 
						input	BR10,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						output	D1,
 | 
				
			||||||
 | 
						output	D2,
 | 
				
			||||||
 | 
						output	D3,
 | 
				
			||||||
 | 
						output	D4,
 | 
				
			||||||
 | 
						output	D5
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reg	state = 0;
 | 
				
			||||||
 | 
						assign	D1 = state;
 | 
				
			||||||
 | 
						assign	D2 = state;
 | 
				
			||||||
 | 
						assign	D3 = state;
 | 
				
			||||||
 | 
						assign	D4 = state;
 | 
				
			||||||
 | 
						assign	D5 = state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						always @(negedge BR10) state <= !state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endmodule
 | 
				
			||||||
		Loading…
	
		Reference in New Issue