// 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