Example soc tweaks, add openocd config
This commit is contained in:
parent
8e3dc62b97
commit
14ba030271
|
@ -29,10 +29,20 @@ module fpga_icebreaker (
|
||||||
input wire tdi,
|
input wire tdi,
|
||||||
output wire tdo,
|
output wire tdo,
|
||||||
|
|
||||||
|
output wire mirror_tck,
|
||||||
|
output wire mirror_tms,
|
||||||
|
output wire mirror_tdi,
|
||||||
|
output wire mirror_tdo,
|
||||||
|
|
||||||
output wire uart_tx,
|
output wire uart_tx,
|
||||||
input wire uart_rx
|
input wire uart_rx
|
||||||
);
|
);
|
||||||
|
|
||||||
|
assign mirror_tck = tck;
|
||||||
|
assign mirror_tms = tms;
|
||||||
|
assign mirror_tdi = tdi;
|
||||||
|
assign mirror_tdo = tdo;
|
||||||
|
|
||||||
wire clk_sys = clk_osc;
|
wire clk_sys = clk_osc;
|
||||||
wire rst_n_sys;
|
wire rst_n_sys;
|
||||||
wire trst_n;
|
wire trst_n;
|
||||||
|
@ -56,7 +66,7 @@ example_soc soc_u (
|
||||||
.rst_n (rst_n_sys),
|
.rst_n (rst_n_sys),
|
||||||
|
|
||||||
.tck (tck),
|
.tck (tck),
|
||||||
.trst_n (trst_n),
|
.trst_n (rst_n_sys), //fixme!
|
||||||
.tms (tms),
|
.tms (tms),
|
||||||
.tdi (tdi),
|
.tdi (tdi),
|
||||||
.tdo (tdo),
|
.tdo (tdo),
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
adapter driver ftdi
|
||||||
|
|
||||||
|
# 30 MHz -- a bit exciting but it seems reliable
|
||||||
|
adapter speed 30000
|
||||||
|
ftdi_tdo_sample_edge falling
|
||||||
|
|
||||||
|
# JTAG is on FTDI B channel so it doesn't inadvertently assert flash CS pin
|
||||||
|
# (usually UART would be on the B channel).
|
||||||
|
|
||||||
|
# Note TDO/TMS require two of the solder jumpers on the back of the board to
|
||||||
|
# be bridged. On the v1.0e board these are jumpers J3/J4. To find these, look
|
||||||
|
# for the box of 5 x 2 jumpers (with a few others hanging off the side) and
|
||||||
|
# they are the two in the central column. They line up with the space in
|
||||||
|
# between "Jump" and "for" in the silk text "Jump for FTDI FIFO".
|
||||||
|
|
||||||
|
ftdi_device_desc "Dual RS232-HS"
|
||||||
|
ftdi_vid_pid 0x0403 0x6010
|
||||||
|
# Use BDBUS0-3 on iCEBreaker to avoid toggling flash chip select
|
||||||
|
ftdi_channel 1
|
||||||
|
|
||||||
|
ftdi_layout_init 0x0000 0xffff
|
||||||
|
|
||||||
|
set _CHIPNAME hazard3
|
||||||
|
jtag newtap $_CHIPNAME cpu -irlen 5
|
||||||
|
set _TARGETNAME $_CHIPNAME.cpu
|
||||||
|
target create $_TARGETNAME riscv -chain-position $_TARGETNAME
|
||||||
|
|
||||||
|
gdb_report_data_abort enable
|
||||||
|
init
|
||||||
|
halt
|
|
@ -196,16 +196,18 @@ wire uart_irq;
|
||||||
// options like faster multiply/divide.
|
// options like faster multiply/divide.
|
||||||
|
|
||||||
hazard3_cpu_1port #(
|
hazard3_cpu_1port #(
|
||||||
.RESET_VECTOR (32'h2000_00c0),
|
.RESET_VECTOR (32'h0000_00c0),
|
||||||
.MTVEC_INIT (32'h2000_0000),
|
.MTVEC_INIT (32'h0000_0000),
|
||||||
|
|
||||||
.EXTENSION_C (0),
|
.EXTENSION_C (0),
|
||||||
.EXTENSION_M (0),
|
.EXTENSION_M (1),
|
||||||
.CSR_M_MANDATORY (1),
|
.CSR_M_MANDATORY (1),
|
||||||
.CSR_M_TRAP (1),
|
.CSR_M_TRAP (1),
|
||||||
.CSR_COUNTER (0), // also no counters cause they're whack
|
.CSR_COUNTER (1),
|
||||||
.DEBUG_SUPPORT (1),
|
.DEBUG_SUPPORT (1),
|
||||||
|
|
||||||
|
.MUL_FAST (1),
|
||||||
|
|
||||||
.NUM_IRQ (1),
|
.NUM_IRQ (1),
|
||||||
|
|
||||||
.MVENDORID_VAL (32'h0),
|
.MVENDORID_VAL (32'h0),
|
||||||
|
@ -256,7 +258,7 @@ hazard3_cpu_1port #(
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Bus fabric
|
// Bus fabric
|
||||||
|
|
||||||
// - 128 kB SRAM (using SPRAMs) at 0x2000_0000
|
// - 128 kB SRAM (using SPRAMs) at 0x0000_0000
|
||||||
// - UART at 0x4000_0000
|
// - UART at 0x4000_0000
|
||||||
|
|
||||||
// AHBL layer
|
// AHBL layer
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
CHIPNAME=fpga_icebreaker
|
CHIPNAME=fpga_icebreaker
|
||||||
DOTF=../fpga/fpga_icebreaker.f
|
DOTF=../fpga/fpga_icebreaker.f
|
||||||
SYNTH_OPT=-retime
|
SYNTH_OPT=-dsp
|
||||||
|
|
||||||
DEVICE=up5k
|
DEVICE=up5k
|
||||||
PACKAGE=sg48
|
PACKAGE=sg48
|
||||||
|
|
|
@ -2,7 +2,14 @@
|
||||||
set_io clk_osc 35
|
set_io clk_osc 35
|
||||||
|
|
||||||
# JTAG is on FTDI B channel so it doesn't inadvertently assert flash CS pin
|
# JTAG is on FTDI B channel so it doesn't inadvertently assert flash CS pin
|
||||||
# (usually UART would be on the B channel)
|
# (usually UART would be on the B channel).
|
||||||
|
|
||||||
|
# Note TDO/TMS require two of the solder jumpers on the back of the board to
|
||||||
|
# be bridged. On the v1.0e board these are jumpers J3/J4. To find these, look
|
||||||
|
# for the box of 5 x 2 jumpers (with a few others hanging off the side) and
|
||||||
|
# they are the two in the central column. They line up with the space in
|
||||||
|
# between "Jump" and "for" in the silk text "Jump for FTDI FIFO".
|
||||||
|
|
||||||
set_io tck 6 # FTDI BDBUS0
|
set_io tck 6 # FTDI BDBUS0
|
||||||
set_io tdi 9 # FTDI BDBUS1
|
set_io tdi 9 # FTDI BDBUS1
|
||||||
set_io tdo 18 # FTDI BDBUS2
|
set_io tdo 18 # FTDI BDBUS2
|
||||||
|
@ -25,6 +32,11 @@ set_io uart_tx 14 # FTDI ADBUS1, flash MOSI, iCE SO (if jumper J15 connected)
|
||||||
# set_io dpad_l 10 # Main board
|
# set_io dpad_l 10 # Main board
|
||||||
# set_io dpad_r 19 # Snapoff middle
|
# set_io dpad_r 19 # Snapoff middle
|
||||||
|
|
||||||
|
set_io mirror_tck 27 # Left on snapoff (L2)
|
||||||
|
set_io mirror_tms 25 # Right on snapoff (L3)
|
||||||
|
set_io mirror_tdi 23 # Top on snapoff (L4)
|
||||||
|
set_io mirror_tdo 21 # Bottom on snapoff (L5)
|
||||||
|
|
||||||
# # LEDs
|
# # LEDs
|
||||||
# set_io led[0] 37 # Green on main board
|
# set_io led[0] 37 # Green on main board
|
||||||
# set_io led[1] 11 # Red on main board
|
# set_io led[1] 11 # Red on main board
|
||||||
|
|
Loading…
Reference in New Issue