newStep.v
This commit is contained in:
59
RTL/DEVICES/HardwareConfig.v
Normal file
59
RTL/DEVICES/HardwareConfig.v
Normal file
@@ -0,0 +1,59 @@
|
||||
// femtorv32, a minimalistic RISC-V RV32I core
|
||||
// Bruno Levy, 2020-2021
|
||||
//
|
||||
// This file: memory-mapped constants to query
|
||||
// hardware config.
|
||||
|
||||
module HardwareConfig(
|
||||
input wire clk,
|
||||
input wire sel_memory, // available RAM
|
||||
input wire sel_devices, // configured devices
|
||||
input wire sel_cpuinfo, // CPU information
|
||||
output wire [31:0] rdata // read data
|
||||
);
|
||||
|
||||
`include "HardwareConfig_bits.v"
|
||||
|
||||
`ifdef NRV_COUNTER_WIDTH
|
||||
localparam counter_width = `NRV_COUNTER_WIDTH;
|
||||
`else
|
||||
localparam counter_width = 32;
|
||||
`endif
|
||||
|
||||
|
||||
// configured devices
|
||||
localparam NRV_DEVICES = 0
|
||||
`ifdef NRV_IO_LEDS
|
||||
| (1 << IO_LEDS_bit)
|
||||
`endif
|
||||
`ifdef NRV_IO_UART
|
||||
| (1 << IO_UART_DAT_bit) | (1 << IO_UART_CNTL_bit)
|
||||
`endif
|
||||
`ifdef NRV_IO_SSD1351_1331
|
||||
| (1 << IO_SSD1351_CNTL_bit) | (1 << IO_SSD1351_CMD_bit) | (1 << IO_SSD1351_DAT_bit)
|
||||
`endif
|
||||
`ifdef NRV_IO_MAX7219
|
||||
| (1 << IO_MAX7219_DAT_bit)
|
||||
`endif
|
||||
`ifdef NRV_IO_SPI_FLASH
|
||||
| (1 << IO_SPI_FLASH_bit)
|
||||
`endif
|
||||
`ifdef NRV_MAPPED_SPI_FLASH
|
||||
| (1 << IO_MAPPED_SPI_FLASH_bit)
|
||||
`endif
|
||||
`ifdef NRV_IO_SDCARD
|
||||
| (1 << IO_SDCARD_bit)
|
||||
`endif
|
||||
`ifdef NRV_IO_BUTTONS
|
||||
| (1 << IO_BUTTONS_bit)
|
||||
`endif
|
||||
`ifdef NRV_IO_FGA
|
||||
| (1 << IO_FGA_CNTL_bit) | (1 << IO_FGA_DAT_bit)
|
||||
`endif
|
||||
;
|
||||
|
||||
assign rdata = sel_memory ? `NRV_RAM :
|
||||
sel_devices ? NRV_DEVICES :
|
||||
sel_cpuinfo ? (`NRV_FREQ << 16) | counter_width : 32'b0;
|
||||
|
||||
endmodule
|
||||
Reference in New Issue
Block a user