// © IBM Corp. 2022 // Licensed under the Apache License, Version 2.0 (the "License"), as modified by the terms below; you may not use the files in this // repository except in compliance with the License as modified. // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 // // Modified Terms: // // 1) For the purpose of the patent license granted to you in Section 3 of the License, the "Work" hereby includes implementations of // the work of authorship in physical form. // // Unless required by applicable law or agreed to in writing, the reference design distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language // governing permissions & limitations under the License. // // Brief explanation of modifications: // // Modification 1: This modification extends the patent license to an implementation of the Work in physical form – i.e., // it unambiguously permits a user to make & use the physical chip. `timescale 1 ps / 1 ps // Custom local eval cell (domino precharge and L/R subarray bit select) module local_eval ( input PRE_b, input RBL_L, input RBL_R, output RBL_O_b ); //wtf hacked 1/2 inverters //toysram_local_pullup PRE_L (.PRE_b(PRE_b), .RBL(RBL_L)); //toysram_local_pullup PRE_R (.PRE_b(PRE_b), .RBL(RBL_R)); sky130_fd_sc_hd__nand2_1 SEL (.A(RBL_L), .B(RBL_R), .Y(RBL_O_b)); endmodule // 2 reads x 12 bits x 2 ports (one quad) module local_eval_comp ( input PRE0_b, input [0:11] RBL0_L, input [0:11] RBL0_R, output [0:11] RBL0_O_b, input PRE1_b, input [0:11] RBL1_L, input [0:11] RBL1_R, output [0:11] RBL1_O_b ); genvar i; for (i = 0; i < 12; i = i + 1) begin local_eval eval_0 (.PRE_b(PRE0_b), .RBL_L(RBL0_L[i]), .RBL_R(RBL0_R[i]), .RBL_O_b(RBL0_O_b[i])); local_eval eval_1 (.PRE_b(PRE1_b), .RBL_L(RBL1_L[i]), .RBL_R(RBL1_R[i]), .RBL_O_b(RBL1_O_b[i])); end endmodule