34 lines
601 B
Plaintext
34 lines
601 B
Plaintext
|
package Top;
|
||
|
|
||
|
import GetPut::*;
|
||
|
|
||
|
import UART::*;
|
||
|
|
||
|
(* always_enabled *)
|
||
|
interface Top;
|
||
|
(* prefix="" *)
|
||
|
method Action rx_in((* port="rx_in" *) bit b);
|
||
|
method bit tx_out();
|
||
|
method Bit#(8) leds();
|
||
|
endinterface
|
||
|
|
||
|
(* synthesize *)
|
||
|
module mkTop(Top);
|
||
|
let _ret <- mkUART(100_000_000, 115_200);
|
||
|
disableFlowControl(_ret);
|
||
|
|
||
|
Reg#(Bit#(8)) leds_out <- mkReg(0);
|
||
|
|
||
|
rule recv;
|
||
|
let b <- _ret.receive.get();
|
||
|
_ret.send.put(b);
|
||
|
leds_out <= b;
|
||
|
endrule
|
||
|
|
||
|
method rx_in = _ret.phy.rx_in;
|
||
|
method tx_out = _ret.phy.tx_out;
|
||
|
method leds = leds_out._read;
|
||
|
endmodule
|
||
|
|
||
|
endpackage
|