update 4ft4 submodule & 4ft4_top
connect rom in & ram out to gpio.
add LA probes for halt and reset.
diff --git a/4ft4 b/4ft4
index 29c58f8..9417585 160000
--- a/4ft4
+++ b/4ft4
@@ -1 +1 @@
-Subproject commit 29c58f8e6708e35a8777bd6f3543aac852e843d2
+Subproject commit 9417585b62b77f0bda72091bcc064eb2b8b623a8
diff --git a/verilog/dv/4ft4_fib/4ft4_fib.c b/verilog/dv/4ft4_fib/4ft4_fib.c
index 8336c2a..f24b222 100644
--- a/verilog/dv/4ft4_fib/4ft4_fib.c
+++ b/verilog/dv/4ft4_fib/4ft4_fib.c
@@ -149,6 +149,10 @@
// ISZ 14
0x7e,
0x5b,
+ // LDM 7
+ 0xd7,
+ // WMP
+ 0xe1
};
void main()
@@ -196,6 +200,20 @@
reg_mprj_io_17 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_16 = GPIO_MODE_MGMT_STD_OUTPUT;
+ reg_mprj_io_11 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_10 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_9 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_8 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_7 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_6 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_5 = GPIO_MODE_USER_STD_OUTPUT;
+ reg_mprj_io_4 = GPIO_MODE_USER_STD_OUTPUT;
+
+ reg_mprj_io_3 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+ reg_mprj_io_2 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+ reg_mprj_io_1 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+ reg_mprj_io_0 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+
/* Apply configuration */
reg_mprj_xfer = 1;
while (reg_mprj_xfer == 1);
diff --git a/verilog/rtl/4ft4_top.v b/verilog/rtl/4ft4_top.v
index b823795..17f4fec 100644
--- a/verilog/rtl/4ft4_top.v
+++ b/verilog/rtl/4ft4_top.v
@@ -24,10 +24,36 @@
output [2:0] irq
);
+wire halt;
+assign halt = (~la_oenb[0]) ? la_data_in[0] : 1'b0;
+
+wire la_reset;
+wire reset;
+
+assign la_reset = (~la_oenb[32]) ? la_data_in[32] : 1'b0;
+assign reset = la_reset | wb_reset_i;
+
+wire [3:0] rom_in;
+assign rom_in = io_in[3:0];
+assign io_oeb[3:0] = 4'hf;
+
+wire [7:0] ram_out;
+assign io_out[11:4] = ram_out;
+assign io_oeb[11:4] = {8{reset}};
+
+assign io_out[`MPRJ_IO_PADS-1:12] = 0;
+assign io_oeb[`MPRJ_IO_PADS-1:12] = 0;
+
+assign la_data_out = {{56{1'b0}}, ram_out, {64{1'b0}}};
+
+assign irq = 3'b000;
+
wb_system sys(
.clock(wb_clock_i),
- .reset(wb_reset_i),
- .rom_out(),
+ .reset(reset),
+ .halt(halt),
+ .rom_in(rom_in),
+ .ram_out(ram_out),
.wb_data_i(wb_data_i),
.wb_addr_i(wb_addr_i),