3 `define defreg(signame,width,regname) reg width regname; wire width signame; assign signame = regname; initial regname = 0;
4 `define input(r, a, a_, w, d) input r; output a_; reg a; assign a_=a; input w d; initial a=0;
5 `define output(r, r_, a, w, d) output r_; input a; reg r; assign r_=r; output w d; initial r=0;
7 `define onread(req, ack) if (!req && ack) ack <= 0; else if (req && !ack) begin ack <=1;
8 `define onwrite(req, ack) if (!req && !ack) req <= 1; else if (req && ack) begin req <= 0;