Blob
2 module top(3 output sdram_clk,4 output sdram_cke,5 output sdram_csn,6 output sdram_wen,7 output sdram_rasn,8 output sdram_casn,9 output [12:0] sdram_a,10 output [1:0] sdram_ba,11 output [1:0] sdram_dqm,12 inout [15:0] sdram_d,14 input clk_25mhz,15 input [6:0] btn,16 input [3:0] sw,17 output [7:0] led,18 output wifi_gpio019 );21 reg [25:0] addr = 0;22 reg [31:0] counter = 0;23 wire [31:0] data;24 wire wr, rd, clk_40mhz, rst;26 Clock1 _clk1(27 .clkin(clk_25mhz),28 .clkout0(clk_40mhz),29 .locked()30 );31 SDRAM _sdram(32 .sd_clk(sdram_clk),33 .sd_cke(sdram_cke),34 .sd_d(sdram_d),35 .sd_addr(sdram_a),36 .sd_ba(sdram_ba),37 .sd_dqm(sdram_dqm),38 .sd_cs(sdram_csn),39 .sd_we(sdram_wen),40 .sd_ras(sdram_rasn),41 .sd_cas(sdram_casn),43 .clk(clk_40mhz),44 .resetn(!rst),45 .wmask(wr ? 4'b0001 : 4'b0),46 .rd(rd),47 .addr(addr),48 .din(counter),49 .dout(data),50 .busy(led[7])51 );53 wire change_counter = btn[3] || btn[4];54 wire change_addr = btn[5] || btn[6];56 wire [31:0] next_counter = btn[3] ? counter + 1 : counter - 1;57 wire [25:0] next_addr = btn[5] ? addr - 4 : addr + 4;59 always@ (posedge change_counter or posedge rst)60 if (rst)61 counter <= 0;62 else63 counter <= next_counter;65 always@ (posedge change_addr or posedge rst)66 if (rst)67 addr <= 0;68 else69 addr <= next_addr;71 assign rd = btn[1];72 assign wr = btn[2];73 assign rst = ~btn[0];74 assign led[6:0] = data[6:0];75 endmodule