package Top; // import Connectable::*; // import TriState::*; // import ClockOut::*; // import PLL::*; // interface SystemBus; // (* always_enabled,prefix="" *) // method Action addr(UInt#(24) addr); // (* always_enabled,prefix="" *) // method Action phi2(bit phi2); // (* always_enabled,prefix="" *) // method Action write(bit we); // endinterface // module mkSystemBus(SystemBus); // endmodule // interface Top; // (* always_ready *) // method bit clkout(); // interface SystemBus cpu; // endinterface // (* synthesize,no_default_clock,no_default_reset,default_gate_unused *) // module mkTop(Clock clk_ref, // (* clocked_by="no_clock" *) Reset rst, // (* clocked_by="no_clock" *) Inout#(Bit#(8)) data, // Top ifc); // let pll <- mkPLL(clk_ref); // let cpu_clk <- mkClockOut(clocked_by(pll.cpu_clk), reset_by(rst)); // Reg#(Bool) data_out_en <- mkReg(False, clocked_by(pll.cpu_clk), reset_by(rst)); // Reg#(Bit#(8)) data_out <- mkReg(0, clocked_by(pll.cpu_clk), reset_by(rst)); // TriState#(Bit#(8)) data_in <- mkTriState(data_out_en, data_out, clocked_by(pll.cpu_clk), reset_by(rst)); // mkConnection(data, data_in.io); // interface SystemBus cpu; // method clkout = cpu_clk.value; // method Action addr(a); // noAction; // endmethod // method Action phi2(v); // noAction; // endmethod // method Action write(bit we); // noAction; // endmethod // //interface data = data_in.io; // endinterface // endmodule endpackage