You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2734 lines
108 KiB
Coq
2734 lines
108 KiB
Coq
3 years ago
|
// -----------------------------------------------------------------------------
|
||
|
// Auto-Generated by: __ _ __ _ __
|
||
|
// / / (_) /____ | |/_/
|
||
|
// / /__/ / __/ -_)> <
|
||
|
// /____/_/\__/\__/_/|_|
|
||
|
// Build your hardware, easily!
|
||
|
// https://github.com/enjoy-digital/litex
|
||
|
//
|
||
|
// Filename : cmod7.v
|
||
|
// Device : xc7a35t-CPG236-1
|
||
|
// LiteX sha1 : feca1c47
|
||
|
// Date : 2021-11-11 09:31:25
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Module
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
module cmod7 (
|
||
|
output reg serial_tx,
|
||
|
input wire serial_rx,
|
||
|
(* dont_touch = "true" *) input wire clk12,
|
||
|
output wire [18:0] issiram_addr,
|
||
|
inout wire [7:0] issiram_data,
|
||
|
output wire issiram_oen,
|
||
|
output wire issiram_wen,
|
||
|
output wire issiram_cen,
|
||
|
output reg user_led0,
|
||
|
output reg user_led1,
|
||
|
input wire user_btn0,
|
||
|
input wire user_btn1,
|
||
|
inout wire pmod0,
|
||
|
inout wire pmod1,
|
||
|
output reg digital10,
|
||
|
input wire digital11,
|
||
|
output wire digital43
|
||
|
);
|
||
|
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Signals
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
reg basesoc_soc_rst = 1'd0;
|
||
|
wire basesoc_cpu_rst;
|
||
|
reg [1:0] basesoc_reset_storage = 2'd0;
|
||
|
reg basesoc_reset_re = 1'd0;
|
||
|
reg [31:0] basesoc_scratch_storage = 32'd305419896;
|
||
|
reg basesoc_scratch_re = 1'd0;
|
||
|
wire [31:0] basesoc_bus_errors_status;
|
||
|
wire basesoc_bus_errors_we;
|
||
|
reg basesoc_bus_errors_re = 1'd0;
|
||
|
wire basesoc_bus_error;
|
||
|
reg [31:0] basesoc_bus_errors = 32'd0;
|
||
|
wire basesoc_reset;
|
||
|
reg [31:0] basesoc_interrupt = 32'd0;
|
||
|
reg basesoc_interruptS = 1'd0;
|
||
|
wire [29:0] basesoc_ibus_adr;
|
||
|
wire [31:0] basesoc_ibus_dat_w;
|
||
|
wire [31:0] basesoc_ibus_dat_r;
|
||
|
wire [3:0] basesoc_ibus_sel;
|
||
|
wire basesoc_ibus_cyc;
|
||
|
wire basesoc_ibus_stb;
|
||
|
wire basesoc_ibus_ack;
|
||
|
wire basesoc_ibus_we;
|
||
|
wire [2:0] basesoc_ibus_cti;
|
||
|
wire [1:0] basesoc_ibus_bte;
|
||
|
wire basesoc_ibus_err;
|
||
|
wire [29:0] basesoc_dbus_adr;
|
||
|
wire [31:0] basesoc_dbus_dat_w;
|
||
|
wire [31:0] basesoc_dbus_dat_r;
|
||
|
wire [3:0] basesoc_dbus_sel;
|
||
|
wire basesoc_dbus_cyc;
|
||
|
wire basesoc_dbus_stb;
|
||
|
wire basesoc_dbus_ack;
|
||
|
wire basesoc_dbus_we;
|
||
|
wire [2:0] basesoc_dbus_cti;
|
||
|
wire [1:0] basesoc_dbus_bte;
|
||
|
wire basesoc_dbus_err;
|
||
|
reg [31:0] basesoc_a2p = 32'd0;
|
||
|
wire basesoc_tx_sink_valid;
|
||
|
reg basesoc_tx_sink_ready = 1'd0;
|
||
|
wire basesoc_tx_sink_first;
|
||
|
wire basesoc_tx_sink_last;
|
||
|
wire [7:0] basesoc_tx_sink_payload_data;
|
||
|
reg [7:0] basesoc_tx_data = 8'd0;
|
||
|
reg [3:0] basesoc_tx_count = 4'd0;
|
||
|
reg basesoc_tx_enable = 1'd0;
|
||
|
reg basesoc_tx_tick = 1'd0;
|
||
|
reg [31:0] basesoc_tx_phase = 32'd0;
|
||
|
reg basesoc_rx_source_valid = 1'd0;
|
||
|
wire basesoc_rx_source_ready;
|
||
|
reg basesoc_rx_source_first = 1'd0;
|
||
|
reg basesoc_rx_source_last = 1'd0;
|
||
|
reg [7:0] basesoc_rx_source_payload_data = 8'd0;
|
||
|
reg [7:0] basesoc_rx_data = 8'd0;
|
||
|
reg [3:0] basesoc_rx_count = 4'd0;
|
||
|
reg basesoc_rx_enable = 1'd0;
|
||
|
reg basesoc_rx_tick = 1'd0;
|
||
|
reg [31:0] basesoc_rx_phase = 32'd0;
|
||
|
wire basesoc_rx_rx;
|
||
|
reg basesoc_rx_rx_d = 1'd0;
|
||
|
reg basesoc_uart_rxtx_re = 1'd0;
|
||
|
wire [7:0] basesoc_uart_rxtx_r;
|
||
|
reg basesoc_uart_rxtx_we = 1'd0;
|
||
|
wire [7:0] basesoc_uart_rxtx_w;
|
||
|
wire basesoc_uart_txfull_status;
|
||
|
wire basesoc_uart_txfull_we;
|
||
|
reg basesoc_uart_txfull_re = 1'd0;
|
||
|
wire basesoc_uart_rxempty_status;
|
||
|
wire basesoc_uart_rxempty_we;
|
||
|
reg basesoc_uart_rxempty_re = 1'd0;
|
||
|
wire basesoc_uart_irq;
|
||
|
wire basesoc_uart_tx_status;
|
||
|
reg basesoc_uart_tx_pending = 1'd0;
|
||
|
wire basesoc_uart_tx_trigger;
|
||
|
reg basesoc_uart_tx_clear = 1'd0;
|
||
|
reg basesoc_uart_tx_trigger_d = 1'd0;
|
||
|
wire basesoc_uart_rx_status;
|
||
|
reg basesoc_uart_rx_pending = 1'd0;
|
||
|
wire basesoc_uart_rx_trigger;
|
||
|
reg basesoc_uart_rx_clear = 1'd0;
|
||
|
reg basesoc_uart_rx_trigger_d = 1'd0;
|
||
|
wire basesoc_uart_tx0;
|
||
|
wire basesoc_uart_rx0;
|
||
|
reg [1:0] basesoc_uart_status_status = 2'd0;
|
||
|
wire basesoc_uart_status_we;
|
||
|
reg basesoc_uart_status_re = 1'd0;
|
||
|
wire basesoc_uart_tx1;
|
||
|
wire basesoc_uart_rx1;
|
||
|
reg [1:0] basesoc_uart_pending_status = 2'd0;
|
||
|
wire basesoc_uart_pending_we;
|
||
|
reg basesoc_uart_pending_re = 1'd0;
|
||
|
reg [1:0] basesoc_uart_pending_r = 2'd0;
|
||
|
wire basesoc_uart_tx2;
|
||
|
wire basesoc_uart_rx2;
|
||
|
reg [1:0] basesoc_uart_enable_storage = 2'd0;
|
||
|
reg basesoc_uart_enable_re = 1'd0;
|
||
|
wire basesoc_uart_txempty_status;
|
||
|
wire basesoc_uart_txempty_we;
|
||
|
reg basesoc_uart_txempty_re = 1'd0;
|
||
|
wire basesoc_uart_rxfull_status;
|
||
|
wire basesoc_uart_rxfull_we;
|
||
|
reg basesoc_uart_rxfull_re = 1'd0;
|
||
|
wire basesoc_uart_uart_sink_valid;
|
||
|
wire basesoc_uart_uart_sink_ready;
|
||
|
wire basesoc_uart_uart_sink_first;
|
||
|
wire basesoc_uart_uart_sink_last;
|
||
|
wire [7:0] basesoc_uart_uart_sink_payload_data;
|
||
|
wire basesoc_uart_uart_source_valid;
|
||
|
wire basesoc_uart_uart_source_ready;
|
||
|
wire basesoc_uart_uart_source_first;
|
||
|
wire basesoc_uart_uart_source_last;
|
||
|
wire [7:0] basesoc_uart_uart_source_payload_data;
|
||
|
wire basesoc_uart_tx_fifo_sink_valid;
|
||
|
wire basesoc_uart_tx_fifo_sink_ready;
|
||
|
reg basesoc_uart_tx_fifo_sink_first = 1'd0;
|
||
|
reg basesoc_uart_tx_fifo_sink_last = 1'd0;
|
||
|
wire [7:0] basesoc_uart_tx_fifo_sink_payload_data;
|
||
|
wire basesoc_uart_tx_fifo_source_valid;
|
||
|
wire basesoc_uart_tx_fifo_source_ready;
|
||
|
wire basesoc_uart_tx_fifo_source_first;
|
||
|
wire basesoc_uart_tx_fifo_source_last;
|
||
|
wire [7:0] basesoc_uart_tx_fifo_source_payload_data;
|
||
|
wire basesoc_uart_tx_fifo_re;
|
||
|
reg basesoc_uart_tx_fifo_readable = 1'd0;
|
||
|
wire basesoc_uart_tx_fifo_syncfifo_we;
|
||
|
wire basesoc_uart_tx_fifo_syncfifo_writable;
|
||
|
wire basesoc_uart_tx_fifo_syncfifo_re;
|
||
|
wire basesoc_uart_tx_fifo_syncfifo_readable;
|
||
|
wire [9:0] basesoc_uart_tx_fifo_syncfifo_din;
|
||
|
wire [9:0] basesoc_uart_tx_fifo_syncfifo_dout;
|
||
|
reg [4:0] basesoc_uart_tx_fifo_level0 = 5'd0;
|
||
|
reg basesoc_uart_tx_fifo_replace = 1'd0;
|
||
|
reg [3:0] basesoc_uart_tx_fifo_produce = 4'd0;
|
||
|
reg [3:0] basesoc_uart_tx_fifo_consume = 4'd0;
|
||
|
reg [3:0] basesoc_uart_tx_fifo_wrport_adr = 4'd0;
|
||
|
wire [9:0] basesoc_uart_tx_fifo_wrport_dat_r;
|
||
|
wire basesoc_uart_tx_fifo_wrport_we;
|
||
|
wire [9:0] basesoc_uart_tx_fifo_wrport_dat_w;
|
||
|
wire basesoc_uart_tx_fifo_do_read;
|
||
|
wire [3:0] basesoc_uart_tx_fifo_rdport_adr;
|
||
|
wire [9:0] basesoc_uart_tx_fifo_rdport_dat_r;
|
||
|
wire basesoc_uart_tx_fifo_rdport_re;
|
||
|
wire [4:0] basesoc_uart_tx_fifo_level1;
|
||
|
wire [7:0] basesoc_uart_tx_fifo_fifo_in_payload_data;
|
||
|
wire basesoc_uart_tx_fifo_fifo_in_first;
|
||
|
wire basesoc_uart_tx_fifo_fifo_in_last;
|
||
|
wire [7:0] basesoc_uart_tx_fifo_fifo_out_payload_data;
|
||
|
wire basesoc_uart_tx_fifo_fifo_out_first;
|
||
|
wire basesoc_uart_tx_fifo_fifo_out_last;
|
||
|
wire basesoc_uart_rx_fifo_sink_valid;
|
||
|
wire basesoc_uart_rx_fifo_sink_ready;
|
||
|
wire basesoc_uart_rx_fifo_sink_first;
|
||
|
wire basesoc_uart_rx_fifo_sink_last;
|
||
|
wire [7:0] basesoc_uart_rx_fifo_sink_payload_data;
|
||
|
wire basesoc_uart_rx_fifo_source_valid;
|
||
|
wire basesoc_uart_rx_fifo_source_ready;
|
||
|
wire basesoc_uart_rx_fifo_source_first;
|
||
|
wire basesoc_uart_rx_fifo_source_last;
|
||
|
wire [7:0] basesoc_uart_rx_fifo_source_payload_data;
|
||
|
wire basesoc_uart_rx_fifo_re;
|
||
|
reg basesoc_uart_rx_fifo_readable = 1'd0;
|
||
|
wire basesoc_uart_rx_fifo_syncfifo_we;
|
||
|
wire basesoc_uart_rx_fifo_syncfifo_writable;
|
||
|
wire basesoc_uart_rx_fifo_syncfifo_re;
|
||
|
wire basesoc_uart_rx_fifo_syncfifo_readable;
|
||
|
wire [9:0] basesoc_uart_rx_fifo_syncfifo_din;
|
||
|
wire [9:0] basesoc_uart_rx_fifo_syncfifo_dout;
|
||
|
reg [4:0] basesoc_uart_rx_fifo_level0 = 5'd0;
|
||
|
reg basesoc_uart_rx_fifo_replace = 1'd0;
|
||
|
reg [3:0] basesoc_uart_rx_fifo_produce = 4'd0;
|
||
|
reg [3:0] basesoc_uart_rx_fifo_consume = 4'd0;
|
||
|
reg [3:0] basesoc_uart_rx_fifo_wrport_adr = 4'd0;
|
||
|
wire [9:0] basesoc_uart_rx_fifo_wrport_dat_r;
|
||
|
wire basesoc_uart_rx_fifo_wrport_we;
|
||
|
wire [9:0] basesoc_uart_rx_fifo_wrport_dat_w;
|
||
|
wire basesoc_uart_rx_fifo_do_read;
|
||
|
wire [3:0] basesoc_uart_rx_fifo_rdport_adr;
|
||
|
wire [9:0] basesoc_uart_rx_fifo_rdport_dat_r;
|
||
|
wire basesoc_uart_rx_fifo_rdport_re;
|
||
|
wire [4:0] basesoc_uart_rx_fifo_level1;
|
||
|
wire [7:0] basesoc_uart_rx_fifo_fifo_in_payload_data;
|
||
|
wire basesoc_uart_rx_fifo_fifo_in_first;
|
||
|
wire basesoc_uart_rx_fifo_fifo_in_last;
|
||
|
wire [7:0] basesoc_uart_rx_fifo_fifo_out_payload_data;
|
||
|
wire basesoc_uart_rx_fifo_fifo_out_first;
|
||
|
wire basesoc_uart_rx_fifo_fifo_out_last;
|
||
|
reg [31:0] basesoc_timer_load_storage = 32'd0;
|
||
|
reg basesoc_timer_load_re = 1'd0;
|
||
|
reg [31:0] basesoc_timer_reload_storage = 32'd0;
|
||
|
reg basesoc_timer_reload_re = 1'd0;
|
||
|
reg basesoc_timer_en_storage = 1'd0;
|
||
|
reg basesoc_timer_en_re = 1'd0;
|
||
|
reg basesoc_timer_update_value_storage = 1'd0;
|
||
|
reg basesoc_timer_update_value_re = 1'd0;
|
||
|
reg [31:0] basesoc_timer_value_status = 32'd0;
|
||
|
wire basesoc_timer_value_we;
|
||
|
reg basesoc_timer_value_re = 1'd0;
|
||
|
wire basesoc_timer_irq;
|
||
|
wire basesoc_timer_zero_status;
|
||
|
reg basesoc_timer_zero_pending = 1'd0;
|
||
|
wire basesoc_timer_zero_trigger;
|
||
|
reg basesoc_timer_zero_clear = 1'd0;
|
||
|
reg basesoc_timer_zero_trigger_d = 1'd0;
|
||
|
wire basesoc_timer_zero0;
|
||
|
wire basesoc_timer_status_status;
|
||
|
wire basesoc_timer_status_we;
|
||
|
reg basesoc_timer_status_re = 1'd0;
|
||
|
wire basesoc_timer_zero1;
|
||
|
wire basesoc_timer_pending_status;
|
||
|
wire basesoc_timer_pending_we;
|
||
|
reg basesoc_timer_pending_re = 1'd0;
|
||
|
reg basesoc_timer_pending_r = 1'd0;
|
||
|
wire basesoc_timer_zero2;
|
||
|
reg basesoc_timer_enable_storage = 1'd0;
|
||
|
reg basesoc_timer_enable_re = 1'd0;
|
||
|
reg [31:0] basesoc_timer_value = 32'd0;
|
||
|
wire crg_rst;
|
||
|
(* dont_touch = "true" *) wire sys_clk;
|
||
|
wire sys_rst;
|
||
|
wire sys2x_clk;
|
||
|
wire idelay_clk;
|
||
|
wire idelay_rst;
|
||
|
wire crg_reset;
|
||
|
reg crg_power_down = 1'd0;
|
||
|
wire crg_locked;
|
||
|
(* dont_touch = "true" *) wire crg_clkin;
|
||
|
wire crg_clkout0;
|
||
|
wire crg_clkout_buf0;
|
||
|
wire crg_clkout1;
|
||
|
wire crg_clkout_buf1;
|
||
|
wire crg_clkout2;
|
||
|
wire crg_clkout_buf2;
|
||
|
reg [3:0] crg_reset_counter = 4'd15;
|
||
|
reg crg_ic_reset = 1'd1;
|
||
|
reg csrstorage0_storage = 1'd140989193;
|
||
|
reg csrstorage0_re = 1'd0;
|
||
|
reg csrstorage1_storage = 1'd0;
|
||
|
reg csrstorage1_re = 1'd0;
|
||
|
reg directory0_re = 1'd0;
|
||
|
reg directory0_r = 1'd0;
|
||
|
wire directory0_w;
|
||
|
reg csr_08000_re = 1'd0;
|
||
|
reg csr_08000_r = 1'd0;
|
||
|
wire csr_08000_w;
|
||
|
wire [29:0] basesoc_ram_bus_adr;
|
||
|
wire [31:0] basesoc_ram_bus_dat_w;
|
||
|
wire [31:0] basesoc_ram_bus_dat_r;
|
||
|
wire [3:0] basesoc_ram_bus_sel;
|
||
|
wire basesoc_ram_bus_cyc;
|
||
|
wire basesoc_ram_bus_stb;
|
||
|
reg basesoc_ram_bus_ack = 1'd0;
|
||
|
wire basesoc_ram_bus_we;
|
||
|
wire [2:0] basesoc_ram_bus_cti;
|
||
|
wire [1:0] basesoc_ram_bus_bte;
|
||
|
reg basesoc_ram_bus_err = 1'd0;
|
||
|
wire [13:0] basesoc_adr;
|
||
|
wire [31:0] basesoc_dat_r;
|
||
|
wire [29:0] sram_bus_adr;
|
||
|
wire [31:0] sram_bus_dat_w;
|
||
|
wire [31:0] sram_bus_dat_r;
|
||
|
wire [3:0] sram_bus_sel;
|
||
|
wire sram_bus_cyc;
|
||
|
wire sram_bus_stb;
|
||
|
wire sram_bus_ack;
|
||
|
wire sram_bus_we;
|
||
|
wire [2:0] sram_bus_cti;
|
||
|
wire [1:0] sram_bus_bte;
|
||
|
reg sram_bus_err = 1'd0;
|
||
|
reg [56:0] dna_status = 57'd0;
|
||
|
wire dna_we;
|
||
|
reg dna_re = 1'd0;
|
||
|
wire dna_do;
|
||
|
reg [6:0] dna_count = 7'd0;
|
||
|
wire dna_clk;
|
||
|
reg [11:0] xadc_temperature_status = 12'd0;
|
||
|
wire xadc_temperature_we;
|
||
|
reg xadc_temperature_re = 1'd0;
|
||
|
reg [11:0] xadc_vccint_status = 12'd0;
|
||
|
wire xadc_vccint_we;
|
||
|
reg xadc_vccint_re = 1'd0;
|
||
|
reg [11:0] xadc_vccaux_status = 12'd0;
|
||
|
wire xadc_vccaux_we;
|
||
|
reg xadc_vccaux_re = 1'd0;
|
||
|
reg [11:0] xadc_vccbram_status = 12'd0;
|
||
|
wire xadc_vccbram_we;
|
||
|
reg xadc_vccbram_re = 1'd0;
|
||
|
reg xadc_eoc_status = 1'd0;
|
||
|
wire xadc_eoc_we;
|
||
|
reg xadc_eoc_re = 1'd0;
|
||
|
reg xadc_eos_status = 1'd0;
|
||
|
wire xadc_eos_we;
|
||
|
reg xadc_eos_re = 1'd0;
|
||
|
wire [7:0] xadc_alarm;
|
||
|
wire xadc_ot;
|
||
|
wire xadc_busy;
|
||
|
wire [6:0] xadc_channel;
|
||
|
wire xadc_eoc;
|
||
|
wire xadc_eos;
|
||
|
reg xadc_dwe = 1'd0;
|
||
|
reg xadc_den = 1'd0;
|
||
|
wire xadc_drdy;
|
||
|
reg [6:0] xadc_dadr = 7'd0;
|
||
|
reg [15:0] xadc_di = 16'd0;
|
||
|
wire [15:0] xadc_do;
|
||
|
reg xadc_drp_en = 1'd0;
|
||
|
reg [1:0] leds_storage = 2'd0;
|
||
|
reg leds_re = 1'd0;
|
||
|
reg [1:0] leds_chaser = 2'd0;
|
||
|
reg leds_mode = 1'd0;
|
||
|
wire leds_wait;
|
||
|
wire leds_done;
|
||
|
reg [24:0] leds_count = 25'd25000000;
|
||
|
wire [1:0] buttons_status;
|
||
|
wire buttons_we;
|
||
|
reg buttons_re = 1'd0;
|
||
|
wire scl;
|
||
|
wire oe;
|
||
|
wire sda0;
|
||
|
reg [2:0] _w_storage = 3'd0;
|
||
|
reg _w_re = 1'd0;
|
||
|
wire sda1;
|
||
|
wire _r_status;
|
||
|
wire _r_we;
|
||
|
reg _r_re = 1'd0;
|
||
|
reg uart_1_phy_tx_sink_valid = 1'd0;
|
||
|
reg uart_1_phy_tx_sink_ready = 1'd0;
|
||
|
wire uart_1_phy_tx_sink_last;
|
||
|
reg [7:0] uart_1_phy_tx_sink_payload_data = 8'd0;
|
||
|
reg [7:0] uart_1_phy_tx_data = 8'd0;
|
||
|
reg [3:0] uart_1_phy_tx_count = 4'd0;
|
||
|
reg uart_1_phy_tx_enable = 1'd0;
|
||
|
reg uart_1_phy_tx_tick = 1'd0;
|
||
|
reg [31:0] uart_1_phy_tx_phase = 32'd0;
|
||
|
reg uart_1_phy_rx_source_valid = 1'd0;
|
||
|
reg uart_1_phy_rx_source_ready = 1'd0;
|
||
|
reg [7:0] uart_1_phy_rx_source_payload_data = 8'd0;
|
||
|
reg [7:0] uart_1_phy_rx_data = 8'd0;
|
||
|
reg [3:0] uart_1_phy_rx_count = 4'd0;
|
||
|
reg uart_1_phy_rx_enable = 1'd0;
|
||
|
reg uart_1_phy_rx_tick = 1'd0;
|
||
|
reg [31:0] uart_1_phy_rx_phase = 32'd0;
|
||
|
wire uart_1_phy_rx_rx;
|
||
|
reg uart_1_phy_rx_rx_d = 1'd0;
|
||
|
wire [29:0] uart_1_wishbone_adr;
|
||
|
wire [31:0] uart_1_wishbone_dat_w;
|
||
|
wire [31:0] uart_1_wishbone_dat_r;
|
||
|
wire [3:0] uart_1_wishbone_sel;
|
||
|
reg uart_1_wishbone_cyc = 1'd0;
|
||
|
reg uart_1_wishbone_stb = 1'd0;
|
||
|
wire uart_1_wishbone_ack;
|
||
|
reg uart_1_wishbone_we = 1'd0;
|
||
|
reg [2:0] uart_1_wishbone_cti = 3'd0;
|
||
|
reg [1:0] uart_1_wishbone_bte = 2'd0;
|
||
|
wire uart_1_wishbone_err;
|
||
|
reg [7:0] uart_1_cmd = 8'd0;
|
||
|
reg uart_1_incr = 1'd0;
|
||
|
reg [7:0] uart_1_length = 8'd0;
|
||
|
reg [31:0] uart_1_address = 32'd0;
|
||
|
reg [31:0] uart_1_data = 32'd0;
|
||
|
reg [1:0] uart_1_bytes_count = 2'd0;
|
||
|
reg [7:0] uart_1_words_count = 8'd0;
|
||
|
wire uart_1_reset;
|
||
|
wire uart_1_wait;
|
||
|
wire uart_1_done;
|
||
|
reg [23:0] uart_1_count = 24'd10000000;
|
||
|
reg uart_1_is_ongoing = 1'd0;
|
||
|
reg dshot_0_storage = 1'd0;
|
||
|
reg dshot_0_re = 1'd0;
|
||
|
reg subfragments_rs232phytx0_state = 1'd0;
|
||
|
reg subfragments_rs232phytx0_next_state = 1'd0;
|
||
|
reg [3:0] basesoc_tx_count_rs232phytx0_next_value0 = 4'd0;
|
||
|
reg basesoc_tx_count_rs232phytx0_next_value_ce0 = 1'd0;
|
||
|
reg basesoc_serial_tx_rs232phytx0_next_value1 = 1'd0;
|
||
|
reg basesoc_serial_tx_rs232phytx0_next_value_ce1 = 1'd0;
|
||
|
reg [7:0] basesoc_tx_data_rs232phytx0_next_value2 = 8'd0;
|
||
|
reg basesoc_tx_data_rs232phytx0_next_value_ce2 = 1'd0;
|
||
|
reg subfragments_rs232phyrx0_state = 1'd0;
|
||
|
reg subfragments_rs232phyrx0_next_state = 1'd0;
|
||
|
reg [3:0] basesoc_rx_count_rs232phyrx0_next_value0 = 4'd0;
|
||
|
reg basesoc_rx_count_rs232phyrx0_next_value_ce0 = 1'd0;
|
||
|
reg [7:0] basesoc_rx_data_rs232phyrx0_next_value1 = 8'd0;
|
||
|
reg basesoc_rx_data_rs232phyrx0_next_value_ce1 = 1'd0;
|
||
|
wire subfragments_reset0;
|
||
|
wire subfragments_reset1;
|
||
|
wire subfragments_reset2;
|
||
|
wire subfragments_reset3;
|
||
|
wire subfragments_reset4;
|
||
|
wire subfragments_reset5;
|
||
|
wire subfragments_reset6;
|
||
|
wire subfragments_reset7;
|
||
|
wire subfragments_mmcm_fb;
|
||
|
reg subfragments_rs232phytx1_state = 1'd0;
|
||
|
reg subfragments_rs232phytx1_next_state = 1'd0;
|
||
|
reg [3:0] uart_1_phy_tx_count_rs232phytx1_next_value0 = 4'd0;
|
||
|
reg uart_1_phy_tx_count_rs232phytx1_next_value_ce0 = 1'd0;
|
||
|
reg tx_obj_rs232phytx1_next_value1 = 1'd0;
|
||
|
reg tx_obj_rs232phytx1_next_value_ce1 = 1'd0;
|
||
|
reg [7:0] uart_1_phy_tx_data_rs232phytx1_next_value2 = 8'd0;
|
||
|
reg uart_1_phy_tx_data_rs232phytx1_next_value_ce2 = 1'd0;
|
||
|
reg subfragments_rs232phyrx1_state = 1'd0;
|
||
|
reg subfragments_rs232phyrx1_next_state = 1'd0;
|
||
|
reg [3:0] uart_1_phy_rx_count_rs232phyrx1_next_value0 = 4'd0;
|
||
|
reg uart_1_phy_rx_count_rs232phyrx1_next_value_ce0 = 1'd0;
|
||
|
reg [7:0] uart_1_phy_rx_data_rs232phyrx1_next_value1 = 8'd0;
|
||
|
reg uart_1_phy_rx_data_rs232phyrx1_next_value_ce1 = 1'd0;
|
||
|
reg [2:0] subfragments_state = 3'd0;
|
||
|
reg [2:0] subfragments_next_state = 3'd0;
|
||
|
reg [1:0] uart_1_bytes_count_next_value0 = 2'd0;
|
||
|
reg uart_1_bytes_count_next_value_ce0 = 1'd0;
|
||
|
reg [7:0] uart_1_words_count_next_value1 = 8'd0;
|
||
|
reg uart_1_words_count_next_value_ce1 = 1'd0;
|
||
|
reg [7:0] uart_1_cmd_next_value2 = 8'd0;
|
||
|
reg uart_1_cmd_next_value_ce2 = 1'd0;
|
||
|
reg [7:0] uart_1_length_next_value3 = 8'd0;
|
||
|
reg uart_1_length_next_value_ce3 = 1'd0;
|
||
|
reg [31:0] uart_1_address_next_value4 = 32'd0;
|
||
|
reg uart_1_address_next_value_ce4 = 1'd0;
|
||
|
reg uart_1_incr_next_value5 = 1'd0;
|
||
|
reg uart_1_incr_next_value_ce5 = 1'd0;
|
||
|
reg [31:0] uart_1_data_next_value6 = 32'd0;
|
||
|
reg uart_1_data_next_value_ce6 = 1'd0;
|
||
|
reg [13:0] basesoc_basesoc_adr = 14'd0;
|
||
|
reg basesoc_basesoc_we = 1'd0;
|
||
|
reg [31:0] basesoc_basesoc_dat_w = 32'd0;
|
||
|
wire [31:0] basesoc_basesoc_dat_r;
|
||
|
wire [29:0] basesoc_basesoc_wishbone_adr;
|
||
|
wire [31:0] basesoc_basesoc_wishbone_dat_w;
|
||
|
reg [31:0] basesoc_basesoc_wishbone_dat_r = 32'd0;
|
||
|
wire [3:0] basesoc_basesoc_wishbone_sel;
|
||
|
wire basesoc_basesoc_wishbone_cyc;
|
||
|
wire basesoc_basesoc_wishbone_stb;
|
||
|
reg basesoc_basesoc_wishbone_ack = 1'd0;
|
||
|
wire basesoc_basesoc_wishbone_we;
|
||
|
wire [2:0] basesoc_basesoc_wishbone_cti;
|
||
|
wire [1:0] basesoc_basesoc_wishbone_bte;
|
||
|
reg basesoc_basesoc_wishbone_err = 1'd0;
|
||
|
wire [29:0] basesoc_shared_adr;
|
||
|
wire [31:0] basesoc_shared_dat_w;
|
||
|
reg [31:0] basesoc_shared_dat_r = 32'd0;
|
||
|
wire [3:0] basesoc_shared_sel;
|
||
|
wire basesoc_shared_cyc;
|
||
|
wire basesoc_shared_stb;
|
||
|
reg basesoc_shared_ack = 1'd0;
|
||
|
wire basesoc_shared_we;
|
||
|
wire [2:0] basesoc_shared_cti;
|
||
|
wire [1:0] basesoc_shared_bte;
|
||
|
wire basesoc_shared_err;
|
||
|
wire [2:0] basesoc_request;
|
||
|
reg [1:0] basesoc_grant = 2'd0;
|
||
|
reg [2:0] basesoc_slave_sel = 3'd0;
|
||
|
reg [2:0] basesoc_slave_sel_r = 3'd0;
|
||
|
reg basesoc_error = 1'd0;
|
||
|
wire basesoc_wait;
|
||
|
wire basesoc_done;
|
||
|
reg [19:0] basesoc_count = 20'd1000000;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface0_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface0_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface0_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface0_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank0_in_re = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank0_in_r;
|
||
|
reg basesoc_csr_bankarray_csrbank0_in_we = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank0_in_w;
|
||
|
wire basesoc_csr_bankarray_csrbank0_sel;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface1_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface1_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface1_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface1_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank1_reset0_re = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank1_reset0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank1_reset0_we = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank1_reset0_w;
|
||
|
reg basesoc_csr_bankarray_csrbank1_scratch0_re = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank1_scratch0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank1_scratch0_we = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank1_scratch0_w;
|
||
|
reg basesoc_csr_bankarray_csrbank1_bus_errors_re = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank1_bus_errors_r;
|
||
|
reg basesoc_csr_bankarray_csrbank1_bus_errors_we = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank1_bus_errors_w;
|
||
|
wire basesoc_csr_bankarray_csrbank1_sel;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface2_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface2_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface2_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface2_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank2_id1_re = 1'd0;
|
||
|
wire [24:0] basesoc_csr_bankarray_csrbank2_id1_r;
|
||
|
reg basesoc_csr_bankarray_csrbank2_id1_we = 1'd0;
|
||
|
wire [24:0] basesoc_csr_bankarray_csrbank2_id1_w;
|
||
|
reg basesoc_csr_bankarray_csrbank2_id0_re = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank2_id0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank2_id0_we = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank2_id0_w;
|
||
|
wire basesoc_csr_bankarray_csrbank2_sel;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface3_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface3_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface3_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface3_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank3_out0_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank3_out0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank3_out0_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank3_out0_w;
|
||
|
wire basesoc_csr_bankarray_csrbank3_sel;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface4_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface4_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface4_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface4_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank4_w0_re = 1'd0;
|
||
|
wire [2:0] basesoc_csr_bankarray_csrbank4_w0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank4_w0_we = 1'd0;
|
||
|
wire [2:0] basesoc_csr_bankarray_csrbank4_w0_w;
|
||
|
reg basesoc_csr_bankarray_csrbank4_r_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank4_r_r;
|
||
|
reg basesoc_csr_bankarray_csrbank4_r_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank4_r_w;
|
||
|
wire basesoc_csr_bankarray_csrbank4_sel;
|
||
|
wire [13:0] basesoc_csr_bankarray_sram_bus_adr;
|
||
|
wire basesoc_csr_bankarray_sram_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_sram_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_sram_bus_dat_r = 32'd0;
|
||
|
wire [4:0] basesoc_csr_bankarray_adr;
|
||
|
wire [7:0] basesoc_csr_bankarray_dat_r;
|
||
|
wire basesoc_csr_bankarray_sel;
|
||
|
reg basesoc_csr_bankarray_sel_r = 1'd0;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface5_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface5_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface5_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface5_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank5_out0_re = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank5_out0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank5_out0_we = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank5_out0_w;
|
||
|
wire basesoc_csr_bankarray_csrbank5_sel;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface6_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface6_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface6_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank6_load0_re = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank6_load0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank6_load0_we = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank6_load0_w;
|
||
|
reg basesoc_csr_bankarray_csrbank6_reload0_re = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank6_reload0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank6_reload0_we = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank6_reload0_w;
|
||
|
reg basesoc_csr_bankarray_csrbank6_en0_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_en0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank6_en0_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_en0_w;
|
||
|
reg basesoc_csr_bankarray_csrbank6_update_value0_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_update_value0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank6_update_value0_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_update_value0_w;
|
||
|
reg basesoc_csr_bankarray_csrbank6_value_re = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank6_value_r;
|
||
|
reg basesoc_csr_bankarray_csrbank6_value_we = 1'd0;
|
||
|
wire [31:0] basesoc_csr_bankarray_csrbank6_value_w;
|
||
|
reg basesoc_csr_bankarray_csrbank6_ev_status_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_ev_status_r;
|
||
|
reg basesoc_csr_bankarray_csrbank6_ev_status_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_ev_status_w;
|
||
|
reg basesoc_csr_bankarray_csrbank6_ev_pending_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_ev_pending_r;
|
||
|
reg basesoc_csr_bankarray_csrbank6_ev_pending_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_ev_pending_w;
|
||
|
reg basesoc_csr_bankarray_csrbank6_ev_enable0_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_ev_enable0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank6_ev_enable0_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank6_ev_enable0_w;
|
||
|
wire basesoc_csr_bankarray_csrbank6_sel;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface7_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface7_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface7_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank7_txfull_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank7_txfull_r;
|
||
|
reg basesoc_csr_bankarray_csrbank7_txfull_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank7_txfull_w;
|
||
|
reg basesoc_csr_bankarray_csrbank7_rxempty_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank7_rxempty_r;
|
||
|
reg basesoc_csr_bankarray_csrbank7_rxempty_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank7_rxempty_w;
|
||
|
reg basesoc_csr_bankarray_csrbank7_ev_status_re = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank7_ev_status_r;
|
||
|
reg basesoc_csr_bankarray_csrbank7_ev_status_we = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank7_ev_status_w;
|
||
|
reg basesoc_csr_bankarray_csrbank7_ev_pending_re = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank7_ev_pending_r;
|
||
|
reg basesoc_csr_bankarray_csrbank7_ev_pending_we = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank7_ev_pending_w;
|
||
|
reg basesoc_csr_bankarray_csrbank7_ev_enable0_re = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank7_ev_enable0_r;
|
||
|
reg basesoc_csr_bankarray_csrbank7_ev_enable0_we = 1'd0;
|
||
|
wire [1:0] basesoc_csr_bankarray_csrbank7_ev_enable0_w;
|
||
|
reg basesoc_csr_bankarray_csrbank7_txempty_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank7_txempty_r;
|
||
|
reg basesoc_csr_bankarray_csrbank7_txempty_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank7_txempty_w;
|
||
|
reg basesoc_csr_bankarray_csrbank7_rxfull_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank7_rxfull_r;
|
||
|
reg basesoc_csr_bankarray_csrbank7_rxfull_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank7_rxfull_w;
|
||
|
wire basesoc_csr_bankarray_csrbank7_sel;
|
||
|
wire [13:0] basesoc_csr_bankarray_interface8_bank_bus_adr;
|
||
|
wire basesoc_csr_bankarray_interface8_bank_bus_we;
|
||
|
wire [31:0] basesoc_csr_bankarray_interface8_bank_bus_dat_w;
|
||
|
reg [31:0] basesoc_csr_bankarray_interface8_bank_bus_dat_r = 32'd0;
|
||
|
reg basesoc_csr_bankarray_csrbank8_temperature_re = 1'd0;
|
||
|
wire [11:0] basesoc_csr_bankarray_csrbank8_temperature_r;
|
||
|
reg basesoc_csr_bankarray_csrbank8_temperature_we = 1'd0;
|
||
|
wire [11:0] basesoc_csr_bankarray_csrbank8_temperature_w;
|
||
|
reg basesoc_csr_bankarray_csrbank8_vccint_re = 1'd0;
|
||
|
wire [11:0] basesoc_csr_bankarray_csrbank8_vccint_r;
|
||
|
reg basesoc_csr_bankarray_csrbank8_vccint_we = 1'd0;
|
||
|
wire [11:0] basesoc_csr_bankarray_csrbank8_vccint_w;
|
||
|
reg basesoc_csr_bankarray_csrbank8_vccaux_re = 1'd0;
|
||
|
wire [11:0] basesoc_csr_bankarray_csrbank8_vccaux_r;
|
||
|
reg basesoc_csr_bankarray_csrbank8_vccaux_we = 1'd0;
|
||
|
wire [11:0] basesoc_csr_bankarray_csrbank8_vccaux_w;
|
||
|
reg basesoc_csr_bankarray_csrbank8_vccbram_re = 1'd0;
|
||
|
wire [11:0] basesoc_csr_bankarray_csrbank8_vccbram_r;
|
||
|
reg basesoc_csr_bankarray_csrbank8_vccbram_we = 1'd0;
|
||
|
wire [11:0] basesoc_csr_bankarray_csrbank8_vccbram_w;
|
||
|
reg basesoc_csr_bankarray_csrbank8_eoc_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank8_eoc_r;
|
||
|
reg basesoc_csr_bankarray_csrbank8_eoc_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank8_eoc_w;
|
||
|
reg basesoc_csr_bankarray_csrbank8_eos_re = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank8_eos_r;
|
||
|
reg basesoc_csr_bankarray_csrbank8_eos_we = 1'd0;
|
||
|
wire basesoc_csr_bankarray_csrbank8_eos_w;
|
||
|
wire basesoc_csr_bankarray_csrbank8_sel;
|
||
|
wire [13:0] basesoc_csr_interconnect_adr;
|
||
|
wire basesoc_csr_interconnect_we;
|
||
|
wire [31:0] basesoc_csr_interconnect_dat_w;
|
||
|
wire [31:0] basesoc_csr_interconnect_dat_r;
|
||
|
reg basesoc_state = 1'd0;
|
||
|
reg basesoc_next_state = 1'd0;
|
||
|
reg [29:0] array_muxed0 = 30'd0;
|
||
|
reg [31:0] array_muxed1 = 32'd0;
|
||
|
reg [3:0] array_muxed2 = 4'd0;
|
||
|
reg array_muxed3 = 1'd0;
|
||
|
reg array_muxed4 = 1'd0;
|
||
|
reg array_muxed5 = 1'd0;
|
||
|
reg [2:0] array_muxed6 = 3'd0;
|
||
|
reg [1:0] array_muxed7 = 2'd0;
|
||
|
(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg xilinxmultiregimpl0_regs0 = 1'd0;
|
||
|
(* async_reg = "true", dont_touch = "true" *) reg xilinxmultiregimpl0_regs1 = 1'd0;
|
||
|
wire xilinxasyncresetsynchronizerimpl0;
|
||
|
wire xilinxasyncresetsynchronizerimpl0_rst_meta;
|
||
|
wire xilinxasyncresetsynchronizerimpl1;
|
||
|
wire xilinxasyncresetsynchronizerimpl1_rst_meta;
|
||
|
wire xilinxasyncresetsynchronizerimpl1_expr;
|
||
|
wire xilinxasyncresetsynchronizerimpl2;
|
||
|
wire xilinxasyncresetsynchronizerimpl2_rst_meta;
|
||
|
(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg [1:0] xilinxmultiregimpl1_regs0 = 2'd0;
|
||
|
(* async_reg = "true", dont_touch = "true" *) reg [1:0] xilinxmultiregimpl1_regs1 = 2'd0;
|
||
|
wire xilinxmultiregimpl1;
|
||
|
(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg xilinxmultiregimpl2_regs0 = 1'd0;
|
||
|
(* async_reg = "true", dont_touch = "true" *) reg xilinxmultiregimpl2_regs1 = 1'd0;
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Combinatorial Logic
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
assign basesoc_reset = (basesoc_soc_rst | basesoc_cpu_rst);
|
||
|
assign crg_rst = basesoc_soc_rst;
|
||
|
assign basesoc_bus_error = basesoc_error;
|
||
|
always @(*) begin
|
||
|
basesoc_interrupt <= 32'd0;
|
||
|
basesoc_interrupt[1] <= basesoc_timer_irq;
|
||
|
basesoc_interrupt[0] <= basesoc_uart_irq;
|
||
|
end
|
||
|
assign basesoc_bus_errors_status = basesoc_bus_errors;
|
||
|
always @(*) begin
|
||
|
subfragments_rs232phytx0_next_state <= 1'd0;
|
||
|
basesoc_tx_count_rs232phytx0_next_value0 <= 4'd0;
|
||
|
basesoc_tx_count_rs232phytx0_next_value_ce0 <= 1'd0;
|
||
|
basesoc_tx_sink_ready <= 1'd0;
|
||
|
basesoc_serial_tx_rs232phytx0_next_value1 <= 1'd0;
|
||
|
basesoc_serial_tx_rs232phytx0_next_value_ce1 <= 1'd0;
|
||
|
basesoc_tx_data_rs232phytx0_next_value2 <= 8'd0;
|
||
|
basesoc_tx_data_rs232phytx0_next_value_ce2 <= 1'd0;
|
||
|
basesoc_tx_enable <= 1'd0;
|
||
|
subfragments_rs232phytx0_next_state <= subfragments_rs232phytx0_state;
|
||
|
case (subfragments_rs232phytx0_state)
|
||
|
1'd1: begin
|
||
|
basesoc_tx_enable <= 1'd1;
|
||
|
if (basesoc_tx_tick) begin
|
||
|
basesoc_serial_tx_rs232phytx0_next_value1 <= basesoc_tx_data;
|
||
|
basesoc_serial_tx_rs232phytx0_next_value_ce1 <= 1'd1;
|
||
|
basesoc_tx_count_rs232phytx0_next_value0 <= (basesoc_tx_count + 1'd1);
|
||
|
basesoc_tx_count_rs232phytx0_next_value_ce0 <= 1'd1;
|
||
|
basesoc_tx_data_rs232phytx0_next_value2 <= {1'd1, basesoc_tx_data[7:1]};
|
||
|
basesoc_tx_data_rs232phytx0_next_value_ce2 <= 1'd1;
|
||
|
if ((basesoc_tx_count == 4'd9)) begin
|
||
|
basesoc_tx_sink_ready <= 1'd1;
|
||
|
subfragments_rs232phytx0_next_state <= 1'd0;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
default: begin
|
||
|
basesoc_tx_count_rs232phytx0_next_value0 <= 1'd0;
|
||
|
basesoc_tx_count_rs232phytx0_next_value_ce0 <= 1'd1;
|
||
|
basesoc_serial_tx_rs232phytx0_next_value1 <= 1'd1;
|
||
|
basesoc_serial_tx_rs232phytx0_next_value_ce1 <= 1'd1;
|
||
|
if (basesoc_tx_sink_valid) begin
|
||
|
basesoc_serial_tx_rs232phytx0_next_value1 <= 1'd0;
|
||
|
basesoc_serial_tx_rs232phytx0_next_value_ce1 <= 1'd1;
|
||
|
basesoc_tx_data_rs232phytx0_next_value2 <= basesoc_tx_sink_payload_data;
|
||
|
basesoc_tx_data_rs232phytx0_next_value_ce2 <= 1'd1;
|
||
|
subfragments_rs232phytx0_next_state <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
subfragments_rs232phyrx0_next_state <= 1'd0;
|
||
|
basesoc_rx_count_rs232phyrx0_next_value0 <= 4'd0;
|
||
|
basesoc_rx_count_rs232phyrx0_next_value_ce0 <= 1'd0;
|
||
|
basesoc_rx_source_valid <= 1'd0;
|
||
|
basesoc_rx_source_payload_data <= 8'd0;
|
||
|
basesoc_rx_data_rs232phyrx0_next_value1 <= 8'd0;
|
||
|
basesoc_rx_data_rs232phyrx0_next_value_ce1 <= 1'd0;
|
||
|
basesoc_rx_enable <= 1'd0;
|
||
|
subfragments_rs232phyrx0_next_state <= subfragments_rs232phyrx0_state;
|
||
|
case (subfragments_rs232phyrx0_state)
|
||
|
1'd1: begin
|
||
|
basesoc_rx_enable <= 1'd1;
|
||
|
if (basesoc_rx_tick) begin
|
||
|
basesoc_rx_count_rs232phyrx0_next_value0 <= (basesoc_rx_count + 1'd1);
|
||
|
basesoc_rx_count_rs232phyrx0_next_value_ce0 <= 1'd1;
|
||
|
basesoc_rx_data_rs232phyrx0_next_value1 <= {basesoc_rx_rx, basesoc_rx_data[7:1]};
|
||
|
basesoc_rx_data_rs232phyrx0_next_value_ce1 <= 1'd1;
|
||
|
if ((basesoc_rx_count == 4'd9)) begin
|
||
|
basesoc_rx_source_valid <= (basesoc_rx_rx == 1'd1);
|
||
|
basesoc_rx_source_payload_data <= basesoc_rx_data;
|
||
|
subfragments_rs232phyrx0_next_state <= 1'd0;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
default: begin
|
||
|
basesoc_rx_count_rs232phyrx0_next_value0 <= 1'd0;
|
||
|
basesoc_rx_count_rs232phyrx0_next_value_ce0 <= 1'd1;
|
||
|
if (((basesoc_rx_rx == 1'd0) & (basesoc_rx_rx_d == 1'd1))) begin
|
||
|
subfragments_rs232phyrx0_next_state <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
assign basesoc_uart_uart_sink_valid = basesoc_rx_source_valid;
|
||
|
assign basesoc_rx_source_ready = basesoc_uart_uart_sink_ready;
|
||
|
assign basesoc_uart_uart_sink_first = basesoc_rx_source_first;
|
||
|
assign basesoc_uart_uart_sink_last = basesoc_rx_source_last;
|
||
|
assign basesoc_uart_uart_sink_payload_data = basesoc_rx_source_payload_data;
|
||
|
assign basesoc_tx_sink_valid = basesoc_uart_uart_source_valid;
|
||
|
assign basesoc_uart_uart_source_ready = basesoc_tx_sink_ready;
|
||
|
assign basesoc_tx_sink_first = basesoc_uart_uart_source_first;
|
||
|
assign basesoc_tx_sink_last = basesoc_uart_uart_source_last;
|
||
|
assign basesoc_tx_sink_payload_data = basesoc_uart_uart_source_payload_data;
|
||
|
assign basesoc_uart_tx_fifo_sink_valid = basesoc_uart_rxtx_re;
|
||
|
assign basesoc_uart_tx_fifo_sink_payload_data = basesoc_uart_rxtx_r;
|
||
|
assign basesoc_uart_uart_source_valid = basesoc_uart_tx_fifo_source_valid;
|
||
|
assign basesoc_uart_tx_fifo_source_ready = basesoc_uart_uart_source_ready;
|
||
|
assign basesoc_uart_uart_source_first = basesoc_uart_tx_fifo_source_first;
|
||
|
assign basesoc_uart_uart_source_last = basesoc_uart_tx_fifo_source_last;
|
||
|
assign basesoc_uart_uart_source_payload_data = basesoc_uart_tx_fifo_source_payload_data;
|
||
|
assign basesoc_uart_txfull_status = (~basesoc_uart_tx_fifo_sink_ready);
|
||
|
assign basesoc_uart_txempty_status = (~basesoc_uart_tx_fifo_source_valid);
|
||
|
assign basesoc_uart_tx_trigger = basesoc_uart_tx_fifo_sink_ready;
|
||
|
assign basesoc_uart_rx_fifo_sink_valid = basesoc_uart_uart_sink_valid;
|
||
|
assign basesoc_uart_uart_sink_ready = basesoc_uart_rx_fifo_sink_ready;
|
||
|
assign basesoc_uart_rx_fifo_sink_first = basesoc_uart_uart_sink_first;
|
||
|
assign basesoc_uart_rx_fifo_sink_last = basesoc_uart_uart_sink_last;
|
||
|
assign basesoc_uart_rx_fifo_sink_payload_data = basesoc_uart_uart_sink_payload_data;
|
||
|
assign basesoc_uart_rxtx_w = basesoc_uart_rx_fifo_source_payload_data;
|
||
|
assign basesoc_uart_rx_fifo_source_ready = (basesoc_uart_rx_clear | (1'd0 & basesoc_uart_rxtx_we));
|
||
|
assign basesoc_uart_rxempty_status = (~basesoc_uart_rx_fifo_source_valid);
|
||
|
assign basesoc_uart_rxfull_status = (~basesoc_uart_rx_fifo_sink_ready);
|
||
|
assign basesoc_uart_rx_trigger = basesoc_uart_rx_fifo_source_valid;
|
||
|
assign basesoc_uart_tx0 = basesoc_uart_tx_status;
|
||
|
assign basesoc_uart_tx1 = basesoc_uart_tx_pending;
|
||
|
always @(*) begin
|
||
|
basesoc_uart_tx_clear <= 1'd0;
|
||
|
if ((basesoc_uart_pending_re & basesoc_uart_pending_r[0])) begin
|
||
|
basesoc_uart_tx_clear <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_uart_rx0 = basesoc_uart_rx_status;
|
||
|
assign basesoc_uart_rx1 = basesoc_uart_rx_pending;
|
||
|
always @(*) begin
|
||
|
basesoc_uart_rx_clear <= 1'd0;
|
||
|
if ((basesoc_uart_pending_re & basesoc_uart_pending_r[1])) begin
|
||
|
basesoc_uart_rx_clear <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_uart_irq = ((basesoc_uart_pending_status[0] & basesoc_uart_enable_storage[0]) | (basesoc_uart_pending_status[1] & basesoc_uart_enable_storage[1]));
|
||
|
assign basesoc_uart_tx_status = basesoc_uart_tx_trigger;
|
||
|
assign basesoc_uart_rx_status = basesoc_uart_rx_trigger;
|
||
|
assign basesoc_uart_tx_fifo_syncfifo_din = {basesoc_uart_tx_fifo_fifo_in_last, basesoc_uart_tx_fifo_fifo_in_first, basesoc_uart_tx_fifo_fifo_in_payload_data};
|
||
|
assign {basesoc_uart_tx_fifo_fifo_out_last, basesoc_uart_tx_fifo_fifo_out_first, basesoc_uart_tx_fifo_fifo_out_payload_data} = basesoc_uart_tx_fifo_syncfifo_dout;
|
||
|
assign basesoc_uart_tx_fifo_sink_ready = basesoc_uart_tx_fifo_syncfifo_writable;
|
||
|
assign basesoc_uart_tx_fifo_syncfifo_we = basesoc_uart_tx_fifo_sink_valid;
|
||
|
assign basesoc_uart_tx_fifo_fifo_in_first = basesoc_uart_tx_fifo_sink_first;
|
||
|
assign basesoc_uart_tx_fifo_fifo_in_last = basesoc_uart_tx_fifo_sink_last;
|
||
|
assign basesoc_uart_tx_fifo_fifo_in_payload_data = basesoc_uart_tx_fifo_sink_payload_data;
|
||
|
assign basesoc_uart_tx_fifo_source_valid = basesoc_uart_tx_fifo_readable;
|
||
|
assign basesoc_uart_tx_fifo_source_first = basesoc_uart_tx_fifo_fifo_out_first;
|
||
|
assign basesoc_uart_tx_fifo_source_last = basesoc_uart_tx_fifo_fifo_out_last;
|
||
|
assign basesoc_uart_tx_fifo_source_payload_data = basesoc_uart_tx_fifo_fifo_out_payload_data;
|
||
|
assign basesoc_uart_tx_fifo_re = basesoc_uart_tx_fifo_source_ready;
|
||
|
assign basesoc_uart_tx_fifo_syncfifo_re = (basesoc_uart_tx_fifo_syncfifo_readable & ((~basesoc_uart_tx_fifo_readable) | basesoc_uart_tx_fifo_re));
|
||
|
assign basesoc_uart_tx_fifo_level1 = (basesoc_uart_tx_fifo_level0 + basesoc_uart_tx_fifo_readable);
|
||
|
always @(*) begin
|
||
|
basesoc_uart_tx_fifo_wrport_adr <= 4'd0;
|
||
|
if (basesoc_uart_tx_fifo_replace) begin
|
||
|
basesoc_uart_tx_fifo_wrport_adr <= (basesoc_uart_tx_fifo_produce - 1'd1);
|
||
|
end else begin
|
||
|
basesoc_uart_tx_fifo_wrport_adr <= basesoc_uart_tx_fifo_produce;
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_uart_tx_fifo_wrport_dat_w = basesoc_uart_tx_fifo_syncfifo_din;
|
||
|
assign basesoc_uart_tx_fifo_wrport_we = (basesoc_uart_tx_fifo_syncfifo_we & (basesoc_uart_tx_fifo_syncfifo_writable | basesoc_uart_tx_fifo_replace));
|
||
|
assign basesoc_uart_tx_fifo_do_read = (basesoc_uart_tx_fifo_syncfifo_readable & basesoc_uart_tx_fifo_syncfifo_re);
|
||
|
assign basesoc_uart_tx_fifo_rdport_adr = basesoc_uart_tx_fifo_consume;
|
||
|
assign basesoc_uart_tx_fifo_syncfifo_dout = basesoc_uart_tx_fifo_rdport_dat_r;
|
||
|
assign basesoc_uart_tx_fifo_rdport_re = basesoc_uart_tx_fifo_do_read;
|
||
|
assign basesoc_uart_tx_fifo_syncfifo_writable = (basesoc_uart_tx_fifo_level0 != 5'd16);
|
||
|
assign basesoc_uart_tx_fifo_syncfifo_readable = (basesoc_uart_tx_fifo_level0 != 1'd0);
|
||
|
assign basesoc_uart_rx_fifo_syncfifo_din = {basesoc_uart_rx_fifo_fifo_in_last, basesoc_uart_rx_fifo_fifo_in_first, basesoc_uart_rx_fifo_fifo_in_payload_data};
|
||
|
assign {basesoc_uart_rx_fifo_fifo_out_last, basesoc_uart_rx_fifo_fifo_out_first, basesoc_uart_rx_fifo_fifo_out_payload_data} = basesoc_uart_rx_fifo_syncfifo_dout;
|
||
|
assign basesoc_uart_rx_fifo_sink_ready = basesoc_uart_rx_fifo_syncfifo_writable;
|
||
|
assign basesoc_uart_rx_fifo_syncfifo_we = basesoc_uart_rx_fifo_sink_valid;
|
||
|
assign basesoc_uart_rx_fifo_fifo_in_first = basesoc_uart_rx_fifo_sink_first;
|
||
|
assign basesoc_uart_rx_fifo_fifo_in_last = basesoc_uart_rx_fifo_sink_last;
|
||
|
assign basesoc_uart_rx_fifo_fifo_in_payload_data = basesoc_uart_rx_fifo_sink_payload_data;
|
||
|
assign basesoc_uart_rx_fifo_source_valid = basesoc_uart_rx_fifo_readable;
|
||
|
assign basesoc_uart_rx_fifo_source_first = basesoc_uart_rx_fifo_fifo_out_first;
|
||
|
assign basesoc_uart_rx_fifo_source_last = basesoc_uart_rx_fifo_fifo_out_last;
|
||
|
assign basesoc_uart_rx_fifo_source_payload_data = basesoc_uart_rx_fifo_fifo_out_payload_data;
|
||
|
assign basesoc_uart_rx_fifo_re = basesoc_uart_rx_fifo_source_ready;
|
||
|
assign basesoc_uart_rx_fifo_syncfifo_re = (basesoc_uart_rx_fifo_syncfifo_readable & ((~basesoc_uart_rx_fifo_readable) | basesoc_uart_rx_fifo_re));
|
||
|
assign basesoc_uart_rx_fifo_level1 = (basesoc_uart_rx_fifo_level0 + basesoc_uart_rx_fifo_readable);
|
||
|
always @(*) begin
|
||
|
basesoc_uart_rx_fifo_wrport_adr <= 4'd0;
|
||
|
if (basesoc_uart_rx_fifo_replace) begin
|
||
|
basesoc_uart_rx_fifo_wrport_adr <= (basesoc_uart_rx_fifo_produce - 1'd1);
|
||
|
end else begin
|
||
|
basesoc_uart_rx_fifo_wrport_adr <= basesoc_uart_rx_fifo_produce;
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_uart_rx_fifo_wrport_dat_w = basesoc_uart_rx_fifo_syncfifo_din;
|
||
|
assign basesoc_uart_rx_fifo_wrport_we = (basesoc_uart_rx_fifo_syncfifo_we & (basesoc_uart_rx_fifo_syncfifo_writable | basesoc_uart_rx_fifo_replace));
|
||
|
assign basesoc_uart_rx_fifo_do_read = (basesoc_uart_rx_fifo_syncfifo_readable & basesoc_uart_rx_fifo_syncfifo_re);
|
||
|
assign basesoc_uart_rx_fifo_rdport_adr = basesoc_uart_rx_fifo_consume;
|
||
|
assign basesoc_uart_rx_fifo_syncfifo_dout = basesoc_uart_rx_fifo_rdport_dat_r;
|
||
|
assign basesoc_uart_rx_fifo_rdport_re = basesoc_uart_rx_fifo_do_read;
|
||
|
assign basesoc_uart_rx_fifo_syncfifo_writable = (basesoc_uart_rx_fifo_level0 != 5'd16);
|
||
|
assign basesoc_uart_rx_fifo_syncfifo_readable = (basesoc_uart_rx_fifo_level0 != 1'd0);
|
||
|
assign basesoc_timer_zero_trigger = (basesoc_timer_value == 1'd0);
|
||
|
assign basesoc_timer_zero0 = basesoc_timer_zero_status;
|
||
|
assign basesoc_timer_zero1 = basesoc_timer_zero_pending;
|
||
|
always @(*) begin
|
||
|
basesoc_timer_zero_clear <= 1'd0;
|
||
|
if ((basesoc_timer_pending_re & basesoc_timer_pending_r)) begin
|
||
|
basesoc_timer_zero_clear <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_timer_irq = (basesoc_timer_pending_status & basesoc_timer_enable_storage);
|
||
|
assign basesoc_timer_zero_status = basesoc_timer_zero_trigger;
|
||
|
assign crg_reset = crg_rst;
|
||
|
assign crg_clkin = clk12;
|
||
|
assign sys_clk = crg_clkout_buf0;
|
||
|
assign sys2x_clk = crg_clkout_buf1;
|
||
|
assign idelay_clk = crg_clkout_buf2;
|
||
|
assign directory0_w = csrstorage0_storage;
|
||
|
assign csr_08000_w = csrstorage1_storage;
|
||
|
assign basesoc_adr = basesoc_ram_bus_adr[13:0];
|
||
|
assign basesoc_ram_bus_dat_r = basesoc_dat_r;
|
||
|
assign dna_clk = dna_count[0];
|
||
|
always @(*) begin
|
||
|
xadc_den <= 1'd0;
|
||
|
xadc_dadr <= 7'd0;
|
||
|
if ((~xadc_drp_en)) begin
|
||
|
xadc_den <= xadc_eoc;
|
||
|
xadc_dadr <= xadc_channel;
|
||
|
end
|
||
|
end
|
||
|
assign leds_wait = (~leds_done);
|
||
|
always @(*) begin
|
||
|
user_led1 <= 1'd0;
|
||
|
user_led0 <= 1'd0;
|
||
|
if ((leds_mode == 1'd1)) begin
|
||
|
{user_led1, user_led0} <= leds_storage;
|
||
|
end else begin
|
||
|
{user_led1, user_led0} <= leds_chaser;
|
||
|
end
|
||
|
end
|
||
|
assign leds_done = (leds_count == 1'd0);
|
||
|
always @(*) begin
|
||
|
subfragments_rs232phytx1_next_state <= 1'd0;
|
||
|
uart_1_phy_tx_count_rs232phytx1_next_value0 <= 4'd0;
|
||
|
uart_1_phy_tx_count_rs232phytx1_next_value_ce0 <= 1'd0;
|
||
|
uart_1_phy_tx_enable <= 1'd0;
|
||
|
tx_obj_rs232phytx1_next_value1 <= 1'd0;
|
||
|
tx_obj_rs232phytx1_next_value_ce1 <= 1'd0;
|
||
|
uart_1_phy_tx_data_rs232phytx1_next_value2 <= 8'd0;
|
||
|
uart_1_phy_tx_data_rs232phytx1_next_value_ce2 <= 1'd0;
|
||
|
uart_1_phy_tx_sink_ready <= 1'd0;
|
||
|
subfragments_rs232phytx1_next_state <= subfragments_rs232phytx1_state;
|
||
|
case (subfragments_rs232phytx1_state)
|
||
|
1'd1: begin
|
||
|
uart_1_phy_tx_enable <= 1'd1;
|
||
|
if (uart_1_phy_tx_tick) begin
|
||
|
tx_obj_rs232phytx1_next_value1 <= uart_1_phy_tx_data;
|
||
|
tx_obj_rs232phytx1_next_value_ce1 <= 1'd1;
|
||
|
uart_1_phy_tx_count_rs232phytx1_next_value0 <= (uart_1_phy_tx_count + 1'd1);
|
||
|
uart_1_phy_tx_count_rs232phytx1_next_value_ce0 <= 1'd1;
|
||
|
uart_1_phy_tx_data_rs232phytx1_next_value2 <= {1'd1, uart_1_phy_tx_data[7:1]};
|
||
|
uart_1_phy_tx_data_rs232phytx1_next_value_ce2 <= 1'd1;
|
||
|
if ((uart_1_phy_tx_count == 4'd9)) begin
|
||
|
uart_1_phy_tx_sink_ready <= 1'd1;
|
||
|
subfragments_rs232phytx1_next_state <= 1'd0;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
default: begin
|
||
|
uart_1_phy_tx_count_rs232phytx1_next_value0 <= 1'd0;
|
||
|
uart_1_phy_tx_count_rs232phytx1_next_value_ce0 <= 1'd1;
|
||
|
tx_obj_rs232phytx1_next_value1 <= 1'd1;
|
||
|
tx_obj_rs232phytx1_next_value_ce1 <= 1'd1;
|
||
|
if (uart_1_phy_tx_sink_valid) begin
|
||
|
tx_obj_rs232phytx1_next_value1 <= 1'd0;
|
||
|
tx_obj_rs232phytx1_next_value_ce1 <= 1'd1;
|
||
|
uart_1_phy_tx_data_rs232phytx1_next_value2 <= uart_1_phy_tx_sink_payload_data;
|
||
|
uart_1_phy_tx_data_rs232phytx1_next_value_ce2 <= 1'd1;
|
||
|
subfragments_rs232phytx1_next_state <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
uart_1_phy_rx_source_payload_data <= 8'd0;
|
||
|
subfragments_rs232phyrx1_next_state <= 1'd0;
|
||
|
uart_1_phy_rx_count_rs232phyrx1_next_value0 <= 4'd0;
|
||
|
uart_1_phy_rx_count_rs232phyrx1_next_value_ce0 <= 1'd0;
|
||
|
uart_1_phy_rx_enable <= 1'd0;
|
||
|
uart_1_phy_rx_data_rs232phyrx1_next_value1 <= 8'd0;
|
||
|
uart_1_phy_rx_data_rs232phyrx1_next_value_ce1 <= 1'd0;
|
||
|
uart_1_phy_rx_source_valid <= 1'd0;
|
||
|
subfragments_rs232phyrx1_next_state <= subfragments_rs232phyrx1_state;
|
||
|
case (subfragments_rs232phyrx1_state)
|
||
|
1'd1: begin
|
||
|
uart_1_phy_rx_enable <= 1'd1;
|
||
|
if (uart_1_phy_rx_tick) begin
|
||
|
uart_1_phy_rx_count_rs232phyrx1_next_value0 <= (uart_1_phy_rx_count + 1'd1);
|
||
|
uart_1_phy_rx_count_rs232phyrx1_next_value_ce0 <= 1'd1;
|
||
|
uart_1_phy_rx_data_rs232phyrx1_next_value1 <= {uart_1_phy_rx_rx, uart_1_phy_rx_data[7:1]};
|
||
|
uart_1_phy_rx_data_rs232phyrx1_next_value_ce1 <= 1'd1;
|
||
|
if ((uart_1_phy_rx_count == 4'd9)) begin
|
||
|
uart_1_phy_rx_source_valid <= (uart_1_phy_rx_rx == 1'd1);
|
||
|
uart_1_phy_rx_source_payload_data <= uart_1_phy_rx_data;
|
||
|
subfragments_rs232phyrx1_next_state <= 1'd0;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
default: begin
|
||
|
uart_1_phy_rx_count_rs232phyrx1_next_value0 <= 1'd0;
|
||
|
uart_1_phy_rx_count_rs232phyrx1_next_value_ce0 <= 1'd1;
|
||
|
if (((uart_1_phy_rx_rx == 1'd0) & (uart_1_phy_rx_rx_d == 1'd1))) begin
|
||
|
subfragments_rs232phyrx1_next_state <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
assign uart_1_wait = (~uart_1_is_ongoing);
|
||
|
assign uart_1_reset = uart_1_done;
|
||
|
assign uart_1_wishbone_adr = uart_1_address;
|
||
|
assign uart_1_wishbone_dat_w = uart_1_data;
|
||
|
assign uart_1_wishbone_sel = 4'd15;
|
||
|
always @(*) begin
|
||
|
uart_1_phy_tx_sink_payload_data <= 8'd0;
|
||
|
case (uart_1_bytes_count)
|
||
|
1'd0: begin
|
||
|
uart_1_phy_tx_sink_payload_data <= uart_1_data[31:24];
|
||
|
end
|
||
|
1'd1: begin
|
||
|
uart_1_phy_tx_sink_payload_data <= uart_1_data[31:16];
|
||
|
end
|
||
|
2'd2: begin
|
||
|
uart_1_phy_tx_sink_payload_data <= uart_1_data[31:8];
|
||
|
end
|
||
|
2'd3: begin
|
||
|
uart_1_phy_tx_sink_payload_data <= uart_1_data[31:0];
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
assign uart_1_phy_tx_sink_last = ((uart_1_bytes_count == 2'd3) & (uart_1_words_count == (uart_1_length - 1'd1)));
|
||
|
always @(*) begin
|
||
|
subfragments_next_state <= 3'd0;
|
||
|
uart_1_bytes_count_next_value0 <= 2'd0;
|
||
|
uart_1_bytes_count_next_value_ce0 <= 1'd0;
|
||
|
uart_1_words_count_next_value1 <= 8'd0;
|
||
|
uart_1_words_count_next_value_ce1 <= 1'd0;
|
||
|
uart_1_cmd_next_value2 <= 8'd0;
|
||
|
uart_1_cmd_next_value_ce2 <= 1'd0;
|
||
|
uart_1_length_next_value3 <= 8'd0;
|
||
|
uart_1_length_next_value_ce3 <= 1'd0;
|
||
|
uart_1_phy_tx_sink_valid <= 1'd0;
|
||
|
uart_1_address_next_value4 <= 32'd0;
|
||
|
uart_1_address_next_value_ce4 <= 1'd0;
|
||
|
uart_1_is_ongoing <= 1'd0;
|
||
|
uart_1_incr_next_value5 <= 1'd0;
|
||
|
uart_1_incr_next_value_ce5 <= 1'd0;
|
||
|
uart_1_wishbone_cyc <= 1'd0;
|
||
|
uart_1_data_next_value6 <= 32'd0;
|
||
|
uart_1_wishbone_stb <= 1'd0;
|
||
|
uart_1_data_next_value_ce6 <= 1'd0;
|
||
|
uart_1_wishbone_we <= 1'd0;
|
||
|
uart_1_phy_rx_source_ready <= 1'd0;
|
||
|
subfragments_next_state <= subfragments_state;
|
||
|
case (subfragments_state)
|
||
|
1'd1: begin
|
||
|
uart_1_phy_rx_source_ready <= 1'd1;
|
||
|
if (uart_1_phy_rx_source_valid) begin
|
||
|
uart_1_length_next_value3 <= uart_1_phy_rx_source_payload_data;
|
||
|
uart_1_length_next_value_ce3 <= 1'd1;
|
||
|
subfragments_next_state <= 2'd2;
|
||
|
end
|
||
|
end
|
||
|
2'd2: begin
|
||
|
uart_1_phy_rx_source_ready <= 1'd1;
|
||
|
if (uart_1_phy_rx_source_valid) begin
|
||
|
uart_1_address_next_value4 <= {uart_1_address, uart_1_phy_rx_source_payload_data};
|
||
|
uart_1_address_next_value_ce4 <= 1'd1;
|
||
|
uart_1_bytes_count_next_value0 <= (uart_1_bytes_count + 1'd1);
|
||
|
uart_1_bytes_count_next_value_ce0 <= 1'd1;
|
||
|
if ((uart_1_bytes_count == 2'd3)) begin
|
||
|
if (((uart_1_cmd == 1'd1) | (uart_1_cmd == 2'd3))) begin
|
||
|
uart_1_incr_next_value5 <= (uart_1_cmd == 1'd1);
|
||
|
uart_1_incr_next_value_ce5 <= 1'd1;
|
||
|
subfragments_next_state <= 2'd3;
|
||
|
end else begin
|
||
|
if (((uart_1_cmd == 2'd2) | (uart_1_cmd == 3'd4))) begin
|
||
|
uart_1_incr_next_value5 <= (uart_1_cmd == 2'd2);
|
||
|
uart_1_incr_next_value_ce5 <= 1'd1;
|
||
|
subfragments_next_state <= 3'd5;
|
||
|
end else begin
|
||
|
subfragments_next_state <= 1'd0;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
2'd3: begin
|
||
|
uart_1_phy_rx_source_ready <= 1'd1;
|
||
|
if (uart_1_phy_rx_source_valid) begin
|
||
|
uart_1_data_next_value6 <= {uart_1_data, uart_1_phy_rx_source_payload_data};
|
||
|
uart_1_data_next_value_ce6 <= 1'd1;
|
||
|
uart_1_bytes_count_next_value0 <= (uart_1_bytes_count + 1'd1);
|
||
|
uart_1_bytes_count_next_value_ce0 <= 1'd1;
|
||
|
if ((uart_1_bytes_count == 2'd3)) begin
|
||
|
subfragments_next_state <= 3'd4;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
3'd4: begin
|
||
|
uart_1_phy_rx_source_ready <= 1'd0;
|
||
|
uart_1_wishbone_stb <= 1'd1;
|
||
|
uart_1_wishbone_we <= 1'd1;
|
||
|
uart_1_wishbone_cyc <= 1'd1;
|
||
|
if (uart_1_wishbone_ack) begin
|
||
|
uart_1_words_count_next_value1 <= (uart_1_words_count + 1'd1);
|
||
|
uart_1_words_count_next_value_ce1 <= 1'd1;
|
||
|
uart_1_address_next_value4 <= (uart_1_address + uart_1_incr);
|
||
|
uart_1_address_next_value_ce4 <= 1'd1;
|
||
|
if ((uart_1_words_count == (uart_1_length - 1'd1))) begin
|
||
|
subfragments_next_state <= 1'd0;
|
||
|
end else begin
|
||
|
subfragments_next_state <= 2'd3;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
3'd5: begin
|
||
|
uart_1_phy_rx_source_ready <= 1'd0;
|
||
|
uart_1_wishbone_stb <= 1'd1;
|
||
|
uart_1_wishbone_we <= 1'd0;
|
||
|
uart_1_wishbone_cyc <= 1'd1;
|
||
|
if (uart_1_wishbone_ack) begin
|
||
|
uart_1_data_next_value6 <= uart_1_wishbone_dat_r;
|
||
|
uart_1_data_next_value_ce6 <= 1'd1;
|
||
|
subfragments_next_state <= 3'd6;
|
||
|
end
|
||
|
end
|
||
|
3'd6: begin
|
||
|
uart_1_phy_rx_source_ready <= 1'd0;
|
||
|
uart_1_phy_tx_sink_valid <= 1'd1;
|
||
|
if (uart_1_phy_tx_sink_ready) begin
|
||
|
uart_1_bytes_count_next_value0 <= (uart_1_bytes_count + 1'd1);
|
||
|
uart_1_bytes_count_next_value_ce0 <= 1'd1;
|
||
|
if ((uart_1_bytes_count == 2'd3)) begin
|
||
|
uart_1_words_count_next_value1 <= (uart_1_words_count + 1'd1);
|
||
|
uart_1_words_count_next_value_ce1 <= 1'd1;
|
||
|
uart_1_address_next_value4 <= (uart_1_address + uart_1_incr);
|
||
|
uart_1_address_next_value_ce4 <= 1'd1;
|
||
|
if ((uart_1_words_count == (uart_1_length - 1'd1))) begin
|
||
|
subfragments_next_state <= 1'd0;
|
||
|
end else begin
|
||
|
subfragments_next_state <= 3'd5;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
default: begin
|
||
|
uart_1_is_ongoing <= 1'd1;
|
||
|
uart_1_phy_rx_source_ready <= 1'd1;
|
||
|
uart_1_bytes_count_next_value0 <= 1'd0;
|
||
|
uart_1_bytes_count_next_value_ce0 <= 1'd1;
|
||
|
uart_1_words_count_next_value1 <= 1'd0;
|
||
|
uart_1_words_count_next_value_ce1 <= 1'd1;
|
||
|
if (uart_1_phy_rx_source_valid) begin
|
||
|
uart_1_cmd_next_value2 <= uart_1_phy_rx_source_payload_data;
|
||
|
uart_1_cmd_next_value_ce2 <= 1'd1;
|
||
|
subfragments_next_state <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
assign uart_1_done = (uart_1_count == 1'd0);
|
||
|
assign digital43 = dshot_0_storage;
|
||
|
always @(*) begin
|
||
|
basesoc_basesoc_wishbone_dat_r <= 32'd0;
|
||
|
basesoc_basesoc_adr <= 14'd0;
|
||
|
basesoc_basesoc_we <= 1'd0;
|
||
|
basesoc_basesoc_dat_w <= 32'd0;
|
||
|
basesoc_basesoc_wishbone_ack <= 1'd0;
|
||
|
basesoc_next_state <= 1'd0;
|
||
|
basesoc_next_state <= basesoc_state;
|
||
|
case (basesoc_state)
|
||
|
1'd1: begin
|
||
|
basesoc_basesoc_wishbone_ack <= 1'd1;
|
||
|
basesoc_basesoc_wishbone_dat_r <= basesoc_basesoc_dat_r;
|
||
|
basesoc_next_state <= 1'd0;
|
||
|
end
|
||
|
default: begin
|
||
|
basesoc_basesoc_dat_w <= basesoc_basesoc_wishbone_dat_w;
|
||
|
if ((basesoc_basesoc_wishbone_cyc & basesoc_basesoc_wishbone_stb)) begin
|
||
|
basesoc_basesoc_adr <= basesoc_basesoc_wishbone_adr;
|
||
|
basesoc_basesoc_we <= (basesoc_basesoc_wishbone_we & (basesoc_basesoc_wishbone_sel != 1'd0));
|
||
|
basesoc_next_state <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
assign basesoc_shared_adr = array_muxed0;
|
||
|
assign basesoc_shared_dat_w = array_muxed1;
|
||
|
assign basesoc_shared_sel = array_muxed2;
|
||
|
assign basesoc_shared_cyc = array_muxed3;
|
||
|
assign basesoc_shared_stb = array_muxed4;
|
||
|
assign basesoc_shared_we = array_muxed5;
|
||
|
assign basesoc_shared_cti = array_muxed6;
|
||
|
assign basesoc_shared_bte = array_muxed7;
|
||
|
assign basesoc_ibus_dat_r = basesoc_shared_dat_r;
|
||
|
assign basesoc_dbus_dat_r = basesoc_shared_dat_r;
|
||
|
assign uart_1_wishbone_dat_r = basesoc_shared_dat_r;
|
||
|
assign basesoc_ibus_ack = (basesoc_shared_ack & (basesoc_grant == 1'd0));
|
||
|
assign basesoc_dbus_ack = (basesoc_shared_ack & (basesoc_grant == 1'd1));
|
||
|
assign uart_1_wishbone_ack = (basesoc_shared_ack & (basesoc_grant == 2'd2));
|
||
|
assign basesoc_ibus_err = (basesoc_shared_err & (basesoc_grant == 1'd0));
|
||
|
assign basesoc_dbus_err = (basesoc_shared_err & (basesoc_grant == 1'd1));
|
||
|
assign uart_1_wishbone_err = (basesoc_shared_err & (basesoc_grant == 2'd2));
|
||
|
assign basesoc_request = {uart_1_wishbone_cyc, basesoc_dbus_cyc, basesoc_ibus_cyc};
|
||
|
always @(*) begin
|
||
|
basesoc_slave_sel <= 3'd0;
|
||
|
basesoc_slave_sel[0] <= (basesoc_shared_adr[29:14] == 1'd0);
|
||
|
basesoc_slave_sel[1] <= (basesoc_shared_adr[29:17] == 2'd2);
|
||
|
basesoc_slave_sel[2] <= (basesoc_shared_adr[29:14] == 16'd65520);
|
||
|
end
|
||
|
assign basesoc_ram_bus_adr = basesoc_shared_adr;
|
||
|
assign basesoc_ram_bus_dat_w = basesoc_shared_dat_w;
|
||
|
assign basesoc_ram_bus_sel = basesoc_shared_sel;
|
||
|
assign basesoc_ram_bus_stb = basesoc_shared_stb;
|
||
|
assign basesoc_ram_bus_we = basesoc_shared_we;
|
||
|
assign basesoc_ram_bus_cti = basesoc_shared_cti;
|
||
|
assign basesoc_ram_bus_bte = basesoc_shared_bte;
|
||
|
assign sram_bus_adr = basesoc_shared_adr;
|
||
|
assign sram_bus_dat_w = basesoc_shared_dat_w;
|
||
|
assign sram_bus_sel = basesoc_shared_sel;
|
||
|
assign sram_bus_stb = basesoc_shared_stb;
|
||
|
assign sram_bus_we = basesoc_shared_we;
|
||
|
assign sram_bus_cti = basesoc_shared_cti;
|
||
|
assign sram_bus_bte = basesoc_shared_bte;
|
||
|
assign basesoc_basesoc_wishbone_adr = basesoc_shared_adr;
|
||
|
assign basesoc_basesoc_wishbone_dat_w = basesoc_shared_dat_w;
|
||
|
assign basesoc_basesoc_wishbone_sel = basesoc_shared_sel;
|
||
|
assign basesoc_basesoc_wishbone_stb = basesoc_shared_stb;
|
||
|
assign basesoc_basesoc_wishbone_we = basesoc_shared_we;
|
||
|
assign basesoc_basesoc_wishbone_cti = basesoc_shared_cti;
|
||
|
assign basesoc_basesoc_wishbone_bte = basesoc_shared_bte;
|
||
|
assign basesoc_ram_bus_cyc = (basesoc_shared_cyc & basesoc_slave_sel[0]);
|
||
|
assign sram_bus_cyc = (basesoc_shared_cyc & basesoc_slave_sel[1]);
|
||
|
assign basesoc_basesoc_wishbone_cyc = (basesoc_shared_cyc & basesoc_slave_sel[2]);
|
||
|
assign basesoc_shared_err = ((basesoc_ram_bus_err | sram_bus_err) | basesoc_basesoc_wishbone_err);
|
||
|
assign basesoc_wait = ((basesoc_shared_stb & basesoc_shared_cyc) & (~basesoc_shared_ack));
|
||
|
always @(*) begin
|
||
|
basesoc_shared_ack <= 1'd0;
|
||
|
basesoc_shared_dat_r <= 32'd0;
|
||
|
basesoc_error <= 1'd0;
|
||
|
basesoc_shared_ack <= ((basesoc_ram_bus_ack | sram_bus_ack) | basesoc_basesoc_wishbone_ack);
|
||
|
basesoc_shared_dat_r <= ((({32{basesoc_slave_sel_r[0]}} & basesoc_ram_bus_dat_r) | ({32{basesoc_slave_sel_r[1]}} & sram_bus_dat_r)) | ({32{basesoc_slave_sel_r[2]}} & basesoc_basesoc_wishbone_dat_r));
|
||
|
if (basesoc_done) begin
|
||
|
basesoc_shared_dat_r <= 32'd4294967295;
|
||
|
basesoc_shared_ack <= 1'd1;
|
||
|
basesoc_error <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_done = (basesoc_count == 1'd0);
|
||
|
assign basesoc_csr_bankarray_csrbank0_sel = (basesoc_csr_bankarray_interface0_bank_bus_adr[13:9] == 3'd4);
|
||
|
assign basesoc_csr_bankarray_csrbank0_in_r = basesoc_csr_bankarray_interface0_bank_bus_dat_w[1:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank0_in_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank0_in_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank0_sel & (basesoc_csr_bankarray_interface0_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_csr_bankarray_csrbank0_in_re <= basesoc_csr_bankarray_interface0_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank0_in_we <= (~basesoc_csr_bankarray_interface0_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank0_in_w = buttons_status[1:0];
|
||
|
assign buttons_we = basesoc_csr_bankarray_csrbank0_in_we;
|
||
|
assign basesoc_csr_bankarray_csrbank1_sel = (basesoc_csr_bankarray_interface1_bank_bus_adr[13:9] == 3'd7);
|
||
|
assign basesoc_csr_bankarray_csrbank1_reset0_r = basesoc_csr_bankarray_interface1_bank_bus_dat_w[1:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank1_reset0_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank1_reset0_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank1_sel & (basesoc_csr_bankarray_interface1_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_csr_bankarray_csrbank1_reset0_re <= basesoc_csr_bankarray_interface1_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank1_reset0_we <= (~basesoc_csr_bankarray_interface1_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank1_scratch0_r = basesoc_csr_bankarray_interface1_bank_bus_dat_w[31:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank1_scratch0_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank1_scratch0_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank1_sel & (basesoc_csr_bankarray_interface1_bank_bus_adr[8:0] == 1'd1))) begin
|
||
|
basesoc_csr_bankarray_csrbank1_scratch0_re <= basesoc_csr_bankarray_interface1_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank1_scratch0_we <= (~basesoc_csr_bankarray_interface1_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank1_bus_errors_r = basesoc_csr_bankarray_interface1_bank_bus_dat_w[31:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank1_bus_errors_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank1_bus_errors_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank1_sel & (basesoc_csr_bankarray_interface1_bank_bus_adr[8:0] == 2'd2))) begin
|
||
|
basesoc_csr_bankarray_csrbank1_bus_errors_re <= basesoc_csr_bankarray_interface1_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank1_bus_errors_we <= (~basesoc_csr_bankarray_interface1_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
always @(*) begin
|
||
|
basesoc_soc_rst <= 1'd0;
|
||
|
if (basesoc_reset_re) begin
|
||
|
basesoc_soc_rst <= basesoc_reset_storage[0];
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_cpu_rst = basesoc_reset_storage[1];
|
||
|
assign basesoc_csr_bankarray_csrbank1_reset0_w = basesoc_reset_storage[1:0];
|
||
|
assign basesoc_csr_bankarray_csrbank1_scratch0_w = basesoc_scratch_storage[31:0];
|
||
|
assign basesoc_csr_bankarray_csrbank1_bus_errors_w = basesoc_bus_errors_status[31:0];
|
||
|
assign basesoc_bus_errors_we = basesoc_csr_bankarray_csrbank1_bus_errors_we;
|
||
|
assign basesoc_csr_bankarray_csrbank2_sel = (basesoc_csr_bankarray_interface2_bank_bus_adr[13:9] == 1'd1);
|
||
|
assign basesoc_csr_bankarray_csrbank2_id1_r = basesoc_csr_bankarray_interface2_bank_bus_dat_w[24:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank2_id1_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank2_id1_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank2_sel & (basesoc_csr_bankarray_interface2_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_csr_bankarray_csrbank2_id1_re <= basesoc_csr_bankarray_interface2_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank2_id1_we <= (~basesoc_csr_bankarray_interface2_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank2_id0_r = basesoc_csr_bankarray_interface2_bank_bus_dat_w[31:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank2_id0_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank2_id0_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank2_sel & (basesoc_csr_bankarray_interface2_bank_bus_adr[8:0] == 1'd1))) begin
|
||
|
basesoc_csr_bankarray_csrbank2_id0_re <= basesoc_csr_bankarray_interface2_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank2_id0_we <= (~basesoc_csr_bankarray_interface2_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank2_id1_w = dna_status[56:32];
|
||
|
assign basesoc_csr_bankarray_csrbank2_id0_w = dna_status[31:0];
|
||
|
assign dna_we = basesoc_csr_bankarray_csrbank2_id0_we;
|
||
|
assign basesoc_csr_bankarray_csrbank3_sel = (basesoc_csr_bankarray_interface3_bank_bus_adr[13:9] == 3'd6);
|
||
|
assign basesoc_csr_bankarray_csrbank3_out0_r = basesoc_csr_bankarray_interface3_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank3_out0_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank3_out0_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank3_sel & (basesoc_csr_bankarray_interface3_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_csr_bankarray_csrbank3_out0_re <= basesoc_csr_bankarray_interface3_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank3_out0_we <= (~basesoc_csr_bankarray_interface3_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank3_out0_w = dshot_0_storage;
|
||
|
assign basesoc_csr_bankarray_csrbank4_sel = (basesoc_csr_bankarray_interface4_bank_bus_adr[13:9] == 3'd5);
|
||
|
assign basesoc_csr_bankarray_csrbank4_w0_r = basesoc_csr_bankarray_interface4_bank_bus_dat_w[2:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank4_w0_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank4_w0_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank4_sel & (basesoc_csr_bankarray_interface4_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_csr_bankarray_csrbank4_w0_re <= basesoc_csr_bankarray_interface4_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank4_w0_we <= (~basesoc_csr_bankarray_interface4_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank4_r_r = basesoc_csr_bankarray_interface4_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank4_r_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank4_r_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank4_sel & (basesoc_csr_bankarray_interface4_bank_bus_adr[8:0] == 1'd1))) begin
|
||
|
basesoc_csr_bankarray_csrbank4_r_re <= basesoc_csr_bankarray_interface4_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank4_r_we <= (~basesoc_csr_bankarray_interface4_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign scl = _w_storage[0];
|
||
|
assign oe = _w_storage[1];
|
||
|
assign sda0 = _w_storage[2];
|
||
|
assign basesoc_csr_bankarray_csrbank4_w0_w = _w_storage[2:0];
|
||
|
assign _r_status = sda1;
|
||
|
assign basesoc_csr_bankarray_csrbank4_r_w = _r_status;
|
||
|
assign _r_we = basesoc_csr_bankarray_csrbank4_r_we;
|
||
|
assign basesoc_csr_bankarray_sel = (basesoc_csr_bankarray_sram_bus_adr[13:9] == 4'd8);
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_sram_bus_dat_r <= 32'd0;
|
||
|
if (basesoc_csr_bankarray_sel_r) begin
|
||
|
basesoc_csr_bankarray_sram_bus_dat_r <= basesoc_csr_bankarray_dat_r;
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_adr = basesoc_csr_bankarray_sram_bus_adr[4:0];
|
||
|
assign basesoc_csr_bankarray_csrbank5_sel = (basesoc_csr_bankarray_interface5_bank_bus_adr[13:9] == 2'd3);
|
||
|
assign basesoc_csr_bankarray_csrbank5_out0_r = basesoc_csr_bankarray_interface5_bank_bus_dat_w[1:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank5_out0_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank5_out0_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank5_sel & (basesoc_csr_bankarray_interface5_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_csr_bankarray_csrbank5_out0_re <= basesoc_csr_bankarray_interface5_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank5_out0_we <= (~basesoc_csr_bankarray_interface5_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank5_out0_w = leds_storage[1:0];
|
||
|
assign basesoc_csr_bankarray_csrbank6_sel = (basesoc_csr_bankarray_interface6_bank_bus_adr[13:9] == 4'd9);
|
||
|
assign basesoc_csr_bankarray_csrbank6_load0_r = basesoc_csr_bankarray_interface6_bank_bus_dat_w[31:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank6_load0_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank6_load0_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank6_sel & (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_csr_bankarray_csrbank6_load0_re <= basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank6_load0_we <= (~basesoc_csr_bankarray_interface6_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank6_reload0_r = basesoc_csr_bankarray_interface6_bank_bus_dat_w[31:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank6_reload0_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank6_reload0_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank6_sel & (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0] == 1'd1))) begin
|
||
|
basesoc_csr_bankarray_csrbank6_reload0_re <= basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank6_reload0_we <= (~basesoc_csr_bankarray_interface6_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank6_en0_r = basesoc_csr_bankarray_interface6_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank6_en0_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank6_en0_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank6_sel & (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0] == 2'd2))) begin
|
||
|
basesoc_csr_bankarray_csrbank6_en0_re <= basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank6_en0_we <= (~basesoc_csr_bankarray_interface6_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank6_update_value0_r = basesoc_csr_bankarray_interface6_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank6_update_value0_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank6_update_value0_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank6_sel & (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0] == 2'd3))) begin
|
||
|
basesoc_csr_bankarray_csrbank6_update_value0_re <= basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank6_update_value0_we <= (~basesoc_csr_bankarray_interface6_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank6_value_r = basesoc_csr_bankarray_interface6_bank_bus_dat_w[31:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank6_value_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank6_value_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank6_sel & (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0] == 3'd4))) begin
|
||
|
basesoc_csr_bankarray_csrbank6_value_re <= basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank6_value_we <= (~basesoc_csr_bankarray_interface6_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank6_ev_status_r = basesoc_csr_bankarray_interface6_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank6_ev_status_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank6_ev_status_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank6_sel & (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0] == 3'd5))) begin
|
||
|
basesoc_csr_bankarray_csrbank6_ev_status_re <= basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank6_ev_status_we <= (~basesoc_csr_bankarray_interface6_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank6_ev_pending_r = basesoc_csr_bankarray_interface6_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank6_ev_pending_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank6_ev_pending_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank6_sel & (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0] == 3'd6))) begin
|
||
|
basesoc_csr_bankarray_csrbank6_ev_pending_re <= basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank6_ev_pending_we <= (~basesoc_csr_bankarray_interface6_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank6_ev_enable0_r = basesoc_csr_bankarray_interface6_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank6_ev_enable0_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank6_ev_enable0_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank6_sel & (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0] == 3'd7))) begin
|
||
|
basesoc_csr_bankarray_csrbank6_ev_enable0_re <= basesoc_csr_bankarray_interface6_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank6_ev_enable0_we <= (~basesoc_csr_bankarray_interface6_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank6_load0_w = basesoc_timer_load_storage[31:0];
|
||
|
assign basesoc_csr_bankarray_csrbank6_reload0_w = basesoc_timer_reload_storage[31:0];
|
||
|
assign basesoc_csr_bankarray_csrbank6_en0_w = basesoc_timer_en_storage;
|
||
|
assign basesoc_csr_bankarray_csrbank6_update_value0_w = basesoc_timer_update_value_storage;
|
||
|
assign basesoc_csr_bankarray_csrbank6_value_w = basesoc_timer_value_status[31:0];
|
||
|
assign basesoc_timer_value_we = basesoc_csr_bankarray_csrbank6_value_we;
|
||
|
assign basesoc_timer_status_status = basesoc_timer_zero0;
|
||
|
assign basesoc_csr_bankarray_csrbank6_ev_status_w = basesoc_timer_status_status;
|
||
|
assign basesoc_timer_status_we = basesoc_csr_bankarray_csrbank6_ev_status_we;
|
||
|
assign basesoc_timer_pending_status = basesoc_timer_zero1;
|
||
|
assign basesoc_csr_bankarray_csrbank6_ev_pending_w = basesoc_timer_pending_status;
|
||
|
assign basesoc_timer_pending_we = basesoc_csr_bankarray_csrbank6_ev_pending_we;
|
||
|
assign basesoc_timer_zero2 = basesoc_timer_enable_storage;
|
||
|
assign basesoc_csr_bankarray_csrbank6_ev_enable0_w = basesoc_timer_enable_storage;
|
||
|
assign basesoc_csr_bankarray_csrbank7_sel = (basesoc_csr_bankarray_interface7_bank_bus_adr[13:9] == 4'd10);
|
||
|
assign basesoc_uart_rxtx_r = basesoc_csr_bankarray_interface7_bank_bus_dat_w[7:0];
|
||
|
always @(*) begin
|
||
|
basesoc_uart_rxtx_we <= 1'd0;
|
||
|
basesoc_uart_rxtx_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank7_sel & (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_uart_rxtx_re <= basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
basesoc_uart_rxtx_we <= (~basesoc_csr_bankarray_interface7_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_txfull_r = basesoc_csr_bankarray_interface7_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank7_txfull_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank7_txfull_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank7_sel & (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0] == 1'd1))) begin
|
||
|
basesoc_csr_bankarray_csrbank7_txfull_re <= basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank7_txfull_we <= (~basesoc_csr_bankarray_interface7_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_rxempty_r = basesoc_csr_bankarray_interface7_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank7_rxempty_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank7_rxempty_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank7_sel & (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0] == 2'd2))) begin
|
||
|
basesoc_csr_bankarray_csrbank7_rxempty_re <= basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank7_rxempty_we <= (~basesoc_csr_bankarray_interface7_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_ev_status_r = basesoc_csr_bankarray_interface7_bank_bus_dat_w[1:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank7_ev_status_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank7_ev_status_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank7_sel & (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0] == 2'd3))) begin
|
||
|
basesoc_csr_bankarray_csrbank7_ev_status_re <= basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank7_ev_status_we <= (~basesoc_csr_bankarray_interface7_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_ev_pending_r = basesoc_csr_bankarray_interface7_bank_bus_dat_w[1:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank7_ev_pending_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank7_ev_pending_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank7_sel & (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0] == 3'd4))) begin
|
||
|
basesoc_csr_bankarray_csrbank7_ev_pending_re <= basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank7_ev_pending_we <= (~basesoc_csr_bankarray_interface7_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_ev_enable0_r = basesoc_csr_bankarray_interface7_bank_bus_dat_w[1:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank7_ev_enable0_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank7_ev_enable0_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank7_sel & (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0] == 3'd5))) begin
|
||
|
basesoc_csr_bankarray_csrbank7_ev_enable0_re <= basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank7_ev_enable0_we <= (~basesoc_csr_bankarray_interface7_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_txempty_r = basesoc_csr_bankarray_interface7_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank7_txempty_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank7_txempty_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank7_sel & (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0] == 3'd6))) begin
|
||
|
basesoc_csr_bankarray_csrbank7_txempty_re <= basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank7_txempty_we <= (~basesoc_csr_bankarray_interface7_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_rxfull_r = basesoc_csr_bankarray_interface7_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank7_rxfull_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank7_rxfull_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank7_sel & (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0] == 3'd7))) begin
|
||
|
basesoc_csr_bankarray_csrbank7_rxfull_re <= basesoc_csr_bankarray_interface7_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank7_rxfull_we <= (~basesoc_csr_bankarray_interface7_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_txfull_w = basesoc_uart_txfull_status;
|
||
|
assign basesoc_uart_txfull_we = basesoc_csr_bankarray_csrbank7_txfull_we;
|
||
|
assign basesoc_csr_bankarray_csrbank7_rxempty_w = basesoc_uart_rxempty_status;
|
||
|
assign basesoc_uart_rxempty_we = basesoc_csr_bankarray_csrbank7_rxempty_we;
|
||
|
always @(*) begin
|
||
|
basesoc_uart_status_status <= 2'd0;
|
||
|
basesoc_uart_status_status[0] <= basesoc_uart_tx0;
|
||
|
basesoc_uart_status_status[1] <= basesoc_uart_rx0;
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_ev_status_w = basesoc_uart_status_status[1:0];
|
||
|
assign basesoc_uart_status_we = basesoc_csr_bankarray_csrbank7_ev_status_we;
|
||
|
always @(*) begin
|
||
|
basesoc_uart_pending_status <= 2'd0;
|
||
|
basesoc_uart_pending_status[0] <= basesoc_uart_tx1;
|
||
|
basesoc_uart_pending_status[1] <= basesoc_uart_rx1;
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank7_ev_pending_w = basesoc_uart_pending_status[1:0];
|
||
|
assign basesoc_uart_pending_we = basesoc_csr_bankarray_csrbank7_ev_pending_we;
|
||
|
assign basesoc_uart_tx2 = basesoc_uart_enable_storage[0];
|
||
|
assign basesoc_uart_rx2 = basesoc_uart_enable_storage[1];
|
||
|
assign basesoc_csr_bankarray_csrbank7_ev_enable0_w = basesoc_uart_enable_storage[1:0];
|
||
|
assign basesoc_csr_bankarray_csrbank7_txempty_w = basesoc_uart_txempty_status;
|
||
|
assign basesoc_uart_txempty_we = basesoc_csr_bankarray_csrbank7_txempty_we;
|
||
|
assign basesoc_csr_bankarray_csrbank7_rxfull_w = basesoc_uart_rxfull_status;
|
||
|
assign basesoc_uart_rxfull_we = basesoc_csr_bankarray_csrbank7_rxfull_we;
|
||
|
assign basesoc_csr_bankarray_csrbank8_sel = (basesoc_csr_bankarray_interface8_bank_bus_adr[13:9] == 2'd2);
|
||
|
assign basesoc_csr_bankarray_csrbank8_temperature_r = basesoc_csr_bankarray_interface8_bank_bus_dat_w[11:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank8_temperature_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank8_temperature_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank8_sel & (basesoc_csr_bankarray_interface8_bank_bus_adr[8:0] == 1'd0))) begin
|
||
|
basesoc_csr_bankarray_csrbank8_temperature_re <= basesoc_csr_bankarray_interface8_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank8_temperature_we <= (~basesoc_csr_bankarray_interface8_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank8_vccint_r = basesoc_csr_bankarray_interface8_bank_bus_dat_w[11:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank8_vccint_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank8_vccint_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank8_sel & (basesoc_csr_bankarray_interface8_bank_bus_adr[8:0] == 1'd1))) begin
|
||
|
basesoc_csr_bankarray_csrbank8_vccint_re <= basesoc_csr_bankarray_interface8_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank8_vccint_we <= (~basesoc_csr_bankarray_interface8_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank8_vccaux_r = basesoc_csr_bankarray_interface8_bank_bus_dat_w[11:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank8_vccaux_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank8_vccaux_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank8_sel & (basesoc_csr_bankarray_interface8_bank_bus_adr[8:0] == 2'd2))) begin
|
||
|
basesoc_csr_bankarray_csrbank8_vccaux_re <= basesoc_csr_bankarray_interface8_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank8_vccaux_we <= (~basesoc_csr_bankarray_interface8_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank8_vccbram_r = basesoc_csr_bankarray_interface8_bank_bus_dat_w[11:0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank8_vccbram_re <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank8_vccbram_we <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank8_sel & (basesoc_csr_bankarray_interface8_bank_bus_adr[8:0] == 2'd3))) begin
|
||
|
basesoc_csr_bankarray_csrbank8_vccbram_re <= basesoc_csr_bankarray_interface8_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank8_vccbram_we <= (~basesoc_csr_bankarray_interface8_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank8_eoc_r = basesoc_csr_bankarray_interface8_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank8_eoc_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank8_eoc_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank8_sel & (basesoc_csr_bankarray_interface8_bank_bus_adr[8:0] == 3'd4))) begin
|
||
|
basesoc_csr_bankarray_csrbank8_eoc_re <= basesoc_csr_bankarray_interface8_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank8_eoc_we <= (~basesoc_csr_bankarray_interface8_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank8_eos_r = basesoc_csr_bankarray_interface8_bank_bus_dat_w[0];
|
||
|
always @(*) begin
|
||
|
basesoc_csr_bankarray_csrbank8_eos_we <= 1'd0;
|
||
|
basesoc_csr_bankarray_csrbank8_eos_re <= 1'd0;
|
||
|
if ((basesoc_csr_bankarray_csrbank8_sel & (basesoc_csr_bankarray_interface8_bank_bus_adr[8:0] == 3'd5))) begin
|
||
|
basesoc_csr_bankarray_csrbank8_eos_re <= basesoc_csr_bankarray_interface8_bank_bus_we;
|
||
|
basesoc_csr_bankarray_csrbank8_eos_we <= (~basesoc_csr_bankarray_interface8_bank_bus_we);
|
||
|
end
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_csrbank8_temperature_w = xadc_temperature_status[11:0];
|
||
|
assign xadc_temperature_we = basesoc_csr_bankarray_csrbank8_temperature_we;
|
||
|
assign basesoc_csr_bankarray_csrbank8_vccint_w = xadc_vccint_status[11:0];
|
||
|
assign xadc_vccint_we = basesoc_csr_bankarray_csrbank8_vccint_we;
|
||
|
assign basesoc_csr_bankarray_csrbank8_vccaux_w = xadc_vccaux_status[11:0];
|
||
|
assign xadc_vccaux_we = basesoc_csr_bankarray_csrbank8_vccaux_we;
|
||
|
assign basesoc_csr_bankarray_csrbank8_vccbram_w = xadc_vccbram_status[11:0];
|
||
|
assign xadc_vccbram_we = basesoc_csr_bankarray_csrbank8_vccbram_we;
|
||
|
assign basesoc_csr_bankarray_csrbank8_eoc_w = xadc_eoc_status;
|
||
|
assign xadc_eoc_we = basesoc_csr_bankarray_csrbank8_eoc_we;
|
||
|
assign basesoc_csr_bankarray_csrbank8_eos_w = xadc_eos_status;
|
||
|
assign xadc_eos_we = basesoc_csr_bankarray_csrbank8_eos_we;
|
||
|
assign basesoc_csr_interconnect_adr = basesoc_basesoc_adr;
|
||
|
assign basesoc_csr_interconnect_we = basesoc_basesoc_we;
|
||
|
assign basesoc_csr_interconnect_dat_w = basesoc_basesoc_dat_w;
|
||
|
assign basesoc_basesoc_dat_r = basesoc_csr_interconnect_dat_r;
|
||
|
assign basesoc_csr_bankarray_interface0_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface1_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface2_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface3_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface4_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface5_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface6_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface7_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface8_bank_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_sram_bus_adr = basesoc_csr_interconnect_adr;
|
||
|
assign basesoc_csr_bankarray_interface0_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface1_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface2_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface3_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface4_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface5_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface6_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface7_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface8_bank_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_sram_bus_we = basesoc_csr_interconnect_we;
|
||
|
assign basesoc_csr_bankarray_interface0_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_interface1_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_interface2_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_interface3_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_interface4_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_interface5_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_interface6_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_interface7_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_interface8_bank_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_bankarray_sram_bus_dat_w = basesoc_csr_interconnect_dat_w;
|
||
|
assign basesoc_csr_interconnect_dat_r = (((((((((basesoc_csr_bankarray_interface0_bank_bus_dat_r | basesoc_csr_bankarray_interface1_bank_bus_dat_r) | basesoc_csr_bankarray_interface2_bank_bus_dat_r) | basesoc_csr_bankarray_interface3_bank_bus_dat_r) | basesoc_csr_bankarray_interface4_bank_bus_dat_r) | basesoc_csr_bankarray_interface5_bank_bus_dat_r) | basesoc_csr_bankarray_interface6_bank_bus_dat_r) | basesoc_csr_bankarray_interface7_bank_bus_dat_r) | basesoc_csr_bankarray_interface8_bank_bus_dat_r) | basesoc_csr_bankarray_sram_bus_dat_r);
|
||
|
always @(*) begin
|
||
|
array_muxed0 <= 30'd0;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
array_muxed0 <= basesoc_ibus_adr;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
array_muxed0 <= basesoc_dbus_adr;
|
||
|
end
|
||
|
default: begin
|
||
|
array_muxed0 <= uart_1_wishbone_adr;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
array_muxed1 <= 32'd0;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
array_muxed1 <= basesoc_ibus_dat_w;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
array_muxed1 <= basesoc_dbus_dat_w;
|
||
|
end
|
||
|
default: begin
|
||
|
array_muxed1 <= uart_1_wishbone_dat_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
array_muxed2 <= 4'd0;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
array_muxed2 <= basesoc_ibus_sel;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
array_muxed2 <= basesoc_dbus_sel;
|
||
|
end
|
||
|
default: begin
|
||
|
array_muxed2 <= uart_1_wishbone_sel;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
array_muxed3 <= 1'd0;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
array_muxed3 <= basesoc_ibus_cyc;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
array_muxed3 <= basesoc_dbus_cyc;
|
||
|
end
|
||
|
default: begin
|
||
|
array_muxed3 <= uart_1_wishbone_cyc;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
array_muxed4 <= 1'd0;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
array_muxed4 <= basesoc_ibus_stb;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
array_muxed4 <= basesoc_dbus_stb;
|
||
|
end
|
||
|
default: begin
|
||
|
array_muxed4 <= uart_1_wishbone_stb;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
array_muxed5 <= 1'd0;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
array_muxed5 <= basesoc_ibus_we;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
array_muxed5 <= basesoc_dbus_we;
|
||
|
end
|
||
|
default: begin
|
||
|
array_muxed5 <= uart_1_wishbone_we;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
array_muxed6 <= 3'd0;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
array_muxed6 <= basesoc_ibus_cti;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
array_muxed6 <= basesoc_dbus_cti;
|
||
|
end
|
||
|
default: begin
|
||
|
array_muxed6 <= uart_1_wishbone_cti;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
always @(*) begin
|
||
|
array_muxed7 <= 2'd0;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
array_muxed7 <= basesoc_ibus_bte;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
array_muxed7 <= basesoc_dbus_bte;
|
||
|
end
|
||
|
default: begin
|
||
|
array_muxed7 <= uart_1_wishbone_bte;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
assign basesoc_rx_rx = xilinxmultiregimpl0_regs1;
|
||
|
assign xilinxasyncresetsynchronizerimpl0 = (~crg_locked);
|
||
|
assign xilinxasyncresetsynchronizerimpl1 = (~crg_locked);
|
||
|
assign xilinxasyncresetsynchronizerimpl2 = (~crg_locked);
|
||
|
assign buttons_status = xilinxmultiregimpl1_regs1;
|
||
|
assign xilinxmultiregimpl1 = {user_btn1, user_btn0};
|
||
|
assign uart_1_phy_rx_rx = xilinxmultiregimpl2_regs1;
|
||
|
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Synchronous Logic
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
always @(posedge idelay_clk) begin
|
||
|
if ((crg_reset_counter != 1'd0)) begin
|
||
|
crg_reset_counter <= (crg_reset_counter - 1'd1);
|
||
|
end else begin
|
||
|
crg_ic_reset <= 1'd0;
|
||
|
end
|
||
|
if (idelay_rst) begin
|
||
|
crg_reset_counter <= 4'd15;
|
||
|
crg_ic_reset <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
|
||
|
always @(posedge sys_clk) begin
|
||
|
if ((basesoc_bus_errors != 32'd4294967295)) begin
|
||
|
if (basesoc_bus_error) begin
|
||
|
basesoc_bus_errors <= (basesoc_bus_errors + 1'd1);
|
||
|
end
|
||
|
end
|
||
|
{basesoc_tx_tick, basesoc_tx_phase} <= 23'd4947802;
|
||
|
if (basesoc_tx_enable) begin
|
||
|
{basesoc_tx_tick, basesoc_tx_phase} <= (basesoc_tx_phase + 23'd4947802);
|
||
|
end
|
||
|
subfragments_rs232phytx0_state <= subfragments_rs232phytx0_next_state;
|
||
|
if (basesoc_tx_count_rs232phytx0_next_value_ce0) begin
|
||
|
basesoc_tx_count <= basesoc_tx_count_rs232phytx0_next_value0;
|
||
|
end
|
||
|
if (basesoc_serial_tx_rs232phytx0_next_value_ce1) begin
|
||
|
serial_tx <= basesoc_serial_tx_rs232phytx0_next_value1;
|
||
|
end
|
||
|
if (basesoc_tx_data_rs232phytx0_next_value_ce2) begin
|
||
|
basesoc_tx_data <= basesoc_tx_data_rs232phytx0_next_value2;
|
||
|
end
|
||
|
basesoc_rx_rx_d <= basesoc_rx_rx;
|
||
|
{basesoc_rx_tick, basesoc_rx_phase} <= 32'd2147483648;
|
||
|
if (basesoc_rx_enable) begin
|
||
|
{basesoc_rx_tick, basesoc_rx_phase} <= (basesoc_rx_phase + 23'd4947802);
|
||
|
end
|
||
|
subfragments_rs232phyrx0_state <= subfragments_rs232phyrx0_next_state;
|
||
|
if (basesoc_rx_count_rs232phyrx0_next_value_ce0) begin
|
||
|
basesoc_rx_count <= basesoc_rx_count_rs232phyrx0_next_value0;
|
||
|
end
|
||
|
if (basesoc_rx_data_rs232phyrx0_next_value_ce1) begin
|
||
|
basesoc_rx_data <= basesoc_rx_data_rs232phyrx0_next_value1;
|
||
|
end
|
||
|
if (basesoc_uart_tx_clear) begin
|
||
|
basesoc_uart_tx_pending <= 1'd0;
|
||
|
end
|
||
|
basesoc_uart_tx_trigger_d <= basesoc_uart_tx_trigger;
|
||
|
if ((basesoc_uart_tx_trigger & (~basesoc_uart_tx_trigger_d))) begin
|
||
|
basesoc_uart_tx_pending <= 1'd1;
|
||
|
end
|
||
|
if (basesoc_uart_rx_clear) begin
|
||
|
basesoc_uart_rx_pending <= 1'd0;
|
||
|
end
|
||
|
basesoc_uart_rx_trigger_d <= basesoc_uart_rx_trigger;
|
||
|
if ((basesoc_uart_rx_trigger & (~basesoc_uart_rx_trigger_d))) begin
|
||
|
basesoc_uart_rx_pending <= 1'd1;
|
||
|
end
|
||
|
if (basesoc_uart_tx_fifo_syncfifo_re) begin
|
||
|
basesoc_uart_tx_fifo_readable <= 1'd1;
|
||
|
end else begin
|
||
|
if (basesoc_uart_tx_fifo_re) begin
|
||
|
basesoc_uart_tx_fifo_readable <= 1'd0;
|
||
|
end
|
||
|
end
|
||
|
if (((basesoc_uart_tx_fifo_syncfifo_we & basesoc_uart_tx_fifo_syncfifo_writable) & (~basesoc_uart_tx_fifo_replace))) begin
|
||
|
basesoc_uart_tx_fifo_produce <= (basesoc_uart_tx_fifo_produce + 1'd1);
|
||
|
end
|
||
|
if (basesoc_uart_tx_fifo_do_read) begin
|
||
|
basesoc_uart_tx_fifo_consume <= (basesoc_uart_tx_fifo_consume + 1'd1);
|
||
|
end
|
||
|
if (((basesoc_uart_tx_fifo_syncfifo_we & basesoc_uart_tx_fifo_syncfifo_writable) & (~basesoc_uart_tx_fifo_replace))) begin
|
||
|
if ((~basesoc_uart_tx_fifo_do_read)) begin
|
||
|
basesoc_uart_tx_fifo_level0 <= (basesoc_uart_tx_fifo_level0 + 1'd1);
|
||
|
end
|
||
|
end else begin
|
||
|
if (basesoc_uart_tx_fifo_do_read) begin
|
||
|
basesoc_uart_tx_fifo_level0 <= (basesoc_uart_tx_fifo_level0 - 1'd1);
|
||
|
end
|
||
|
end
|
||
|
if (basesoc_uart_rx_fifo_syncfifo_re) begin
|
||
|
basesoc_uart_rx_fifo_readable <= 1'd1;
|
||
|
end else begin
|
||
|
if (basesoc_uart_rx_fifo_re) begin
|
||
|
basesoc_uart_rx_fifo_readable <= 1'd0;
|
||
|
end
|
||
|
end
|
||
|
if (((basesoc_uart_rx_fifo_syncfifo_we & basesoc_uart_rx_fifo_syncfifo_writable) & (~basesoc_uart_rx_fifo_replace))) begin
|
||
|
basesoc_uart_rx_fifo_produce <= (basesoc_uart_rx_fifo_produce + 1'd1);
|
||
|
end
|
||
|
if (basesoc_uart_rx_fifo_do_read) begin
|
||
|
basesoc_uart_rx_fifo_consume <= (basesoc_uart_rx_fifo_consume + 1'd1);
|
||
|
end
|
||
|
if (((basesoc_uart_rx_fifo_syncfifo_we & basesoc_uart_rx_fifo_syncfifo_writable) & (~basesoc_uart_rx_fifo_replace))) begin
|
||
|
if ((~basesoc_uart_rx_fifo_do_read)) begin
|
||
|
basesoc_uart_rx_fifo_level0 <= (basesoc_uart_rx_fifo_level0 + 1'd1);
|
||
|
end
|
||
|
end else begin
|
||
|
if (basesoc_uart_rx_fifo_do_read) begin
|
||
|
basesoc_uart_rx_fifo_level0 <= (basesoc_uart_rx_fifo_level0 - 1'd1);
|
||
|
end
|
||
|
end
|
||
|
if (basesoc_timer_en_storage) begin
|
||
|
if ((basesoc_timer_value == 1'd0)) begin
|
||
|
basesoc_timer_value <= basesoc_timer_reload_storage;
|
||
|
end else begin
|
||
|
basesoc_timer_value <= (basesoc_timer_value - 1'd1);
|
||
|
end
|
||
|
end else begin
|
||
|
basesoc_timer_value <= basesoc_timer_load_storage;
|
||
|
end
|
||
|
if (basesoc_timer_update_value_re) begin
|
||
|
basesoc_timer_value_status <= basesoc_timer_value;
|
||
|
end
|
||
|
if (basesoc_timer_zero_clear) begin
|
||
|
basesoc_timer_zero_pending <= 1'd0;
|
||
|
end
|
||
|
basesoc_timer_zero_trigger_d <= basesoc_timer_zero_trigger;
|
||
|
if ((basesoc_timer_zero_trigger & (~basesoc_timer_zero_trigger_d))) begin
|
||
|
basesoc_timer_zero_pending <= 1'd1;
|
||
|
end
|
||
|
if (directory0_re) begin
|
||
|
csrstorage0_storage <= directory0_r;
|
||
|
end
|
||
|
csrstorage0_re <= directory0_re;
|
||
|
if (csr_08000_re) begin
|
||
|
csrstorage1_storage <= csr_08000_r;
|
||
|
end
|
||
|
csrstorage1_re <= csr_08000_re;
|
||
|
basesoc_ram_bus_ack <= 1'd0;
|
||
|
if (((basesoc_ram_bus_cyc & basesoc_ram_bus_stb) & (~basesoc_ram_bus_ack))) begin
|
||
|
basesoc_ram_bus_ack <= 1'd1;
|
||
|
end
|
||
|
if ((dna_count < 7'd114)) begin
|
||
|
dna_count <= (dna_count + 1'd1);
|
||
|
if (dna_clk) begin
|
||
|
dna_status <= {dna_status, dna_do};
|
||
|
end
|
||
|
end
|
||
|
if (xadc_drdy) begin
|
||
|
case (xadc_channel)
|
||
|
1'd0: begin
|
||
|
xadc_temperature_status <= (xadc_do >>> 3'd4);
|
||
|
end
|
||
|
1'd1: begin
|
||
|
xadc_vccint_status <= (xadc_do >>> 3'd4);
|
||
|
end
|
||
|
2'd2: begin
|
||
|
xadc_vccaux_status <= (xadc_do >>> 3'd4);
|
||
|
end
|
||
|
3'd6: begin
|
||
|
xadc_vccbram_status <= (xadc_do >>> 3'd4);
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
xadc_eoc_status <= ((xadc_eoc_status & (~xadc_eoc_we)) | xadc_eoc);
|
||
|
xadc_eos_status <= ((xadc_eos_status & (~xadc_eos_we)) | xadc_eos);
|
||
|
if (leds_done) begin
|
||
|
leds_chaser <= {leds_chaser, (~leds_chaser[1])};
|
||
|
end
|
||
|
if (leds_re) begin
|
||
|
leds_mode <= 1'd1;
|
||
|
end
|
||
|
if (leds_wait) begin
|
||
|
if ((~leds_done)) begin
|
||
|
leds_count <= (leds_count - 1'd1);
|
||
|
end
|
||
|
end else begin
|
||
|
leds_count <= 25'd25000000;
|
||
|
end
|
||
|
{uart_1_phy_tx_tick, uart_1_phy_tx_phase} <= 23'd4947802;
|
||
|
if (uart_1_phy_tx_enable) begin
|
||
|
{uart_1_phy_tx_tick, uart_1_phy_tx_phase} <= (uart_1_phy_tx_phase + 23'd4947802);
|
||
|
end
|
||
|
subfragments_rs232phytx1_state <= subfragments_rs232phytx1_next_state;
|
||
|
if (uart_1_phy_tx_count_rs232phytx1_next_value_ce0) begin
|
||
|
uart_1_phy_tx_count <= uart_1_phy_tx_count_rs232phytx1_next_value0;
|
||
|
end
|
||
|
if (tx_obj_rs232phytx1_next_value_ce1) begin
|
||
|
digital10 <= tx_obj_rs232phytx1_next_value1;
|
||
|
end
|
||
|
if (uart_1_phy_tx_data_rs232phytx1_next_value_ce2) begin
|
||
|
uart_1_phy_tx_data <= uart_1_phy_tx_data_rs232phytx1_next_value2;
|
||
|
end
|
||
|
uart_1_phy_rx_rx_d <= uart_1_phy_rx_rx;
|
||
|
{uart_1_phy_rx_tick, uart_1_phy_rx_phase} <= 32'd2147483648;
|
||
|
if (uart_1_phy_rx_enable) begin
|
||
|
{uart_1_phy_rx_tick, uart_1_phy_rx_phase} <= (uart_1_phy_rx_phase + 23'd4947802);
|
||
|
end
|
||
|
subfragments_rs232phyrx1_state <= subfragments_rs232phyrx1_next_state;
|
||
|
if (uart_1_phy_rx_count_rs232phyrx1_next_value_ce0) begin
|
||
|
uart_1_phy_rx_count <= uart_1_phy_rx_count_rs232phyrx1_next_value0;
|
||
|
end
|
||
|
if (uart_1_phy_rx_data_rs232phyrx1_next_value_ce1) begin
|
||
|
uart_1_phy_rx_data <= uart_1_phy_rx_data_rs232phyrx1_next_value1;
|
||
|
end
|
||
|
subfragments_state <= subfragments_next_state;
|
||
|
if (uart_1_bytes_count_next_value_ce0) begin
|
||
|
uart_1_bytes_count <= uart_1_bytes_count_next_value0;
|
||
|
end
|
||
|
if (uart_1_words_count_next_value_ce1) begin
|
||
|
uart_1_words_count <= uart_1_words_count_next_value1;
|
||
|
end
|
||
|
if (uart_1_cmd_next_value_ce2) begin
|
||
|
uart_1_cmd <= uart_1_cmd_next_value2;
|
||
|
end
|
||
|
if (uart_1_length_next_value_ce3) begin
|
||
|
uart_1_length <= uart_1_length_next_value3;
|
||
|
end
|
||
|
if (uart_1_address_next_value_ce4) begin
|
||
|
uart_1_address <= uart_1_address_next_value4;
|
||
|
end
|
||
|
if (uart_1_incr_next_value_ce5) begin
|
||
|
uart_1_incr <= uart_1_incr_next_value5;
|
||
|
end
|
||
|
if (uart_1_data_next_value_ce6) begin
|
||
|
uart_1_data <= uart_1_data_next_value6;
|
||
|
end
|
||
|
if (uart_1_reset) begin
|
||
|
uart_1_incr <= 1'd0;
|
||
|
subfragments_state <= 3'd0;
|
||
|
end
|
||
|
if (uart_1_wait) begin
|
||
|
if ((~uart_1_done)) begin
|
||
|
uart_1_count <= (uart_1_count - 1'd1);
|
||
|
end
|
||
|
end else begin
|
||
|
uart_1_count <= 24'd10000000;
|
||
|
end
|
||
|
basesoc_state <= basesoc_next_state;
|
||
|
case (basesoc_grant)
|
||
|
1'd0: begin
|
||
|
if ((~basesoc_request[0])) begin
|
||
|
if (basesoc_request[1]) begin
|
||
|
basesoc_grant <= 1'd1;
|
||
|
end else begin
|
||
|
if (basesoc_request[2]) begin
|
||
|
basesoc_grant <= 2'd2;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
1'd1: begin
|
||
|
if ((~basesoc_request[1])) begin
|
||
|
if (basesoc_request[2]) begin
|
||
|
basesoc_grant <= 2'd2;
|
||
|
end else begin
|
||
|
if (basesoc_request[0]) begin
|
||
|
basesoc_grant <= 1'd0;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
2'd2: begin
|
||
|
if ((~basesoc_request[2])) begin
|
||
|
if (basesoc_request[0]) begin
|
||
|
basesoc_grant <= 1'd0;
|
||
|
end else begin
|
||
|
if (basesoc_request[1]) begin
|
||
|
basesoc_grant <= 1'd1;
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
endcase
|
||
|
basesoc_slave_sel_r <= basesoc_slave_sel;
|
||
|
if (basesoc_wait) begin
|
||
|
if ((~basesoc_done)) begin
|
||
|
basesoc_count <= (basesoc_count - 1'd1);
|
||
|
end
|
||
|
end else begin
|
||
|
basesoc_count <= 20'd1000000;
|
||
|
end
|
||
|
basesoc_csr_bankarray_interface0_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank0_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface0_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface0_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank0_in_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
buttons_re <= basesoc_csr_bankarray_csrbank0_in_re;
|
||
|
basesoc_csr_bankarray_interface1_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank1_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface1_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface1_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank1_reset0_w;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
basesoc_csr_bankarray_interface1_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank1_scratch0_w;
|
||
|
end
|
||
|
2'd2: begin
|
||
|
basesoc_csr_bankarray_interface1_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank1_bus_errors_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
if (basesoc_csr_bankarray_csrbank1_reset0_re) begin
|
||
|
basesoc_reset_storage[1:0] <= basesoc_csr_bankarray_csrbank1_reset0_r;
|
||
|
end
|
||
|
basesoc_reset_re <= basesoc_csr_bankarray_csrbank1_reset0_re;
|
||
|
if (basesoc_csr_bankarray_csrbank1_scratch0_re) begin
|
||
|
basesoc_scratch_storage[31:0] <= basesoc_csr_bankarray_csrbank1_scratch0_r;
|
||
|
end
|
||
|
basesoc_scratch_re <= basesoc_csr_bankarray_csrbank1_scratch0_re;
|
||
|
basesoc_bus_errors_re <= basesoc_csr_bankarray_csrbank1_bus_errors_re;
|
||
|
basesoc_csr_bankarray_interface2_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank2_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface2_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface2_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank2_id1_w;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
basesoc_csr_bankarray_interface2_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank2_id0_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
dna_re <= basesoc_csr_bankarray_csrbank2_id0_re;
|
||
|
basesoc_csr_bankarray_interface3_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank3_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface3_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface3_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank3_out0_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
if (basesoc_csr_bankarray_csrbank3_out0_re) begin
|
||
|
dshot_0_storage <= basesoc_csr_bankarray_csrbank3_out0_r;
|
||
|
end
|
||
|
dshot_0_re <= basesoc_csr_bankarray_csrbank3_out0_re;
|
||
|
basesoc_csr_bankarray_interface4_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank4_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface4_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface4_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank4_w0_w;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
basesoc_csr_bankarray_interface4_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank4_r_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
if (basesoc_csr_bankarray_csrbank4_w0_re) begin
|
||
|
_w_storage[2:0] <= basesoc_csr_bankarray_csrbank4_w0_r;
|
||
|
end
|
||
|
_w_re <= basesoc_csr_bankarray_csrbank4_w0_re;
|
||
|
_r_re <= basesoc_csr_bankarray_csrbank4_r_re;
|
||
|
basesoc_csr_bankarray_sel_r <= basesoc_csr_bankarray_sel;
|
||
|
basesoc_csr_bankarray_interface5_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank5_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface5_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface5_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank5_out0_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
if (basesoc_csr_bankarray_csrbank5_out0_re) begin
|
||
|
leds_storage[1:0] <= basesoc_csr_bankarray_csrbank5_out0_r;
|
||
|
end
|
||
|
leds_re <= basesoc_csr_bankarray_csrbank5_out0_re;
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank6_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface6_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank6_load0_w;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank6_reload0_w;
|
||
|
end
|
||
|
2'd2: begin
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank6_en0_w;
|
||
|
end
|
||
|
2'd3: begin
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank6_update_value0_w;
|
||
|
end
|
||
|
3'd4: begin
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank6_value_w;
|
||
|
end
|
||
|
3'd5: begin
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank6_ev_status_w;
|
||
|
end
|
||
|
3'd6: begin
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank6_ev_pending_w;
|
||
|
end
|
||
|
3'd7: begin
|
||
|
basesoc_csr_bankarray_interface6_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank6_ev_enable0_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
if (basesoc_csr_bankarray_csrbank6_load0_re) begin
|
||
|
basesoc_timer_load_storage[31:0] <= basesoc_csr_bankarray_csrbank6_load0_r;
|
||
|
end
|
||
|
basesoc_timer_load_re <= basesoc_csr_bankarray_csrbank6_load0_re;
|
||
|
if (basesoc_csr_bankarray_csrbank6_reload0_re) begin
|
||
|
basesoc_timer_reload_storage[31:0] <= basesoc_csr_bankarray_csrbank6_reload0_r;
|
||
|
end
|
||
|
basesoc_timer_reload_re <= basesoc_csr_bankarray_csrbank6_reload0_re;
|
||
|
if (basesoc_csr_bankarray_csrbank6_en0_re) begin
|
||
|
basesoc_timer_en_storage <= basesoc_csr_bankarray_csrbank6_en0_r;
|
||
|
end
|
||
|
basesoc_timer_en_re <= basesoc_csr_bankarray_csrbank6_en0_re;
|
||
|
if (basesoc_csr_bankarray_csrbank6_update_value0_re) begin
|
||
|
basesoc_timer_update_value_storage <= basesoc_csr_bankarray_csrbank6_update_value0_r;
|
||
|
end
|
||
|
basesoc_timer_update_value_re <= basesoc_csr_bankarray_csrbank6_update_value0_re;
|
||
|
basesoc_timer_value_re <= basesoc_csr_bankarray_csrbank6_value_re;
|
||
|
basesoc_timer_status_re <= basesoc_csr_bankarray_csrbank6_ev_status_re;
|
||
|
if (basesoc_csr_bankarray_csrbank6_ev_pending_re) begin
|
||
|
basesoc_timer_pending_r <= basesoc_csr_bankarray_csrbank6_ev_pending_r;
|
||
|
end
|
||
|
basesoc_timer_pending_re <= basesoc_csr_bankarray_csrbank6_ev_pending_re;
|
||
|
if (basesoc_csr_bankarray_csrbank6_ev_enable0_re) begin
|
||
|
basesoc_timer_enable_storage <= basesoc_csr_bankarray_csrbank6_ev_enable0_r;
|
||
|
end
|
||
|
basesoc_timer_enable_re <= basesoc_csr_bankarray_csrbank6_ev_enable0_re;
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank7_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface7_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= basesoc_uart_rxtx_w;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank7_txfull_w;
|
||
|
end
|
||
|
2'd2: begin
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank7_rxempty_w;
|
||
|
end
|
||
|
2'd3: begin
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank7_ev_status_w;
|
||
|
end
|
||
|
3'd4: begin
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank7_ev_pending_w;
|
||
|
end
|
||
|
3'd5: begin
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank7_ev_enable0_w;
|
||
|
end
|
||
|
3'd6: begin
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank7_txempty_w;
|
||
|
end
|
||
|
3'd7: begin
|
||
|
basesoc_csr_bankarray_interface7_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank7_rxfull_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
basesoc_uart_txfull_re <= basesoc_csr_bankarray_csrbank7_txfull_re;
|
||
|
basesoc_uart_rxempty_re <= basesoc_csr_bankarray_csrbank7_rxempty_re;
|
||
|
basesoc_uart_status_re <= basesoc_csr_bankarray_csrbank7_ev_status_re;
|
||
|
if (basesoc_csr_bankarray_csrbank7_ev_pending_re) begin
|
||
|
basesoc_uart_pending_r[1:0] <= basesoc_csr_bankarray_csrbank7_ev_pending_r;
|
||
|
end
|
||
|
basesoc_uart_pending_re <= basesoc_csr_bankarray_csrbank7_ev_pending_re;
|
||
|
if (basesoc_csr_bankarray_csrbank7_ev_enable0_re) begin
|
||
|
basesoc_uart_enable_storage[1:0] <= basesoc_csr_bankarray_csrbank7_ev_enable0_r;
|
||
|
end
|
||
|
basesoc_uart_enable_re <= basesoc_csr_bankarray_csrbank7_ev_enable0_re;
|
||
|
basesoc_uart_txempty_re <= basesoc_csr_bankarray_csrbank7_txempty_re;
|
||
|
basesoc_uart_rxfull_re <= basesoc_csr_bankarray_csrbank7_rxfull_re;
|
||
|
basesoc_csr_bankarray_interface8_bank_bus_dat_r <= 1'd0;
|
||
|
if (basesoc_csr_bankarray_csrbank8_sel) begin
|
||
|
case (basesoc_csr_bankarray_interface8_bank_bus_adr[8:0])
|
||
|
1'd0: begin
|
||
|
basesoc_csr_bankarray_interface8_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank8_temperature_w;
|
||
|
end
|
||
|
1'd1: begin
|
||
|
basesoc_csr_bankarray_interface8_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank8_vccint_w;
|
||
|
end
|
||
|
2'd2: begin
|
||
|
basesoc_csr_bankarray_interface8_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank8_vccaux_w;
|
||
|
end
|
||
|
2'd3: begin
|
||
|
basesoc_csr_bankarray_interface8_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank8_vccbram_w;
|
||
|
end
|
||
|
3'd4: begin
|
||
|
basesoc_csr_bankarray_interface8_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank8_eoc_w;
|
||
|
end
|
||
|
3'd5: begin
|
||
|
basesoc_csr_bankarray_interface8_bank_bus_dat_r <= basesoc_csr_bankarray_csrbank8_eos_w;
|
||
|
end
|
||
|
endcase
|
||
|
end
|
||
|
xadc_temperature_re <= basesoc_csr_bankarray_csrbank8_temperature_re;
|
||
|
xadc_vccint_re <= basesoc_csr_bankarray_csrbank8_vccint_re;
|
||
|
xadc_vccaux_re <= basesoc_csr_bankarray_csrbank8_vccaux_re;
|
||
|
xadc_vccbram_re <= basesoc_csr_bankarray_csrbank8_vccbram_re;
|
||
|
xadc_eoc_re <= basesoc_csr_bankarray_csrbank8_eoc_re;
|
||
|
xadc_eos_re <= basesoc_csr_bankarray_csrbank8_eos_re;
|
||
|
if (sys_rst) begin
|
||
|
basesoc_reset_storage <= 2'd0;
|
||
|
basesoc_reset_re <= 1'd0;
|
||
|
basesoc_scratch_storage <= 32'd305419896;
|
||
|
basesoc_scratch_re <= 1'd0;
|
||
|
basesoc_bus_errors_re <= 1'd0;
|
||
|
basesoc_bus_errors <= 32'd0;
|
||
|
serial_tx <= 1'd1;
|
||
|
basesoc_tx_tick <= 1'd0;
|
||
|
basesoc_rx_tick <= 1'd0;
|
||
|
basesoc_rx_rx_d <= 1'd0;
|
||
|
basesoc_uart_txfull_re <= 1'd0;
|
||
|
basesoc_uart_rxempty_re <= 1'd0;
|
||
|
basesoc_uart_tx_pending <= 1'd0;
|
||
|
basesoc_uart_tx_trigger_d <= 1'd0;
|
||
|
basesoc_uart_rx_pending <= 1'd0;
|
||
|
basesoc_uart_rx_trigger_d <= 1'd0;
|
||
|
basesoc_uart_status_re <= 1'd0;
|
||
|
basesoc_uart_pending_re <= 1'd0;
|
||
|
basesoc_uart_pending_r <= 2'd0;
|
||
|
basesoc_uart_enable_storage <= 2'd0;
|
||
|
basesoc_uart_enable_re <= 1'd0;
|
||
|
basesoc_uart_txempty_re <= 1'd0;
|
||
|
basesoc_uart_rxfull_re <= 1'd0;
|
||
|
basesoc_uart_tx_fifo_readable <= 1'd0;
|
||
|
basesoc_uart_tx_fifo_level0 <= 5'd0;
|
||
|
basesoc_uart_tx_fifo_produce <= 4'd0;
|
||
|
basesoc_uart_tx_fifo_consume <= 4'd0;
|
||
|
basesoc_uart_rx_fifo_readable <= 1'd0;
|
||
|
basesoc_uart_rx_fifo_level0 <= 5'd0;
|
||
|
basesoc_uart_rx_fifo_produce <= 4'd0;
|
||
|
basesoc_uart_rx_fifo_consume <= 4'd0;
|
||
|
basesoc_timer_load_storage <= 32'd0;
|
||
|
basesoc_timer_load_re <= 1'd0;
|
||
|
basesoc_timer_reload_storage <= 32'd0;
|
||
|
basesoc_timer_reload_re <= 1'd0;
|
||
|
basesoc_timer_en_storage <= 1'd0;
|
||
|
basesoc_timer_en_re <= 1'd0;
|
||
|
basesoc_timer_update_value_storage <= 1'd0;
|
||
|
basesoc_timer_update_value_re <= 1'd0;
|
||
|
basesoc_timer_value_status <= 32'd0;
|
||
|
basesoc_timer_value_re <= 1'd0;
|
||
|
basesoc_timer_zero_pending <= 1'd0;
|
||
|
basesoc_timer_zero_trigger_d <= 1'd0;
|
||
|
basesoc_timer_status_re <= 1'd0;
|
||
|
basesoc_timer_pending_re <= 1'd0;
|
||
|
basesoc_timer_pending_r <= 1'd0;
|
||
|
basesoc_timer_enable_storage <= 1'd0;
|
||
|
basesoc_timer_enable_re <= 1'd0;
|
||
|
basesoc_timer_value <= 32'd0;
|
||
|
csrstorage0_storage <= 1'd140989193;
|
||
|
csrstorage0_re <= 1'd0;
|
||
|
csrstorage1_storage <= 1'd0;
|
||
|
csrstorage1_re <= 1'd0;
|
||
|
basesoc_ram_bus_ack <= 1'd0;
|
||
|
dna_status <= 57'd0;
|
||
|
dna_re <= 1'd0;
|
||
|
dna_count <= 7'd0;
|
||
|
xadc_temperature_status <= 12'd0;
|
||
|
xadc_temperature_re <= 1'd0;
|
||
|
xadc_vccint_status <= 12'd0;
|
||
|
xadc_vccint_re <= 1'd0;
|
||
|
xadc_vccaux_status <= 12'd0;
|
||
|
xadc_vccaux_re <= 1'd0;
|
||
|
xadc_vccbram_status <= 12'd0;
|
||
|
xadc_vccbram_re <= 1'd0;
|
||
|
xadc_eoc_status <= 1'd0;
|
||
|
xadc_eoc_re <= 1'd0;
|
||
|
xadc_eos_status <= 1'd0;
|
||
|
xadc_eos_re <= 1'd0;
|
||
|
leds_storage <= 2'd0;
|
||
|
leds_re <= 1'd0;
|
||
|
leds_chaser <= 2'd0;
|
||
|
leds_mode <= 1'd0;
|
||
|
leds_count <= 25'd25000000;
|
||
|
buttons_re <= 1'd0;
|
||
|
_w_storage <= 3'd0;
|
||
|
_w_re <= 1'd0;
|
||
|
_r_re <= 1'd0;
|
||
|
digital10 <= 1'd1;
|
||
|
uart_1_phy_tx_tick <= 1'd0;
|
||
|
uart_1_phy_rx_tick <= 1'd0;
|
||
|
uart_1_phy_rx_rx_d <= 1'd0;
|
||
|
uart_1_incr <= 1'd0;
|
||
|
uart_1_count <= 24'd10000000;
|
||
|
dshot_0_storage <= 1'd0;
|
||
|
dshot_0_re <= 1'd0;
|
||
|
subfragments_rs232phytx0_state <= 1'd0;
|
||
|
subfragments_rs232phyrx0_state <= 1'd0;
|
||
|
subfragments_rs232phytx1_state <= 1'd0;
|
||
|
subfragments_rs232phyrx1_state <= 1'd0;
|
||
|
subfragments_state <= 3'd0;
|
||
|
basesoc_grant <= 2'd0;
|
||
|
basesoc_slave_sel_r <= 3'd0;
|
||
|
basesoc_count <= 20'd1000000;
|
||
|
basesoc_csr_bankarray_sel_r <= 1'd0;
|
||
|
basesoc_state <= 1'd0;
|
||
|
end
|
||
|
xilinxmultiregimpl0_regs0 <= serial_rx;
|
||
|
xilinxmultiregimpl0_regs1 <= xilinxmultiregimpl0_regs0;
|
||
|
xilinxmultiregimpl1_regs0 <= {user_btn1, user_btn0};
|
||
|
xilinxmultiregimpl1_regs1 <= xilinxmultiregimpl1_regs0;
|
||
|
xilinxmultiregimpl2_regs0 <= digital11;
|
||
|
xilinxmultiregimpl2_regs1 <= xilinxmultiregimpl2_regs0;
|
||
|
end
|
||
|
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Specialized Logic
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Memory mem: 24-words x 8-bit
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Port 0 | Read: Sync | Write: ---- |
|
||
|
reg [7:0] mem[0:23];
|
||
|
initial begin
|
||
|
$readmemh("mem.init", mem);
|
||
|
end
|
||
|
reg [4:0] mem_adr0;
|
||
|
always @(posedge sys_clk) begin
|
||
|
mem_adr0 <= basesoc_csr_bankarray_adr;
|
||
|
end
|
||
|
assign basesoc_csr_bankarray_dat_r = mem[mem_adr0];
|
||
|
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Memory storage: 16-words x 10-bit
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Port 0 | Read: Sync | Write: Sync | Mode: Read-First | Write-Granularity: 10
|
||
|
// Port 1 | Read: Sync | Write: ---- |
|
||
|
reg [9:0] storage[0:15];
|
||
|
reg [9:0] storage_dat0;
|
||
|
reg [9:0] storage_dat1;
|
||
|
always @(posedge sys_clk) begin
|
||
|
if (basesoc_uart_tx_fifo_wrport_we)
|
||
|
storage[basesoc_uart_tx_fifo_wrport_adr] <= basesoc_uart_tx_fifo_wrport_dat_w;
|
||
|
storage_dat0 <= storage[basesoc_uart_tx_fifo_wrport_adr];
|
||
|
end
|
||
|
always @(posedge sys_clk) begin
|
||
|
if (basesoc_uart_tx_fifo_rdport_re)
|
||
|
storage_dat1 <= storage[basesoc_uart_tx_fifo_rdport_adr];
|
||
|
end
|
||
|
assign basesoc_uart_tx_fifo_wrport_dat_r = storage_dat0;
|
||
|
assign basesoc_uart_tx_fifo_rdport_dat_r = storage_dat1;
|
||
|
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Memory storage_1: 16-words x 10-bit
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Port 0 | Read: Sync | Write: Sync | Mode: Read-First | Write-Granularity: 10
|
||
|
// Port 1 | Read: Sync | Write: ---- |
|
||
|
reg [9:0] storage_1[0:15];
|
||
|
reg [9:0] storage_1_dat0;
|
||
|
reg [9:0] storage_1_dat1;
|
||
|
always @(posedge sys_clk) begin
|
||
|
if (basesoc_uart_rx_fifo_wrport_we)
|
||
|
storage_1[basesoc_uart_rx_fifo_wrport_adr] <= basesoc_uart_rx_fifo_wrport_dat_w;
|
||
|
storage_1_dat0 <= storage_1[basesoc_uart_rx_fifo_wrport_adr];
|
||
|
end
|
||
|
always @(posedge sys_clk) begin
|
||
|
if (basesoc_uart_rx_fifo_rdport_re)
|
||
|
storage_1_dat1 <= storage_1[basesoc_uart_rx_fifo_rdport_adr];
|
||
|
end
|
||
|
assign basesoc_uart_rx_fifo_wrport_dat_r = storage_1_dat0;
|
||
|
assign basesoc_uart_rx_fifo_rdport_dat_r = storage_1_dat1;
|
||
|
|
||
|
|
||
|
BUFG BUFG(
|
||
|
.I(crg_clkout0),
|
||
|
.O(crg_clkout_buf0)
|
||
|
);
|
||
|
|
||
|
BUFG BUFG_1(
|
||
|
.I(crg_clkout1),
|
||
|
.O(crg_clkout_buf1)
|
||
|
);
|
||
|
|
||
|
BUFG BUFG_2(
|
||
|
.I(crg_clkout2),
|
||
|
.O(crg_clkout_buf2)
|
||
|
);
|
||
|
|
||
|
IDELAYCTRL IDELAYCTRL(
|
||
|
.REFCLK(idelay_clk),
|
||
|
.RST(crg_ic_reset)
|
||
|
);
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Memory mem_1: 16384-words x 32-bit
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Port 0 | Read: Sync | Write: ---- |
|
||
|
reg [31:0] mem_1[0:16383];
|
||
|
initial begin
|
||
|
$readmemh("mem_1.init", mem_1);
|
||
|
end
|
||
|
reg [31:0] mem_1_dat0;
|
||
|
always @(posedge sys_clk) begin
|
||
|
mem_1_dat0 <= mem_1[basesoc_adr];
|
||
|
end
|
||
|
assign basesoc_dat_r = mem_1_dat0;
|
||
|
|
||
|
|
||
|
issiram issiram(
|
||
|
.clk(sys_clk),
|
||
|
.rst(sys_rst),
|
||
|
.wbs_adr_i(sram_bus_adr),
|
||
|
.wbs_cyc_i(sram_bus_cyc),
|
||
|
.wbs_dat_i(sram_bus_dat_w),
|
||
|
.wbs_sel_i(sram_bus_sel),
|
||
|
.wbs_stb_i(sram_bus_stb),
|
||
|
.wbs_we_i(sram_bus_we),
|
||
|
.mem_dat(issiram_data),
|
||
|
.mem_adr(issiram_addr),
|
||
|
.mem_ce_n(issiram_cen),
|
||
|
.mem_oe_n(issiram_oen),
|
||
|
.mem_we_n(issiram_wen),
|
||
|
.wbs_ack_o(sram_bus_ack),
|
||
|
.wbs_dat_o(sram_bus_dat_r)
|
||
|
);
|
||
|
|
||
|
DNA_PORT DNA_PORT(
|
||
|
.CLK(dna_clk),
|
||
|
.DIN(dna_status[56]),
|
||
|
.READ((dna_count < 2'd2)),
|
||
|
.SHIFT(1'd1),
|
||
|
.DOUT(dna_do)
|
||
|
);
|
||
|
|
||
|
XADC #(
|
||
|
.INIT_40(16'd36864),
|
||
|
.INIT_41(14'd12016),
|
||
|
.INIT_42(11'd1024),
|
||
|
.INIT_48(15'd18177),
|
||
|
.INIT_49(4'd15),
|
||
|
.INIT_4A(15'd18176),
|
||
|
.INIT_4B(1'd0),
|
||
|
.INIT_4C(1'd0),
|
||
|
.INIT_4D(1'd0),
|
||
|
.INIT_4E(1'd0),
|
||
|
.INIT_4F(1'd0),
|
||
|
.INIT_50(16'd46573),
|
||
|
.INIT_51(15'd22937),
|
||
|
.INIT_52(16'd41287),
|
||
|
.INIT_53(16'd56797),
|
||
|
.INIT_54(16'd43322),
|
||
|
.INIT_55(15'd20753),
|
||
|
.INIT_56(16'd37355),
|
||
|
.INIT_57(16'd44622),
|
||
|
.INIT_58(15'd22937),
|
||
|
.INIT_5C(15'd20753)
|
||
|
) XADC (
|
||
|
.CONVST(1'd0),
|
||
|
.CONVSTCLK(1'd0),
|
||
|
.DADDR(xadc_dadr),
|
||
|
.DCLK(sys_clk),
|
||
|
.DEN(xadc_den),
|
||
|
.DI(xadc_di),
|
||
|
.DWE(xadc_dwe),
|
||
|
.RESET(sys_rst),
|
||
|
.VAUXN(1'd0),
|
||
|
.VAUXP(1'd0),
|
||
|
.VN(1'd0),
|
||
|
.VP(1'd0),
|
||
|
.ALM(xadc_alarm),
|
||
|
.BUSY(xadc_busy),
|
||
|
.CHANNEL(xadc_channel),
|
||
|
.DO(xadc_do),
|
||
|
.DRDY(xadc_drdy),
|
||
|
.EOC(xadc_eoc),
|
||
|
.EOS(xadc_eos),
|
||
|
.OT(xadc_ot)
|
||
|
);
|
||
|
|
||
|
assign pmod0 = (~scl) ? 1'd0 : 1'bz;
|
||
|
|
||
|
assign pmod1 = (oe & (~sda0)) ? 1'd0 : 1'bz;
|
||
|
assign sda1 = pmod1;
|
||
|
|
||
|
A2P_WB A2P_WB(
|
||
|
.clk(sys_clk),
|
||
|
.dBusWB_ACK(basesoc_dbus_ack),
|
||
|
.dBusWB_DAT_MISO(basesoc_dbus_dat_r),
|
||
|
.dBusWB_ERR(basesoc_dbus_err),
|
||
|
.externalInterrupt(basesoc_interrupt[0]),
|
||
|
.externalInterruptS(basesoc_interruptS),
|
||
|
.externalResetVector(basesoc_a2p),
|
||
|
.iBusWB_ACK(basesoc_ibus_ack),
|
||
|
.iBusWB_DAT_MISO(basesoc_ibus_dat_r),
|
||
|
.iBusWB_ERR(basesoc_ibus_err),
|
||
|
.reset((sys_rst | basesoc_reset)),
|
||
|
.softwareInterrupt(1'd0),
|
||
|
.timerInterrupt(1'd0),
|
||
|
.dBusWB_ADR(basesoc_dbus_adr),
|
||
|
.dBusWB_BTE(basesoc_dbus_bte),
|
||
|
.dBusWB_CTI(basesoc_dbus_cti),
|
||
|
.dBusWB_CYC(basesoc_dbus_cyc),
|
||
|
.dBusWB_DAT_MOSI(basesoc_dbus_dat_w),
|
||
|
.dBusWB_SEL(basesoc_dbus_sel),
|
||
|
.dBusWB_STB(basesoc_dbus_stb),
|
||
|
.dBusWB_WE(basesoc_dbus_we),
|
||
|
.iBusWB_ADR(basesoc_ibus_adr),
|
||
|
.iBusWB_BTE(basesoc_ibus_bte),
|
||
|
.iBusWB_CTI(basesoc_ibus_cti),
|
||
|
.iBusWB_CYC(basesoc_ibus_cyc),
|
||
|
.iBusWB_DAT_MOSI(basesoc_ibus_dat_w),
|
||
|
.iBusWB_SEL(basesoc_ibus_sel),
|
||
|
.iBusWB_STB(basesoc_ibus_stb),
|
||
|
.iBusWB_WE(basesoc_ibus_we)
|
||
|
);
|
||
|
|
||
|
FD FD(
|
||
|
.C(crg_clkin),
|
||
|
.D(crg_reset),
|
||
|
.Q(subfragments_reset0)
|
||
|
);
|
||
|
|
||
|
FD FD_1(
|
||
|
.C(crg_clkin),
|
||
|
.D(subfragments_reset0),
|
||
|
.Q(subfragments_reset1)
|
||
|
);
|
||
|
|
||
|
FD FD_2(
|
||
|
.C(crg_clkin),
|
||
|
.D(subfragments_reset1),
|
||
|
.Q(subfragments_reset2)
|
||
|
);
|
||
|
|
||
|
FD FD_3(
|
||
|
.C(crg_clkin),
|
||
|
.D(subfragments_reset2),
|
||
|
.Q(subfragments_reset3)
|
||
|
);
|
||
|
|
||
|
FD FD_4(
|
||
|
.C(crg_clkin),
|
||
|
.D(subfragments_reset3),
|
||
|
.Q(subfragments_reset4)
|
||
|
);
|
||
|
|
||
|
FD FD_5(
|
||
|
.C(crg_clkin),
|
||
|
.D(subfragments_reset4),
|
||
|
.Q(subfragments_reset5)
|
||
|
);
|
||
|
|
||
|
FD FD_6(
|
||
|
.C(crg_clkin),
|
||
|
.D(subfragments_reset5),
|
||
|
.Q(subfragments_reset6)
|
||
|
);
|
||
|
|
||
|
FD FD_7(
|
||
|
.C(crg_clkin),
|
||
|
.D(subfragments_reset6),
|
||
|
.Q(subfragments_reset7)
|
||
|
);
|
||
|
|
||
|
MMCME2_ADV #(
|
||
|
.BANDWIDTH("OPTIMIZED"),
|
||
|
.CLKFBOUT_MULT_F(6'd50),
|
||
|
.CLKIN1_PERIOD(83.33333333333333),
|
||
|
.CLKOUT0_DIVIDE_F(3'd6),
|
||
|
.CLKOUT0_PHASE(1'd0),
|
||
|
.CLKOUT1_DIVIDE(2'd3),
|
||
|
.CLKOUT1_PHASE(1'd0),
|
||
|
.CLKOUT2_DIVIDE(2'd3),
|
||
|
.CLKOUT2_PHASE(1'd0),
|
||
|
.DIVCLK_DIVIDE(1'd1),
|
||
|
.REF_JITTER1(0.01)
|
||
|
) MMCME2_ADV (
|
||
|
.CLKFBIN(subfragments_mmcm_fb),
|
||
|
.CLKIN1(crg_clkin),
|
||
|
.PWRDWN(crg_power_down),
|
||
|
.RST(subfragments_reset7),
|
||
|
.CLKFBOUT(subfragments_mmcm_fb),
|
||
|
.CLKOUT0(crg_clkout0),
|
||
|
.CLKOUT1(crg_clkout1),
|
||
|
.CLKOUT2(crg_clkout2),
|
||
|
.LOCKED(crg_locked)
|
||
|
);
|
||
|
|
||
|
(* ars_ff1 = "true", async_reg = "true" *) FDPE #(
|
||
|
.INIT(1'd1)
|
||
|
) FDPE (
|
||
|
.C(sys_clk),
|
||
|
.CE(1'd1),
|
||
|
.D(1'd0),
|
||
|
.PRE(xilinxasyncresetsynchronizerimpl0),
|
||
|
.Q(xilinxasyncresetsynchronizerimpl0_rst_meta)
|
||
|
);
|
||
|
|
||
|
(* ars_ff2 = "true", async_reg = "true" *) FDPE #(
|
||
|
.INIT(1'd1)
|
||
|
) FDPE_1 (
|
||
|
.C(sys_clk),
|
||
|
.CE(1'd1),
|
||
|
.D(xilinxasyncresetsynchronizerimpl0_rst_meta),
|
||
|
.PRE(xilinxasyncresetsynchronizerimpl0),
|
||
|
.Q(sys_rst)
|
||
|
);
|
||
|
|
||
|
(* ars_ff1 = "true", async_reg = "true" *) FDPE #(
|
||
|
.INIT(1'd1)
|
||
|
) FDPE_2 (
|
||
|
.C(sys2x_clk),
|
||
|
.CE(1'd1),
|
||
|
.D(1'd0),
|
||
|
.PRE(xilinxasyncresetsynchronizerimpl1),
|
||
|
.Q(xilinxasyncresetsynchronizerimpl1_rst_meta)
|
||
|
);
|
||
|
|
||
|
(* ars_ff2 = "true", async_reg = "true" *) FDPE #(
|
||
|
.INIT(1'd1)
|
||
|
) FDPE_3 (
|
||
|
.C(sys2x_clk),
|
||
|
.CE(1'd1),
|
||
|
.D(xilinxasyncresetsynchronizerimpl1_rst_meta),
|
||
|
.PRE(xilinxasyncresetsynchronizerimpl1),
|
||
|
.Q(xilinxasyncresetsynchronizerimpl1_expr)
|
||
|
);
|
||
|
|
||
|
(* ars_ff1 = "true", async_reg = "true" *) FDPE #(
|
||
|
.INIT(1'd1)
|
||
|
) FDPE_4 (
|
||
|
.C(idelay_clk),
|
||
|
.CE(1'd1),
|
||
|
.D(1'd0),
|
||
|
.PRE(xilinxasyncresetsynchronizerimpl2),
|
||
|
.Q(xilinxasyncresetsynchronizerimpl2_rst_meta)
|
||
|
);
|
||
|
|
||
|
(* ars_ff2 = "true", async_reg = "true" *) FDPE #(
|
||
|
.INIT(1'd1)
|
||
|
) FDPE_5 (
|
||
|
.C(idelay_clk),
|
||
|
.CE(1'd1),
|
||
|
.D(xilinxasyncresetsynchronizerimpl2_rst_meta),
|
||
|
.PRE(xilinxasyncresetsynchronizerimpl2),
|
||
|
.Q(idelay_rst)
|
||
|
);
|
||
|
|
||
|
endmodule
|
||
|
|
||
|
// -----------------------------------------------------------------------------
|
||
|
// Auto-Generated by LiteX on 2021-11-11 09:31:25.
|
||
|
//------------------------------------------------------------------------------
|