In spite of many errors that still need fixing, this is a major advance
over the previous commit. All verilog modules are in place more or less
as intended, with various functions such as the housekeeping SPI placed
on user area pads, with the ability to switch to user control from the
configuration. The pad control bits are local to the pads and loaded
via serial shift register, so that there are not hundreds of control wires
feeding into the user space. The user has three basic controls over each
pad: in, out, and outenb. Two timer/counters and an SPI master have been
added to the SoC. The SPI master shares I/O with the housekeeping SPI, so
that all housekeeping SPI registers can be accessed from the SoC directly.
diff --git a/verilog/rtl/spimemio.v b/verilog/rtl/spimemio.v
index 456c2d0..2d0b6fe 100644
--- a/verilog/rtl/spimemio.v
+++ b/verilog/rtl/spimemio.v
@@ -132,7 +132,13 @@
.cfgreg_we(cfgreg_we),
.cfgreg_di(wb_dat_i),
- .cfgreg_do(spimemio_cfgreg_do)
+ .cfgreg_do(spimemio_cfgreg_do),
+
+ .pass_thru(pass_thru),
+ .pass_thru_csb(pass_thru_csb),
+ .pass_thru_sck(pass_thru_sck),
+ .pass_thru_sdi(pass_thru_sdi),
+ .pass_thru_sdo(pass_thru_sdo)
);
endmodule
@@ -176,7 +182,13 @@
input [3:0] cfgreg_we,
input [31:0] cfgreg_di,
- output [31:0] cfgreg_do
+ output [31:0] cfgreg_do,
+
+ input pass_thru,
+ input pass_thru_csb,
+ input pass_thru_sck,
+ input pass_thru_sdi,
+ output pass_thru_sdo
);
reg xfer_resetn;
reg din_valid;