|  | // ICEDEV=hx8k-ct256 bash ../icecube.sh sb_ram40.v | 
|  | // ../../icebox/icebox_vlog.py -P sb_ram40.psb sb_ram40.txt | 
|  | // ../../icebox/icebox_explain.py -t '7 21' sb_ram40.txt | 
|  |  | 
|  | module top ( | 
|  | input  [10:0] WADDR, | 
|  | input  [10:0] RADDR, | 
|  | input  [15:0] MASK, | 
|  | input  [15:0] WDATA, | 
|  | output [15:0] RDATA_0, | 
|  | output [ 7:0] RDATA_1, | 
|  | output [ 1:0] RDATA_3, | 
|  | input         WE, WCLKE, WCLK, | 
|  | input         RE, RCLKE, RCLK, | 
|  | output        X | 
|  | ); | 
|  | // Write Mode 0:  8 Bit ADDR, 16 Bit DATA, MASK | 
|  | // Write Mode 1:  9 Bit ADDR,  8 Bit DATA, NO MASK | 
|  | // Write Mode 2: 10 Bit ADDR,  4 Bit DATA, NO MASK | 
|  | // Write Mode 3: 11 Bit ADDR,  2 Bit DATA, NO MASK | 
|  |  | 
|  | SB_RAM40_4K #( | 
|  | .READ_MODE(0), | 
|  | .WRITE_MODE(0) | 
|  | ) ram40_00 ( | 
|  | .WADDR(WADDR[7:0]), | 
|  | .RADDR(RADDR[7:0]), | 
|  | .MASK(MASK), | 
|  | .WDATA(WDATA), | 
|  | .RDATA(RDATA_0), | 
|  | .WE(WE), | 
|  | .WCLKE(WCLKE), | 
|  | .WCLK(WCLK), | 
|  | .RE(RE), | 
|  | .RCLKE(RCLKE), | 
|  | .RCLK(RCLK) | 
|  | ); | 
|  |  | 
|  | SB_RAM40_4K #( | 
|  | .READ_MODE(1), | 
|  | .WRITE_MODE(2) | 
|  | ) ram40_12 ( | 
|  | .WADDR(WADDR[9:0]), | 
|  | .RADDR(RADDR[8:0]), | 
|  | .WDATA(WDATA[3:0]), | 
|  | .RDATA(RDATA_1), | 
|  | .WE(WE), | 
|  | .WCLKE(WCLKE), | 
|  | .WCLK(WCLK), | 
|  | .RE(RE), | 
|  | .RCLKE(RCLKE), | 
|  | .RCLK(RCLK) | 
|  | ); | 
|  |  | 
|  | SB_RAM40_4K #( | 
|  | .READ_MODE(3), | 
|  | .WRITE_MODE(3) | 
|  | ) ram40_33 ( | 
|  | .WADDR(WADDR), | 
|  | .RADDR(RADDR), | 
|  | .WDATA(WDATA[1:0]), | 
|  | .RDATA(RDATA_3), | 
|  | .WE(WE), | 
|  | .WCLKE(WCLKE), | 
|  | .WCLK(WCLK), | 
|  | .RE(RE), | 
|  | .RCLKE(RCLKE), | 
|  | .RCLK(RCLK) | 
|  | ); | 
|  |  | 
|  | SB_LUT4 #( | 
|  | .LUT_INIT(16'b 1000_0000_0000_0000) | 
|  | ) lut ( | 
|  | .O(X), | 
|  | .I0(RDATA_0[0]), | 
|  | .I1(RDATA_0[6]), | 
|  | .I2(RDATA_0[8]), | 
|  | .I3(RDATA_0[14]) | 
|  | ); | 
|  | endmodule |