mirror of
https://github.com/Gehstock/Mist_FPGA.git
synced 2026-01-13 15:17:55 +00:00
MiST: further update of common modules
This commit is contained in:
parent
52f18ba45b
commit
bbd38ee214
@ -28,7 +28,7 @@ module data_io
|
||||
input SPI_SS2,
|
||||
input SPI_SS4,
|
||||
input SPI_DI,
|
||||
inout reg SPI_DO,
|
||||
inout SPI_DO,
|
||||
|
||||
input clkref_n, // assert ioctl_wr one cycle after clkref stobe (negative active)
|
||||
|
||||
@ -53,11 +53,13 @@ parameter ROM_DIRECT_UPLOAD = 0;
|
||||
|
||||
reg [7:0] data_w;
|
||||
reg [7:0] data_w2 = 0;
|
||||
reg [3:0] cnt;
|
||||
reg rclk = 0;
|
||||
reg rclk2 = 0;
|
||||
reg addr_reset = 0;
|
||||
reg downloading_reg = 0;
|
||||
reg uploading_reg = 0;
|
||||
reg reg_do;
|
||||
|
||||
localparam DIO_FILE_TX = 8'h53;
|
||||
localparam DIO_FILE_TX_DAT = 8'h54;
|
||||
@ -66,19 +68,20 @@ localparam DIO_FILE_INFO = 8'h56;
|
||||
localparam DIO_FILE_RX = 8'h57;
|
||||
localparam DIO_FILE_RX_DAT = 8'h58;
|
||||
|
||||
assign SPI_DO = reg_do;
|
||||
|
||||
// data_io has its own SPI interface to the io controller
|
||||
always@(negedge SPI_SCK or posedge SPI_SS2) begin : SPI_TRANSMITTER
|
||||
reg [7:0] dout_r;
|
||||
|
||||
if(SPI_SS2) begin
|
||||
SPI_DO <= 1'bZ;
|
||||
reg_do <= 1'bZ;
|
||||
end else begin
|
||||
if (cnt == 15) dout_r <= ioctl_din;
|
||||
SPI_DO <= dout_r[~cnt[2:0]];
|
||||
reg_do <= dout_r[~cnt[2:0]];
|
||||
end
|
||||
end
|
||||
|
||||
reg [3:0] cnt;
|
||||
|
||||
always@(posedge SPI_SCK, posedge SPI_SS2) begin : SPI_RECEIVER
|
||||
reg [6:0] sbuf;
|
||||
|
||||
@ -30,7 +30,7 @@ port (
|
||||
joystick_4 : out std_logic_vector(31 downto 0);
|
||||
joystick_analog_0 : out std_logic_vector(15 downto 0);
|
||||
joystick_analog_1 : out std_logic_vector(15 downto 0);
|
||||
status : out std_logic_vector(31 downto 0);
|
||||
status : out std_logic_vector(63 downto 0);
|
||||
switches : out std_logic_vector(1 downto 0);
|
||||
buttons : out std_logic_vector(1 downto 0);
|
||||
scandoubler_disable : out std_logic;
|
||||
|
||||
@ -47,8 +47,11 @@ module user_io #(parameter STRLEN=0, parameter PS2DIV=100, parameter ROM_DIRECT_
|
||||
output scandoubler_disable,
|
||||
output ypbpr,
|
||||
output no_csync,
|
||||
output reg [31:0] status,
|
||||
output reg [63:0] status,
|
||||
output reg [6:0] core_mod, // core variant, sent before the config string is requested
|
||||
// RTC data from IO controller
|
||||
// sec, min, hour, date, month, year, day (BCD)
|
||||
output reg [63:0] rtc,
|
||||
|
||||
// connection to sd card emulation
|
||||
input [31:0] sd_lba,
|
||||
@ -497,12 +500,14 @@ always @(posedge clk_sys) begin : cmd_block
|
||||
|
||||
8'h15: status <= spi_byte_in;
|
||||
|
||||
// status, 32bit version
|
||||
8'h1e: if(abyte_cnt<5) status[(abyte_cnt-1)<<3 +:8] <= spi_byte_in;
|
||||
// status, 64bit version
|
||||
8'h1e: if(abyte_cnt<9) status[(abyte_cnt-1)<<3 +:8] <= spi_byte_in;
|
||||
|
||||
// core variant
|
||||
8'h21: core_mod <= spi_byte_in[6:0];
|
||||
|
||||
// RTC
|
||||
8'h22: if(abyte_cnt<9) rtc[(abyte_cnt-1)<<3 +:8] <= spi_byte_in;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user