Update
diff --git a/verilog/rtl/BrqRV_EB1/BrqRV_EB1.sv b/verilog/rtl/BrqRV_EB1/BrqRV_EB1.sv index ba95911..5698e70 100644 --- a/verilog/rtl/BrqRV_EB1/BrqRV_EB1.sv +++ b/verilog/rtl/BrqRV_EB1/BrqRV_EB1.sv
@@ -1213,8 +1213,10 @@ TIMER_LEGAL_EN : 5'h01 }) ( - input logic VPWR, - input logic VGND, +//`ifdef USE_POWER_PINS + inout logic VPWR, + inout logic VGND, +//`endif input logic clk, input logic rst_l, input logic dbg_rst_l, @@ -3965,9 +3967,10 @@ TIMER_LEGAL_EN : 5'h01 }) ( - - input logic VPWR, - input logic VGND, +//`ifdef USE_POWER_PINS + inout logic VPWR, + inout logic VGND, +//`endif input logic clk, input logic rst_l, input logic dccm_clk_override, @@ -21651,10 +21654,10 @@ SB_BUS_TAG : 8'h01 , TIMER_LEGAL_EN : 5'h01 })( - - input logic VPWR, - input logic VGND, - +//`ifdef USE_POWER_PINS + inout logic VPWR, + inout logic VGND, +//`endif input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. input logic rst_l, // reset, active low @@ -21812,8 +21815,10 @@ );*/ sky130_sram_1kbyte_1rw1r_32x256_8 sram( + //`ifdef USE_POWER_PINS .vccd1(VPWR), .vssd1(VGND), + //`endif .clk0(clk), .csb0(~iccm_clken[i]), .web0(~wren_bank[i]), @@ -21873,10 +21878,10 @@ );*/ sky130_sram_1kbyte_1rw1r_32x256_8 sram( - + //`ifdef USE_POWER_PINS .vccd1(VPWR), .vssd1(VGND), - + //`endif .clk0(clk), .csb0(~iccm_clken[i]), .web0(~wren_bank[i]), @@ -27936,10 +27941,10 @@ SB_BUS_TAG : 8'h01 , TIMER_LEGAL_EN : 5'h01 })( - - input logic VPWR, - input logic VGND, - +//`ifdef USE_POWER_PINS + inout logic VPWR, + inout logic VGND, +//`endif input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. input logic rst_l, // reset, active low @@ -28114,10 +28119,10 @@ ); */ sky130_sram_1kbyte_1rw1r_32x256_8 sram( - + //`ifdef USE_POWER_PINS .vccd1(VPWR), .vssd1(VGND), - + //`endif .clk0(clk), .csb0(~dccm_clken[i]), .web0(~wren_bank[i]), @@ -28161,10 +28166,10 @@ .* );*/ sky130_sram_1kbyte_1rw1r_32x256_8 sram( - + //`ifdef USE_POWER_PINS .vccd1(VPWR), .vssd1(VGND), - + //`endif .clk0(clk), .csb0(~dccm_clken[i]), .web0(~wren_bank[i]), @@ -31564,7 +31569,7 @@ logic SE; assign SE = 0; - sky130_fd_sc_hd__dlclkp_1 clkhdr( .VPWR(1'b1), .VGND(1'b0), .CLK(clk), .GCLK(l1clk), .GATE(en)); /*clkhdr ( .*, .EN(en), .CK(clk), .Q(l1clk));*/ + sky130_fd_sc_hd__dlclkp_1 clkhdr( .CLK(clk), .GCLK(l1clk), .GATE(en)); /*clkhdr ( .*, .EN(en), .CK(clk), .Q(l1clk));*/ endmodule // rvclkhdr @@ -31581,7 +31586,7 @@ assign SE = 0; - sky130_fd_sc_hd__dlclkp_1 clkhdr( .VPWR(1'b1), .VGND(1'b0), .CLK(clk), .GCLK(l1clk), .GATE(en)); //clkhdr ( .*, .EN(en), .CK(clk), .Q(l1clk)); + sky130_fd_sc_hd__dlclkp_1 clkhdr( .CLK(clk), .GCLK(l1clk), .GATE(en)); //clkhdr ( .*, .EN(en), .CK(clk), .Q(l1clk)); endmodule
diff --git a/verilog/rtl/BrqRV_EB1/BrqRV_EB1.v b/verilog/rtl/BrqRV_EB1/BrqRV_EB1.v index 454b61b..6915c6a 100644 --- a/verilog/rtl/BrqRV_EB1/BrqRV_EB1.v +++ b/verilog/rtl/BrqRV_EB1/BrqRV_EB1.v
@@ -1,6 +1,8 @@ module eb1_brqrv_wrapper ( - vccd1, - vssd1, +`ifdef USE_POWER_PINS + VPWR, + VGND, +`endif clk, rst_l, dbg_rst_l, @@ -206,8 +208,10 @@ sv2v_cast_1 = inp; endfunction parameter [2270:0] pt = {232'h0808040001c0400000000000010102000060800080103c12160802000c, sv2v_cast_1(4'h0), 5'h01, 5'h01, 6'h03, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 7'h02, 9'h00c, 7'h04, 10'h020, 7'h07, 5'h01, 10'h027, 8'h08, 9'h004, 8'h0f, 36'h0f0040000, 14'h0004, 6'h02, 7'h03, 5'h01, 7'h05, 9'h001, 6'h02, 8'h01, 5'h01, 5'h01, 7'h01, 7'h03, 6'h03, 8'h08, 7'h02, 8'h05, 8'h03, 5'h01, 18'h00200, 7'h04, 11'h040, 5'h01, 5'h00, 11'h047, 9'h00c, 11'h040, 8'h08, 8'h02, 8'h02, 7'h02, 5'h00, 8'h06, 13'h0010, 7'h01, 5'h01, 17'h00080, 7'h06, 9'h00d, 8'h02, 8'h02, 5'h01, 7'h02, 9'h003, 9'h004, 9'h00c, 5'h01, 5'h00, 8'h08, 9'h004, 5'h01, 8'h0a, 36'h0affff000, 14'h0004, 5'h01, 6'h02, 8'h03, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 5'h00, 5'h00, 5'h01, 6'h02, 8'h03, 9'h004, 7'h02, 9'h00c, 8'h04, 5'h00, 5'h00, 36'h0f00c0000, 9'h00f, 8'h01, 8'h0f, 13'h0020, 12'h01f, 13'h0020, 8'h08, 5'h01, 6'h02, 8'h01, 5'h01}; - inout wire vccd1; - inout wire vssd1; +`ifdef USE_POWER_PINS + inout wire VPWR; + inout wire VGND; +`endif input wire clk; input wire rst_l; input wire dbg_rst_l; @@ -818,8 +822,10 @@ .iccm_wren((core_rst ? iccm_wren : iccm_instr_we)), .iccm_wr_data((core_rst ? iccm_wr_data : {7'h00, iccm_instr_wdata, 7'h00, iccm_instr_wdata})), .iccm_wr_size((core_rst ? iccm_wr_size : 3'b010)), - .vccd1(vccd1), - .vssd1(vssd1), + `ifdef USE_POWER_PINS + .VPWR(VPWR), + .VGND(VGND), + `endif .dccm_clk_override(dccm_clk_override), .icm_clk_override(icm_clk_override), .dec_tlu_core_ecc_disable(dec_tlu_core_ecc_disable), @@ -3056,8 +3062,10 @@ end endmodule module eb1_mem ( - vccd1, - vssd1, +`ifdef USE_POWER_PINS + VPWR, + VGND, +`endif clk, rst_l, dccm_clk_override, @@ -3113,8 +3121,10 @@ sv2v_cast_1 = inp; endfunction parameter [2270:0] pt = {232'h0808040001c0400000000000010102000060800080103c12160802000c, sv2v_cast_1(4'h0), 5'h01, 5'h01, 6'h03, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 7'h02, 9'h00c, 7'h04, 10'h020, 7'h07, 5'h01, 10'h027, 8'h08, 9'h004, 8'h0f, 36'h0f0040000, 14'h0004, 6'h02, 7'h03, 5'h01, 7'h05, 9'h001, 6'h02, 8'h01, 5'h01, 5'h01, 7'h01, 7'h03, 6'h03, 8'h08, 7'h02, 8'h05, 8'h03, 5'h01, 18'h00200, 7'h04, 11'h040, 5'h01, 5'h00, 11'h047, 9'h00c, 11'h040, 8'h08, 8'h02, 8'h02, 7'h02, 5'h00, 8'h06, 13'h0010, 7'h01, 5'h01, 17'h00080, 7'h06, 9'h00d, 8'h02, 8'h02, 5'h01, 7'h02, 9'h003, 9'h004, 9'h00c, 5'h01, 5'h00, 8'h08, 9'h004, 5'h01, 8'h0a, 36'h0affff000, 14'h0004, 5'h01, 6'h02, 8'h03, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 5'h00, 5'h00, 5'h01, 6'h02, 8'h03, 9'h004, 7'h02, 9'h00c, 8'h04, 5'h00, 5'h00, 36'h0f00c0000, 9'h00f, 8'h01, 8'h0f, 13'h0020, 12'h01f, 13'h0020, 8'h08, 5'h01, 6'h02, 8'h01, 5'h01}; - inout wire vccd1; - inout wire vssd1; +`ifdef USE_POWER_PINS + inout wire VPWR; + inout wire VGND; +`endif input wire clk; input wire rst_l; input wire dccm_clk_override; @@ -3175,8 +3185,10 @@ if (pt[1365-:5] == 1) begin : Gen_dccm_enable eb1_lsu_dccm_mem #(.pt(pt)) dccm( .clk_override(dccm_clk_override), - .vccd1(vccd1), - .vssd1(vssd1), + `ifdef USE_POWER_PINS + .VPWR(VPWR), + .VGND(VGND), + `endif .clk(clk), .active_clk(active_clk), .rst_l(rst_l), @@ -3216,8 +3228,10 @@ generate if (pt[927-:5]) begin : iccm eb1_ifu_iccm_mem #(.pt(pt)) iccm( - .vccd1(vccd1), - .vssd1(vssd1), + `ifdef USE_POWER_PINS + .VPWR(VPWR), + .VGND(VGND), + `endif .clk(clk), .active_clk(active_clk), .rst_l(rst_l), @@ -15149,8 +15163,10 @@ assign legal = (((((((((((((((((((((((((((((((((!i[13] & !i[12]) & i[11]) & i[1]) & !i[0]) | ((((!i[13] & !i[12]) & i[6]) & i[1]) & !i[0])) | (((!i[15] & !i[13]) & i[11]) & !i[1])) | ((((!i[13] & !i[12]) & i[5]) & i[1]) & !i[0])) | ((((!i[13] & !i[12]) & i[10]) & i[1]) & !i[0])) | (((!i[15] & !i[13]) & i[6]) & !i[1])) | (((i[15] & !i[12]) & !i[1]) & i[0])) | ((((!i[13] & !i[12]) & i[9]) & i[1]) & !i[0])) | (((!i[12] & i[6]) & !i[1]) & i[0])) | (((!i[15] & !i[13]) & i[5]) & !i[1])) | ((((!i[13] & !i[12]) & i[8]) & i[1]) & !i[0])) | (((!i[12] & i[5]) & !i[1]) & i[0])) | (((!i[15] & !i[13]) & i[10]) & !i[1])) | ((((!i[13] & !i[12]) & i[7]) & i[1]) & !i[0])) | ((((i[12] & i[11]) & !i[10]) & !i[1]) & i[0])) | (((!i[15] & !i[13]) & i[9]) & !i[1])) | ((((!i[13] & !i[12]) & i[4]) & i[1]) & !i[0])) | (((i[13] & i[12]) & !i[1]) & i[0])) | (((!i[15] & !i[13]) & i[8]) & !i[1])) | ((((!i[13] & !i[12]) & i[3]) & i[1]) & !i[0])) | (((i[13] & i[4]) & !i[1]) & i[0])) | ((((!i[13] & !i[12]) & i[2]) & i[1]) & !i[0])) | (((!i[15] & !i[13]) & i[7]) & !i[1])) | (((i[13] & i[3]) & !i[1]) & i[0])) | (((i[13] & i[2]) & !i[1]) & i[0])) | ((i[14] & !i[13]) & !i[1])) | (((!i[14] & !i[12]) & !i[1]) & i[0])) | ((((i[15] & !i[13]) & i[12]) & i[1]) & !i[0])) | ((((!i[15] & !i[13]) & !i[12]) & i[1]) & !i[0])) | (((!i[15] & !i[13]) & i[12]) & !i[1])) | ((i[14] & !i[13]) & !i[0]); endmodule module eb1_ifu_iccm_mem ( - vccd1, - vssd1, +`ifdef USE_POWER_PINS + VPWR, + VGND, +`endif clk, active_clk, rst_l, @@ -15172,8 +15188,10 @@ sv2v_cast_1 = inp; endfunction parameter [2270:0] pt = {232'h0808040001c0400000000000010102000060800080103c12160802000c, sv2v_cast_1(4'h0), 5'h01, 5'h01, 6'h03, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 7'h02, 9'h00c, 7'h04, 10'h020, 7'h07, 5'h01, 10'h027, 8'h08, 9'h004, 8'h0f, 36'h0f0040000, 14'h0004, 6'h02, 7'h03, 5'h01, 7'h05, 9'h001, 6'h02, 8'h01, 5'h01, 5'h01, 7'h01, 7'h03, 6'h03, 8'h08, 7'h02, 8'h05, 8'h03, 5'h01, 18'h00200, 7'h04, 11'h040, 5'h01, 5'h00, 11'h047, 9'h00c, 11'h040, 8'h08, 8'h02, 8'h02, 7'h02, 5'h00, 8'h06, 13'h0010, 7'h01, 5'h01, 17'h00080, 7'h06, 9'h00d, 8'h02, 8'h02, 5'h01, 7'h02, 9'h003, 9'h004, 9'h00c, 5'h01, 5'h00, 8'h08, 9'h004, 5'h01, 8'h0a, 36'h0affff000, 14'h0004, 5'h01, 6'h02, 8'h03, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 5'h00, 5'h00, 5'h01, 6'h02, 8'h03, 9'h004, 7'h02, 9'h00c, 8'h04, 5'h00, 5'h00, 36'h0f00c0000, 9'h00f, 8'h01, 8'h0f, 13'h0020, 12'h01f, 13'h0020, 8'h08, 5'h01, 6'h02, 8'h01, 5'h01}; - inout wire vccd1; - inout wire vssd1; +`ifdef USE_POWER_PINS + inout wire VPWR; + inout wire VGND; +`endif input wire clk; input wire active_clk; input wire rst_l; @@ -15277,8 +15295,10 @@ end else if (pt[917-:8] == 8) begin : iccm sky130_sram_1kbyte_1rw1r_32x256_8 sram( - .vccd1(vccd1), - .vssd1(vssd1), + `ifdef USE_POWER_PINS + .vccd1(VPWR), + .vssd1(VGND), + `endif .clk0(clk), .csb0(~iccm_clken[i]), .web0(~wren_bank[i]), @@ -15288,7 +15308,7 @@ .dout0(iccm_bank_dout[(i * 39) + 31-:32]), .clk1(clk), .csb1(1'b1), - .addr1(8'h00), + .addr1(10'h000), .dout1() ); end @@ -15314,8 +15334,10 @@ end else if (pt[917-:8] == 10) begin : iccm sky130_sram_1kbyte_1rw1r_32x256_8 sram( - .vccd1(vccd1), - .vssd1(vssd1), + `ifdef USE_POWER_PINS + .vccd1(VPWR), + .vssd1(VGND), + `endif .clk0(clk), .csb0(~iccm_clken[i]), .web0(~wren_bank[i]), @@ -15325,7 +15347,7 @@ .dout0(iccm_bank_dout[i * 39+:39]), .clk1(clk), .csb1(1'b1), - .addr1(8'h00), + .addr1(10'h000), .dout1() ); end @@ -20591,8 +20613,10 @@ endgenerate endmodule module eb1_lsu_dccm_mem ( - vccd1, - vssd1, +`ifdef USE_POWER_PINS + VPWR, + VGND, +`endif clk, active_clk, rst_l, @@ -20615,8 +20639,10 @@ sv2v_cast_1 = inp; endfunction parameter [2270:0] pt = {232'h0808040001c0400000000000010102000060800080103c12160802000c, sv2v_cast_1(4'h0), 5'h01, 5'h01, 6'h03, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 7'h02, 9'h00c, 7'h04, 10'h020, 7'h07, 5'h01, 10'h027, 8'h08, 9'h004, 8'h0f, 36'h0f0040000, 14'h0004, 6'h02, 7'h03, 5'h01, 7'h05, 9'h001, 6'h02, 8'h01, 5'h01, 5'h01, 7'h01, 7'h03, 6'h03, 8'h08, 7'h02, 8'h05, 8'h03, 5'h01, 18'h00200, 7'h04, 11'h040, 5'h01, 5'h00, 11'h047, 9'h00c, 11'h040, 8'h08, 8'h02, 8'h02, 7'h02, 5'h00, 8'h06, 13'h0010, 7'h01, 5'h01, 17'h00080, 7'h06, 9'h00d, 8'h02, 8'h02, 5'h01, 7'h02, 9'h003, 9'h004, 9'h00c, 5'h01, 5'h00, 8'h08, 9'h004, 5'h01, 8'h0a, 36'h0affff000, 14'h0004, 5'h01, 6'h02, 8'h03, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 36'h000000000, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 5'h00, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 36'h0ffffffff, 5'h00, 5'h00, 5'h01, 6'h02, 8'h03, 9'h004, 7'h02, 9'h00c, 8'h04, 5'h00, 5'h00, 36'h0f00c0000, 9'h00f, 8'h01, 8'h0f, 13'h0020, 12'h01f, 13'h0020, 8'h08, 5'h01, 6'h02, 8'h01, 5'h01}; - inout wire vccd1; - inout wire vssd1; +`ifdef USE_POWER_PINS + inout wire VPWR; + inout wire VGND; +`endif input wire clk; input wire active_clk; input wire rst_l; @@ -20789,8 +20815,10 @@ end else if (DCCM_INDEX_DEPTH == 1024) begin : dccm sky130_sram_1kbyte_1rw1r_32x256_8 sram( - .vccd1(vccd1), - .vssd1(vssd1), + `ifdef USE_POWER_PINS + .vccd1(VPWR), + .vssd1(VGND), + `endif .clk0(clk), .csb0(~dccm_clken[i]), .web0(~wren_bank[i]), @@ -20800,7 +20828,7 @@ .dout0(dccm_bank_dout[i * pt[1360-:10]+:pt[1360-:10]]), .clk1(clk), .csb1(1'b1), - .addr1(8'h00), + .addr1(10'h000), .dout1() ); end @@ -20827,8 +20855,10 @@ end else if (DCCM_INDEX_DEPTH == 256) begin : dccm sky130_sram_1kbyte_1rw1r_32x256_8 sram( - .vccd1(vccd1), - .vssd1(vssd1), + `ifdef USE_POWER_PINS + .vccd1(VPWR), + .vssd1(VGND), + `endif .clk0(clk), .csb0(~dccm_clken[i]), .web0(~wren_bank[i]), @@ -20838,7 +20868,7 @@ .dout0(dccm_bank_dout[(i * pt[1360-:10]) + 31-:32]), .clk1(clk), .csb1(1'b1), - .addr1(8'h00), + .addr1(10'h000), .dout1() ); end @@ -22942,8 +22972,6 @@ wire SE; assign SE = 0; sky130_fd_sc_hd__dlclkp_1 clkhdr( - .VPWR(1'b1), - .VGND(1'b0), .CLK(clk), .GCLK(l1clk), .GATE(en) @@ -22962,8 +22990,6 @@ wire SE; assign SE = 0; sky130_fd_sc_hd__dlclkp_1 clkhdr( - .VPWR(1'b1), - .VGND(1'b0), .CLK(clk), .GCLK(l1clk), .GATE(en)
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v index 6aedda7..a836eed 100644 --- a/verilog/rtl/user_proj_example.v +++ b/verilog/rtl/user_proj_example.v
@@ -131,8 +131,8 @@ //=========================================================================- eb1_brqrv_wrapper brqrv_top ( `ifdef USE_POWER_PINS - .vccd1 ( vccd1 ), - .vssd1 ( vssd1 ), + .VPWR ( vccd1 ), + .VGND ( vssd1 ), `endif .rst_l ( rst ), .dbg_rst_l ( ~wb_rst_i ),