3 module sim_mouse(inout clk, inout dat);
4 `define CLK_HALF 5000 /* faster sim, should be more like 50000 */
17 $display("sim_mouse: send %x", d);
19 p = ~(d[0] ^ d[1] ^ d[2] ^ d[3] ^
20 d[4] ^ d[5] ^ d[6] ^ d[7]);
21 sr = { 1'b1, p, d, 1'b0 };
26 while(i > 0 && ok) begin
28 $display("Mouse: Clock low, aborting send");
35 sr = { 1'b0, sr[10:1] };
60 while(i > 0 && ok) begin
62 $display("Mouse: Clock low, aborting receive");
68 sr = { dat != 0, sr[10:1] };
71 end // while (i > 0 && ok)
76 // $display("rx shift final: %b", sr);
82 $display("sim_mouse: got %x ok=%b", d, ok);
89 assign clk = aclk ? 1'b0 : 1'bz;
90 assign dat = adat ? 1'b0 : 1'bz;
94 always@(clk, dat) begin
95 while (clk == 0) begin
102 if (cmd == 8'hf4) begin
104 end else if (cmd == 8'hff) begin