import Cpu::*; export CpuCfg(..), mkSoc, SocCfg(..), SocIfc(..); // // SocConfig // typedef struct { CpuCfg#(xlen, ifetchByteCount) cpu_cfg; } SocCfg#(numeric type xlen, numeric type ifetchByteCount); // // SocIfc // interface SocIfc#(numeric type xlen, numeric type ifetchByteCount); endinterface // // mkSoc() // module mkSoc#(SocCfg#(xlen, ifetchByteCount) cfg)(SocIfc#(xlen, ifetchByteCount)); let cpu <- mkCpu(cfg.cpu_cfg); endmodule