diff --git a/lambdapdk/asap7/libs/asap7sc7p5t.py b/lambdapdk/asap7/libs/asap7sc7p5t.py index 678d033b..7fd8d85e 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t.py +++ b/lambdapdk/asap7/libs/asap7sc7p5t.py @@ -120,11 +120,15 @@ def _setup_lib(chip, libname, suffix): lib.set('option', 'file', 'openroad_global_connect', libdir + '/apr/openroad/global_connect.tcl') - lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libname}', package='lambdapdk') - register_data_source(lambda_lib) - lambda_lib.add('option', 'ydir', libdir + '/lambda') + libs = [lib] + for libtype in ('stdlib', 'auxlib'): + lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libtype}_{libname}', + package='lambdapdk') + register_data_source(lambda_lib) + lambda_lib.add('option', 'ydir', libdir + f'/lambda/{libtype}') + libs.append(lambda_lib) - return [lib, lambda_lib] + return libs def setup(chip): diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v new file mode 100644 index 00000000..f934ba04 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgand #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable (from positive edge FF) + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (~clk) en_stable <= en | te; + + // assign eclk = clk & en_stable; + +ICGx1_ASAP7_75t_L u0(.CLK(clk), .ENA(en), .SE(te), .GCK(eclk)); + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v new file mode 100644 index 00000000..3070601f --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v @@ -0,0 +1,30 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgor #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (clk) en_stable <= en | te; + + // assign eclk = clk | ~en_stable; + +wire eclk_int; +wire en_bar; + +ICGx1_ASAP7_75t_L u0(.CLK(clk), .ENA(en), .SE(te), .GCK(eclk_int)); + +INVx1_ASAP7_75t_L u1(.A(en), .Y(en_bar)); +OR2x2_ASAP7_75t_L u2(.A(en_bar), .B(eclk_int), .Y(eclk)); + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkmux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkmux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkmux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkmux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_decap.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_decap.v similarity index 91% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_decap.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_decap.v index e863a137..aaec9672 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_decap.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_decap.v @@ -11,4 +11,6 @@ module la_decap #( output vdd ); +DECAPx10_ASAP7_75t_L u0(.VSS(vss), .VDD(vdd)); + endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v similarity index 92% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_drsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v index 38725bb6..1f2c515b 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v @@ -24,7 +24,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_drsync(clk, in, nreset, out); wire _0_; @@ -39,11 +39,11 @@ module la_drsync(clk, in, nreset, out); output out; wire out; wire \shiftreg[0] ; - INVx1_ASAP7_75t_L _3_ ( + INVx2_ASAP7_75t_L _3_ ( .A(_0_), .Y(out) ); - INVx1_ASAP7_75t_L _4_ ( + INVx2_ASAP7_75t_L _4_ ( .A(_1_), .Y(\shiftreg[0] ) ); diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v new file mode 100644 index 00000000..09372306 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v @@ -0,0 +1,51 @@ +//############################################################################# +//# Function: Synchronizer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_dsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize simulation delay + ( + input clk, // clock + input in, // input data + output out // synchronized data + ); + +// reg [STAGES:0] shiftreg; +// always @(posedge clk) +// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; + +// `ifdef SIM +// integer sync_delay; +// always @(posedge clk) +// sync_delay <= {$random} % 2; +// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; +// `else +// assign out = shiftreg[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + assign reg_in = in; + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + wire reg_out_int; + DFFHQNx1_ASAP7_75t_L u0 ( + .CK(clk), + .D(reg_in), + .QN(reg_out_int) + ); + INVx1_ASAP7_75t_L u1(.A(reg_out_int), .Y(reg_out)); + end + endgenerate + + assign out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v similarity index 92% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_iddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v index 2cd3d1c7..4f14141a 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v @@ -25,7 +25,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_iddr(clk, in, outrise, outfall); wire _0_; @@ -39,11 +39,11 @@ module la_iddr(clk, in, outrise, outfall); wire outfall; output outrise; wire outrise; - INVx1_ASAP7_75t_L _2_ ( + INVx2_ASAP7_75t_L _2_ ( .A(_0_), .Y(outfall) ); - INVx1_ASAP7_75t_L _3_ ( + INVx2_ASAP7_75t_L _3_ ( .A(_1_), .Y(inrise) ); diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v similarity index 93% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_isohi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v index 65b09784..fcf4da08 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v @@ -16,7 +16,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_isohi(iso, in, out); input in; diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v similarity index 90% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_isolo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v index c851e8a8..5ced548e 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v @@ -16,7 +16,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_isolo(iso, in, out); wire _0_; @@ -30,7 +30,7 @@ module la_isolo(iso, in, out); .A(iso), .Y(_0_) ); - AND2x2_ASAP7_75t_L _2_ ( + AND2x4_ASAP7_75t_L _2_ ( .A(in), .B(_0_), .Y(out) diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v similarity index 93% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v index 6948adb0..e4136fca 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v @@ -22,7 +22,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_oddr(clk, in0, in1, out); wire _0_; @@ -40,7 +40,7 @@ module la_oddr(clk, in0, in1, out); .A(clk), .Y(_0_) ); - AND2x4_ASAP7_75t_L _3_ ( + AND2x2_ASAP7_75t_L _3_ ( .A(in1_sh), .B(clk), .Y(_1_) diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v similarity index 61% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_antenna.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v index 7e2d48ae..d9584acf 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_antenna.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v @@ -1,12 +1,19 @@ //############################################################################# -//# Function: Antenna Diode # +//# Function: Non-inverting buffer with supplies # //# Copyright: Lambda Project Authors. All rights Reserved. # //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_antenna #(parameter PROP = "DEFAULT") ( +module la_pwrbuf #( + parameter PROP = "DEFAULT" + ) + ( + input vdd, input vss, + input a, output z ); +BUFx2_ASAP7_75t_L u0(.A(a), .Y(z), .VSS(vss), .VDD(vdd)); + endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v new file mode 100644 index 00000000..7219240f --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v @@ -0,0 +1,64 @@ +//############################################################################# +//# Function: Reset synchronizer (async assert, sync deassert) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_rsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize sync + + ( + input clk, // clock + input nrst_in, // async reset input + output nrst_out // async assert, sync deassert reset + ); + +// reg [STAGES:0] sync_pipe; +// integer sync_delay; + + +// always @(posedge clk or negedge nrst_in) +// if (!nrst_in) +// sync_pipe[STAGES:0] <= 'b0; +// else +// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; + +// `ifdef SIM +// always @(posedge clk) +// sync_delay <= {$random} % 2; + +// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; +// `else +// assign nrst_out = sync_pipe[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + LOGIC1_X1 u1 ( + .Z(reg_in) + ); + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + wire reg_out_int; + wire setn; + TIEHIx1_ASAP7_75t_L u1(.H(setn)); + DFFASRHQNx1_ASAP7_75t_L u0 ( + .CK(clk), + .RESETN(nrest_in), + .SETN(setn), + .D(reg_in), + .QN(reg_out_int) + ); + INVx1_ASAP7_75t_L u2(.A(reg_out_int), .Y(reg_out)); + end + endgenerate + + assign nrst_out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgand.v deleted file mode 100644 index 3edac5f6..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgand.v +++ /dev/null @@ -1,52 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "And" Clock Gating Cell (And) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgand #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock input -// input te, // test enable -// input en, // enable (from positive edge FF) -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @(clk or en or te) if (~clk) en_stable <= en | te; -// -// assign eclk = clk & en_stable; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_clkicgand(clk, te, en, eclk); - wire _0_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - AND2x2_ASAP7_75t_L _1_ ( - .A(en_stable), - .B(clk), - .Y(eclk) - ); - OR2x2_ASAP7_75t_L _2_ ( - .A(te), - .B(en), - .Y(_0_) - ); - DLLx1_ASAP7_75t_L _3_ ( - .CLK(clk), - .D(_0_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgor.v deleted file mode 100644 index 3864c9ff..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgor.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "Or" Clock Gating Cell # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgor #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock input -// input te, // test enable -// input en, // enable -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @(clk or en or te) if (clk) en_stable <= en | te; -// -// assign eclk = clk | ~en_stable; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_clkicgor(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - OR2x2_ASAP7_75t_L _2_ ( - .A(te), - .B(en), - .Y(_0_) - ); - INVx1_ASAP7_75t_L _3_ ( - .A(clk), - .Y(_1_) - ); - NAND2x1_ASAP7_75t_L _4_ ( - .A(_1_), - .B(en_stable), - .Y(eclk) - ); - DHLx1_ASAP7_75t_L _5_ ( - .CLK(clk), - .D(_0_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dsync.v deleted file mode 100644 index 2ea00edb..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dsync.v +++ /dev/null @@ -1,66 +0,0 @@ -// //############################################################################# -// //# Function: Synchronizer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_dsync #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock -// input in, // input data -// output out // synchronized data -// ); -// -// localparam STAGES = 2; -// localparam RND = 1; -// -// reg [STAGES:0] shiftreg; -// integer sync_delay; -// -// always @(posedge clk) begin -// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; -// `ifndef SYNTHESIS -// sync_delay <= {$random} % 2; -// `endif -// end -// -// `ifdef SYNTHESIS -// assign out = shiftreg[STAGES-1]; -// `else -// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_dsync(clk, in, out); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - output out; - wire out; - wire \shiftreg[0] ; - INVx1_ASAP7_75t_L _2_ ( - .A(_0_), - .Y(out) - ); - INVx1_ASAP7_75t_L _3_ ( - .A(_1_), - .Y(\shiftreg[0] ) - ); - DFFHQNx1_ASAP7_75t_L _4_ ( - .CLK(clk), - .D(in), - .QN(_1_) - ); - DFFHQNx1_ASAP7_75t_L _5_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .QN(_0_) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_footer.v +++ /dev/null @@ -1,18 +0,0 @@ -//############################################################################# -//# Function: Footer circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_footer #( - parameter PROP = "DEFAULT" -) ( - input nsleep, // 0 = disabled ground - input vssin, // input supply - output vssout // gated output supply -); - - // Primitive Device - nmos m0 (vddout, vddin, nsleep); //d,s,g - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_header.v +++ /dev/null @@ -1,18 +0,0 @@ -//############################################################################# -//# Function: Header circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_header #( - parameter PROP = "DEFAULT" -) ( - input sleep, // 1 = disabled vdd - input vddin, // input supply - output vddout // gated output supply -); - - // Primitive Device - pmos m0 (vddout, vssin, sleep); //d,s,g - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_keeper.v +++ /dev/null @@ -1,13 +0,0 @@ -//############################################################################# -//# Function: Charge Keeper Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_keeper #( - parameter PROP = "DEFAULT" -) ( - inout z -); - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_pwrbuf.v deleted file mode 100644 index e10372e3..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_pwrbuf.v +++ /dev/null @@ -1,36 +0,0 @@ -// //############################################################################# -// //# Function: Non-inverting buffer with supplies # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_pwrbuf #( -// parameter TARGET = "DEFAULT", // "SIM" -// parameter PROP = "DEFAULT" -// ) ( -// input vdd, -// input vss, -// input a, -// output z -// ); -// -// generate -// if (TARGET == "SIM") assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -// else assign z = a; -// endgenerate -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_pwrbuf(vdd, vss, a, z); - input a; - wire a; - input vdd; - wire vdd; - input vss; - wire vss; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_rsync.v deleted file mode 100644 index a47f3d2a..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_rsync.v +++ /dev/null @@ -1,75 +0,0 @@ -// //############################################################################# -// //# Function: Reset synchronizer (async assert, sync deassert) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_rsync #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock -// input nrst_in, // async reset input -// output nrst_out // async assert, sync deassert reset -// ); -// -// localparam STAGES = 2; -// localparam RND = 1; -// -// reg [STAGES:0] sync_pipe; -// integer sync_delay; -// -// `ifndef SYNTHESIS -// always @(posedge clk) sync_delay <= {$random} % 2; -// `endif -// -// always @(posedge clk or negedge nrst_in) -// if (!nrst_in) sync_pipe[STAGES:0] <= 'b0; -// else sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; -// -// `ifdef SYNTHESIS -// assign nrst_out = sync_pipe[STAGES-1]; -// `else -// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_rsync(clk, nrst_in, nrst_out); - wire _0_; - wire _1_; - wire _2_; - input clk; - wire clk; - input nrst_in; - wire nrst_in; - output nrst_out; - wire nrst_out; - wire \sync_pipe[0] ; - INVx1_ASAP7_75t_L _3_ ( - .A(_0_), - .Y(nrst_out) - ); - INVx1_ASAP7_75t_L _4_ ( - .A(_1_), - .Y(\sync_pipe[0] ) - ); - DFFASRHQNx1_ASAP7_75t_L _5_ ( - .CLK(clk), - .D(_2_), - .QN(_1_), - .RESETN(_2_), - .SETN(nrst_in) - ); - DFFASRHQNx1_ASAP7_75t_L _6_ ( - .CLK(clk), - .D(\sync_pipe[0] ), - .QN(_0_), - .RESETN(_2_), - .SETN(nrst_in) - ); - TIEHIx1_ASAP7_75t_L _7_ ( - .H(_2_) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tbuf.v deleted file mode 100644 index 1e0334a1..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tbuf.v +++ /dev/null @@ -1,29 +0,0 @@ -// //############################################################################# -// //# Function: Tristate Buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_tbuf #( -// parameter PROP = "DEFAULT" -// ) ( -// input a, -// input oe, -// output z -// ); -// -// assign z = oe ? a : 1'bz; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_and2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_and2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_and2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_and2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_and3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_and3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_and3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_and3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_and4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_and4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_and4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_and4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao21.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao211.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao22.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao221.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao222.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao31.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao311.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao32.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao33.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_ao33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_ao33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi21.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi211.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi22.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi221.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi222.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi31.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi311.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi32.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi33.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_aoi33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_aoi33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_buf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_buf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_buf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_buf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkbuf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkinv.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkinv.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkinv.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkinv.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clknand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clknand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clknand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clknand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clknor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clknor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clknor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clknor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkxor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkxor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkxor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_clkxor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_csa32.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_csa32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_csa32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_csa32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_csa42.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_csa42.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_csa42.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_csa42.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_delay.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_delay.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_delay.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_delay.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffnq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffnq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffnq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffnq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffrq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffrq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffrq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffrq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffrqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffrqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffrqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffrqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffsq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffsq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffsq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffsq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffsqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffsqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dffsqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dffsqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux5.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux5.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux5.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux5.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux6.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux6.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux6.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux6.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux7.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux7.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux7.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux7.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux8.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux8.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dmux8.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_dmux8.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_inv.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_inv.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_inv.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_inv.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_latnq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_latnq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_latnq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_latnq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_latq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_latq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_latq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_latq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_mux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_mux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_mux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_mux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_mux3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_mux3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_mux3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_mux3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_mux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_mux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_mux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_mux4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_muxi2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_muxi2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_muxi2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_muxi2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_muxi3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_muxi3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_muxi3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_muxi3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_muxi4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_muxi4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_muxi4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_muxi4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nand3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nand3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nand3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nand3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nand4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nand4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nand4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nand4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_nor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_nor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa21.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa211.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa22.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa221.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa222.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa31.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa311.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa32.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa33.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oa33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oa33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai21.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai22.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai221.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai222.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai31.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai311.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai32.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai33.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oai33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_oai33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_or2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_or2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_or2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_or2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_or3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_or3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_or3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_or3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_or4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_or4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_or4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_or4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffrq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffrq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffrq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffrq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffrqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffrqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffrqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffrqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffsq.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffsq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffsq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffsq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffsqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffsqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_sdffsqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_sdffsqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tiehi.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_tiehi.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tiehi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_tiehi.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tielo.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_tielo.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tielo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_tielo.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xnor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xnor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xnor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xnor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xnor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xnor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xnor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xnor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xnor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xnor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xnor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xnor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_xor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/stdlib/la_xor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v new file mode 100644 index 00000000..4d442f36 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgand #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable (from positive edge FF) + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (~clk) en_stable <= en | te; + + // assign eclk = clk & en_stable; + +ICGx1_ASAP7_75t_R u0(.CLK(clk), .ENA(en), .SE(te), .GCK(eclk)); + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v new file mode 100644 index 00000000..63cb8e0c --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v @@ -0,0 +1,30 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgor #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (clk) en_stable <= en | te; + + // assign eclk = clk | ~en_stable; + +wire eclk_int; +wire en_bar; + +ICGx1_ASAP7_75t_R u0(.CLK(clk), .ENA(en), .SE(te), .GCK(eclk_int)); + +INVx1_ASAP7_75t_R u1(.A(en), .Y(en_bar)); +OR2x2_ASAP7_75t_R u2(.A(en_bar), .B(eclk_int), .Y(eclk)); + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkmux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkmux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkmux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkmux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_decap.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_decap.v similarity index 91% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_decap.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_decap.v index e863a137..bcb3d639 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_decap.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_decap.v @@ -11,4 +11,6 @@ module la_decap #( output vdd ); +DECAPx10_ASAP7_75t_R u0(.VSS(vss), .VDD(vdd)); + endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v similarity index 92% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_drsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v index 21d1054f..7d7611c7 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v @@ -24,7 +24,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_drsync(clk, in, nreset, out); wire _0_; @@ -39,11 +39,11 @@ module la_drsync(clk, in, nreset, out); output out; wire out; wire \shiftreg[0] ; - INVx1_ASAP7_75t_R _3_ ( + INVx2_ASAP7_75t_R _3_ ( .A(_0_), .Y(out) ); - INVx1_ASAP7_75t_R _4_ ( + INVx2_ASAP7_75t_R _4_ ( .A(_1_), .Y(\shiftreg[0] ) ); diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v new file mode 100644 index 00000000..b3e5220d --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v @@ -0,0 +1,51 @@ +//############################################################################# +//# Function: Synchronizer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_dsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize simulation delay + ( + input clk, // clock + input in, // input data + output out // synchronized data + ); + +// reg [STAGES:0] shiftreg; +// always @(posedge clk) +// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; + +// `ifdef SIM +// integer sync_delay; +// always @(posedge clk) +// sync_delay <= {$random} % 2; +// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; +// `else +// assign out = shiftreg[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + assign reg_in = in; + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + wire reg_out_int; + DFFHQNx1_ASAP7_75t_R u0 ( + .CK(clk), + .D(reg_in), + .QN(reg_out_int) + ); + INVx1_ASAP7_75t_R u1(.A(reg_out_int), .Y(reg_out)); + end + endgenerate + + assign out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v similarity index 92% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_iddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v index 44122d44..89f43669 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v @@ -25,7 +25,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_iddr(clk, in, outrise, outfall); wire _0_; @@ -39,11 +39,11 @@ module la_iddr(clk, in, outrise, outfall); wire outfall; output outrise; wire outrise; - INVx1_ASAP7_75t_R _2_ ( + INVx2_ASAP7_75t_R _2_ ( .A(_0_), .Y(outfall) ); - INVx1_ASAP7_75t_R _3_ ( + INVx2_ASAP7_75t_R _3_ ( .A(_1_), .Y(inrise) ); diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v similarity index 93% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_isohi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v index 0c30f43d..5abb17ec 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v @@ -16,7 +16,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_isohi(iso, in, out); input in; diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v similarity index 90% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_isolo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v index f7ae329d..94fef07c 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v @@ -16,7 +16,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_isolo(iso, in, out); wire _0_; @@ -30,7 +30,7 @@ module la_isolo(iso, in, out); .A(iso), .Y(_0_) ); - AND2x2_ASAP7_75t_R _2_ ( + AND2x4_ASAP7_75t_R _2_ ( .A(in), .B(_0_), .Y(out) diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v similarity index 93% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v index cb910d3b..04828c57 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v @@ -22,7 +22,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_oddr(clk, in0, in1, out); wire _0_; @@ -40,7 +40,7 @@ module la_oddr(clk, in0, in1, out); .A(clk), .Y(_0_) ); - AND2x4_ASAP7_75t_R _3_ ( + AND2x2_ASAP7_75t_R _3_ ( .A(in1_sh), .B(clk), .Y(_1_) diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v similarity index 61% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_antenna.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v index 7e2d48ae..95c44f09 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_antenna.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v @@ -1,12 +1,19 @@ //############################################################################# -//# Function: Antenna Diode # +//# Function: Non-inverting buffer with supplies # //# Copyright: Lambda Project Authors. All rights Reserved. # //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_antenna #(parameter PROP = "DEFAULT") ( +module la_pwrbuf #( + parameter PROP = "DEFAULT" + ) + ( + input vdd, input vss, + input a, output z ); +BUFx2_ASAP7_75t_R u0(.A(a), .Y(z), .VSS(vss), .VDD(vdd)); + endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v new file mode 100644 index 00000000..94efc434 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v @@ -0,0 +1,64 @@ +//############################################################################# +//# Function: Reset synchronizer (async assert, sync deassert) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_rsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize sync + + ( + input clk, // clock + input nrst_in, // async reset input + output nrst_out // async assert, sync deassert reset + ); + +// reg [STAGES:0] sync_pipe; +// integer sync_delay; + + +// always @(posedge clk or negedge nrst_in) +// if (!nrst_in) +// sync_pipe[STAGES:0] <= 'b0; +// else +// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; + +// `ifdef SIM +// always @(posedge clk) +// sync_delay <= {$random} % 2; + +// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; +// `else +// assign nrst_out = sync_pipe[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + LOGIC1_X1 u1 ( + .Z(reg_in) + ); + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + wire reg_out_int; + wire setn; + TIEHIx1_ASAP7_75t_R u1(.H(setn)); + DFFASRHQNx1_ASAP7_75t_R u0 ( + .CK(clk), + .RESETN(nrest_in), + .SETN(setn), + .D(reg_in), + .QN(reg_out_int) + ); + INVx1_ASAP7_75t_R u2(.A(reg_out_int), .Y(reg_out)); + end + endgenerate + + assign nrst_out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgand.v deleted file mode 100644 index 7d3fdbda..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgand.v +++ /dev/null @@ -1,52 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "And" Clock Gating Cell (And) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgand #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock input -// input te, // test enable -// input en, // enable (from positive edge FF) -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @(clk or en or te) if (~clk) en_stable <= en | te; -// -// assign eclk = clk & en_stable; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_clkicgand(clk, te, en, eclk); - wire _0_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - AND2x2_ASAP7_75t_R _1_ ( - .A(en_stable), - .B(clk), - .Y(eclk) - ); - OR2x2_ASAP7_75t_R _2_ ( - .A(te), - .B(en), - .Y(_0_) - ); - DLLx1_ASAP7_75t_R _3_ ( - .CLK(clk), - .D(_0_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgor.v deleted file mode 100644 index 77582a6c..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgor.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "Or" Clock Gating Cell # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgor #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock input -// input te, // test enable -// input en, // enable -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @(clk or en or te) if (clk) en_stable <= en | te; -// -// assign eclk = clk | ~en_stable; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_clkicgor(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - OR2x2_ASAP7_75t_R _2_ ( - .A(te), - .B(en), - .Y(_0_) - ); - INVx1_ASAP7_75t_R _3_ ( - .A(clk), - .Y(_1_) - ); - NAND2x1_ASAP7_75t_R _4_ ( - .A(_1_), - .B(en_stable), - .Y(eclk) - ); - DHLx1_ASAP7_75t_R _5_ ( - .CLK(clk), - .D(_0_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dsync.v deleted file mode 100644 index cdd5a2f5..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dsync.v +++ /dev/null @@ -1,66 +0,0 @@ -// //############################################################################# -// //# Function: Synchronizer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_dsync #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock -// input in, // input data -// output out // synchronized data -// ); -// -// localparam STAGES = 2; -// localparam RND = 1; -// -// reg [STAGES:0] shiftreg; -// integer sync_delay; -// -// always @(posedge clk) begin -// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; -// `ifndef SYNTHESIS -// sync_delay <= {$random} % 2; -// `endif -// end -// -// `ifdef SYNTHESIS -// assign out = shiftreg[STAGES-1]; -// `else -// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_dsync(clk, in, out); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - output out; - wire out; - wire \shiftreg[0] ; - INVx1_ASAP7_75t_R _2_ ( - .A(_0_), - .Y(out) - ); - INVx1_ASAP7_75t_R _3_ ( - .A(_1_), - .Y(\shiftreg[0] ) - ); - DFFHQNx1_ASAP7_75t_R _4_ ( - .CLK(clk), - .D(in), - .QN(_1_) - ); - DFFHQNx1_ASAP7_75t_R _5_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .QN(_0_) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_footer.v +++ /dev/null @@ -1,18 +0,0 @@ -//############################################################################# -//# Function: Footer circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_footer #( - parameter PROP = "DEFAULT" -) ( - input nsleep, // 0 = disabled ground - input vssin, // input supply - output vssout // gated output supply -); - - // Primitive Device - nmos m0 (vddout, vddin, nsleep); //d,s,g - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_header.v +++ /dev/null @@ -1,18 +0,0 @@ -//############################################################################# -//# Function: Header circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_header #( - parameter PROP = "DEFAULT" -) ( - input sleep, // 1 = disabled vdd - input vddin, // input supply - output vddout // gated output supply -); - - // Primitive Device - pmos m0 (vddout, vssin, sleep); //d,s,g - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_keeper.v +++ /dev/null @@ -1,13 +0,0 @@ -//############################################################################# -//# Function: Charge Keeper Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_keeper #( - parameter PROP = "DEFAULT" -) ( - inout z -); - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_pwrbuf.v deleted file mode 100644 index e10372e3..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_pwrbuf.v +++ /dev/null @@ -1,36 +0,0 @@ -// //############################################################################# -// //# Function: Non-inverting buffer with supplies # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_pwrbuf #( -// parameter TARGET = "DEFAULT", // "SIM" -// parameter PROP = "DEFAULT" -// ) ( -// input vdd, -// input vss, -// input a, -// output z -// ); -// -// generate -// if (TARGET == "SIM") assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -// else assign z = a; -// endgenerate -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_pwrbuf(vdd, vss, a, z); - input a; - wire a; - input vdd; - wire vdd; - input vss; - wire vss; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_rsync.v deleted file mode 100644 index ece6d79d..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_rsync.v +++ /dev/null @@ -1,75 +0,0 @@ -// //############################################################################# -// //# Function: Reset synchronizer (async assert, sync deassert) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_rsync #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock -// input nrst_in, // async reset input -// output nrst_out // async assert, sync deassert reset -// ); -// -// localparam STAGES = 2; -// localparam RND = 1; -// -// reg [STAGES:0] sync_pipe; -// integer sync_delay; -// -// `ifndef SYNTHESIS -// always @(posedge clk) sync_delay <= {$random} % 2; -// `endif -// -// always @(posedge clk or negedge nrst_in) -// if (!nrst_in) sync_pipe[STAGES:0] <= 'b0; -// else sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; -// -// `ifdef SYNTHESIS -// assign nrst_out = sync_pipe[STAGES-1]; -// `else -// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_rsync(clk, nrst_in, nrst_out); - wire _0_; - wire _1_; - wire _2_; - input clk; - wire clk; - input nrst_in; - wire nrst_in; - output nrst_out; - wire nrst_out; - wire \sync_pipe[0] ; - INVx1_ASAP7_75t_R _3_ ( - .A(_0_), - .Y(nrst_out) - ); - INVx1_ASAP7_75t_R _4_ ( - .A(_1_), - .Y(\sync_pipe[0] ) - ); - DFFASRHQNx1_ASAP7_75t_R _5_ ( - .CLK(clk), - .D(_2_), - .QN(_1_), - .RESETN(_2_), - .SETN(nrst_in) - ); - DFFASRHQNx1_ASAP7_75t_R _6_ ( - .CLK(clk), - .D(\sync_pipe[0] ), - .QN(_0_), - .RESETN(_2_), - .SETN(nrst_in) - ); - TIEHIx1_ASAP7_75t_R _7_ ( - .H(_2_) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tbuf.v deleted file mode 100644 index 1e0334a1..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tbuf.v +++ /dev/null @@ -1,29 +0,0 @@ -// //############################################################################# -// //# Function: Tristate Buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_tbuf #( -// parameter PROP = "DEFAULT" -// ) ( -// input a, -// input oe, -// output z -// ); -// -// assign z = oe ? a : 1'bz; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_and2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_and2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_and2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_and2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_and3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_and3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_and3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_and3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_and4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_and4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_and4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_and4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao21.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao211.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao22.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao221.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao222.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao31.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao311.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao32.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao33.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_ao33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_ao33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi21.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi211.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi22.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi221.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi222.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi31.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi311.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi32.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi33.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_aoi33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_aoi33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_buf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_buf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_buf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_buf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkbuf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkinv.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkinv.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkinv.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkinv.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clknand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clknand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clknand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clknand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clknor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clknor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clknor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clknor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkxor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkxor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkxor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_clkxor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_csa32.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_csa32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_csa32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_csa32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_csa42.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_csa42.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_csa42.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_csa42.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_delay.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_delay.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_delay.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_delay.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffnq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffnq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffnq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffnq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffrq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffrq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffrq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffrq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffrqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffrqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffrqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffrqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffsq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffsq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffsq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffsq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffsqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffsqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dffsqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dffsqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux5.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux5.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux5.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux5.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux6.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux6.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux6.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux6.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux7.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux7.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux7.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux7.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux8.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux8.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dmux8.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_dmux8.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_inv.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_inv.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_inv.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_inv.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_latnq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_latnq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_latnq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_latnq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_latq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_latq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_latq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_latq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_mux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_mux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_mux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_mux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_mux3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_mux3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_mux3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_mux3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_mux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_mux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_mux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_mux4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_muxi2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_muxi2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_muxi2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_muxi2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_muxi3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_muxi3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_muxi3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_muxi3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_muxi4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_muxi4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_muxi4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_muxi4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nand3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nand3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nand3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nand3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nand4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nand4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nand4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nand4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_nor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_nor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa21.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa211.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa22.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa221.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa222.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa31.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa311.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa32.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa33.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oa33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oa33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai21.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai22.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai221.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai222.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai31.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai311.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai32.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai33.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oai33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_oai33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_or2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_or2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_or2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_or2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_or3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_or3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_or3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_or3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_or4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_or4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_or4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_or4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffrq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffrq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffrq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffrq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffrqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffrqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffrqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffrqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffsq.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffsq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffsq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffsq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffsqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffsqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_sdffsqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_sdffsqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tiehi.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_tiehi.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tiehi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_tiehi.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tielo.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_tielo.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tielo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_tielo.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xnor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xnor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xnor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xnor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xnor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xnor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xnor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xnor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xnor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xnor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xnor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xnor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_xor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/stdlib/la_xor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v new file mode 100644 index 00000000..844e7a49 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgand #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable (from positive edge FF) + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (~clk) en_stable <= en | te; + + // assign eclk = clk & en_stable; + +ICGx1_ASAP7_75t_SL u0(.CLK(clk), .ENA(en), .SE(te), .GCK(eclk)); + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v new file mode 100644 index 00000000..23e553da --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v @@ -0,0 +1,30 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgor #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (clk) en_stable <= en | te; + + // assign eclk = clk | ~en_stable; + +wire eclk_int; +wire en_bar; + +ICGx1_ASAP7_75t_SL u0(.CLK(clk), .ENA(en), .SE(te), .GCK(eclk_int)); + +INVx1_ASAP7_75t_SL u1(.A(en), .Y(en_bar)); +OR2x2_ASAP7_75t_SL u2(.A(en_bar), .B(eclk_int), .Y(eclk)); + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkmux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkmux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkmux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkmux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_decap.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_decap.v similarity index 91% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_decap.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_decap.v index e863a137..e80f5554 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_decap.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_decap.v @@ -11,4 +11,6 @@ module la_decap #( output vdd ); +DECAPx10_ASAP7_75t_SL u0(.VSS(vss), .VDD(vdd)); + endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v similarity index 92% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_drsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v index d053b37d..08f43a39 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v @@ -24,7 +24,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_drsync(clk, in, nreset, out); wire _0_; @@ -39,11 +39,11 @@ module la_drsync(clk, in, nreset, out); output out; wire out; wire \shiftreg[0] ; - INVx1_ASAP7_75t_SL _3_ ( + INVx2_ASAP7_75t_SL _3_ ( .A(_0_), .Y(out) ); - INVx1_ASAP7_75t_SL _4_ ( + INVx2_ASAP7_75t_SL _4_ ( .A(_1_), .Y(\shiftreg[0] ) ); diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v new file mode 100644 index 00000000..569c841f --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v @@ -0,0 +1,51 @@ +//############################################################################# +//# Function: Synchronizer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_dsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize simulation delay + ( + input clk, // clock + input in, // input data + output out // synchronized data + ); + +// reg [STAGES:0] shiftreg; +// always @(posedge clk) +// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; + +// `ifdef SIM +// integer sync_delay; +// always @(posedge clk) +// sync_delay <= {$random} % 2; +// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; +// `else +// assign out = shiftreg[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + assign reg_in = in; + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + wire reg_out_int; + DFFHQNx1_ASAP7_75t_SL u0 ( + .CK(clk), + .D(reg_in), + .QN(reg_out_int) + ); + INVx1_ASAP7_75t_SL u1(.A(reg_out_int), .Y(reg_out)); + end + endgenerate + + assign out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v similarity index 92% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_iddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v index 51867424..bf36b840 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v @@ -25,7 +25,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_iddr(clk, in, outrise, outfall); wire _0_; @@ -39,11 +39,11 @@ module la_iddr(clk, in, outrise, outfall); wire outfall; output outrise; wire outrise; - INVx1_ASAP7_75t_SL _2_ ( + INVx2_ASAP7_75t_SL _2_ ( .A(_0_), .Y(outfall) ); - INVx1_ASAP7_75t_SL _3_ ( + INVx2_ASAP7_75t_SL _3_ ( .A(_1_), .Y(inrise) ); diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v similarity index 93% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_isohi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v index b8d3101c..ecd8b687 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v @@ -16,7 +16,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_isohi(iso, in, out); input in; diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v similarity index 90% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_isolo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v index b7ddd134..20d1ef34 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v @@ -16,7 +16,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_isolo(iso, in, out); wire _0_; @@ -30,7 +30,7 @@ module la_isolo(iso, in, out); .A(iso), .Y(_0_) ); - AND2x2_ASAP7_75t_SL _2_ ( + AND2x4_ASAP7_75t_SL _2_ ( .A(in), .B(_0_), .Y(out) diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v similarity index 95% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v index f1731df2..ab70bc08 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v @@ -22,7 +22,7 @@ // // endmodule -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_oddr(clk, in0, in1, out); wire _0_; diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v similarity index 60% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_antenna.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v index 7e2d48ae..59d6f08c 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_antenna.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v @@ -1,12 +1,19 @@ //############################################################################# -//# Function: Antenna Diode # +//# Function: Non-inverting buffer with supplies # //# Copyright: Lambda Project Authors. All rights Reserved. # //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_antenna #(parameter PROP = "DEFAULT") ( +module la_pwrbuf #( + parameter PROP = "DEFAULT" + ) + ( + input vdd, input vss, + input a, output z ); +BUFx2_ASAP7_75t_SL u0(.A(a), .Y(z), .VSS(vss), .VDD(vdd)); + endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v new file mode 100644 index 00000000..924391cb --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v @@ -0,0 +1,64 @@ +//############################################################################# +//# Function: Reset synchronizer (async assert, sync deassert) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_rsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize sync + + ( + input clk, // clock + input nrst_in, // async reset input + output nrst_out // async assert, sync deassert reset + ); + +// reg [STAGES:0] sync_pipe; +// integer sync_delay; + + +// always @(posedge clk or negedge nrst_in) +// if (!nrst_in) +// sync_pipe[STAGES:0] <= 'b0; +// else +// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; + +// `ifdef SIM +// always @(posedge clk) +// sync_delay <= {$random} % 2; + +// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; +// `else +// assign nrst_out = sync_pipe[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + LOGIC1_X1 u1 ( + .Z(reg_in) + ); + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + wire reg_out_int; + wire setn; + TIEHIx1_ASAP7_75t_SL u1(.H(setn)); + DFFASRHQNx1_ASAP7_75t_SL u0 ( + .CK(clk), + .RESETN(nrest_in), + .SETN(setn), + .D(reg_in), + .QN(reg_out_int) + ); + INVx1_ASAP7_75t_SL u2(.A(reg_out_int), .Y(reg_out)); + end + endgenerate + + assign nrst_out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgand.v deleted file mode 100644 index 39608888..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgand.v +++ /dev/null @@ -1,52 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "And" Clock Gating Cell (And) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgand #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock input -// input te, // test enable -// input en, // enable (from positive edge FF) -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @(clk or en or te) if (~clk) en_stable <= en | te; -// -// assign eclk = clk & en_stable; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_clkicgand(clk, te, en, eclk); - wire _0_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - AND2x2_ASAP7_75t_SL _1_ ( - .A(en_stable), - .B(clk), - .Y(eclk) - ); - OR2x2_ASAP7_75t_SL _2_ ( - .A(te), - .B(en), - .Y(_0_) - ); - DLLx1_ASAP7_75t_SL _3_ ( - .CLK(clk), - .D(_0_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgor.v deleted file mode 100644 index 28f8c65f..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgor.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "Or" Clock Gating Cell # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgor #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock input -// input te, // test enable -// input en, // enable -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @(clk or en or te) if (clk) en_stable <= en | te; -// -// assign eclk = clk | ~en_stable; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_clkicgor(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - OR2x2_ASAP7_75t_SL _2_ ( - .A(te), - .B(en), - .Y(_0_) - ); - INVx1_ASAP7_75t_SL _3_ ( - .A(clk), - .Y(_1_) - ); - NAND2x1_ASAP7_75t_SL _4_ ( - .A(_1_), - .B(en_stable), - .Y(eclk) - ); - DHLx1_ASAP7_75t_SL _5_ ( - .CLK(clk), - .D(_0_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dsync.v deleted file mode 100644 index a61f5f65..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dsync.v +++ /dev/null @@ -1,66 +0,0 @@ -// //############################################################################# -// //# Function: Synchronizer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_dsync #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock -// input in, // input data -// output out // synchronized data -// ); -// -// localparam STAGES = 2; -// localparam RND = 1; -// -// reg [STAGES:0] shiftreg; -// integer sync_delay; -// -// always @(posedge clk) begin -// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; -// `ifndef SYNTHESIS -// sync_delay <= {$random} % 2; -// `endif -// end -// -// `ifdef SYNTHESIS -// assign out = shiftreg[STAGES-1]; -// `else -// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_dsync(clk, in, out); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - output out; - wire out; - wire \shiftreg[0] ; - INVx1_ASAP7_75t_SL _2_ ( - .A(_0_), - .Y(out) - ); - INVx1_ASAP7_75t_SL _3_ ( - .A(_1_), - .Y(\shiftreg[0] ) - ); - DFFHQNx1_ASAP7_75t_SL _4_ ( - .CLK(clk), - .D(in), - .QN(_1_) - ); - DFFHQNx1_ASAP7_75t_SL _5_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .QN(_0_) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_footer.v +++ /dev/null @@ -1,18 +0,0 @@ -//############################################################################# -//# Function: Footer circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_footer #( - parameter PROP = "DEFAULT" -) ( - input nsleep, // 0 = disabled ground - input vssin, // input supply - output vssout // gated output supply -); - - // Primitive Device - nmos m0 (vddout, vddin, nsleep); //d,s,g - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_header.v +++ /dev/null @@ -1,18 +0,0 @@ -//############################################################################# -//# Function: Header circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_header #( - parameter PROP = "DEFAULT" -) ( - input sleep, // 1 = disabled vdd - input vddin, // input supply - output vddout // gated output supply -); - - // Primitive Device - pmos m0 (vddout, vssin, sleep); //d,s,g - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_keeper.v +++ /dev/null @@ -1,13 +0,0 @@ -//############################################################################# -//# Function: Charge Keeper Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_keeper #( - parameter PROP = "DEFAULT" -) ( - inout z -); - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_pwrbuf.v deleted file mode 100644 index e10372e3..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_pwrbuf.v +++ /dev/null @@ -1,36 +0,0 @@ -// //############################################################################# -// //# Function: Non-inverting buffer with supplies # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_pwrbuf #( -// parameter TARGET = "DEFAULT", // "SIM" -// parameter PROP = "DEFAULT" -// ) ( -// input vdd, -// input vss, -// input a, -// output z -// ); -// -// generate -// if (TARGET == "SIM") assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -// else assign z = a; -// endgenerate -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_pwrbuf(vdd, vss, a, z); - input a; - wire a; - input vdd; - wire vdd; - input vss; - wire vss; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_rsync.v deleted file mode 100644 index 24c0821b..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_rsync.v +++ /dev/null @@ -1,75 +0,0 @@ -// //############################################################################# -// //# Function: Reset synchronizer (async assert, sync deassert) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_rsync #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock -// input nrst_in, // async reset input -// output nrst_out // async assert, sync deassert reset -// ); -// -// localparam STAGES = 2; -// localparam RND = 1; -// -// reg [STAGES:0] sync_pipe; -// integer sync_delay; -// -// `ifndef SYNTHESIS -// always @(posedge clk) sync_delay <= {$random} % 2; -// `endif -// -// always @(posedge clk or negedge nrst_in) -// if (!nrst_in) sync_pipe[STAGES:0] <= 'b0; -// else sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; -// -// `ifdef SYNTHESIS -// assign nrst_out = sync_pipe[STAGES-1]; -// `else -// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_rsync(clk, nrst_in, nrst_out); - wire _0_; - wire _1_; - wire _2_; - input clk; - wire clk; - input nrst_in; - wire nrst_in; - output nrst_out; - wire nrst_out; - wire \sync_pipe[0] ; - INVx1_ASAP7_75t_SL _3_ ( - .A(_0_), - .Y(nrst_out) - ); - INVx1_ASAP7_75t_SL _4_ ( - .A(_1_), - .Y(\sync_pipe[0] ) - ); - DFFASRHQNx1_ASAP7_75t_SL _5_ ( - .CLK(clk), - .D(_2_), - .QN(_1_), - .RESETN(_2_), - .SETN(nrst_in) - ); - DFFASRHQNx1_ASAP7_75t_SL _6_ ( - .CLK(clk), - .D(\sync_pipe[0] ), - .QN(_0_), - .RESETN(_2_), - .SETN(nrst_in) - ); - TIEHIx1_ASAP7_75t_SL _7_ ( - .H(_2_) - ); -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tbuf.v deleted file mode 100644 index 1e0334a1..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tbuf.v +++ /dev/null @@ -1,29 +0,0 @@ -// //############################################################################# -// //# Function: Tristate Buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_tbuf #( -// parameter PROP = "DEFAULT" -// ) ( -// input a, -// input oe, -// output z -// ); -// -// assign z = oe ? a : 1'bz; -// -// endmodule - -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ - -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_and2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_and2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_and2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_and2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_and3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_and3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_and3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_and3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_and4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_and4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_and4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_and4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao21.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao211.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao22.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao221.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao222.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao31.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao311.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao32.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao33.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_ao33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_ao33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi21.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi211.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi22.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi221.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi222.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi31.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi311.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi32.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi33.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_aoi33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_aoi33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_buf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_buf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_buf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_buf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkbuf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkinv.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkinv.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkinv.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkinv.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clknand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clknand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clknand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clknand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clknor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clknor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clknor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clknor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkxor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkxor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkxor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_clkxor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_csa32.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_csa32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_csa32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_csa32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_csa42.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_csa42.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_csa42.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_csa42.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_delay.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_delay.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_delay.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_delay.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffnq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffnq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffnq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffnq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffrq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffrq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffrq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffrq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffrqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffrqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffrqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffrqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffsq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffsq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffsq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffsq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffsqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffsqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dffsqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dffsqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux5.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux5.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux5.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux5.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux6.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux6.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux6.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux6.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux7.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux7.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux7.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux7.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux8.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux8.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dmux8.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_dmux8.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_inv.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_inv.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_inv.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_inv.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_latnq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_latnq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_latnq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_latnq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_latq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_latq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_latq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_latq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_mux2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_mux2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_mux2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_mux2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_mux3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_mux3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_mux3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_mux3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_mux4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_mux4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_mux4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_mux4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_muxi2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_muxi2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_muxi2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_muxi2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_muxi3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_muxi3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_muxi3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_muxi3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_muxi4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_muxi4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_muxi4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_muxi4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nand2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nand2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nand2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nand2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nand3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nand3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nand3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nand3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nand4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nand4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nand4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nand4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_nor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_nor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa21.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa211.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa211.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa211.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa211.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa22.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa221.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa222.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa31.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa311.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa32.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa33.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oa33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oa33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai21.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai21.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai21.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai21.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai22.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai22.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai22.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai22.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai221.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai221.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai221.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai221.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai222.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai222.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai222.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai222.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai31.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai31.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai31.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai31.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai311.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai311.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai311.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai311.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai32.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai32.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai32.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai32.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai33.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai33.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oai33.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_oai33.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_or2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_or2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_or2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_or2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_or3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_or3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_or3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_or3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_or4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_or4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_or4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_or4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffrq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffrq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffrq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffrq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffrqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffrqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffrqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffrqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffsq.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffsq.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffsq.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffsq.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffsqn.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffsqn.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_sdffsqn.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_sdffsqn.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tiehi.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_tiehi.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tiehi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_tiehi.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tielo.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_tielo.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tielo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_tielo.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xnor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xnor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xnor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xnor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xnor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xnor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xnor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xnor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xnor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xnor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xnor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xnor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xor2.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xor2.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xor2.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xor2.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xor3.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xor3.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xor3.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xor3.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xor4.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xor4.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_xor4.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/stdlib/la_xor4.v diff --git a/lambdapdk/freepdk45/libs/nangate45.py b/lambdapdk/freepdk45/libs/nangate45.py index 58fafc9d..5a1a1a81 100644 --- a/lambdapdk/freepdk45/libs/nangate45.py +++ b/lambdapdk/freepdk45/libs/nangate45.py @@ -99,11 +99,15 @@ def setup(chip): lib.set('option', 'var', f'{tool}_tielow_cell', "LOGIC0_X1") lib.set('option', 'var', f'{tool}_tielow_port', "Z") - lambda_lib = siliconcompiler.Library(chip, 'lambdalib_nangate45', package='lambdapdk') - register_data_source(lambda_lib) - lambda_lib.add('option', 'ydir', 'lambdapdk/freepdk45/libs/nangate45/lambda') - - return [lib, lambda_lib] + libs = [lib] + for libtype in ('stdlib', 'auxlib'): + lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libtype}_{libname}', + package='lambdapdk') + register_data_source(lambda_lib) + lambda_lib.add('option', 'ydir', libdir + f'/lambda/{libtype}') + libs.append(lambda_lib) + + return libs ######################### diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_antenna.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v similarity index 92% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_antenna.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v index 9b86fd26..3856008c 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_antenna.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v @@ -11,4 +11,6 @@ module la_antenna #( output z ); + ANTENNA_X1 u0(.A(z), .VSS(vss)); + endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v new file mode 100644 index 00000000..50bb32c2 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgand #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable (from positive edge FF) + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (~clk) en_stable <= en | te; + + // assign eclk = clk & en_stable; + + CLKGATETST_X1 u0(.CK(clk), .E(en), .SE(te), .GCK(eclk)); + +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v new file mode 100644 index 00000000..601f91bb --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v @@ -0,0 +1,31 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgor #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (clk) en_stable <= en | te; + + // assign eclk = clk | ~en_stable; + + wire eclk_int; + wire en_bar; + + CLKGATETST_X1 u0(.CK(clk), .E(en), .SE(te), .GCK(eclk_int)); + + INV_X1 u1(.A(en), .Z(en_bar)); + OR2_X1 u2(.A1(en_bar), .A2(eclk_int), .Z(eclk)); + + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkmux2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkmux2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkmux4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkmux4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_drsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v similarity index 69% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_drsync.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v index 1edb0043..869c61c6 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_drsync.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v @@ -3,30 +3,28 @@ // //# Copyright: Lambda Project Authors. All rights Reserved. # // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# -// module la_drsync -// #(parameter PROP = "DEFAULT") -// ( +// module la_drsync #( +// parameter PROP = "DEFAULT" +// ) ( // input clk, // clock // input in, // input data // input nreset, // async active low reset // output out // synchronized data -// ); +// ); // -// localparam STAGES=2; +// localparam STAGES = 2; // -// reg [STAGES-1:0] shiftreg; +// reg [STAGES-1:0] shiftreg; // -// always @ (posedge clk or negedge nreset) -// if(!nreset) -// shiftreg[STAGES-1:0] <= 'b0; -// else -// shiftreg[STAGES-1:0] <= {shiftreg[STAGES-2:0],in}; +// always @(posedge clk or negedge nreset) +// if (!nreset) shiftreg[STAGES-1:0] <= 'b0; +// else shiftreg[STAGES-1:0] <= {shiftreg[STAGES-2:0], in}; // -// assign out = shiftreg[STAGES-1]; +// assign out = shiftreg[STAGES-1]; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_drsync(clk, in, nreset, out); wire _0_; diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v new file mode 100644 index 00000000..cea8c004 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v @@ -0,0 +1,50 @@ +//############################################################################# +//# Function: Synchronizer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_dsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize simulation delay + ( + input clk, // clock + input in, // input data + output out // synchronized data + ); + +// reg [STAGES:0] shiftreg; +// always @(posedge clk) +// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; + +// `ifdef SIM +// integer sync_delay; +// always @(posedge clk) +// sync_delay <= {$random} % 2; +// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; +// `else +// assign out = shiftreg[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + assign reg_in = in; + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + DFF_X1 u0 ( + .CK(clk), + .D(reg_in), + .Q(reg_out), + .QN() + ); + end + endgenerate + + assign out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v new file mode 100644 index 00000000..ac326191 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v @@ -0,0 +1,64 @@ +// //############################################################################# +// //# Function: Dual data rate input buffer # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_iddr #( +// parameter PROP = "DEFAULT" +// ) ( +// input clk, // clock +// input in, // data input sampled on both edges of clock +// output reg outrise, // rising edge sample +// output reg outfall // falling edge sample +// ); +// +// // Negedge Sample +// always @(negedge clk) outfall <= in; +// +// // Posedge Sample +// reg inrise; +// always @(posedge clk) inrise <= in; +// +// // Posedge Latch (for hold) +// always @(clk or inrise) if (~clk) outrise <= inrise; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_iddr(clk, in, outrise, outfall); + wire _0_; + wire _1_; + wire _2_; + input clk; + wire clk; + input in; + wire in; + wire inrise; + output outfall; + wire outfall; + output outrise; + wire outrise; + INV_X2 _3_ ( + .A(clk), + .ZN(_0_) + ); + DLL_X1 _4_ ( + .D(inrise), + .GN(clk), + .Q(outrise) + ); + DFF_X1 _5_ ( + .CK(clk), + .D(in), + .Q(inrise), + .QN(_2_) + ); + DFF_X1 _6_ ( + .CK(_0_), + .D(in), + .Q(outfall), + .QN(_1_) + ); +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v new file mode 100644 index 00000000..26824e49 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v @@ -0,0 +1,33 @@ +// //############################################################################# +// //# Function: Power isolation circuit # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_isohi #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = iso | in +// ); +// +// assign out = iso | in; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_isohi(iso, in, out); + input in; + wire in; + input iso; + wire iso; + output out; + wire out; + OR2_X4 _0_ ( + .A1(in), + .A2(iso), + .ZN(out) + ); +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v new file mode 100644 index 00000000..9beb24d6 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v @@ -0,0 +1,38 @@ +// //############################################################################# +// //# Function: Power isolation circuit # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_isolo #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = ~iso & in +// ); +// +// assign out = ~iso & in; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_isolo(iso, in, out); + wire _0_; + input in; + wire in; + input iso; + wire iso; + output out; + wire out; + INV_X2 _1_ ( + .A(in), + .ZN(_0_) + ); + NOR2_X2 _2_ ( + .A1(_0_), + .A2(iso), + .ZN(out) + ); +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v new file mode 100644 index 00000000..bf8af64e --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v @@ -0,0 +1,48 @@ +// //############################################################################# +// //# Function: Dual data rate output buffer # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_oddr #( +// parameter PROP = "DEFAULT" +// ) ( +// input clk, // clock input +// input in0, // data for clk=0 +// input in1, // data for clk=1 +// output out // dual data rate output +// ); +// +// //Making in1 stable for clk=1 +// reg in1_sh; +// always @(clk or in1) if (~clk) in1_sh <= in1; +// +// //Using clock as data selctor +// assign out = clk ? in1_sh : in0; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_oddr(clk, in0, in1, out); + input clk; + wire clk; + input in0; + wire in0; + input in1; + wire in1; + wire in1_sh; + output out; + wire out; + MUX2_X1 _0_ ( + .A(in0), + .B(in1_sh), + .S(clk), + .Z(out) + ); + DLL_X1 _1_ ( + .D(in1), + .GN(clk), + .Q(in1_sh) + ); +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_antenna.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v similarity index 61% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_antenna.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v index 7e2d48ae..1e4b5130 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_antenna.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v @@ -1,12 +1,19 @@ //############################################################################# -//# Function: Antenna Diode # +//# Function: Non-inverting buffer with supplies # //# Copyright: Lambda Project Authors. All rights Reserved. # //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_antenna #(parameter PROP = "DEFAULT") ( +module la_pwrbuf #( + parameter PROP = "DEFAULT" + ) + ( + input vdd, input vss, + input a, output z ); + BUF_X1 u0(.A(a), .Z(z), .VSS(vss), .VDD(vdd)); + endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v new file mode 100644 index 00000000..117d4ef0 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v @@ -0,0 +1,60 @@ +//############################################################################# +//# Function: Reset synchronizer (async assert, sync deassert) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_rsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize sync + + ( + input clk, // clock + input nrst_in, // async reset input + output nrst_out // async assert, sync deassert reset + ); + +// reg [STAGES:0] sync_pipe; +// integer sync_delay; + + +// always @(posedge clk or negedge nrst_in) +// if (!nrst_in) +// sync_pipe[STAGES:0] <= 'b0; +// else +// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; + +// `ifdef SIM +// always @(posedge clk) +// sync_delay <= {$random} % 2; + +// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; +// `else +// assign nrst_out = sync_pipe[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + LOGIC1_X1 u1 ( + .Z(reg_in) + ); + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + DFFR_X1 u0 ( + .CK(clk), + .RN(nrest_in), + .D(reg_in), + .Q(reg_out), + .QN() + ); + end + endgenerate + + assign nrst_out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v new file mode 100644 index 00000000..0b1cbbbf --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + // assign z = oe ? a : 1'bz; + + TBUF_X1 u0(.A(a), .EN(oe), .Z(z)); + +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgand.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgand.v deleted file mode 100644 index 58d5177a..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgand.v +++ /dev/null @@ -1,52 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "And" Clock Gating Cell (And) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgand #(parameter PROP = "DEFAULT") ( -// input clk, // clock input -// input te, // test enable -// input en, // enable (from positive edge FF) -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @ (clk or en or te) -// if (~clk) -// en_stable <= en | te; -// -// assign eclk = clk & en_stable; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_clkicgand(clk, te, en, eclk); - wire _0_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - AND2_X1 _1_ ( - .A1(en_stable), - .A2(clk), - .ZN(eclk) - ); - OR2_X2 _2_ ( - .A1(te), - .A2(en), - .ZN(_0_) - ); - DLL_X1 _3_ ( - .D(_0_), - .GN(clk), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgor.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgor.v deleted file mode 100644 index 624737be..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgor.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "Or" Clock Gating Cell # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgor #(parameter PROP = "DEFAULT") ( -// input clk,// clock input -// input te, // test enable -// input en, // enable -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @ (clk or en or te) -// if (clk) -// en_stable <= en | te; -// -// assign eclk = clk | ~en_stable; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_clkicgor(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - OR2_X2 _2_ ( - .A1(te), - .A2(en), - .ZN(_0_) - ); - INV_X1 _3_ ( - .A(clk), - .ZN(_1_) - ); - NAND2_X1 _4_ ( - .A1(_1_), - .A2(en_stable), - .ZN(eclk) - ); - DLH_X1 _5_ ( - .D(_0_), - .G(clk), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux2.v deleted file mode 100644 index fd74ce57..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux2.v +++ /dev/null @@ -1,55 +0,0 @@ -//############################################################################# -//# Function: 2-Input Glitch-Free Clock Mux # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_clkmux2 - #(parameter PROP = "DEFAULT" // cell property - ) - ( - input clk0, - input clk1, - input sel0, - input sel1, - input nreset, - output out - ); - - wire [1:0] maskb; - wire [1:0] en; - wire enb; - wire [1:0] ensync; - wire ensyncb; - wire [1:0] clkg; - - // invert mask (2) - la_inv iinv[1:0] (.a({ensync[0],ensync[1]}), .z(maskb[1:0])); - - // clock enable (2) - la_and2 isel[1:0] (.a({sel1,sel0}), - .b(maskb[1:0]), - .z(en[1:0])); - - la_inv ienb (.a(en[0]), .z(enb)); - - // synchronizers (2) - la_drsync isync[1:0] (.clk({clk1,clk0}), - .nreset({nreset,nreset}), - .in({en[1],enb}), - .out({ensync[1],ensyncb})); - - la_inv iensync (.a(ensyncb), .z(ensync[0])); - - // glith free clock gate (2) - la_clkicgand igate[1:0] (.clk({clk1,clk0}), - .te(2'b00), - .en(ensync[1:0]), - .eclk(clkg[1:0])); - - // final clock or (1) - la_clkor2 iorclk (.a(clkg[0]), - .b(clkg[1]), - .z(out)); - -endmodule // la_clkmux2 diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux4.v deleted file mode 100644 index deea9029..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux4.v +++ /dev/null @@ -1,69 +0,0 @@ -//############################################################################# -//# Function: 4-Input Glitch-Free Clock Mux # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_clkmux4 - #(parameter PROP = "DEFAULT" // cell property - ) - ( - input clk0, - input clk1, - input clk2, - input clk3, - input sel0, - input sel1, - input sel2, - input sel3, - input nreset, - output out - ); - - wire [3:0] mask; - wire [3:0] maskb; - wire [3:0] en; - wire enb; - wire [3:0] ensync; - wire ensyncb; - wire [3:0] clkg; - wire [3:0] nreset_sync; - - // create clock mask (4) - la_or3 ior0 (.a(ensync[3]), .b(ensync[2]), .c(ensync[1]), .z(mask[0])); - la_or3 ior1 (.a(ensync[0]), .b(ensync[3]), .c(ensync[2]), .z(mask[1])); - la_or3 ior2 (.a(ensync[1]), .b(ensync[0]), .c(ensync[3]), .z(mask[2])); - la_or3 ior3 (.a(ensync[2]), .b(ensync[1]), .c(ensync[0]), .z(mask[3])); - - // invert mask (4) - la_inv iinv[3:0] (.a(mask[3:0]), .z(maskb[3:0])); - - // clock enable (4) - la_and2 isel[3:0] (.a({sel3,sel2,sel1,sel0}), - .b(maskb[3:0]), - .z(en[3:0])); - - la_inv ienb (.a(en[0]), .z(enb)); - - // data synchronizer with reset (since clocks aren't guaranteed) - la_drsync idrsync[3:0] (.clk({clk3,clk2,clk1,clk0}), - .nreset({4{nreset}}), - .in({en[3:1],enb}), - .out({ensync[3:1],ensyncb})); - - la_inv iensync (.a(ensyncb), .z(ensync[0])); - - // glith free clock gate (4) - la_clkicgand igate[3:0] (.clk({clk3,clk2,clk1,clk0}), - .te(4'b0000), - .en(ensync[3:0]), - .eclk(clkg[3:0])); - - // final clock or (1) - la_clkor4 iorclk (.a(clkg[0]), - .b(clkg[1]), - .c(clkg[2]), - .d(clkg[3]), - .z(out)); - -endmodule // la_clkmux4 diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_decap.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_decap.v deleted file mode 100644 index 9e5ebf7c..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_decap.v +++ /dev/null @@ -1,12 +0,0 @@ -//############################################################################# -//# Function: Decap Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_decap #(parameter PROP = "DEFAULT") ( - input vss, - output vdd - ); - -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_dsync.v deleted file mode 100644 index 2d67fdc8..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dsync.v +++ /dev/null @@ -1,61 +0,0 @@ -// //############################################################################# -// //# Function: Synchronizer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_dsync -// #(parameter PROP = "DEFAULT") -// ( -// input clk, // clock -// input in, // input data -// output out // synchronized data -// ); -// -// localparam STAGES=2; -// localparam RND = 1; -// -// reg [STAGES:0] shiftreg; -// integer sync_delay; -// -// always @ (posedge clk) -// begin -// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0],in}; -// `ifndef SYNTHESIS -// sync_delay <= {$random} % 2; -// `endif -// end -// -// `ifdef SYNTHESIS -// assign out = shiftreg[STAGES-1]; -// `else -// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_dsync(clk, in, out); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - output out; - wire out; - wire \shiftreg[0] ; - DFF_X1 _2_ ( - .CK(clk), - .D(in), - .Q(\shiftreg[0] ), - .QN(_1_) - ); - DFF_X1 _3_ ( - .CK(clk), - .D(\shiftreg[0] ), - .Q(out), - .QN(_0_) - ); -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_footer.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_footer.v deleted file mode 100644 index b2a644e2..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_footer.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Footer circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_footer #(parameter PROP = "DEFAULT") ( - input nsleep, // 0 = disabled ground - input vssin, // input supply - output vssout // gated output supply - ); - - // Primitive Device - nmos m0 (vddout, vddin, nsleep); //d,s,g - -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_header.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_header.v deleted file mode 100644 index f4698b93..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_header.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Header circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_header #(parameter PROP = "DEFAULT") ( - input sleep, // 1 = disabled vdd - input vddin, // input supply - output vddout // gated output supply - ); - - // Primitive Device - pmos m0 (vddout, vssin, sleep); //d,s,g - -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_iddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_iddr.v deleted file mode 100644 index 8d879960..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_iddr.v +++ /dev/null @@ -1,66 +0,0 @@ -// //############################################################################# -// //# Function: Dual data rate input buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_iddr #(parameter PROP = "DEFAULT") ( -// input clk, // clock -// input in, // data input sampled on both edges of clock -// output reg outrise, // rising edge sample -// output reg outfall // falling edge sample -// ); -// -// // Negedge Sample -// always @ (negedge clk) -// outfall <= in; -// -// // Posedge Sample -// reg inrise; -// always @ (posedge clk) -// inrise <= in; -// -// // Posedge Latch (for hold) -// always @ (clk or inrise) -// if(~clk) -// outrise <= inrise; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_iddr(clk, in, outrise, outfall); - wire _0_; - wire _1_; - wire _2_; - input clk; - wire clk; - input in; - wire in; - wire inrise; - output outfall; - wire outfall; - output outrise; - wire outrise; - INV_X1 _3_ ( - .A(clk), - .ZN(_0_) - ); - DLL_X1 _4_ ( - .D(inrise), - .GN(clk), - .Q(outrise) - ); - DFF_X1 _5_ ( - .CK(clk), - .D(in), - .Q(inrise), - .QN(_2_) - ); - DFF_X1 _6_ ( - .CK(_0_), - .D(in), - .Q(outfall), - .QN(_1_) - ); -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_isohi.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_isohi.v deleted file mode 100644 index 15514874..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_isohi.v +++ /dev/null @@ -1,33 +0,0 @@ -// //############################################################################# -// //# Function: Power isolation circuit # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_isohi -// #(parameter PROP = "DEFAULT") -// ( -// input iso, // isolation signal -// input in, // input -// output out // out = iso | in -// ); -// -// assign out = iso | in; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_isohi(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - OR2_X2 _0_ ( - .A1(in), - .A2(iso), - .ZN(out) - ); -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_isolo.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_isolo.v deleted file mode 100644 index db95e94f..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_isolo.v +++ /dev/null @@ -1,38 +0,0 @@ -// //############################################################################# -// //# Function: Power isolation circuit # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_isolo -// #(parameter PROP = "DEFAULT") -// ( -// input iso, // isolation signal -// input in, // input -// output out // out = ~iso & in -// ); -// -// assign out = ~iso & in; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_isolo(iso, in, out); - wire _0_; - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - INV_X1 _1_ ( - .A(in), - .ZN(_0_) - ); - NOR2_X1 _2_ ( - .A1(_0_), - .A2(iso), - .ZN(out) - ); -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_keeper.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_keeper.v deleted file mode 100644 index 847994bf..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_keeper.v +++ /dev/null @@ -1,11 +0,0 @@ -//############################################################################# -//# Function: Charge Keeper Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_keeper #(parameter PROP = "DEFAULT") ( - inout z - ); - -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_oddr.v deleted file mode 100644 index e66c2eb3..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oddr.v +++ /dev/null @@ -1,48 +0,0 @@ -// //############################################################################# -// //# Function: Dual data rate output buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_oddr #(parameter PROP = "DEFAULT") ( -// input clk, // clock input -// input in0, // data for clk=0 -// input in1, // data for clk=1 -// output out // dual data rate output -// ); -// -// //Making in1 stable for clk=1 -// reg in1_sh; -// always @ (clk or in1) -// if(~clk) -// in1_sh <= in1; -// -// //Using clock as data selctor -// assign out = clk ? in1_sh : in0; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_oddr(clk, in0, in1, out); - input clk; - wire clk; - input in0; - wire in0; - input in1; - wire in1; - wire in1_sh; - output out; - wire out; - MUX2_X1 _0_ ( - .A(in0), - .B(in1_sh), - .S(clk), - .Z(out) - ); - DLL_X1 _1_ ( - .D(in1), - .GN(clk), - .Q(in1_sh) - ); -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_pwrbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_pwrbuf.v deleted file mode 100644 index 1d894b0c..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_pwrbuf.v +++ /dev/null @@ -1,37 +0,0 @@ -// //############################################################################# -// //# Function: Non-inverting buffer with supplies # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_pwrbuf #(parameter TARGET = "DEFAULT", // "SIM" -// parameter PROP = "DEFAULT") -// ( -// input vdd, -// input vss, -// input a, -// output z -// ); -// -// generate -// if(TARGET=="SIM") -// assign z = ((vdd===1'b1) && (vss===1'b0)) ? a: 1'bX; -// else -// assign z = a; -// endgenerate -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_pwrbuf(vdd, vss, a, z); - input a; - wire a; - input vdd; - wire vdd; - input vss; - wire vss; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_rsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_rsync.v deleted file mode 100644 index 1024ce7c..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_rsync.v +++ /dev/null @@ -1,70 +0,0 @@ -// //############################################################################# -// //# Function: Reset synchronizer (async assert, sync deassert) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_rsync -// #(parameter PROP = "DEFAULT") -// ( -// input clk, // clock -// input nrst_in, // async reset input -// output nrst_out // async assert, sync deassert reset -// ); -// -// localparam STAGES=2; -// localparam RND = 1; -// -// reg [STAGES:0] sync_pipe; -// integer sync_delay; -// -// `ifndef SYNTHESIS -// always @ (posedge clk) -// sync_delay <= {$random} % 2; -// `endif -// -// always @ (posedge clk or negedge nrst_in) -// if(!nrst_in) -// sync_pipe[STAGES:0] <= 'b0; -// else -// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0],1'b1}; -// -// `ifdef SYNTHESIS -// assign nrst_out = sync_pipe[STAGES-1]; -// `else -// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_rsync(clk, nrst_in, nrst_out); - wire _0_; - wire _1_; - wire _2_; - input clk; - wire clk; - input nrst_in; - wire nrst_in; - output nrst_out; - wire nrst_out; - wire \sync_pipe[0] ; - DFFR_X1 _3_ ( - .CK(clk), - .D(_2_), - .Q(\sync_pipe[0] ), - .QN(_1_), - .RN(nrst_in) - ); - DFFR_X1 _4_ ( - .CK(clk), - .D(\sync_pipe[0] ), - .Q(nrst_out), - .QN(_0_), - .RN(nrst_in) - ); - LOGIC1_X1 _5_ ( - .Z(_2_) - ); -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_tbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/la_tbuf.v deleted file mode 100644 index ff943c6f..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/la_tbuf.v +++ /dev/null @@ -1,27 +0,0 @@ -// //############################################################################# -// //# Function: Tristate Buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_tbuf #(parameter PROP = "DEFAULT") ( -// input a, -// input oe, -// output z -// ); -// -// assign z = oe ? a : 1'bz; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_and2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_and2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_and2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_and2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_and3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_and3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_and3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_and3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_and4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_and4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_and4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_and4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao21.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao21.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao21.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao21.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao211.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao211.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao211.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao211.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao22.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao22.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao22.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao22.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao221.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao221.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao221.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao221.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao222.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao222.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao222.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao222.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao31.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao31.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao31.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao31.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao311.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao311.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao311.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao311.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao32.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao32.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao32.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao32.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_ao33.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao33.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_ao33.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_ao33.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi21.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi21.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi21.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi21.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi211.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi211.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi211.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi211.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi22.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi22.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi22.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi22.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi221.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi221.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi221.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi221.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi222.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi222.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi222.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi222.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi31.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi31.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi31.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi31.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi311.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi311.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi311.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi311.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi32.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi32.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi32.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi32.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi33.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi33.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_aoi33.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_aoi33.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_buf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_buf.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_buf.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_buf.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkand2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkand2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkand2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkand2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkbuf.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkbuf.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkbuf.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkinv.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkinv.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkinv.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkinv.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clknand2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clknand2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clknand2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clknand2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clknor2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clknor2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clknor2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clknor2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkor2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkor2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkor2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkor2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkor4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkor4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkor4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkor4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkxor2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkxor2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkxor2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_clkxor2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_csa32.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_csa32.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_csa32.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_csa32.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_csa42.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_csa42.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_csa42.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_csa42.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_delay.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_delay.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_delay.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_delay.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dffnq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffnq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dffnq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffnq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dffq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dffq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dffqn.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffqn.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dffqn.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffqn.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dffrq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffrq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dffrq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffrq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dffrqn.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffrqn.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dffrqn.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffrqn.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dffsq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffsq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dffsq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffsq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dffsqn.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffsqn.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dffsqn.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dffsqn.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux5.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux5.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux5.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux5.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux6.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux6.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux6.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux6.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux7.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux7.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux7.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux7.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux8.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux8.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dmux8.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_dmux8.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_inv.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_inv.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_inv.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_inv.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_latnq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_latnq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_latnq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_latnq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_latq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_latq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_latq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_latq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_mux2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_mux2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_mux2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_mux2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_mux3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_mux3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_mux3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_mux3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_mux4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_mux4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_mux4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_mux4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_muxi2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_muxi2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_muxi2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_muxi2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_muxi3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_muxi3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_muxi3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_muxi3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_muxi4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_muxi4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_muxi4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_muxi4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_nand2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nand2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_nand2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nand2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_nand3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nand3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_nand3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nand3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_nand4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nand4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_nand4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nand4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_nor2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nor2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_nor2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nor2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_nor3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nor3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_nor3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nor3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_nor4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nor4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_nor4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_nor4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa21.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa21.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa21.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa21.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa211.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa211.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa211.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa211.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa22.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa22.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa22.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa22.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa221.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa221.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa221.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa221.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa222.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa222.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa222.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa222.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa31.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa31.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa31.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa31.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa311.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa311.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa311.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa311.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa32.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa32.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa32.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa32.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oa33.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa33.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oa33.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oa33.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oai21.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai21.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oai21.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai21.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oai22.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai22.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oai22.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai22.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oai221.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai221.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oai221.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai221.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oai222.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai222.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oai222.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai222.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oai31.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai31.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oai31.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai31.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oai311.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai311.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oai311.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai311.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oai32.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai32.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oai32.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai32.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oai33.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai33.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oai33.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_oai33.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_or2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_or2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_or2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_or2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_or3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_or3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_or3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_or3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_or4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_or4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_or4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_or4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffqn.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffqn.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffqn.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffqn.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffrq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffrq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffrq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffrq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffrqn.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffrqn.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffrqn.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffrqn.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffsq.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffsq.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffsq.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffsq.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffsqn.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffsqn.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_sdffsqn.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_sdffsqn.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_tiehi.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_tiehi.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_tiehi.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_tiehi.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_tielo.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_tielo.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_tielo.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_tielo.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_xnor2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xnor2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_xnor2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xnor2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_xnor3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xnor3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_xnor3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xnor3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_xnor4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xnor4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_xnor4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xnor4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_xor2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xor2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_xor2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xor2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_xor3.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xor3.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_xor3.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xor3.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_xor4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xor4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_xor4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/stdlib/la_xor4.v diff --git a/lambdapdk/gf180/libs/gf180mcu.py b/lambdapdk/gf180/libs/gf180mcu.py index ed6c39f8..7284a8d5 100644 --- a/lambdapdk/gf180/libs/gf180mcu.py +++ b/lambdapdk/gf180/libs/gf180mcu.py @@ -135,11 +135,12 @@ def setup(chip): libs.append(lib) - lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libname}', package='lambdapdk') - register_data_source(lambda_lib) - lambda_lib.add('option', 'ydir', libdir + '/lambda') - - libs.append(lambda_lib) + for libtype in ('stdlib', 'auxlib'): + lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libtype}_{libname}', + package='lambdapdk') + register_data_source(lambda_lib) + lambda_lib.add('option', 'ydir', libdir + f'/lambda/{libtype}') + libs.append(lambda_lib) return libs diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_antenna.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v similarity index 89% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_antenna.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v index 9b86fd26..16d7b28e 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_antenna.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v @@ -11,4 +11,6 @@ module la_antenna #( output z ); +gf180mcu_fd_sc_mcu7t5v0__antenna u0(.I(z), .VSS(vss)); + endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgand.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgand.v new file mode 100644 index 00000000..62c9d32e --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgand.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgand #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable (from positive edge FF) + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (~clk) en_stable <= en | te; + + // assign eclk = clk & en_stable; + +gf180mcu_fd_sc_mcu7t5v0__icgtp_1 u0(.CLK(clk), .E(en), .TE(te), .Q(eclk)); + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgor.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgor.v new file mode 100644 index 00000000..9dbd00f2 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgor.v @@ -0,0 +1,31 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgor #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (clk) en_stable <= en | te; + + // assign eclk = clk | ~en_stable; + +wire eclk_int; +wire en_bar; + +gf180mcu_fd_sc_mcu7t5v0__icgtp_1 u0(.CLK(clk), .E(en), .TE(te), .Q(eclk_int)); + +gf180mcu_fd_sc_mcu7t5v0__inv_1 u1(.I(en), .ZN(en_bar)); +gf180mcu_fd_sc_mcu7t5v0__or2_1 u2(.A1(en_bar), .A2(eclk_int), .Z(eclk)); + + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux2.v new file mode 100644 index 00000000..8efc9015 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux2.v @@ -0,0 +1,71 @@ +//############################################################################# +//# Function: 2-Input Glitch-Free Clock Mux # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkmux2 #( + parameter PROP = "DEFAULT" // cell property +) ( + input clk0, + input clk1, + input sel0, + input sel1, + input nreset, + output out +); + + wire [1:0] maskb; + wire [1:0] en; + wire enb; + wire [1:0] ensync; + wire ensyncb; + wire [1:0] clkg; + + // invert mask (2) + la_inv iinv[1:0] ( + .a({ensync[0], ensync[1]}), + .z(maskb[1:0]) + ); + + // clock enable (2) + la_and2 isel[1:0] ( + .a({sel1, sel0}), + .b(maskb[1:0]), + .z(en[1:0]) + ); + + la_inv ienb ( + .a(en[0]), + .z(enb) + ); + + // synchronizers (2) + la_drsync isync[1:0] ( + .clk({clk1, clk0}), + .nreset({nreset, nreset}), + .in({en[1], enb}), + .out({ensync[1], ensyncb}) + ); + + la_inv iensync ( + .a(ensyncb), + .z(ensync[0]) + ); + + // glith free clock gate (2) + la_clkicgand igate[1:0] ( + .clk ({clk1, clk0}), + .te (2'b00), + .en (ensync[1:0]), + .eclk(clkg[1:0]) + ); + + // final clock or (1) + la_clkor2 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .z(out) + ); + +endmodule // la_clkmux2 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux4.v new file mode 100644 index 00000000..0b2ff761 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux4.v @@ -0,0 +1,105 @@ +//############################################################################# +//# Function: 4-Input Glitch-Free Clock Mux # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkmux4 #( + parameter PROP = "DEFAULT" // cell property +) ( + input clk0, + input clk1, + input clk2, + input clk3, + input sel0, + input sel1, + input sel2, + input sel3, + input nreset, + output out +); + + wire [3:0] mask; + wire [3:0] maskb; + wire [3:0] en; + wire enb; + wire [3:0] ensync; + wire ensyncb; + wire [3:0] clkg; + wire [3:0] nreset_sync; + + // create clock mask (4) + la_or3 ior0 ( + .a(ensync[3]), + .b(ensync[2]), + .c(ensync[1]), + .z(mask[0]) + ); + la_or3 ior1 ( + .a(ensync[0]), + .b(ensync[3]), + .c(ensync[2]), + .z(mask[1]) + ); + la_or3 ior2 ( + .a(ensync[1]), + .b(ensync[0]), + .c(ensync[3]), + .z(mask[2]) + ); + la_or3 ior3 ( + .a(ensync[2]), + .b(ensync[1]), + .c(ensync[0]), + .z(mask[3]) + ); + + // invert mask (4) + la_inv iinv[3:0] ( + .a(mask[3:0]), + .z(maskb[3:0]) + ); + + // clock enable (4) + la_and2 isel[3:0] ( + .a({sel3, sel2, sel1, sel0}), + .b(maskb[3:0]), + .z(en[3:0]) + ); + + la_inv ienb ( + .a(en[0]), + .z(enb) + ); + + // data synchronizer with reset (since clocks aren't guaranteed) + la_drsync idrsync[3:0] ( + .clk({clk3, clk2, clk1, clk0}), + .nreset({4{nreset}}), + .in({en[3:1], enb}), + .out({ensync[3:1], ensyncb}) + ); + + la_inv iensync ( + .a(ensyncb), + .z(ensync[0]) + ); + + // glith free clock gate (4) + la_clkicgand igate[3:0] ( + .clk ({clk3, clk2, clk1, clk0}), + .te (4'b0000), + .en (ensync[3:0]), + .eclk(clkg[3:0]) + ); + + // final clock or (1) + la_clkor4 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .c(clkg[2]), + .d(clkg[3]), + .z(out) + ); + +endmodule // la_clkmux4 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_drsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v similarity index 69% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_drsync.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v index 78591576..4d2f43b2 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_drsync.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v @@ -3,30 +3,28 @@ // //# Copyright: Lambda Project Authors. All rights Reserved. # // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# -// module la_drsync -// #(parameter PROP = "DEFAULT") -// ( +// module la_drsync #( +// parameter PROP = "DEFAULT" +// ) ( // input clk, // clock // input in, // input data // input nreset, // async active low reset // output out // synchronized data -// ); +// ); // -// localparam STAGES=2; +// localparam STAGES = 2; // -// reg [STAGES-1:0] shiftreg; +// reg [STAGES-1:0] shiftreg; // -// always @ (posedge clk or negedge nreset) -// if(!nreset) -// shiftreg[STAGES-1:0] <= 'b0; -// else -// shiftreg[STAGES-1:0] <= {shiftreg[STAGES-2:0],in}; +// always @(posedge clk or negedge nreset) +// if (!nreset) shiftreg[STAGES-1:0] <= 'b0; +// else shiftreg[STAGES-1:0] <= {shiftreg[STAGES-2:0], in}; // -// assign out = shiftreg[STAGES-1]; +// assign out = shiftreg[STAGES-1]; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_drsync(clk, in, nreset, out); input clk; diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_dsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_dsync.v new file mode 100644 index 00000000..59a6fc9a --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_dsync.v @@ -0,0 +1,49 @@ +//############################################################################# +//# Function: Synchronizer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_dsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize simulation delay + ( + input clk, // clock + input in, // input data + output out // synchronized data + ); + +// reg [STAGES:0] shiftreg; +// always @(posedge clk) +// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; + +// `ifdef SIM +// integer sync_delay; +// always @(posedge clk) +// sync_delay <= {$random} % 2; +// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; +// `else +// assign out = shiftreg[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + assign reg_in = in; + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + gf180mcu_fd_sc_mcu7t5v0__dffq_1 u0 ( + .CK(clk), + .D(reg_in), + .Q(reg_out) + ); + end + endgenerate + + assign out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_iddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v similarity index 60% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_iddr.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v index 105b099e..722df1bc 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_iddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v @@ -4,30 +4,28 @@ // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# // -// module la_iddr #(parameter PROP = "DEFAULT") ( -// input clk, // clock -// input in, // data input sampled on both edges of clock -// output reg outrise, // rising edge sample -// output reg outfall // falling edge sample -// ); +// module la_iddr #( +// parameter PROP = "DEFAULT" +// ) ( +// input clk, // clock +// input in, // data input sampled on both edges of clock +// output reg outrise, // rising edge sample +// output reg outfall // falling edge sample +// ); // -// // Negedge Sample -// always @ (negedge clk) -// outfall <= in; +// // Negedge Sample +// always @(negedge clk) outfall <= in; // -// // Posedge Sample -// reg inrise; -// always @ (posedge clk) -// inrise <= in; +// // Posedge Sample +// reg inrise; +// always @(posedge clk) inrise <= in; // -// // Posedge Latch (for hold) -// always @ (clk or inrise) -// if(~clk) -// outrise <= inrise; +// // Posedge Latch (for hold) +// always @(clk or inrise) if (~clk) outrise <= inrise; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_iddr(clk, in, outrise, outfall); wire _0_; diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isohi.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isohi.v new file mode 100644 index 00000000..49484e54 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isohi.v @@ -0,0 +1,33 @@ +// //############################################################################# +// //# Function: Power isolation circuit # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_isohi #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = iso | in +// ); +// +// assign out = iso | in; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_isohi(iso, in, out); + input in; + wire in; + input iso; + wire iso; + output out; + wire out; + gf180mcu_fd_sc_mcu7t5v0__or2_4 _0_ ( + .A1(in), + .A2(iso), + .Z(out) + ); +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_isolo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v similarity index 71% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_isolo.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v index a0edddcc..b4889346 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_isolo.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v @@ -4,19 +4,19 @@ // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# // -// module la_isolo -// #(parameter PROP = "DEFAULT") -// ( -// input iso, // isolation signal -// input in, // input -// output out // out = ~iso & in -// ); +// module la_isolo #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = ~iso & in +// ); // -// assign out = ~iso & in; +// assign out = ~iso & in; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_isolo(iso, in, out); wire _0_; diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v similarity index 63% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oddr.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v index d625c68b..4214e6dc 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v @@ -4,25 +4,25 @@ // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# // -// module la_oddr #(parameter PROP = "DEFAULT") ( -// input clk, // clock input -// input in0, // data for clk=0 -// input in1, // data for clk=1 -// output out // dual data rate output -// ); +// module la_oddr #( +// parameter PROP = "DEFAULT" +// ) ( +// input clk, // clock input +// input in0, // data for clk=0 +// input in1, // data for clk=1 +// output out // dual data rate output +// ); // -// //Making in1 stable for clk=1 -// reg in1_sh; -// always @ (clk or in1) -// if(~clk) -// in1_sh <= in1; +// //Making in1 stable for clk=1 +// reg in1_sh; +// always @(clk or in1) if (~clk) in1_sh <= in1; // -// //Using clock as data selctor -// assign out = clk ? in1_sh : in0; +// //Using clock as data selctor +// assign out = clk ? in1_sh : in0; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_oddr(clk, in0, in1, out); wire _0_; diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_pwrbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_pwrbuf.v new file mode 100644 index 00000000..8048c472 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_pwrbuf.v @@ -0,0 +1,25 @@ +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_pwrbuf #( + parameter PROP = "DEFAULT" + ) + ( + input vdd, + input vss, + input a, + output z + ); + +// `ifdef SIM +// assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; +// `else +// assign z = a; +// `endif + +gf180mcu_fd_sc_mcu7t5v0__buf_1 u0(.I(a), .Z(z), .VSS(vss), .VDD(vdd)); + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_rsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_rsync.v new file mode 100644 index 00000000..17e195d7 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_rsync.v @@ -0,0 +1,59 @@ +//############################################################################# +//# Function: Reset synchronizer (async assert, sync deassert) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_rsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize sync + + ( + input clk, // clock + input nrst_in, // async reset input + output nrst_out // async assert, sync deassert reset + ); + +// reg [STAGES:0] sync_pipe; +// integer sync_delay; + + +// always @(posedge clk or negedge nrst_in) +// if (!nrst_in) +// sync_pipe[STAGES:0] <= 'b0; +// else +// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; + +// `ifdef SIM +// always @(posedge clk) +// sync_delay <= {$random} % 2; + +// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; +// `else +// assign nrst_out = sync_pipe[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + LOGIC1_X1 u1 ( + .Z(reg_in) + ); + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + gf180mcu_fd_sc_mcu7t5v0__dffrnq_1 u0 ( + .CLK(clk), + .RN(nrest_in), + .D(reg_in), + .Q(reg_out) + ); + end + endgenerate + + assign nrst_out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_tbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_tbuf.v new file mode 100644 index 00000000..721a1f3e --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_tbuf.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + // assign z = oe ? a : 1'bz; + +gf180mcu_fd_sc_mcu7t5v0__bufz_1 u0(.I(a), .EN(oe), .Z(z)); + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgand.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgand.v deleted file mode 100644 index 80121e14..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgand.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "And" Clock Gating Cell (And) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgand #(parameter PROP = "DEFAULT") ( -// input clk, // clock input -// input te, // test enable -// input en, // enable (from positive edge FF) -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @ (clk or en or te) -// if (~clk) -// en_stable <= en | te; -// -// assign eclk = clk & en_stable; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_clkicgand(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - gf180mcu_fd_sc_mcu7t5v0__and2_2 _2_ ( - .A1(en_stable), - .A2(clk), - .Z(eclk) - ); - gf180mcu_fd_sc_mcu7t5v0__or2_2 _3_ ( - .A1(te), - .A2(en), - .Z(_0_) - ); - gf180mcu_fd_sc_mcu7t5v0__clkinv_2 _4_ ( - .I(clk), - .ZN(_1_) - ); - gf180mcu_fd_sc_mcu7t5v0__latq_1 _5_ ( - .D(_0_), - .E(_1_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgor.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgor.v deleted file mode 100644 index 3eadc480..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgor.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "Or" Clock Gating Cell # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgor #(parameter PROP = "DEFAULT") ( -// input clk,// clock input -// input te, // test enable -// input en, // enable -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @ (clk or en or te) -// if (clk) -// en_stable <= en | te; -// -// assign eclk = clk | ~en_stable; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_clkicgor(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - gf180mcu_fd_sc_mcu7t5v0__or2_2 _2_ ( - .A1(te), - .A2(en), - .Z(_0_) - ); - gf180mcu_fd_sc_mcu7t5v0__clkinv_2 _3_ ( - .I(clk), - .ZN(_1_) - ); - gf180mcu_fd_sc_mcu7t5v0__nand2_2 _4_ ( - .A1(_1_), - .A2(en_stable), - .ZN(eclk) - ); - gf180mcu_fd_sc_mcu7t5v0__latq_1 _5_ ( - .D(_0_), - .E(clk), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux2.v deleted file mode 100644 index fd74ce57..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux2.v +++ /dev/null @@ -1,55 +0,0 @@ -//############################################################################# -//# Function: 2-Input Glitch-Free Clock Mux # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_clkmux2 - #(parameter PROP = "DEFAULT" // cell property - ) - ( - input clk0, - input clk1, - input sel0, - input sel1, - input nreset, - output out - ); - - wire [1:0] maskb; - wire [1:0] en; - wire enb; - wire [1:0] ensync; - wire ensyncb; - wire [1:0] clkg; - - // invert mask (2) - la_inv iinv[1:0] (.a({ensync[0],ensync[1]}), .z(maskb[1:0])); - - // clock enable (2) - la_and2 isel[1:0] (.a({sel1,sel0}), - .b(maskb[1:0]), - .z(en[1:0])); - - la_inv ienb (.a(en[0]), .z(enb)); - - // synchronizers (2) - la_drsync isync[1:0] (.clk({clk1,clk0}), - .nreset({nreset,nreset}), - .in({en[1],enb}), - .out({ensync[1],ensyncb})); - - la_inv iensync (.a(ensyncb), .z(ensync[0])); - - // glith free clock gate (2) - la_clkicgand igate[1:0] (.clk({clk1,clk0}), - .te(2'b00), - .en(ensync[1:0]), - .eclk(clkg[1:0])); - - // final clock or (1) - la_clkor2 iorclk (.a(clkg[0]), - .b(clkg[1]), - .z(out)); - -endmodule // la_clkmux2 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux4.v deleted file mode 100644 index deea9029..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux4.v +++ /dev/null @@ -1,69 +0,0 @@ -//############################################################################# -//# Function: 4-Input Glitch-Free Clock Mux # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_clkmux4 - #(parameter PROP = "DEFAULT" // cell property - ) - ( - input clk0, - input clk1, - input clk2, - input clk3, - input sel0, - input sel1, - input sel2, - input sel3, - input nreset, - output out - ); - - wire [3:0] mask; - wire [3:0] maskb; - wire [3:0] en; - wire enb; - wire [3:0] ensync; - wire ensyncb; - wire [3:0] clkg; - wire [3:0] nreset_sync; - - // create clock mask (4) - la_or3 ior0 (.a(ensync[3]), .b(ensync[2]), .c(ensync[1]), .z(mask[0])); - la_or3 ior1 (.a(ensync[0]), .b(ensync[3]), .c(ensync[2]), .z(mask[1])); - la_or3 ior2 (.a(ensync[1]), .b(ensync[0]), .c(ensync[3]), .z(mask[2])); - la_or3 ior3 (.a(ensync[2]), .b(ensync[1]), .c(ensync[0]), .z(mask[3])); - - // invert mask (4) - la_inv iinv[3:0] (.a(mask[3:0]), .z(maskb[3:0])); - - // clock enable (4) - la_and2 isel[3:0] (.a({sel3,sel2,sel1,sel0}), - .b(maskb[3:0]), - .z(en[3:0])); - - la_inv ienb (.a(en[0]), .z(enb)); - - // data synchronizer with reset (since clocks aren't guaranteed) - la_drsync idrsync[3:0] (.clk({clk3,clk2,clk1,clk0}), - .nreset({4{nreset}}), - .in({en[3:1],enb}), - .out({ensync[3:1],ensyncb})); - - la_inv iensync (.a(ensyncb), .z(ensync[0])); - - // glith free clock gate (4) - la_clkicgand igate[3:0] (.clk({clk3,clk2,clk1,clk0}), - .te(4'b0000), - .en(ensync[3:0]), - .eclk(clkg[3:0])); - - // final clock or (1) - la_clkor4 iorclk (.a(clkg[0]), - .b(clkg[1]), - .c(clkg[2]), - .d(clkg[3]), - .z(out)); - -endmodule // la_clkmux4 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_decap.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_decap.v deleted file mode 100644 index 9e5ebf7c..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_decap.v +++ /dev/null @@ -1,12 +0,0 @@ -//############################################################################# -//# Function: Decap Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_decap #(parameter PROP = "DEFAULT") ( - input vss, - output vdd - ); - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dsync.v deleted file mode 100644 index 125b6864..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dsync.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Synchronizer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_dsync -// #(parameter PROP = "DEFAULT") -// ( -// input clk, // clock -// input in, // input data -// output out // synchronized data -// ); -// -// localparam STAGES=2; -// localparam RND = 1; -// -// reg [STAGES:0] shiftreg; -// integer sync_delay; -// -// always @ (posedge clk) -// begin -// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0],in}; -// `ifndef SYNTHESIS -// sync_delay <= {$random} % 2; -// `endif -// end -// -// `ifdef SYNTHESIS -// assign out = shiftreg[STAGES-1]; -// `else -// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_dsync(clk, in, out); - input clk; - wire clk; - input in; - wire in; - output out; - wire out; - wire \shiftreg[0] ; - gf180mcu_fd_sc_mcu7t5v0__dffq_2 _0_ ( - .CLK(clk), - .D(in), - .Q(\shiftreg[0] ) - ); - gf180mcu_fd_sc_mcu7t5v0__dffq_2 _1_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .Q(out) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_footer.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_footer.v deleted file mode 100644 index b2a644e2..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_footer.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Footer circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_footer #(parameter PROP = "DEFAULT") ( - input nsleep, // 0 = disabled ground - input vssin, // input supply - output vssout // gated output supply - ); - - // Primitive Device - nmos m0 (vddout, vddin, nsleep); //d,s,g - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_header.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_header.v deleted file mode 100644 index f4698b93..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_header.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Header circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_header #(parameter PROP = "DEFAULT") ( - input sleep, // 1 = disabled vdd - input vddin, // input supply - output vddout // gated output supply - ); - - // Primitive Device - pmos m0 (vddout, vssin, sleep); //d,s,g - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_isohi.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_isohi.v deleted file mode 100644 index 2f94be9b..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_isohi.v +++ /dev/null @@ -1,33 +0,0 @@ -// //############################################################################# -// //# Function: Power isolation circuit # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_isohi -// #(parameter PROP = "DEFAULT") -// ( -// input iso, // isolation signal -// input in, // input -// output out // out = iso | in -// ); -// -// assign out = iso | in; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_isohi(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - gf180mcu_fd_sc_mcu7t5v0__or2_2 _0_ ( - .A1(in), - .A2(iso), - .Z(out) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_keeper.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_keeper.v deleted file mode 100644 index 847994bf..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_keeper.v +++ /dev/null @@ -1,11 +0,0 @@ -//############################################################################# -//# Function: Charge Keeper Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_keeper #(parameter PROP = "DEFAULT") ( - inout z - ); - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_pwrbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_pwrbuf.v deleted file mode 100644 index 1d894b0c..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_pwrbuf.v +++ /dev/null @@ -1,37 +0,0 @@ -// //############################################################################# -// //# Function: Non-inverting buffer with supplies # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_pwrbuf #(parameter TARGET = "DEFAULT", // "SIM" -// parameter PROP = "DEFAULT") -// ( -// input vdd, -// input vss, -// input a, -// output z -// ); -// -// generate -// if(TARGET=="SIM") -// assign z = ((vdd===1'b1) && (vss===1'b0)) ? a: 1'bX; -// else -// assign z = a; -// endgenerate -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_pwrbuf(vdd, vss, a, z); - input a; - wire a; - input vdd; - wire vdd; - input vss; - wire vss; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_rsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_rsync.v deleted file mode 100644 index 8799512c..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_rsync.v +++ /dev/null @@ -1,66 +0,0 @@ -// //############################################################################# -// //# Function: Reset synchronizer (async assert, sync deassert) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_rsync -// #(parameter PROP = "DEFAULT") -// ( -// input clk, // clock -// input nrst_in, // async reset input -// output nrst_out // async assert, sync deassert reset -// ); -// -// localparam STAGES=2; -// localparam RND = 1; -// -// reg [STAGES:0] sync_pipe; -// integer sync_delay; -// -// `ifndef SYNTHESIS -// always @ (posedge clk) -// sync_delay <= {$random} % 2; -// `endif -// -// always @ (posedge clk or negedge nrst_in) -// if(!nrst_in) -// sync_pipe[STAGES:0] <= 'b0; -// else -// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0],1'b1}; -// -// `ifdef SYNTHESIS -// assign nrst_out = sync_pipe[STAGES-1]; -// `else -// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_rsync(clk, nrst_in, nrst_out); - wire _0_; - input clk; - wire clk; - input nrst_in; - wire nrst_in; - output nrst_out; - wire nrst_out; - wire \sync_pipe[0] ; - gf180mcu_fd_sc_mcu7t5v0__dffrnq_2 _1_ ( - .CLK(clk), - .D(_0_), - .Q(\sync_pipe[0] ), - .RN(nrst_in) - ); - gf180mcu_fd_sc_mcu7t5v0__dffrnq_2 _2_ ( - .CLK(clk), - .D(\sync_pipe[0] ), - .Q(nrst_out), - .RN(nrst_in) - ); - gf180mcu_fd_sc_mcu7t5v0__tieh _3_ ( - .Z(_0_) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tbuf.v deleted file mode 100644 index ff943c6f..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tbuf.v +++ /dev/null @@ -1,27 +0,0 @@ -// //############################################################################# -// //# Function: Tristate Buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_tbuf #(parameter PROP = "DEFAULT") ( -// input a, -// input oe, -// output z -// ); -// -// assign z = oe ? a : 1'bz; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_and2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_and2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_and2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_and2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_and3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_and3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_and3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_and3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_and4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_and4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_and4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_and4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao21.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao21.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao21.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao21.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao211.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao211.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao211.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao211.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao22.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao22.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao22.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao22.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao221.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao221.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao221.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao221.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao222.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao222.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao222.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao222.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao31.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao31.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao31.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao31.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao311.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao311.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao311.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao311.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao33.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao33.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_ao33.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_ao33.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi21.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi21.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi21.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi21.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi211.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi211.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi211.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi211.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi22.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi22.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi22.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi22.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi221.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi221.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi221.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi221.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi222.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi222.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi222.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi222.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi31.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi31.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi31.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi31.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi311.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi311.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi311.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi311.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi33.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi33.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_aoi33.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_aoi33.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_buf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_buf.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_buf.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_buf.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkand2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkand2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkand2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkand2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkbuf.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkbuf.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkbuf.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkinv.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkinv.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkinv.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkinv.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clknand2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clknand2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clknand2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clknand2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clknor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clknor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clknor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clknor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkor4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkor4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkor4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkor4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkxor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkxor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkxor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_clkxor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_csa32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_csa32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_csa32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_csa32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_csa42.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_csa42.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_csa42.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_csa42.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_delay.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_delay.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_delay.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_delay.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffnq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffnq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffnq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffnq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffrq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffrq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffrq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffrq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffrqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffrqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffrqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffrqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffsq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffsq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffsq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffsq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffsqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffsqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dffsqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dffsqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux5.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux5.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux5.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux5.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux6.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux6.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux6.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux6.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux7.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux7.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux7.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux7.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux8.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux8.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dmux8.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_dmux8.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_inv.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_inv.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_inv.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_inv.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_latnq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_latnq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_latnq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_latnq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_latq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_latq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_latq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_latq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_mux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_mux2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_mux2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_mux2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_mux3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_mux3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_mux3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_mux3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_mux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_mux4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_mux4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_mux4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_muxi2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_muxi2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_muxi2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_muxi2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_muxi3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_muxi3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_muxi3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_muxi3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_muxi4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_muxi4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_muxi4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_muxi4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nand2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nand2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nand2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nand2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nand3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nand3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nand3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nand3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nand4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nand4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nand4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nand4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nor3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nor3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nor3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nor3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nor4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nor4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_nor4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_nor4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa21.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa21.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa21.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa21.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa211.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa211.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa211.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa211.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa22.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa22.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa22.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa22.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa221.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa221.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa221.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa221.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa222.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa222.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa222.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa222.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa31.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa31.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa31.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa31.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa311.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa311.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa311.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa311.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa33.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa33.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oa33.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oa33.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai21.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai21.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai21.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai21.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai22.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai22.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai22.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai22.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai221.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai221.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai221.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai221.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai222.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai222.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai222.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai222.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai31.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai31.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai31.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai31.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai311.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai311.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai311.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai311.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai33.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai33.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_oai33.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_oai33.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_or2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_or2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_or2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_or2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_or3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_or3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_or3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_or3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_or4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_or4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_or4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_or4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffrq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffrq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffrq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffrq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffrqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffrqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffrqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffrqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffsq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffsq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffsq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffsq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffsqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffsqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_sdffsqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_sdffsqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tiehi.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_tiehi.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tiehi.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_tiehi.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tielo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_tielo.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tielo.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_tielo.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xnor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xnor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xnor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xnor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xnor3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xnor3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xnor3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xnor3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xnor4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xnor4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xnor4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xnor4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xor3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xor3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xor3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xor3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xor4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xor4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_xor4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/stdlib/la_xor4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_antenna.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_antenna.v new file mode 100644 index 00000000..251e1d96 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_antenna.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Antenna Diode # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_antenna #( + parameter PROP = "DEFAULT" +) ( + input vss, + output z +); + +gf180mcu_fd_sc_mcu9t5v0__antenna u0(.I(z), .VSS(vss)); + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgand.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgand.v new file mode 100644 index 00000000..6a9e3e4d --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgand.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgand #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable (from positive edge FF) + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (~clk) en_stable <= en | te; + + // assign eclk = clk & en_stable; + +gf180mcu_fd_sc_mcu9t5v0__icgtp_1 u0(.CLK(clk), .E(en), .TE(te), .Q(eclk)); + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgor.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgor.v new file mode 100644 index 00000000..47df85fa --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgor.v @@ -0,0 +1,31 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgor #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (clk) en_stable <= en | te; + + // assign eclk = clk | ~en_stable; + +wire eclk_int; +wire en_bar; + +gf180mcu_fd_sc_mcu9t5v0__icgtp_1 u0(.CLK(clk), .E(en), .TE(te), .Q(eclk_int)); + +gf180mcu_fd_sc_mcu9t5v0__inv_1 u1(.I(en), .ZN(en_bar)); +gf180mcu_fd_sc_mcu9t5v0__or2_1 u2(.A1(en_bar), .A2(eclk_int), .Z(eclk)); + + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux2.v new file mode 100644 index 00000000..8efc9015 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux2.v @@ -0,0 +1,71 @@ +//############################################################################# +//# Function: 2-Input Glitch-Free Clock Mux # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkmux2 #( + parameter PROP = "DEFAULT" // cell property +) ( + input clk0, + input clk1, + input sel0, + input sel1, + input nreset, + output out +); + + wire [1:0] maskb; + wire [1:0] en; + wire enb; + wire [1:0] ensync; + wire ensyncb; + wire [1:0] clkg; + + // invert mask (2) + la_inv iinv[1:0] ( + .a({ensync[0], ensync[1]}), + .z(maskb[1:0]) + ); + + // clock enable (2) + la_and2 isel[1:0] ( + .a({sel1, sel0}), + .b(maskb[1:0]), + .z(en[1:0]) + ); + + la_inv ienb ( + .a(en[0]), + .z(enb) + ); + + // synchronizers (2) + la_drsync isync[1:0] ( + .clk({clk1, clk0}), + .nreset({nreset, nreset}), + .in({en[1], enb}), + .out({ensync[1], ensyncb}) + ); + + la_inv iensync ( + .a(ensyncb), + .z(ensync[0]) + ); + + // glith free clock gate (2) + la_clkicgand igate[1:0] ( + .clk ({clk1, clk0}), + .te (2'b00), + .en (ensync[1:0]), + .eclk(clkg[1:0]) + ); + + // final clock or (1) + la_clkor2 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .z(out) + ); + +endmodule // la_clkmux2 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux4.v new file mode 100644 index 00000000..0b2ff761 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux4.v @@ -0,0 +1,105 @@ +//############################################################################# +//# Function: 4-Input Glitch-Free Clock Mux # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkmux4 #( + parameter PROP = "DEFAULT" // cell property +) ( + input clk0, + input clk1, + input clk2, + input clk3, + input sel0, + input sel1, + input sel2, + input sel3, + input nreset, + output out +); + + wire [3:0] mask; + wire [3:0] maskb; + wire [3:0] en; + wire enb; + wire [3:0] ensync; + wire ensyncb; + wire [3:0] clkg; + wire [3:0] nreset_sync; + + // create clock mask (4) + la_or3 ior0 ( + .a(ensync[3]), + .b(ensync[2]), + .c(ensync[1]), + .z(mask[0]) + ); + la_or3 ior1 ( + .a(ensync[0]), + .b(ensync[3]), + .c(ensync[2]), + .z(mask[1]) + ); + la_or3 ior2 ( + .a(ensync[1]), + .b(ensync[0]), + .c(ensync[3]), + .z(mask[2]) + ); + la_or3 ior3 ( + .a(ensync[2]), + .b(ensync[1]), + .c(ensync[0]), + .z(mask[3]) + ); + + // invert mask (4) + la_inv iinv[3:0] ( + .a(mask[3:0]), + .z(maskb[3:0]) + ); + + // clock enable (4) + la_and2 isel[3:0] ( + .a({sel3, sel2, sel1, sel0}), + .b(maskb[3:0]), + .z(en[3:0]) + ); + + la_inv ienb ( + .a(en[0]), + .z(enb) + ); + + // data synchronizer with reset (since clocks aren't guaranteed) + la_drsync idrsync[3:0] ( + .clk({clk3, clk2, clk1, clk0}), + .nreset({4{nreset}}), + .in({en[3:1], enb}), + .out({ensync[3:1], ensyncb}) + ); + + la_inv iensync ( + .a(ensyncb), + .z(ensync[0]) + ); + + // glith free clock gate (4) + la_clkicgand igate[3:0] ( + .clk ({clk3, clk2, clk1, clk0}), + .te (4'b0000), + .en (ensync[3:0]), + .eclk(clkg[3:0]) + ); + + // final clock or (1) + la_clkor4 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .c(clkg[2]), + .d(clkg[3]), + .z(out) + ); + +endmodule // la_clkmux4 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_drsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v similarity index 69% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_drsync.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v index c4673e8e..bc8d71af 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_drsync.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v @@ -3,30 +3,28 @@ // //# Copyright: Lambda Project Authors. All rights Reserved. # // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# -// module la_drsync -// #(parameter PROP = "DEFAULT") -// ( +// module la_drsync #( +// parameter PROP = "DEFAULT" +// ) ( // input clk, // clock // input in, // input data // input nreset, // async active low reset // output out // synchronized data -// ); +// ); // -// localparam STAGES=2; +// localparam STAGES = 2; // -// reg [STAGES-1:0] shiftreg; +// reg [STAGES-1:0] shiftreg; // -// always @ (posedge clk or negedge nreset) -// if(!nreset) -// shiftreg[STAGES-1:0] <= 'b0; -// else -// shiftreg[STAGES-1:0] <= {shiftreg[STAGES-2:0],in}; +// always @(posedge clk or negedge nreset) +// if (!nreset) shiftreg[STAGES-1:0] <= 'b0; +// else shiftreg[STAGES-1:0] <= {shiftreg[STAGES-2:0], in}; // -// assign out = shiftreg[STAGES-1]; +// assign out = shiftreg[STAGES-1]; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_drsync(clk, in, nreset, out); input clk; diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_dsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_dsync.v new file mode 100644 index 00000000..30dc31e1 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_dsync.v @@ -0,0 +1,49 @@ +//############################################################################# +//# Function: Synchronizer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_dsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize simulation delay + ( + input clk, // clock + input in, // input data + output out // synchronized data + ); + +// reg [STAGES:0] shiftreg; +// always @(posedge clk) +// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; + +// `ifdef SIM +// integer sync_delay; +// always @(posedge clk) +// sync_delay <= {$random} % 2; +// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; +// `else +// assign out = shiftreg[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + assign reg_in = in; + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + gf180mcu_fd_sc_mcu9t5v0__dffq_1 u0 ( + .CK(clk), + .D(reg_in), + .Q(reg_out) + ); + end + endgenerate + + assign out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_iddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v similarity index 60% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_iddr.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v index c9b2d960..c2c04f94 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_iddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v @@ -4,30 +4,28 @@ // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# // -// module la_iddr #(parameter PROP = "DEFAULT") ( -// input clk, // clock -// input in, // data input sampled on both edges of clock -// output reg outrise, // rising edge sample -// output reg outfall // falling edge sample -// ); +// module la_iddr #( +// parameter PROP = "DEFAULT" +// ) ( +// input clk, // clock +// input in, // data input sampled on both edges of clock +// output reg outrise, // rising edge sample +// output reg outfall // falling edge sample +// ); // -// // Negedge Sample -// always @ (negedge clk) -// outfall <= in; +// // Negedge Sample +// always @(negedge clk) outfall <= in; // -// // Posedge Sample -// reg inrise; -// always @ (posedge clk) -// inrise <= in; +// // Posedge Sample +// reg inrise; +// always @(posedge clk) inrise <= in; // -// // Posedge Latch (for hold) -// always @ (clk or inrise) -// if(~clk) -// outrise <= inrise; +// // Posedge Latch (for hold) +// always @(clk or inrise) if (~clk) outrise <= inrise; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_iddr(clk, in, outrise, outfall); wire _0_; diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isohi.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isohi.v new file mode 100644 index 00000000..5aad0fbb --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isohi.v @@ -0,0 +1,33 @@ +// //############################################################################# +// //# Function: Power isolation circuit # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_isohi #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = iso | in +// ); +// +// assign out = iso | in; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_isohi(iso, in, out); + input in; + wire in; + input iso; + wire iso; + output out; + wire out; + gf180mcu_fd_sc_mcu9t5v0__or2_4 _0_ ( + .A1(in), + .A2(iso), + .Z(out) + ); +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_isolo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v similarity index 71% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_isolo.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v index 332d1cad..d48b122a 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_isolo.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v @@ -4,19 +4,19 @@ // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# // -// module la_isolo -// #(parameter PROP = "DEFAULT") -// ( -// input iso, // isolation signal -// input in, // input -// output out // out = ~iso & in -// ); +// module la_isolo #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = ~iso & in +// ); // -// assign out = ~iso & in; +// assign out = ~iso & in; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_isolo(iso, in, out); wire _0_; diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v similarity index 63% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oddr.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v index 017e4ea7..b5ec0fce 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v @@ -4,25 +4,25 @@ // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# // -// module la_oddr #(parameter PROP = "DEFAULT") ( -// input clk, // clock input -// input in0, // data for clk=0 -// input in1, // data for clk=1 -// output out // dual data rate output -// ); +// module la_oddr #( +// parameter PROP = "DEFAULT" +// ) ( +// input clk, // clock input +// input in0, // data for clk=0 +// input in1, // data for clk=1 +// output out // dual data rate output +// ); // -// //Making in1 stable for clk=1 -// reg in1_sh; -// always @ (clk or in1) -// if(~clk) -// in1_sh <= in1; +// //Making in1 stable for clk=1 +// reg in1_sh; +// always @(clk or in1) if (~clk) in1_sh <= in1; // -// //Using clock as data selctor -// assign out = clk ? in1_sh : in0; +// //Using clock as data selctor +// assign out = clk ? in1_sh : in0; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_oddr(clk, in0, in1, out); wire _0_; diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_pwrbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_pwrbuf.v new file mode 100644 index 00000000..31b195df --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_pwrbuf.v @@ -0,0 +1,25 @@ +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_pwrbuf #( + parameter PROP = "DEFAULT" + ) + ( + input vdd, + input vss, + input a, + output z + ); + +// `ifdef SIM +// assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; +// `else +// assign z = a; +// `endif + +gf180mcu_fd_sc_mcu9t5v0__buf_1 u0(.I(a), .Z(z), .VSS(vss), .VDD(vdd)); + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_rsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_rsync.v new file mode 100644 index 00000000..2fd9f1ea --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_rsync.v @@ -0,0 +1,59 @@ +//############################################################################# +//# Function: Reset synchronizer (async assert, sync deassert) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_rsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize sync + + ( + input clk, // clock + input nrst_in, // async reset input + output nrst_out // async assert, sync deassert reset + ); + +// reg [STAGES:0] sync_pipe; +// integer sync_delay; + + +// always @(posedge clk or negedge nrst_in) +// if (!nrst_in) +// sync_pipe[STAGES:0] <= 'b0; +// else +// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; + +// `ifdef SIM +// always @(posedge clk) +// sync_delay <= {$random} % 2; + +// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; +// `else +// assign nrst_out = sync_pipe[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + LOGIC1_X1 u1 ( + .Z(reg_in) + ); + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + gf180mcu_fd_sc_mcu9t5v0__dffrnq_1 u0 ( + .CLK(clk), + .RN(nrest_in), + .D(reg_in), + .Q(reg_out) + ); + end + endgenerate + + assign nrst_out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_tbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_tbuf.v new file mode 100644 index 00000000..c48397e4 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_tbuf.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + // assign z = oe ? a : 1'bz; + +gf180mcu_fd_sc_mcu9t5v0__bufz_1 u0(.I(a), .EN(oe), .Z(z)); + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgand.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgand.v deleted file mode 100644 index ff7cae58..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgand.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "And" Clock Gating Cell (And) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgand #(parameter PROP = "DEFAULT") ( -// input clk, // clock input -// input te, // test enable -// input en, // enable (from positive edge FF) -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @ (clk or en or te) -// if (~clk) -// en_stable <= en | te; -// -// assign eclk = clk & en_stable; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_clkicgand(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - gf180mcu_fd_sc_mcu9t5v0__and2_2 _2_ ( - .A1(en_stable), - .A2(clk), - .Z(eclk) - ); - gf180mcu_fd_sc_mcu9t5v0__or2_2 _3_ ( - .A1(te), - .A2(en), - .Z(_0_) - ); - gf180mcu_fd_sc_mcu9t5v0__clkinv_2 _4_ ( - .I(clk), - .ZN(_1_) - ); - gf180mcu_fd_sc_mcu9t5v0__latq_1 _5_ ( - .D(_0_), - .E(_1_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgor.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgor.v deleted file mode 100644 index c84acf2a..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgor.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "Or" Clock Gating Cell # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgor #(parameter PROP = "DEFAULT") ( -// input clk,// clock input -// input te, // test enable -// input en, // enable -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @ (clk or en or te) -// if (clk) -// en_stable <= en | te; -// -// assign eclk = clk | ~en_stable; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_clkicgor(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - gf180mcu_fd_sc_mcu9t5v0__or2_2 _2_ ( - .A1(te), - .A2(en), - .Z(_0_) - ); - gf180mcu_fd_sc_mcu9t5v0__clkinv_2 _3_ ( - .I(clk), - .ZN(_1_) - ); - gf180mcu_fd_sc_mcu9t5v0__nand2_2 _4_ ( - .A1(_1_), - .A2(en_stable), - .ZN(eclk) - ); - gf180mcu_fd_sc_mcu9t5v0__latq_1 _5_ ( - .D(_0_), - .E(clk), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux2.v deleted file mode 100644 index fd74ce57..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux2.v +++ /dev/null @@ -1,55 +0,0 @@ -//############################################################################# -//# Function: 2-Input Glitch-Free Clock Mux # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_clkmux2 - #(parameter PROP = "DEFAULT" // cell property - ) - ( - input clk0, - input clk1, - input sel0, - input sel1, - input nreset, - output out - ); - - wire [1:0] maskb; - wire [1:0] en; - wire enb; - wire [1:0] ensync; - wire ensyncb; - wire [1:0] clkg; - - // invert mask (2) - la_inv iinv[1:0] (.a({ensync[0],ensync[1]}), .z(maskb[1:0])); - - // clock enable (2) - la_and2 isel[1:0] (.a({sel1,sel0}), - .b(maskb[1:0]), - .z(en[1:0])); - - la_inv ienb (.a(en[0]), .z(enb)); - - // synchronizers (2) - la_drsync isync[1:0] (.clk({clk1,clk0}), - .nreset({nreset,nreset}), - .in({en[1],enb}), - .out({ensync[1],ensyncb})); - - la_inv iensync (.a(ensyncb), .z(ensync[0])); - - // glith free clock gate (2) - la_clkicgand igate[1:0] (.clk({clk1,clk0}), - .te(2'b00), - .en(ensync[1:0]), - .eclk(clkg[1:0])); - - // final clock or (1) - la_clkor2 iorclk (.a(clkg[0]), - .b(clkg[1]), - .z(out)); - -endmodule // la_clkmux2 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux4.v deleted file mode 100644 index deea9029..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux4.v +++ /dev/null @@ -1,69 +0,0 @@ -//############################################################################# -//# Function: 4-Input Glitch-Free Clock Mux # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_clkmux4 - #(parameter PROP = "DEFAULT" // cell property - ) - ( - input clk0, - input clk1, - input clk2, - input clk3, - input sel0, - input sel1, - input sel2, - input sel3, - input nreset, - output out - ); - - wire [3:0] mask; - wire [3:0] maskb; - wire [3:0] en; - wire enb; - wire [3:0] ensync; - wire ensyncb; - wire [3:0] clkg; - wire [3:0] nreset_sync; - - // create clock mask (4) - la_or3 ior0 (.a(ensync[3]), .b(ensync[2]), .c(ensync[1]), .z(mask[0])); - la_or3 ior1 (.a(ensync[0]), .b(ensync[3]), .c(ensync[2]), .z(mask[1])); - la_or3 ior2 (.a(ensync[1]), .b(ensync[0]), .c(ensync[3]), .z(mask[2])); - la_or3 ior3 (.a(ensync[2]), .b(ensync[1]), .c(ensync[0]), .z(mask[3])); - - // invert mask (4) - la_inv iinv[3:0] (.a(mask[3:0]), .z(maskb[3:0])); - - // clock enable (4) - la_and2 isel[3:0] (.a({sel3,sel2,sel1,sel0}), - .b(maskb[3:0]), - .z(en[3:0])); - - la_inv ienb (.a(en[0]), .z(enb)); - - // data synchronizer with reset (since clocks aren't guaranteed) - la_drsync idrsync[3:0] (.clk({clk3,clk2,clk1,clk0}), - .nreset({4{nreset}}), - .in({en[3:1],enb}), - .out({ensync[3:1],ensyncb})); - - la_inv iensync (.a(ensyncb), .z(ensync[0])); - - // glith free clock gate (4) - la_clkicgand igate[3:0] (.clk({clk3,clk2,clk1,clk0}), - .te(4'b0000), - .en(ensync[3:0]), - .eclk(clkg[3:0])); - - // final clock or (1) - la_clkor4 iorclk (.a(clkg[0]), - .b(clkg[1]), - .c(clkg[2]), - .d(clkg[3]), - .z(out)); - -endmodule // la_clkmux4 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_decap.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_decap.v deleted file mode 100644 index 9e5ebf7c..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_decap.v +++ /dev/null @@ -1,12 +0,0 @@ -//############################################################################# -//# Function: Decap Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_decap #(parameter PROP = "DEFAULT") ( - input vss, - output vdd - ); - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dsync.v deleted file mode 100644 index e3b5449c..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dsync.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Synchronizer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_dsync -// #(parameter PROP = "DEFAULT") -// ( -// input clk, // clock -// input in, // input data -// output out // synchronized data -// ); -// -// localparam STAGES=2; -// localparam RND = 1; -// -// reg [STAGES:0] shiftreg; -// integer sync_delay; -// -// always @ (posedge clk) -// begin -// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0],in}; -// `ifndef SYNTHESIS -// sync_delay <= {$random} % 2; -// `endif -// end -// -// `ifdef SYNTHESIS -// assign out = shiftreg[STAGES-1]; -// `else -// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_dsync(clk, in, out); - input clk; - wire clk; - input in; - wire in; - output out; - wire out; - wire \shiftreg[0] ; - gf180mcu_fd_sc_mcu9t5v0__dffq_2 _0_ ( - .CLK(clk), - .D(in), - .Q(\shiftreg[0] ) - ); - gf180mcu_fd_sc_mcu9t5v0__dffq_2 _1_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .Q(out) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_footer.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_footer.v deleted file mode 100644 index b2a644e2..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_footer.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Footer circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_footer #(parameter PROP = "DEFAULT") ( - input nsleep, // 0 = disabled ground - input vssin, // input supply - output vssout // gated output supply - ); - - // Primitive Device - nmos m0 (vddout, vddin, nsleep); //d,s,g - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_header.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_header.v deleted file mode 100644 index f4698b93..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_header.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Header circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_header #(parameter PROP = "DEFAULT") ( - input sleep, // 1 = disabled vdd - input vddin, // input supply - output vddout // gated output supply - ); - - // Primitive Device - pmos m0 (vddout, vssin, sleep); //d,s,g - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_isohi.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_isohi.v deleted file mode 100644 index d99ce96c..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_isohi.v +++ /dev/null @@ -1,33 +0,0 @@ -// //############################################################################# -// //# Function: Power isolation circuit # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_isohi -// #(parameter PROP = "DEFAULT") -// ( -// input iso, // isolation signal -// input in, // input -// output out // out = iso | in -// ); -// -// assign out = iso | in; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_isohi(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - gf180mcu_fd_sc_mcu9t5v0__or2_2 _0_ ( - .A1(in), - .A2(iso), - .Z(out) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_keeper.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_keeper.v deleted file mode 100644 index 847994bf..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_keeper.v +++ /dev/null @@ -1,11 +0,0 @@ -//############################################################################# -//# Function: Charge Keeper Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_keeper #(parameter PROP = "DEFAULT") ( - inout z - ); - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_pwrbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_pwrbuf.v deleted file mode 100644 index 1d894b0c..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_pwrbuf.v +++ /dev/null @@ -1,37 +0,0 @@ -// //############################################################################# -// //# Function: Non-inverting buffer with supplies # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_pwrbuf #(parameter TARGET = "DEFAULT", // "SIM" -// parameter PROP = "DEFAULT") -// ( -// input vdd, -// input vss, -// input a, -// output z -// ); -// -// generate -// if(TARGET=="SIM") -// assign z = ((vdd===1'b1) && (vss===1'b0)) ? a: 1'bX; -// else -// assign z = a; -// endgenerate -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_pwrbuf(vdd, vss, a, z); - input a; - wire a; - input vdd; - wire vdd; - input vss; - wire vss; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_rsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_rsync.v deleted file mode 100644 index 92d3afa7..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_rsync.v +++ /dev/null @@ -1,66 +0,0 @@ -// //############################################################################# -// //# Function: Reset synchronizer (async assert, sync deassert) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_rsync -// #(parameter PROP = "DEFAULT") -// ( -// input clk, // clock -// input nrst_in, // async reset input -// output nrst_out // async assert, sync deassert reset -// ); -// -// localparam STAGES=2; -// localparam RND = 1; -// -// reg [STAGES:0] sync_pipe; -// integer sync_delay; -// -// `ifndef SYNTHESIS -// always @ (posedge clk) -// sync_delay <= {$random} % 2; -// `endif -// -// always @ (posedge clk or negedge nrst_in) -// if(!nrst_in) -// sync_pipe[STAGES:0] <= 'b0; -// else -// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0],1'b1}; -// -// `ifdef SYNTHESIS -// assign nrst_out = sync_pipe[STAGES-1]; -// `else -// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_rsync(clk, nrst_in, nrst_out); - wire _0_; - input clk; - wire clk; - input nrst_in; - wire nrst_in; - output nrst_out; - wire nrst_out; - wire \sync_pipe[0] ; - gf180mcu_fd_sc_mcu9t5v0__dffrnq_2 _1_ ( - .CLK(clk), - .D(_0_), - .Q(\sync_pipe[0] ), - .RN(nrst_in) - ); - gf180mcu_fd_sc_mcu9t5v0__dffrnq_2 _2_ ( - .CLK(clk), - .D(\sync_pipe[0] ), - .Q(nrst_out), - .RN(nrst_in) - ); - gf180mcu_fd_sc_mcu9t5v0__tieh _3_ ( - .Z(_0_) - ); -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tbuf.v deleted file mode 100644 index ff943c6f..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tbuf.v +++ /dev/null @@ -1,27 +0,0 @@ -// //############################################################################# -// //# Function: Tristate Buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_tbuf #(parameter PROP = "DEFAULT") ( -// input a, -// input oe, -// output z -// ); -// -// assign z = oe ? a : 1'bz; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_and2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_and2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_and2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_and2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_and3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_and3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_and3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_and3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_and4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_and4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_and4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_and4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao21.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao21.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao21.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao21.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao211.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao211.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao211.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao211.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao22.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao22.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao22.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao22.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao221.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao221.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao221.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao221.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao222.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao222.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao222.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao222.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao31.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao31.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao31.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao31.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao311.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao311.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao311.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao311.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao33.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao33.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_ao33.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_ao33.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi21.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi21.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi21.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi21.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi211.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi211.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi211.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi211.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi22.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi22.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi22.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi22.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi221.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi221.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi221.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi221.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi222.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi222.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi222.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi222.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi31.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi31.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi31.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi31.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi311.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi311.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi311.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi311.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi33.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi33.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_aoi33.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_aoi33.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_buf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_buf.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_buf.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_buf.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkand2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkand2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkand2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkand2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkbuf.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkbuf.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkbuf.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkinv.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkinv.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkinv.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkinv.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clknand2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clknand2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clknand2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clknand2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clknor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clknor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clknor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clknor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkor4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkor4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkor4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkor4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkxor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkxor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkxor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_clkxor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_csa32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_csa32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_csa32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_csa32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_csa42.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_csa42.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_csa42.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_csa42.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_delay.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_delay.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_delay.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_delay.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffnq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffnq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffnq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffnq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffrq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffrq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffrq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffrq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffrqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffrqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffrqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffrqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffsq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffsq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffsq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffsq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffsqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffsqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dffsqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dffsqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux5.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux5.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux5.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux5.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux6.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux6.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux6.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux6.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux7.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux7.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux7.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux7.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux8.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux8.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dmux8.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_dmux8.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_inv.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_inv.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_inv.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_inv.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_latnq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_latnq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_latnq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_latnq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_latq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_latq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_latq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_latq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_mux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_mux2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_mux2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_mux2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_mux3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_mux3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_mux3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_mux3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_mux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_mux4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_mux4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_mux4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_muxi2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_muxi2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_muxi2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_muxi2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_muxi3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_muxi3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_muxi3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_muxi3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_muxi4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_muxi4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_muxi4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_muxi4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nand2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nand2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nand2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nand2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nand3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nand3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nand3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nand3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nand4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nand4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nand4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nand4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nor3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nor3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nor3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nor3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nor4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nor4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_nor4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_nor4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa21.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa21.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa21.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa21.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa211.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa211.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa211.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa211.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa22.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa22.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa22.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa22.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa221.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa221.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa221.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa221.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa222.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa222.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa222.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa222.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa31.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa31.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa31.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa31.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa311.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa311.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa311.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa311.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa33.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa33.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oa33.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oa33.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai21.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai21.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai21.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai21.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai22.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai22.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai22.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai22.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai221.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai221.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai221.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai221.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai222.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai222.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai222.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai222.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai31.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai31.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai31.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai31.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai311.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai311.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai311.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai311.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai32.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai32.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai32.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai32.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai33.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai33.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_oai33.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_oai33.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_or2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_or2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_or2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_or2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_or3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_or3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_or3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_or3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_or4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_or4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_or4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_or4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffrq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffrq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffrq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffrq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffrqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffrqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffrqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffrqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffsq.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffsq.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffsq.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffsq.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffsqn.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffsqn.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_sdffsqn.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_sdffsqn.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tiehi.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_tiehi.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tiehi.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_tiehi.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tielo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_tielo.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tielo.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_tielo.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xnor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xnor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xnor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xnor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xnor3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xnor3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xnor3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xnor3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xnor4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xnor4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xnor4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xnor4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xor2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xor2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xor2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xor2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xor3.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xor3.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xor3.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xor3.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xor4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xor4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_xor4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/stdlib/la_xor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_antenna.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v similarity index 90% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_antenna.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v index 9b86fd26..a5835b48 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_antenna.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v @@ -11,4 +11,6 @@ module la_antenna #( output z ); +sky130_fd_sc_hd__diode_2 u0(.DIODE(z), .VGND(vss)); + endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v new file mode 100644 index 00000000..24687df3 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgand #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable (from positive edge FF) + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (~clk) en_stable <= en | te; + + // assign eclk = clk & en_stable; + +sky130_fd_sc_hd__sdlclkp_1 u0(.CLK(clk), .SCE(te), .GATE(en), .GCLK(eclk)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v new file mode 100644 index 00000000..aa6b4a12 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v @@ -0,0 +1,30 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgor #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (clk) en_stable <= en | te; + + // assign eclk = clk | ~en_stable; + +wire eclk_int; +wire en_bar; + +sky130_fd_sc_hd__sdlclkp_1 u0(.CLK(clk), .SCE(te), .GATE(en), .GCLK(eclk_int)); + +sky130_fd_sc_hd__inv_1 u1(.A(en), .Y(en_bar)); +sky130_fd_sc_hd__or2_1 u2(.A(en_bar), .B(eclk_int), .X(eclk)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux2.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux2.v new file mode 100644 index 00000000..8efc9015 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux2.v @@ -0,0 +1,71 @@ +//############################################################################# +//# Function: 2-Input Glitch-Free Clock Mux # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkmux2 #( + parameter PROP = "DEFAULT" // cell property +) ( + input clk0, + input clk1, + input sel0, + input sel1, + input nreset, + output out +); + + wire [1:0] maskb; + wire [1:0] en; + wire enb; + wire [1:0] ensync; + wire ensyncb; + wire [1:0] clkg; + + // invert mask (2) + la_inv iinv[1:0] ( + .a({ensync[0], ensync[1]}), + .z(maskb[1:0]) + ); + + // clock enable (2) + la_and2 isel[1:0] ( + .a({sel1, sel0}), + .b(maskb[1:0]), + .z(en[1:0]) + ); + + la_inv ienb ( + .a(en[0]), + .z(enb) + ); + + // synchronizers (2) + la_drsync isync[1:0] ( + .clk({clk1, clk0}), + .nreset({nreset, nreset}), + .in({en[1], enb}), + .out({ensync[1], ensyncb}) + ); + + la_inv iensync ( + .a(ensyncb), + .z(ensync[0]) + ); + + // glith free clock gate (2) + la_clkicgand igate[1:0] ( + .clk ({clk1, clk0}), + .te (2'b00), + .en (ensync[1:0]), + .eclk(clkg[1:0]) + ); + + // final clock or (1) + la_clkor2 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .z(out) + ); + +endmodule // la_clkmux2 diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux4.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux4.v new file mode 100644 index 00000000..0b2ff761 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux4.v @@ -0,0 +1,105 @@ +//############################################################################# +//# Function: 4-Input Glitch-Free Clock Mux # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkmux4 #( + parameter PROP = "DEFAULT" // cell property +) ( + input clk0, + input clk1, + input clk2, + input clk3, + input sel0, + input sel1, + input sel2, + input sel3, + input nreset, + output out +); + + wire [3:0] mask; + wire [3:0] maskb; + wire [3:0] en; + wire enb; + wire [3:0] ensync; + wire ensyncb; + wire [3:0] clkg; + wire [3:0] nreset_sync; + + // create clock mask (4) + la_or3 ior0 ( + .a(ensync[3]), + .b(ensync[2]), + .c(ensync[1]), + .z(mask[0]) + ); + la_or3 ior1 ( + .a(ensync[0]), + .b(ensync[3]), + .c(ensync[2]), + .z(mask[1]) + ); + la_or3 ior2 ( + .a(ensync[1]), + .b(ensync[0]), + .c(ensync[3]), + .z(mask[2]) + ); + la_or3 ior3 ( + .a(ensync[2]), + .b(ensync[1]), + .c(ensync[0]), + .z(mask[3]) + ); + + // invert mask (4) + la_inv iinv[3:0] ( + .a(mask[3:0]), + .z(maskb[3:0]) + ); + + // clock enable (4) + la_and2 isel[3:0] ( + .a({sel3, sel2, sel1, sel0}), + .b(maskb[3:0]), + .z(en[3:0]) + ); + + la_inv ienb ( + .a(en[0]), + .z(enb) + ); + + // data synchronizer with reset (since clocks aren't guaranteed) + la_drsync idrsync[3:0] ( + .clk({clk3, clk2, clk1, clk0}), + .nreset({4{nreset}}), + .in({en[3:1], enb}), + .out({ensync[3:1], ensyncb}) + ); + + la_inv iensync ( + .a(ensyncb), + .z(ensync[0]) + ); + + // glith free clock gate (4) + la_clkicgand igate[3:0] ( + .clk ({clk3, clk2, clk1, clk0}), + .te (4'b0000), + .en (ensync[3:0]), + .eclk(clkg[3:0]) + ); + + // final clock or (1) + la_clkor4 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .c(clkg[2]), + .d(clkg[3]), + .z(out) + ); + +endmodule // la_clkmux4 diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_decap.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v similarity index 90% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_decap.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v index e863a137..c3f6c3ca 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_decap.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v @@ -11,4 +11,6 @@ module la_decap #( output vdd ); +sky130_fd_sc_hd__decap_12 u0(.VGND(vss), .VPWR(vdd)); + endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_drsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v similarity index 69% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_drsync.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v index 85d91ec3..32127a13 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_drsync.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v @@ -3,30 +3,28 @@ // //# Copyright: Lambda Project Authors. All rights Reserved. # // //# License: MIT (see LICENSE file in Lambda repository) # // //############################################################################# -// module la_drsync -// #(parameter PROP = "DEFAULT") -// ( +// module la_drsync #( +// parameter PROP = "DEFAULT" +// ) ( // input clk, // clock // input in, // input data // input nreset, // async active low reset // output out // synchronized data -// ); +// ); // -// localparam STAGES=2; +// localparam STAGES = 2; // -// reg [STAGES-1:0] shiftreg; +// reg [STAGES-1:0] shiftreg; // -// always @ (posedge clk or negedge nreset) -// if(!nreset) -// shiftreg[STAGES-1:0] <= 'b0; -// else -// shiftreg[STAGES-1:0] <= {shiftreg[STAGES-2:0],in}; +// always @(posedge clk or negedge nreset) +// if (!nreset) shiftreg[STAGES-1:0] <= 'b0; +// else shiftreg[STAGES-1:0] <= {shiftreg[STAGES-2:0], in}; // -// assign out = shiftreg[STAGES-1]; +// assign out = shiftreg[STAGES-1]; // // endmodule -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_drsync(clk, in, nreset, out); input clk; diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v new file mode 100644 index 00000000..0bf81203 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v @@ -0,0 +1,49 @@ +//############################################################################# +//# Function: Synchronizer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_dsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize simulation delay + ( + input clk, // clock + input in, // input data + output out // synchronized data + ); + +// reg [STAGES:0] shiftreg; +// always @(posedge clk) +// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; + +// `ifdef SIM +// integer sync_delay; +// always @(posedge clk) +// sync_delay <= {$random} % 2; +// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; +// `else +// assign out = shiftreg[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + assign reg_in = in; + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + sky130_fd_sc_hd__dfxtp_1 u0 ( + .CLK(clk), + .D(reg_in), + .Q(reg_out) + ); + end + endgenerate + + assign out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v new file mode 100644 index 00000000..85b9c50b --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v @@ -0,0 +1,60 @@ +// //############################################################################# +// //# Function: Dual data rate input buffer # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_iddr #( +// parameter PROP = "DEFAULT" +// ) ( +// input clk, // clock +// input in, // data input sampled on both edges of clock +// output reg outrise, // rising edge sample +// output reg outfall // falling edge sample +// ); +// +// // Negedge Sample +// always @(negedge clk) outfall <= in; +// +// // Posedge Sample +// reg inrise; +// always @(posedge clk) inrise <= in; +// +// // Posedge Latch (for hold) +// always @(clk or inrise) if (~clk) outrise <= inrise; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_iddr(clk, in, outrise, outfall); + wire _0_; + input clk; + wire clk; + input in; + wire in; + wire inrise; + output outfall; + wire outfall; + output outrise; + wire outrise; + sky130_fd_sc_hd__inv_2 _1_ ( + .A(clk), + .Y(_0_) + ); + sky130_fd_sc_hd__dlxtn_1 _2_ ( + .D(inrise), + .GATE_N(clk), + .Q(outrise) + ); + sky130_fd_sc_hd__dfxtp_1 _3_ ( + .CLK(clk), + .D(in), + .Q(inrise) + ); + sky130_fd_sc_hd__dfxtp_1 _4_ ( + .CLK(_0_), + .D(in), + .Q(outfall) + ); +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v new file mode 100644 index 00000000..b0392bf9 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v @@ -0,0 +1,33 @@ +// //############################################################################# +// //# Function: Power isolation circuit # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_isohi #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = iso | in +// ); +// +// assign out = iso | in; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_isohi(iso, in, out); + input in; + wire in; + input iso; + wire iso; + output out; + wire out; + sky130_fd_sc_hd__or2_1 _0_ ( + .A(in), + .B(iso), + .X(out) + ); +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v new file mode 100644 index 00000000..484c3b37 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v @@ -0,0 +1,33 @@ +// //############################################################################# +// //# Function: Power isolation circuit # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_isolo #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = ~iso & in +// ); +// +// assign out = ~iso & in; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_isolo(iso, in, out); + input in; + wire in; + input iso; + wire iso; + output out; + wire out; + sky130_fd_sc_hd__nor2b_4 _0_ ( + .A(iso), + .B_N(in), + .Y(out) + ); +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v new file mode 100644 index 00000000..eefbdb82 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v @@ -0,0 +1,48 @@ +// //############################################################################# +// //# Function: Dual data rate output buffer # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_oddr #( +// parameter PROP = "DEFAULT" +// ) ( +// input clk, // clock input +// input in0, // data for clk=0 +// input in1, // data for clk=1 +// output out // dual data rate output +// ); +// +// //Making in1 stable for clk=1 +// reg in1_sh; +// always @(clk or in1) if (~clk) in1_sh <= in1; +// +// //Using clock as data selctor +// assign out = clk ? in1_sh : in0; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_oddr(clk, in0, in1, out); + input clk; + wire clk; + input in0; + wire in0; + input in1; + wire in1; + wire in1_sh; + output out; + wire out; + sky130_fd_sc_hd__mux2_4 _0_ ( + .A0(in0), + .A1(in1_sh), + .S(clk), + .X(out) + ); + sky130_fd_sc_hd__dlxtn_1 _1_ ( + .D(in1), + .GATE_N(clk), + .Q(in1_sh) + ); +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v new file mode 100644 index 00000000..cc113910 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v @@ -0,0 +1,25 @@ +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_pwrbuf #( + parameter PROP = "DEFAULT" + ) + ( + input vdd, + input vss, + input a, + output z + ); + +// `ifdef SIM +// assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; +// `else +// assign z = a; +// `endif + +sky130_fd_sc_hd__buf_1 u0(.A(a), .X(z), .VGND(vss), .VPWR(vdd)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v new file mode 100644 index 00000000..fb63793f --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v @@ -0,0 +1,59 @@ +//############################################################################# +//# Function: Reset synchronizer (async assert, sync deassert) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_rsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize sync + + ( + input clk, // clock + input nrst_in, // async reset input + output nrst_out // async assert, sync deassert reset + ); + +// reg [STAGES:0] sync_pipe; +// integer sync_delay; + + +// always @(posedge clk or negedge nrst_in) +// if (!nrst_in) +// sync_pipe[STAGES:0] <= 'b0; +// else +// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; + +// `ifdef SIM +// always @(posedge clk) +// sync_delay <= {$random} % 2; + +// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; +// `else +// assign nrst_out = sync_pipe[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + LOGIC1_X1 u1 ( + .Z(reg_in) + ); + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + sky130_fd_sc_hd__dfrtp_1 u0 ( + .CLK(clk), + .RESET_B(nrest_in), + .D(reg_in), + .Q(reg_out) + ); + end + endgenerate + + assign nrst_out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v new file mode 100644 index 00000000..4d2fb80e --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v @@ -0,0 +1,21 @@ +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + // assign z = oe ? a : 1'bz; + +wire oe_bar; +sky130_fd_sc_hd__inv_1 u1(.A(eo), .Y(oe_bar)); +sky130_fd_sc_hd__ebufn_1 u0(.A(a), .TE_B(oe_bar), .Z(z)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgand.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgand.v deleted file mode 100644 index bdb53073..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgand.v +++ /dev/null @@ -1,52 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "And" Clock Gating Cell (And) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgand #(parameter PROP = "DEFAULT") ( -// input clk, // clock input -// input te, // test enable -// input en, // enable (from positive edge FF) -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @ (clk or en or te) -// if (~clk) -// en_stable <= en | te; -// -// assign eclk = clk & en_stable; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_clkicgand(clk, te, en, eclk); - wire _0_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - sky130_fd_sc_hd__and2_0 _1_ ( - .A(en_stable), - .B(clk), - .X(eclk) - ); - sky130_fd_sc_hd__or2_0 _2_ ( - .A(te), - .B(en), - .X(_0_) - ); - sky130_fd_sc_hd__dlxtn_1 _3_ ( - .D(_0_), - .GATE_N(clk), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgor.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgor.v deleted file mode 100644 index bca51c7f..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgor.v +++ /dev/null @@ -1,52 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "Or" Clock Gating Cell # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgor #(parameter PROP = "DEFAULT") ( -// input clk,// clock input -// input te, // test enable -// input en, // enable -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @ (clk or en or te) -// if (clk) -// en_stable <= en | te; -// -// assign eclk = clk | ~en_stable; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_clkicgor(clk, te, en, eclk); - wire _0_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - sky130_fd_sc_hd__or2_0 _1_ ( - .A(te), - .B(en), - .X(_0_) - ); - sky130_fd_sc_hd__nand2b_1 _2_ ( - .A_N(clk), - .B(en_stable), - .Y(eclk) - ); - sky130_fd_sc_hd__dlxtp_1 _3_ ( - .D(_0_), - .GATE(clk), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux2.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux2.v deleted file mode 100644 index fd74ce57..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux2.v +++ /dev/null @@ -1,55 +0,0 @@ -//############################################################################# -//# Function: 2-Input Glitch-Free Clock Mux # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_clkmux2 - #(parameter PROP = "DEFAULT" // cell property - ) - ( - input clk0, - input clk1, - input sel0, - input sel1, - input nreset, - output out - ); - - wire [1:0] maskb; - wire [1:0] en; - wire enb; - wire [1:0] ensync; - wire ensyncb; - wire [1:0] clkg; - - // invert mask (2) - la_inv iinv[1:0] (.a({ensync[0],ensync[1]}), .z(maskb[1:0])); - - // clock enable (2) - la_and2 isel[1:0] (.a({sel1,sel0}), - .b(maskb[1:0]), - .z(en[1:0])); - - la_inv ienb (.a(en[0]), .z(enb)); - - // synchronizers (2) - la_drsync isync[1:0] (.clk({clk1,clk0}), - .nreset({nreset,nreset}), - .in({en[1],enb}), - .out({ensync[1],ensyncb})); - - la_inv iensync (.a(ensyncb), .z(ensync[0])); - - // glith free clock gate (2) - la_clkicgand igate[1:0] (.clk({clk1,clk0}), - .te(2'b00), - .en(ensync[1:0]), - .eclk(clkg[1:0])); - - // final clock or (1) - la_clkor2 iorclk (.a(clkg[0]), - .b(clkg[1]), - .z(out)); - -endmodule // la_clkmux2 diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux4.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux4.v deleted file mode 100644 index deea9029..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux4.v +++ /dev/null @@ -1,69 +0,0 @@ -//############################################################################# -//# Function: 4-Input Glitch-Free Clock Mux # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_clkmux4 - #(parameter PROP = "DEFAULT" // cell property - ) - ( - input clk0, - input clk1, - input clk2, - input clk3, - input sel0, - input sel1, - input sel2, - input sel3, - input nreset, - output out - ); - - wire [3:0] mask; - wire [3:0] maskb; - wire [3:0] en; - wire enb; - wire [3:0] ensync; - wire ensyncb; - wire [3:0] clkg; - wire [3:0] nreset_sync; - - // create clock mask (4) - la_or3 ior0 (.a(ensync[3]), .b(ensync[2]), .c(ensync[1]), .z(mask[0])); - la_or3 ior1 (.a(ensync[0]), .b(ensync[3]), .c(ensync[2]), .z(mask[1])); - la_or3 ior2 (.a(ensync[1]), .b(ensync[0]), .c(ensync[3]), .z(mask[2])); - la_or3 ior3 (.a(ensync[2]), .b(ensync[1]), .c(ensync[0]), .z(mask[3])); - - // invert mask (4) - la_inv iinv[3:0] (.a(mask[3:0]), .z(maskb[3:0])); - - // clock enable (4) - la_and2 isel[3:0] (.a({sel3,sel2,sel1,sel0}), - .b(maskb[3:0]), - .z(en[3:0])); - - la_inv ienb (.a(en[0]), .z(enb)); - - // data synchronizer with reset (since clocks aren't guaranteed) - la_drsync idrsync[3:0] (.clk({clk3,clk2,clk1,clk0}), - .nreset({4{nreset}}), - .in({en[3:1],enb}), - .out({ensync[3:1],ensyncb})); - - la_inv iensync (.a(ensyncb), .z(ensync[0])); - - // glith free clock gate (4) - la_clkicgand igate[3:0] (.clk({clk3,clk2,clk1,clk0}), - .te(4'b0000), - .en(ensync[3:0]), - .eclk(clkg[3:0])); - - // final clock or (1) - la_clkor4 iorclk (.a(clkg[0]), - .b(clkg[1]), - .c(clkg[2]), - .d(clkg[3]), - .z(out)); - -endmodule // la_clkmux4 diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_decap.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_decap.v deleted file mode 100644 index 9e5ebf7c..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_decap.v +++ /dev/null @@ -1,12 +0,0 @@ -//############################################################################# -//# Function: Decap Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_decap #(parameter PROP = "DEFAULT") ( - input vss, - output vdd - ); - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_dsync.v deleted file mode 100644 index b569d707..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_dsync.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Synchronizer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_dsync -// #(parameter PROP = "DEFAULT") -// ( -// input clk, // clock -// input in, // input data -// output out // synchronized data -// ); -// -// localparam STAGES=2; -// localparam RND = 1; -// -// reg [STAGES:0] shiftreg; -// integer sync_delay; -// -// always @ (posedge clk) -// begin -// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0],in}; -// `ifndef SYNTHESIS -// sync_delay <= {$random} % 2; -// `endif -// end -// -// `ifdef SYNTHESIS -// assign out = shiftreg[STAGES-1]; -// `else -// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_dsync(clk, in, out); - input clk; - wire clk; - input in; - wire in; - output out; - wire out; - wire \shiftreg[0] ; - sky130_fd_sc_hd__dfxtp_1 _0_ ( - .CLK(clk), - .D(in), - .Q(\shiftreg[0] ) - ); - sky130_fd_sc_hd__dfxtp_1 _1_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .Q(out) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_footer.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_footer.v deleted file mode 100644 index b2a644e2..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_footer.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Footer circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_footer #(parameter PROP = "DEFAULT") ( - input nsleep, // 0 = disabled ground - input vssin, // input supply - output vssout // gated output supply - ); - - // Primitive Device - nmos m0 (vddout, vddin, nsleep); //d,s,g - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_header.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_header.v deleted file mode 100644 index f4698b93..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_header.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Header circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_header #(parameter PROP = "DEFAULT") ( - input sleep, // 1 = disabled vdd - input vddin, // input supply - output vddout // gated output supply - ); - - // Primitive Device - pmos m0 (vddout, vssin, sleep); //d,s,g - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_iddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_iddr.v deleted file mode 100644 index 59259807..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_iddr.v +++ /dev/null @@ -1,62 +0,0 @@ -// //############################################################################# -// //# Function: Dual data rate input buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_iddr #(parameter PROP = "DEFAULT") ( -// input clk, // clock -// input in, // data input sampled on both edges of clock -// output reg outrise, // rising edge sample -// output reg outfall // falling edge sample -// ); -// -// // Negedge Sample -// always @ (negedge clk) -// outfall <= in; -// -// // Posedge Sample -// reg inrise; -// always @ (posedge clk) -// inrise <= in; -// -// // Posedge Latch (for hold) -// always @ (clk or inrise) -// if(~clk) -// outrise <= inrise; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_iddr(clk, in, outrise, outfall); - wire _0_; - input clk; - wire clk; - input in; - wire in; - wire inrise; - output outfall; - wire outfall; - output outrise; - wire outrise; - sky130_fd_sc_hd__inv_1 _1_ ( - .A(clk), - .Y(_0_) - ); - sky130_fd_sc_hd__dlxtn_1 _2_ ( - .D(inrise), - .GATE_N(clk), - .Q(outrise) - ); - sky130_fd_sc_hd__dfxtp_1 _3_ ( - .CLK(clk), - .D(in), - .Q(inrise) - ); - sky130_fd_sc_hd__dfxtp_1 _4_ ( - .CLK(_0_), - .D(in), - .Q(outfall) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_isohi.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_isohi.v deleted file mode 100644 index 198e107b..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_isohi.v +++ /dev/null @@ -1,33 +0,0 @@ -// //############################################################################# -// //# Function: Power isolation circuit # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_isohi -// #(parameter PROP = "DEFAULT") -// ( -// input iso, // isolation signal -// input in, // input -// output out // out = iso | in -// ); -// -// assign out = iso | in; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_isohi(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - sky130_fd_sc_hd__or2_0 _0_ ( - .A(in), - .B(iso), - .X(out) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_isolo.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_isolo.v deleted file mode 100644 index 95e3e956..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_isolo.v +++ /dev/null @@ -1,33 +0,0 @@ -// //############################################################################# -// //# Function: Power isolation circuit # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_isolo -// #(parameter PROP = "DEFAULT") -// ( -// input iso, // isolation signal -// input in, // input -// output out // out = ~iso & in -// ); -// -// assign out = ~iso & in; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_isolo(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - sky130_fd_sc_hd__nor2b_1 _0_ ( - .A(iso), - .B_N(in), - .Y(out) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_keeper.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_keeper.v deleted file mode 100644 index 847994bf..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_keeper.v +++ /dev/null @@ -1,11 +0,0 @@ -//############################################################################# -//# Function: Charge Keeper Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_keeper #(parameter PROP = "DEFAULT") ( - inout z - ); - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_oddr.v deleted file mode 100644 index 6617edc4..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_oddr.v +++ /dev/null @@ -1,48 +0,0 @@ -// //############################################################################# -// //# Function: Dual data rate output buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_oddr #(parameter PROP = "DEFAULT") ( -// input clk, // clock input -// input in0, // data for clk=0 -// input in1, // data for clk=1 -// output out // dual data rate output -// ); -// -// //Making in1 stable for clk=1 -// reg in1_sh; -// always @ (clk or in1) -// if(~clk) -// in1_sh <= in1; -// -// //Using clock as data selctor -// assign out = clk ? in1_sh : in0; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_oddr(clk, in0, in1, out); - input clk; - wire clk; - input in0; - wire in0; - input in1; - wire in1; - wire in1_sh; - output out; - wire out; - sky130_fd_sc_hd__mux2_4 _0_ ( - .A0(in0), - .A1(in1_sh), - .S(clk), - .X(out) - ); - sky130_fd_sc_hd__dlxtn_1 _1_ ( - .D(in1), - .GATE_N(clk), - .Q(in1_sh) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_pwrbuf.v deleted file mode 100644 index 1d894b0c..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_pwrbuf.v +++ /dev/null @@ -1,37 +0,0 @@ -// //############################################################################# -// //# Function: Non-inverting buffer with supplies # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_pwrbuf #(parameter TARGET = "DEFAULT", // "SIM" -// parameter PROP = "DEFAULT") -// ( -// input vdd, -// input vss, -// input a, -// output z -// ); -// -// generate -// if(TARGET=="SIM") -// assign z = ((vdd===1'b1) && (vss===1'b0)) ? a: 1'bX; -// else -// assign z = a; -// endgenerate -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_pwrbuf(vdd, vss, a, z); - input a; - wire a; - input vdd; - wire vdd; - input vss; - wire vss; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_rsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_rsync.v deleted file mode 100644 index 22341a43..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_rsync.v +++ /dev/null @@ -1,66 +0,0 @@ -// //############################################################################# -// //# Function: Reset synchronizer (async assert, sync deassert) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_rsync -// #(parameter PROP = "DEFAULT") -// ( -// input clk, // clock -// input nrst_in, // async reset input -// output nrst_out // async assert, sync deassert reset -// ); -// -// localparam STAGES=2; -// localparam RND = 1; -// -// reg [STAGES:0] sync_pipe; -// integer sync_delay; -// -// `ifndef SYNTHESIS -// always @ (posedge clk) -// sync_delay <= {$random} % 2; -// `endif -// -// always @ (posedge clk or negedge nrst_in) -// if(!nrst_in) -// sync_pipe[STAGES:0] <= 'b0; -// else -// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0],1'b1}; -// -// `ifdef SYNTHESIS -// assign nrst_out = sync_pipe[STAGES-1]; -// `else -// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_rsync(clk, nrst_in, nrst_out); - wire _0_; - input clk; - wire clk; - input nrst_in; - wire nrst_in; - output nrst_out; - wire nrst_out; - wire \sync_pipe[0] ; - sky130_fd_sc_hd__dfrtp_1 _1_ ( - .CLK(clk), - .D(_0_), - .Q(\sync_pipe[0] ), - .RESET_B(nrst_in) - ); - sky130_fd_sc_hd__dfrtp_1 _2_ ( - .CLK(clk), - .D(\sync_pipe[0] ), - .Q(nrst_out), - .RESET_B(nrst_in) - ); - sky130_fd_sc_hd__conb_1 _3_ ( - .HI(_0_) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_tbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/la_tbuf.v deleted file mode 100644 index ff943c6f..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/la_tbuf.v +++ /dev/null @@ -1,27 +0,0 @@ -// //############################################################################# -// //# Function: Tristate Buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_tbuf #(parameter PROP = "DEFAULT") ( -// input a, -// input oe, -// output z -// ); -// -// assign z = oe ? a : 1'bz; -// -// endmodule - -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ - -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_and2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_and2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_and2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_and2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_and3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_and3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_and3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_and3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_and4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_and4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_and4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_and4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao21.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao21.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao21.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao21.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao211.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao211.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao211.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao211.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao22.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao22.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao22.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao22.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao221.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao221.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao221.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao221.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao222.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao222.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao222.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao222.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao31.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao31.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao31.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao31.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao311.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao311.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao311.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao311.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao32.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao32.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao32.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_ao33.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao33.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_ao33.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_ao33.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi21.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi21.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi21.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi21.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi211.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi211.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi211.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi211.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi22.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi22.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi22.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi22.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi221.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi221.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi221.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi221.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi222.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi222.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi222.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi222.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi31.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi31.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi31.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi31.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi311.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi311.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi311.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi311.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi32.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi32.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi32.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_aoi33.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi33.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_aoi33.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_aoi33.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_buf.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_buf.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_buf.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_buf.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkand2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkand2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkand2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkand2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkbuf.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkbuf.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkbuf.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkinv.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkinv.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkinv.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkinv.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clknand2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clknand2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clknand2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clknand2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clknor2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clknor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clknor2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clknor2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkor2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkor2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkor2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkor4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkor4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkor4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkor4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkxor2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkxor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkxor2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_clkxor2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_csa32.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_csa32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_csa32.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_csa32.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_csa42.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_csa42.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_csa42.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_csa42.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_delay.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_delay.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_delay.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_delay.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dffnq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffnq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dffnq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffnq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dffq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dffq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dffqn.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dffqn.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffqn.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dffrq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffrq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dffrq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffrq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dffrqn.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffrqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dffrqn.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffrqn.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dffsq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffsq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dffsq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffsq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dffsqn.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffsqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dffsqn.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dffsqn.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dmux2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dmux2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dmux3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dmux3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dmux4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dmux4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dmux5.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux5.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dmux5.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux5.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dmux6.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux6.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dmux6.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux6.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dmux7.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux7.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dmux7.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux7.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dmux8.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux8.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dmux8.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_dmux8.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_inv.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_inv.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_inv.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_inv.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_latnq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_latnq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_latnq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_latnq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_latq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_latq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_latq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_latq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_mux2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_mux2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_mux2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_mux2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_mux3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_mux3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_mux3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_mux3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_mux4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_mux4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_mux4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_mux4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_muxi2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_muxi2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_muxi2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_muxi2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_muxi3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_muxi3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_muxi3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_muxi3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_muxi4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_muxi4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_muxi4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_muxi4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_nand2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nand2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_nand2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nand2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_nand3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nand3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_nand3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nand3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_nand4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nand4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_nand4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nand4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_nor2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_nor2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nor2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_nor3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nor3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_nor3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nor3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_nor4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nor4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_nor4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_nor4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa21.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa21.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa21.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa21.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa211.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa211.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa211.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa211.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa22.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa22.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa22.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa22.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa221.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa221.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa221.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa221.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa222.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa222.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa222.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa222.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa31.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa31.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa31.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa31.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa311.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa311.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa311.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa311.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa32.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa32.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa32.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oa33.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa33.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oa33.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oa33.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oai21.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai21.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oai21.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai21.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oai22.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai22.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oai22.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai22.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oai221.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai221.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oai221.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai221.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oai222.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai222.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oai222.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai222.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oai31.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai31.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oai31.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai31.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oai311.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai311.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oai311.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai311.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oai32.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oai32.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai32.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oai33.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai33.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oai33.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_oai33.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_or2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_or2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_or2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_or2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_or3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_or3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_or3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_or3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_or4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_or4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_or4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_or4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_sdffq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_sdffq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_sdffqn.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_sdffqn.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffqn.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_sdffrq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffrq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_sdffrq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffrq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_sdffrqn.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffrqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_sdffrqn.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffrqn.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_sdffsq.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffsq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_sdffsq.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffsq.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_sdffsqn.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffsqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_sdffsqn.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_sdffsqn.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_tiehi.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_tiehi.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_tiehi.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_tiehi.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_tielo.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_tielo.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_tielo.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_tielo.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_xnor2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xnor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_xnor2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xnor2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_xnor3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xnor3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_xnor3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xnor3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_xnor4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xnor4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_xnor4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xnor4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_xor2.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_xor2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xor2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_xor3.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xor3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_xor3.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xor3.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_xor4.v b/lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xor4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_xor4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/stdlib/la_xor4.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_antenna.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_antenna.v similarity index 90% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_antenna.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_antenna.v index 9b86fd26..a5628244 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_antenna.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_antenna.v @@ -11,4 +11,6 @@ module la_antenna #( output z ); +sky130_fd_sc_hdll__diode_2 u0(.DIODE(z), .VGND(vss)); + endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v new file mode 100644 index 00000000..4fd1c7e6 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgand #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable (from positive edge FF) + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (~clk) en_stable <= en | te; + + // assign eclk = clk & en_stable; + +sky130_fd_sc_hdll__sdlclkp_1 u0(.CLK(clk), .SCE(te), .GATE(en), .GCLK(eclk)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v new file mode 100644 index 00000000..9629e768 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v @@ -0,0 +1,30 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkicgor #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock input + input te, // test enable + input en, // enable + output eclk // enabled clock output +); + + // reg en_stable; + + // always @(clk or en or te) if (clk) en_stable <= en | te; + + // assign eclk = clk | ~en_stable; + +wire eclk_int; +wire en_bar; + +sky130_fd_sc_hdll__sdlclkp_1 u0(.CLK(clk), .SCE(te), .GATE(en), .GCLK(eclk_int)); + +sky130_fd_sc_hdll__inv_1 u1(.A(en), .Y(en_bar)); +sky130_fd_sc_hdll__or2_1 u2(.A(en_bar), .B(eclk_int), .X(eclk)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux2.v new file mode 100644 index 00000000..8efc9015 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux2.v @@ -0,0 +1,71 @@ +//############################################################################# +//# Function: 2-Input Glitch-Free Clock Mux # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkmux2 #( + parameter PROP = "DEFAULT" // cell property +) ( + input clk0, + input clk1, + input sel0, + input sel1, + input nreset, + output out +); + + wire [1:0] maskb; + wire [1:0] en; + wire enb; + wire [1:0] ensync; + wire ensyncb; + wire [1:0] clkg; + + // invert mask (2) + la_inv iinv[1:0] ( + .a({ensync[0], ensync[1]}), + .z(maskb[1:0]) + ); + + // clock enable (2) + la_and2 isel[1:0] ( + .a({sel1, sel0}), + .b(maskb[1:0]), + .z(en[1:0]) + ); + + la_inv ienb ( + .a(en[0]), + .z(enb) + ); + + // synchronizers (2) + la_drsync isync[1:0] ( + .clk({clk1, clk0}), + .nreset({nreset, nreset}), + .in({en[1], enb}), + .out({ensync[1], ensyncb}) + ); + + la_inv iensync ( + .a(ensyncb), + .z(ensync[0]) + ); + + // glith free clock gate (2) + la_clkicgand igate[1:0] ( + .clk ({clk1, clk0}), + .te (2'b00), + .en (ensync[1:0]), + .eclk(clkg[1:0]) + ); + + // final clock or (1) + la_clkor2 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .z(out) + ); + +endmodule // la_clkmux2 diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux4.v new file mode 100644 index 00000000..0b2ff761 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux4.v @@ -0,0 +1,105 @@ +//############################################################################# +//# Function: 4-Input Glitch-Free Clock Mux # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_clkmux4 #( + parameter PROP = "DEFAULT" // cell property +) ( + input clk0, + input clk1, + input clk2, + input clk3, + input sel0, + input sel1, + input sel2, + input sel3, + input nreset, + output out +); + + wire [3:0] mask; + wire [3:0] maskb; + wire [3:0] en; + wire enb; + wire [3:0] ensync; + wire ensyncb; + wire [3:0] clkg; + wire [3:0] nreset_sync; + + // create clock mask (4) + la_or3 ior0 ( + .a(ensync[3]), + .b(ensync[2]), + .c(ensync[1]), + .z(mask[0]) + ); + la_or3 ior1 ( + .a(ensync[0]), + .b(ensync[3]), + .c(ensync[2]), + .z(mask[1]) + ); + la_or3 ior2 ( + .a(ensync[1]), + .b(ensync[0]), + .c(ensync[3]), + .z(mask[2]) + ); + la_or3 ior3 ( + .a(ensync[2]), + .b(ensync[1]), + .c(ensync[0]), + .z(mask[3]) + ); + + // invert mask (4) + la_inv iinv[3:0] ( + .a(mask[3:0]), + .z(maskb[3:0]) + ); + + // clock enable (4) + la_and2 isel[3:0] ( + .a({sel3, sel2, sel1, sel0}), + .b(maskb[3:0]), + .z(en[3:0]) + ); + + la_inv ienb ( + .a(en[0]), + .z(enb) + ); + + // data synchronizer with reset (since clocks aren't guaranteed) + la_drsync idrsync[3:0] ( + .clk({clk3, clk2, clk1, clk0}), + .nreset({4{nreset}}), + .in({en[3:1], enb}), + .out({ensync[3:1], ensyncb}) + ); + + la_inv iensync ( + .a(ensyncb), + .z(ensync[0]) + ); + + // glith free clock gate (4) + la_clkicgand igate[3:0] ( + .clk ({clk3, clk2, clk1, clk0}), + .te (4'b0000), + .en (ensync[3:0]), + .eclk(clkg[3:0]) + ); + + // final clock or (1) + la_clkor4 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .c(clkg[2]), + .d(clkg[3]), + .z(out) + ); + +endmodule // la_clkmux4 diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_decap.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_decap.v new file mode 100644 index 00000000..91e378b7 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_decap.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Decap Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_decap #( + parameter PROP = "DEFAULT" +) ( + input vss, + output vdd +); + +sky130_fd_sc_hd11__decap_12 u0(.VGND(vss), .VPWR(vdd)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_drsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v similarity index 72% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_drsync.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v index 3c069533..bebc55bf 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_drsync.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v @@ -24,7 +24,7 @@ // // endmodule -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_drsync(clk, in, nreset, out); input clk; diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v new file mode 100644 index 00000000..a9caaac8 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v @@ -0,0 +1,49 @@ +//############################################################################# +//# Function: Synchronizer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_dsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize simulation delay + ( + input clk, // clock + input in, // input data + output out // synchronized data + ); + +// reg [STAGES:0] shiftreg; +// always @(posedge clk) +// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; + +// `ifdef SIM +// integer sync_delay; +// always @(posedge clk) +// sync_delay <= {$random} % 2; +// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; +// `else +// assign out = shiftreg[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + assign reg_in = in; + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + sky130_fd_sc_hdll__dfxtp_1 u0 ( + .CLK(clk), + .D(reg_in), + .Q(reg_out) + ); + end + endgenerate + + assign out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_iddr.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v similarity index 74% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_iddr.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v index 764be0a4..eef59411 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_iddr.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v @@ -25,7 +25,7 @@ // // endmodule -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_iddr(clk, in, outrise, outfall); wire _0_; @@ -39,7 +39,7 @@ module la_iddr(clk, in, outrise, outfall); wire outfall; output outrise; wire outrise; - sky130_fd_sc_hdll__inv_1 _2_ ( + sky130_fd_sc_hdll__inv_2 _2_ ( .A(clk), .Y(_0_) ); diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v new file mode 100644 index 00000000..94d0d377 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v @@ -0,0 +1,33 @@ +// //############################################################################# +// //# Function: Power isolation circuit # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_isohi #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = iso | in +// ); +// +// assign out = iso | in; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_isohi(iso, in, out); + input in; + wire in; + input iso; + wire iso; + output out; + wire out; + sky130_fd_sc_hdll__or2_6 _0_ ( + .A(in), + .B(iso), + .X(out) + ); +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v new file mode 100644 index 00000000..ef1a4fea --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v @@ -0,0 +1,33 @@ +// //############################################################################# +// //# Function: Power isolation circuit # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// +// module la_isolo #( +// parameter PROP = "DEFAULT" +// ) ( +// input iso, // isolation signal +// input in, // input +// output out // out = ~iso & in +// ); +// +// assign out = ~iso & in; +// +// endmodule + +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + +module la_isolo(iso, in, out); + input in; + wire in; + input iso; + wire iso; + output out; + wire out; + sky130_fd_sc_hdll__nor2b_4 _0_ ( + .A(iso), + .B_N(in), + .Y(out) + ); +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oddr.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v similarity index 70% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oddr.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v index d03acd84..dd630e05 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oddr.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v @@ -22,7 +22,7 @@ // // endmodule -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ +/* Generated by Yosys 0.41 (git sha1 c1ad37779, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ module la_oddr(clk, in0, in1, out); input clk; diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v new file mode 100644 index 00000000..eacd45ff --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v @@ -0,0 +1,25 @@ +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_pwrbuf #( + parameter PROP = "DEFAULT" + ) + ( + input vdd, + input vss, + input a, + output z + ); + +// `ifdef SIM +// assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; +// `else +// assign z = a; +// `endif + +sky130_fd_sc_hdll__buf_1 u0(.A(a), .X(z), .VGND(vss), .VPWR(vdd)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v new file mode 100644 index 00000000..92113027 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v @@ -0,0 +1,59 @@ +//############################################################################# +//# Function: Reset synchronizer (async assert, sync deassert) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_rsync #(parameter PROP = "DEFAULT", + parameter STAGES = 2, // synchronizer depth + parameter RND = 1) // randomize sync + + ( + input clk, // clock + input nrst_in, // async reset input + output nrst_out // async assert, sync deassert reset + ); + +// reg [STAGES:0] sync_pipe; +// integer sync_delay; + + +// always @(posedge clk or negedge nrst_in) +// if (!nrst_in) +// sync_pipe[STAGES:0] <= 'b0; +// else +// sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; + +// `ifdef SIM +// always @(posedge clk) +// sync_delay <= {$random} % 2; + +// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; +// `else +// assign nrst_out = sync_pipe[STAGES-1]; +// `endif + + genvar i; + generate + for (i = 0; i < STAGES; i = i + 1) begin: DELAY + wire reg_in; + wire reg_out; + if (i == 0) begin: SEL_IN + LOGIC1_X1 u1 ( + .Z(reg_in) + ); + end else begin: SEL_PREV + assign reg_in = reg_out[i - 1]; + end + + sky130_fd_sc_hdll__dfrtp_1 u0 ( + .CLK(clk), + .RESET_B(nrest_in), + .D(reg_in), + .Q(reg_out) + ); + end + endgenerate + + assign nrst_out = DELAY[STAGES - 1].reg_out; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v new file mode 100644 index 00000000..011e622a --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v @@ -0,0 +1,21 @@ +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + // assign z = oe ? a : 1'bz; + +wire oe_bar; +sky130_fd_sc_hdll__inv_1 u1(.A(eo), .Y(oe_bar)); +sky130_fd_sc_hdll__ebufn_1 u0(.A(a), .TE_B(oe_bar), .Z(z)); + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgand.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgand.v deleted file mode 100644 index 93b7cb2b..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgand.v +++ /dev/null @@ -1,52 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "And" Clock Gating Cell (And) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgand #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock input -// input te, // test enable -// input en, // enable (from positive edge FF) -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @(clk or en or te) if (~clk) en_stable <= en | te; -// -// assign eclk = clk & en_stable; -// -// endmodule - -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ - -module la_clkicgand(clk, te, en, eclk); - wire _0_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - sky130_fd_sc_hdll__and2_1 _1_ ( - .A(en_stable), - .B(clk), - .X(eclk) - ); - sky130_fd_sc_hdll__or2_1 _2_ ( - .A(te), - .B(en), - .X(_0_) - ); - sky130_fd_sc_hdll__dlxtn_1 _3_ ( - .D(_0_), - .GATE_N(clk), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgor.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgor.v deleted file mode 100644 index 41faed81..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgor.v +++ /dev/null @@ -1,57 +0,0 @@ -// //############################################################################# -// //# Function: Integrated "Or" Clock Gating Cell # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_clkicgor #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock input -// input te, // test enable -// input en, // enable -// output eclk // enabled clock output -// ); -// -// reg en_stable; -// -// always @(clk or en or te) if (clk) en_stable <= en | te; -// -// assign eclk = clk | ~en_stable; -// -// endmodule - -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ - -module la_clkicgor(clk, te, en, eclk); - wire _0_; - wire _1_; - input clk; - wire clk; - output eclk; - wire eclk; - input en; - wire en; - wire en_stable; - input te; - wire te; - sky130_fd_sc_hdll__or2_1 _2_ ( - .A(te), - .B(en), - .X(_0_) - ); - sky130_fd_sc_hdll__nand2b_1 _3_ ( - .A_N(clk), - .B(en_stable), - .Y(eclk) - ); - sky130_fd_sc_hdll__inv_1 _4_ ( - .A(clk), - .Y(_1_) - ); - sky130_fd_sc_hdll__dlxtn_1 _5_ ( - .D(_0_), - .GATE_N(_1_), - .Q(en_stable) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_dsync.v deleted file mode 100644 index 90ae0e92..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dsync.v +++ /dev/null @@ -1,62 +0,0 @@ -// //############################################################################# -// //# Function: Synchronizer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_dsync #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock -// input in, // input data -// output out // synchronized data -// ); -// -// localparam STAGES = 2; -// localparam RND = 1; -// -// reg [STAGES:0] shiftreg; -// integer sync_delay; -// -// always @(posedge clk) begin -// shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; -// `ifndef SYNTHESIS -// sync_delay <= {$random} % 2; -// `endif -// end -// -// `ifdef SYNTHESIS -// assign out = shiftreg[STAGES-1]; -// `else -// assign out = (|sync_delay & (|RND)) ? shiftreg[STAGES] : shiftreg[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ - -module la_dsync(clk, in, out); - wire _0_; - input clk; - wire clk; - input in; - wire in; - output out; - wire out; - wire \shiftreg[0] ; - sky130_fd_sc_hdll__dfrtp_1 _1_ ( - .CLK(clk), - .D(in), - .Q(\shiftreg[0] ), - .RESET_B(_0_) - ); - sky130_fd_sc_hdll__dfrtp_1 _2_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .Q(out), - .RESET_B(_0_) - ); - sky130_fd_sc_hdll__conb_1 _3_ ( - .HI(_0_) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_footer.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_footer.v +++ /dev/null @@ -1,18 +0,0 @@ -//############################################################################# -//# Function: Footer circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_footer #( - parameter PROP = "DEFAULT" -) ( - input nsleep, // 0 = disabled ground - input vssin, // input supply - output vssout // gated output supply -); - - // Primitive Device - nmos m0 (vddout, vddin, nsleep); //d,s,g - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_header.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_header.v +++ /dev/null @@ -1,18 +0,0 @@ -//############################################################################# -//# Function: Header circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_header #( - parameter PROP = "DEFAULT" -) ( - input sleep, // 1 = disabled vdd - input vddin, // input supply - output vddout // gated output supply -); - - // Primitive Device - pmos m0 (vddout, vssin, sleep); //d,s,g - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_isohi.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_isohi.v deleted file mode 100644 index 0aeb5858..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_isohi.v +++ /dev/null @@ -1,33 +0,0 @@ -// //############################################################################# -// //# Function: Power isolation circuit # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_isohi #( -// parameter PROP = "DEFAULT" -// ) ( -// input iso, // isolation signal -// input in, // input -// output out // out = iso | in -// ); -// -// assign out = iso | in; -// -// endmodule - -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ - -module la_isohi(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - sky130_fd_sc_hdll__or2_1 _0_ ( - .A(in), - .B(iso), - .X(out) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_isolo.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_isolo.v deleted file mode 100644 index 02a56824..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_isolo.v +++ /dev/null @@ -1,33 +0,0 @@ -// //############################################################################# -// //# Function: Power isolation circuit # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_isolo #( -// parameter PROP = "DEFAULT" -// ) ( -// input iso, // isolation signal -// input in, // input -// output out // out = ~iso & in -// ); -// -// assign out = ~iso & in; -// -// endmodule - -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ - -module la_isolo(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - sky130_fd_sc_hdll__nor2b_1 _0_ ( - .A(iso), - .B_N(in), - .Y(out) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_keeper.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_keeper.v +++ /dev/null @@ -1,13 +0,0 @@ -//############################################################################# -//# Function: Charge Keeper Cell # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_keeper #( - parameter PROP = "DEFAULT" -) ( - inout z -); - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_pwrbuf.v deleted file mode 100644 index 15f2206b..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_pwrbuf.v +++ /dev/null @@ -1,36 +0,0 @@ -// //############################################################################# -// //# Function: Non-inverting buffer with supplies # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_pwrbuf #( -// parameter TARGET = "DEFAULT", // "SIM" -// parameter PROP = "DEFAULT" -// ) ( -// input vdd, -// input vss, -// input a, -// output z -// ); -// -// generate -// if (TARGET == "SIM") assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -// else assign z = a; -// endgenerate -// -// endmodule - -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ - -module la_pwrbuf(vdd, vss, a, z); - input a; - wire a; - input vdd; - wire vdd; - input vss; - wire vss; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_rsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_rsync.v deleted file mode 100644 index 83798669..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_rsync.v +++ /dev/null @@ -1,63 +0,0 @@ -// //############################################################################# -// //# Function: Reset synchronizer (async assert, sync deassert) # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_rsync #( -// parameter PROP = "DEFAULT" -// ) ( -// input clk, // clock -// input nrst_in, // async reset input -// output nrst_out // async assert, sync deassert reset -// ); -// -// localparam STAGES = 2; -// localparam RND = 1; -// -// reg [STAGES:0] sync_pipe; -// integer sync_delay; -// -// `ifndef SYNTHESIS -// always @(posedge clk) sync_delay <= {$random} % 2; -// `endif -// -// always @(posedge clk or negedge nrst_in) -// if (!nrst_in) sync_pipe[STAGES:0] <= 'b0; -// else sync_pipe[STAGES:0] <= {sync_pipe[STAGES-1:0], 1'b1}; -// -// `ifdef SYNTHESIS -// assign nrst_out = sync_pipe[STAGES-1]; -// `else -// assign nrst_out = (|sync_delay & (|RND)) ? sync_pipe[STAGES] : sync_pipe[STAGES-1]; -// `endif -// -// endmodule - -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ - -module la_rsync(clk, nrst_in, nrst_out); - wire _0_; - input clk; - wire clk; - input nrst_in; - wire nrst_in; - output nrst_out; - wire nrst_out; - wire \sync_pipe[0] ; - sky130_fd_sc_hdll__dfrtp_1 _1_ ( - .CLK(clk), - .D(_0_), - .Q(\sync_pipe[0] ), - .RESET_B(nrst_in) - ); - sky130_fd_sc_hdll__dfrtp_1 _2_ ( - .CLK(clk), - .D(\sync_pipe[0] ), - .Q(nrst_out), - .RESET_B(nrst_in) - ); - sky130_fd_sc_hdll__conb_1 _3_ ( - .HI(_0_) - ); -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_tbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/la_tbuf.v deleted file mode 100644 index c6cf3982..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/la_tbuf.v +++ /dev/null @@ -1,29 +0,0 @@ -// //############################################################################# -// //# Function: Tristate Buffer # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// -// module la_tbuf #( -// parameter PROP = "DEFAULT" -// ) ( -// input a, -// input oe, -// output z -// ); -// -// assign z = oe ? a : 1'bz; -// -// endmodule - -/* Generated by Yosys 0.38+92 (git sha1 84116c9a3, x86_64-conda-linux-gnu-cc 11.2.0 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/root/conda-eda/conda-eda/workdir/conda-env/conda-bld/yosys_1708682838165/work=/usr/local/src/conda/yosys-0.38_93_g84116c9a3 -fdebug-prefix-map=/user/projekt_pia/miniconda3/envs/sc=/usr/local/src/conda-prefix -fPIC -Os -fno-merge-constants) */ - -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_and2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_and2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_and2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_and2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_and3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_and3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_and3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_and3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_and4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_and4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_and4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_and4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao21.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao21.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao21.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao21.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao211.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao211.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao211.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao211.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao22.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao22.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao22.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao22.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao221.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao221.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao221.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao221.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao222.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao222.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao222.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao222.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao31.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao31.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao31.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao31.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao311.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao311.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao311.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao311.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao32.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao32.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao32.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_ao33.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao33.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_ao33.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_ao33.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi21.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi21.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi21.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi21.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi211.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi211.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi211.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi211.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi22.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi22.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi22.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi22.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi221.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi221.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi221.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi221.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi222.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi222.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi222.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi222.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi31.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi31.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi31.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi31.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi311.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi311.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi311.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi311.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi32.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi32.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi32.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi33.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi33.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_aoi33.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_aoi33.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_buf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_buf.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_buf.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_buf.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkand2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkand2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkand2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkand2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkbuf.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkbuf.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkbuf.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkinv.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkinv.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkinv.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkinv.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clknand2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clknand2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clknand2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clknand2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clknor2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clknor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clknor2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clknor2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkor2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkor2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkor2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkor4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkor4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkor4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkor4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkxor2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkxor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkxor2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_clkxor2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_csa32.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_csa32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_csa32.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_csa32.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_csa42.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_csa42.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_csa42.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_csa42.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_delay.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_delay.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_delay.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_delay.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dffnq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffnq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dffnq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffnq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dffq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dffq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dffqn.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dffqn.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffqn.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dffrq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffrq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dffrq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffrq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dffrqn.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffrqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dffrqn.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffrqn.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dffsq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffsq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dffsq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffsq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dffsqn.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffsqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dffsqn.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dffsqn.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux5.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux5.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux5.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux5.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux6.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux6.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux6.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux6.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux7.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux7.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux7.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux7.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux8.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux8.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dmux8.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_dmux8.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_inv.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_inv.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_inv.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_inv.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_latnq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_latnq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_latnq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_latnq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_latq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_latq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_latq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_latq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_mux2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_mux2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_mux2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_mux2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_mux3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_mux3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_mux3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_mux3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_mux4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_mux4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_mux4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_mux4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_muxi2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_muxi2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_muxi2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_muxi2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_muxi3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_muxi3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_muxi3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_muxi3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_muxi4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_muxi4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_muxi4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_muxi4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_nand2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nand2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_nand2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nand2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_nand3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nand3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_nand3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nand3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_nand4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nand4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_nand4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nand4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_nor2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_nor2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nor2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_nor3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nor3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_nor3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nor3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_nor4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nor4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_nor4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_nor4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa21.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa21.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa21.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa21.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa211.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa211.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa211.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa211.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa22.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa22.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa22.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa22.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa221.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa221.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa221.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa221.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa222.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa222.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa222.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa222.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa31.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa31.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa31.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa31.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa311.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa311.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa311.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa311.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa32.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa32.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa32.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oa33.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa33.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oa33.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oa33.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oai21.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai21.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oai21.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai21.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oai22.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai22.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oai22.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai22.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oai221.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai221.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oai221.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai221.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oai222.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai222.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oai222.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai222.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oai31.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai31.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oai31.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai31.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oai311.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai311.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oai311.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai311.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oai32.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai32.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oai32.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai32.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oai33.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai33.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oai33.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_oai33.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_or2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_or2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_or2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_or2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_or3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_or3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_or3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_or3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_or4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_or4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_or4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_or4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffqn.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffqn.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffqn.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffrq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffrq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffrq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffrq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffrqn.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffrqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffrqn.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffrqn.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffsq.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffsq.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffsq.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffsq.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffsqn.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffsqn.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_sdffsqn.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_sdffsqn.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_tiehi.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_tiehi.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_tiehi.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_tiehi.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_tielo.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_tielo.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_tielo.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_tielo.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_xnor2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xnor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_xnor2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xnor2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_xnor3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xnor3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_xnor3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xnor3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_xnor4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xnor4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_xnor4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xnor4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_xor2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xor2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_xor2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xor2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_xor3.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xor3.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_xor3.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xor3.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_xor4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xor4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_xor4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/stdlib/la_xor4.v diff --git a/lambdapdk/sky130/libs/sky130sc.py b/lambdapdk/sky130/libs/sky130sc.py index 310b4f4d..906f4938 100644 --- a/lambdapdk/sky130/libs/sky130sc.py +++ b/lambdapdk/sky130/libs/sky130sc.py @@ -180,12 +180,14 @@ def setup(chip): lib.set('option', 'var', f'{tool}_tielow_cell', f"sky130_fd_sc_{libtype}__conb_1") lib.set('option', 'var', f'{tool}_tielow_port', "LO") - lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libname}', package='lambdapdk') - register_data_source(lambda_lib) - lambda_lib.add('option', 'ydir', libdir + '/lambda') - libs.append(lib) - libs.append(lambda_lib) + + for libtype in ('stdlib', 'auxlib'): + lambda_lib = siliconcompiler.Library(chip, f'lambdalib_{libtype}_{libname}', + package='lambdapdk') + register_data_source(lambda_lib) + lambda_lib.add('option', 'ydir', libdir + f'/lambda/{libtype}') + libs.append(lambda_lib) return libs diff --git a/pyproject.toml b/pyproject.toml index d0afcc02..4cfd9d23 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ dev = [ "pytest == 8.2.2", "pytest-timeout == 2.3.1", "tclint == 0.3.0", - "lambdalib == 0.2.3" + "lambdalib == 0.2.6" ] [tool.tclint] diff --git a/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index e203fbd5..938846f7 100755 --- a/scripts/generate_lamdbalib.py +++ b/scripts/generate_lamdbalib.py @@ -7,6 +7,7 @@ import os import lambdalib import multiprocessing +import argparse from lambdalib.utils import write_la_spram @@ -17,53 +18,285 @@ gf180_demo ) -if __name__ == "__main__": - pdk_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +pdk_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + +libs = { + "sky130": { + "target": skywater130_demo, + "libs": [ + "sky130hd", + "sky130hdll" + ] + }, + "gf180": { + "target": gf180_demo, + "libs": [ + "gf180mcu_fd_sc_mcu7t5v0", + "gf180mcu_fd_sc_mcu9t5v0" + ] + }, + "freepdk45": { + "target": freepdk45_demo, + "libs": [ + "nangate45" + ] + }, + "asap7": { + "target": asap7_demo, + "libs": [ + "asap7sc7p5t_rvt", + "asap7sc7p5t_lvt", + "asap7sc7p5t_slvt" + ] + }, +} + + +def stdlib(): + procs = [] + for pdk, info in libs.items(): + target = info["target"] + + for lib in info['libs']: + p = multiprocessing.Process( + target=lambdalib.generate, + args=(target.__name__, + lib, + f"{pdk_root}/lambdapdk/{pdk}/libs/{lib}/lambda/stdlib")) + procs.append(p) + p.start() + for proc in procs: + proc.join() - libs = { + +def auxlib(): + always_copy = [ + 'la_clkmux2', + 'la_clkmux4', + ] + generate_libs = { "sky130": { - "target": skywater130_demo, - "libs": [ - "sky130hd" - ] + "sky130hd": { + "implemented": [ + 'la_antenna', + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_tbuf', + 'la_dsync', + 'la_rsync', + 'la_decap' + ], + "missing": [ + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff' + ] + }, + "sky130hdll": { + "implemented": [ + 'la_antenna', + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_tbuf', + 'la_dsync', + 'la_rsync', + 'la_decap' + ], + "missing": [ + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff' + ] + } }, "gf180": { - "target": gf180_demo, - "libs": [ - "gf180mcu_fd_sc_mcu7t5v0", - "gf180mcu_fd_sc_mcu9t5v0" - ] + "gf180mcu_fd_sc_mcu7t5v0": { + "implemented": [ + 'la_antenna', + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_tbuf', + 'la_dsync', + 'la_rsync' + ], + "missing": [ + 'la_decap', + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff' + ] + }, + "gf180mcu_fd_sc_mcu9t5v0": { + "implemented": [ + 'la_antenna', + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_tbuf', + 'la_dsync', + 'la_rsync' + ], + "missing": [ + 'la_decap', + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff' + ] + } }, "freepdk45": { - "target": freepdk45_demo, - "libs": [ - "nangate45" - ] + "nangate45": { + "implemented": [ + 'la_antenna', + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_tbuf', + 'la_dsync', + 'la_rsync' + ], + "missing": [ + 'la_decap', + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff' + ] + } }, "asap7": { - "target": asap7_demo, - "libs": [ - "asap7sc7p5t_rvt", - "asap7sc7p5t_lvt", - "asap7sc7p5t_slvt" - ] - }, + "asap7sc7p5t_rvt": { + "implemented": [ + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_dsync', + 'la_rsync', + 'la_decap' + ], + "missing": [ + 'la_antenna', + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff', + 'la_tbuf' + ] + }, + "asap7sc7p5t_lvt": { + "implemented": [ + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_dsync', + 'la_rsync', + 'la_decap' + ], + "missing": [ + 'la_antenna', + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff', + 'la_tbuf' + ] + }, + "asap7sc7p5t_slvt": { + "implemented": [ + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_dsync', + 'la_rsync', + 'la_decap' + ], + "missing": [ + 'la_antenna', + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff', + 'la_tbuf' + ] + }, + } } + procs = [] + for pdk, info in libs.items(): + for lib in info['libs']: + exclude = [] + exclude.extend(generate_libs[pdk][lib]["implemented"]) + exclude.extend(generate_libs[pdk][lib]["missing"]) + + p = multiprocessing.Process( + target=lambdalib.copy, + args=(f"{pdk_root}/lambdapdk/{pdk}/libs/{lib}/lambda/auxlib",), + kwargs={ + "la_lib": 'auxlib', + "exclude": exclude + }) + procs.append(p) + p.start() + for proc in procs: + proc.join() + procs = [] for pdk, info in libs.items(): target = info["target"] for lib in info['libs']: - p = multiprocessing.Process(target=lambdalib.generate, - args=(target.__name__, - lib, - f"{pdk_root}/lambdapdk/{pdk}/libs/{lib}/lambda")) + exclude = [*always_copy] + exclude.extend(generate_libs[pdk][lib]["implemented"]) + exclude.extend(generate_libs[pdk][lib]["missing"]) + + p = multiprocessing.Process( + target=lambdalib.generate, + args=(target.__name__, + lib, + f"{pdk_root}/lambdapdk/{pdk}/libs/{lib}/lambda/auxlib"), + kwargs={ + "la_lib": 'auxlib', + "exclude": exclude + }) procs.append(p) p.start() for proc in procs: proc.join() + +def ramlib(): asap7_spram_port_map = [ ("clk", "clk"), ("addr_in", "mem_addr"), @@ -195,6 +428,8 @@ with open(f"{pdk_root}/lambdapdk/{pdk}/libs/{lib}/lambda/{ram}.v", "w") as f: write_la_spram(f, info[ram]) + +def iolib(): iolib = { "sky130": { "name": "sky130io", @@ -226,3 +461,25 @@ lambdalib.copy(f"{pdk_root}/lambdapdk/{pdk}/libs/{lib}/lambda", la_lib='iolib', exclude=info['implementations']) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('--stdlib', action='store_true') + parser.add_argument('--auxlib', action='store_true') + parser.add_argument('--ramlib', action='store_true') + parser.add_argument('--iolib', action='store_true') + + args = parser.parse_args() + + if args.stdlib: + stdlib() + + if args.auxlib: + auxlib() + + if args.ramlib: + ramlib() + + if args.iolib: + iolib() diff --git a/tests/test_lambda.py b/tests/test_lambda.py index 6202a3f0..724e53b0 100644 --- a/tests/test_lambda.py +++ b/tests/test_lambda.py @@ -9,10 +9,27 @@ @pytest.mark.parametrize('module,path', [ - (asap7sc7p5t, 'lambdapdk/asap7/libs/{lib_name}/lambda'), - (nangate45, 'lambdapdk/freepdk45/libs/{lib_name}/lambda'), - (sky130sc, 'lambdapdk/sky130/libs/{lib_name}/lambda'), - (gf180mcu, 'lambdapdk/gf180/libs/{lib_name}/lambda') + (asap7sc7p5t, 'lambdapdk/asap7/libs/{lib_name}/lambda/auxlib'), + (nangate45, 'lambdapdk/freepdk45/libs/{lib_name}/lambda/auxlib'), + (sky130sc, 'lambdapdk/sky130/libs/{lib_name}/lambda/auxlib'), + (gf180mcu, 'lambdapdk/gf180/libs/{lib_name}/lambda/auxlib') + ]) +def test_la_auxlib(module, path): + libs = module.setup(Chip('')) + if not isinstance(libs, list): + libs = [libs] + for lib in libs: + lib_name = lib.design + if "lambdalib" in lib_name: + continue + assert lambdalib.check(path.format(lib_name=lib_name), 'auxlib') + + +@pytest.mark.parametrize('module,path', [ + (asap7sc7p5t, 'lambdapdk/asap7/libs/{lib_name}/lambda/stdlib'), + (nangate45, 'lambdapdk/freepdk45/libs/{lib_name}/lambda/stdlib'), + (sky130sc, 'lambdapdk/sky130/libs/{lib_name}/lambda/stdlib'), + (gf180mcu, 'lambdapdk/gf180/libs/{lib_name}/lambda/stdlib') ]) def test_la_stdlib(module, path): libs = module.setup(Chip(''))