X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fbsv%2Fbsv_lib%2Fsoc_template.bsv;h=cd2fcefb7066beb3d48502d4d09aba337fbe83d9;hb=aeac06c9f7dd07b3fbe7c236c5eefd76c7782ab6;hp=c722604ff12f5073ba737b5511f408659d578ad2;hpb=51ca53dbb9b8066a8beb4b642bc54e22eaa1f127;p=pinmux.git diff --git a/src/bsv/bsv_lib/soc_template.bsv b/src/bsv/bsv_lib/soc_template.bsv index c722604..cd2fcef 100644 --- a/src/bsv/bsv_lib/soc_template.bsv +++ b/src/bsv/bsv_lib/soc_template.bsv @@ -40,6 +40,7 @@ package socgen; import Clocks::*; /*=== Project imports === */ + import ifc_sync:: *; import ConcatReg::*; import AXI4_Types::*; import AXI4_Fabric::*; @@ -61,9 +62,6 @@ package socgen; `ifdef BOOTROM import BootRom ::*; `endif - `ifdef SDRAM - import sdr_top :: *; - `endif `ifdef BRAM import Memory_AXI4 ::*; `endif @@ -82,20 +80,15 @@ package socgen; `ifdef VME import vme_master::*; `endif - `ifdef FlexBus - import FlexBus_Types::*; - `endif {0} /*========================= */ interface Ifc_Soc; interface SP_dedicated_ios slow_ios; + interface IOCellSide iocell_side; (*always_ready,always_enabled*) method Action boot_sequence(Bit#(1) bootseq); - `ifdef SDRAM - (*always_ready*) interface Ifc_sdram_out sdram_out; - `endif `ifdef DDR (*prefix="M_AXI"*) interface AXI4_Master_IFC#(`PADDR, `DATA, `USERSPACE) master; @@ -117,7 +110,7 @@ package socgen; (*synthesize*) module mkSoc #(Bit#(`VADDR) reset_vector, Clock slow_clock, Reset slow_reset, Clock uart_clock, - Reset uart_reset, Clock clk0, Clock tck, Reset trst + Reset uart_reset, Clock clk0, Reset rst0, Clock tck, Reset trst `ifdef PWM_AXI4Lite ,Clock ext_pwm_clock `endif )(Ifc_Soc); Clock core_clock <-exposeCurrentClock; // slow peripheral clock Reset core_reset <-exposeCurrentReset; // slow peripheral reset @@ -130,9 +123,6 @@ package socgen; `ifdef BOOTROM BootRom_IFC bootrom <-mkBootRom; `endif - `ifdef SDRAM - Ifc_sdr_slave sdram<- mksdr_axi4_slave(clk0); - `endif `ifdef BRAM Memory_IFC#(`SDRAMMemBase,`Addr_space)main_memory <- mkMemory("code.mem.MSB","code.mem.LSB","MainMEM"); @@ -147,11 +137,14 @@ package socgen; Ifc_vme_top vme <-mkvme_top(); `endif Ifc_slow_peripherals slow_peripherals <-mkslow_peripherals( - core_clock, core_reset, uart_clock, - uart_reset, clocked_by slow_clock , - reset_by slow_reset + core_clock, core_reset, + uart_clock, uart_reset, + clocked_by slow_clock, reset_by slow_reset `ifdef PWM_AXI4Lite , ext_pwm_clock `endif ); + // clock sync mkConnections +{12} + // Fabric AXI4_Fabric_IFC #(Num_Masters, Num_Fast_Slaves, `PADDR, `DATA,`USERSPACE) @@ -170,6 +163,7 @@ package socgen; mkConnection (dma.mmu, fabric.v_from_masters [fromInteger(valueOf(DMA_master_num))]); `endif +{13} // Connect fabric to memory slaves @@ -178,14 +172,6 @@ package socgen; [fromInteger(valueOf(Debug_slave_num))], core.debug_slave); `endif - `ifdef SDRAM - mkConnection (fabric.v_to_slaves - [fromInteger(valueOf(Sdram_slave_num))], - sdram.axi4_slave_sdram); // - mkConnection (fabric.v_to_slaves - [fromInteger(valueOf(Sdram_cfg_slave_num))], - sdram.axi4_slave_cntrl_reg); // - `endif `ifdef BRAM mkConnection(fabric.v_to_slaves [fromInteger(valueOf(Sdram_slave_num))], @@ -302,14 +288,13 @@ package socgen; `endif method Action boot_sequence(Bit#(1) bootseq) = core.boot_sequence(bootseq); - `ifdef SDRAM - interface sdram_out=sdram.ifc_sdram_out; - `endif `ifdef DDR interface master=fabric.v_to_slaves [fromInteger(valueOf(Sdram_slave_num))]; `endif - interface slow_ios=slow_peripherals.slow_ios; + interface slow_ios = slow_peripherals.slow_ios; + interface iocell_side = slow_peripherals.iocell_side; + {6} endmodule endpackage