// Test chip for debug interface // assumes 100 MHz clock, serial in/out - that's it. module cbaf_serdebug_demo ( input clk100, input resetl, // serial lines input rxd, output txd) ; wire [31:0] mem_address ; wire mem_write ; wire [63:0] mem_wrdata ; wire mem_read ; reg [63:0] mem_rddata ; reg mem_ack ; reg clk33 ; reg [1:0] div3 ; reg [63:0] mem[0:511] ; always @ (posedge clk100 or negedge resetl) if (~resetl) begin div3 <= 0 ; clk33 <= 0 ; end else begin div3 <= (div3 == 2) ? 0 : div3 + 1 ; clk33 <= (div3 == 2) ; end always @ (posedge clk33) if (mem_write) mem[mem_address[8:0]] <= mem_wrdata ; always @ (posedge clk33 or negedge resetl) if (~resetl) begin mem_rddata <= 0 ; mem_ack <= 0 ; end else begin mem_ack <= mem_write || mem_read ; mem_rddata <= mem[mem_address[8:0]] ; end cbaf_serdebug serdbg (.txd (txd), .clk33 (clk33), .resetl (resetl), .rxd (rxd), .mem_write (mem_write), .mem_read (mem_read), .mem_address (mem_address), .mem_wrdata (mem_wrdata), .mem_rddata (mem_rddata), .mem_ack (mem_ack)); endmodule