From 784e08895794c3bbf15e9176b17cf261d45630fb Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Sat, 8 Jun 2024 13:46:29 -0400 Subject: [PATCH 01/12] move lambdalib around to make initial auxlib --- .../lambda/{ => auxlib}/la_antenna.v | 0 .../lambda/{ => auxlib}/la_clkicgand.v | 0 .../lambda/{ => auxlib}/la_clkicgor.v | 0 .../lambda/{ => auxlib}/la_clkmux2.v | 0 .../lambda/{ => auxlib}/la_clkmux4.v | 0 .../lambda/{ => auxlib}/la_decap.v | 0 .../lambda/{ => auxlib}/la_drsync.v | 0 .../lambda/{ => auxlib}/la_dsync.v | 0 .../lambda/{ => auxlib}/la_footer.v | 0 .../lambda/{ => auxlib}/la_header.v | 0 .../lambda/{ => auxlib}/la_iddr.v | 0 .../lambda/{ => auxlib}/la_isohi.v | 0 .../lambda/{ => auxlib}/la_isolo.v | 0 .../lambda/{ => auxlib}/la_keeper.v | 0 .../lambda/{ => auxlib}/la_oddr.v | 0 .../lambda/{ => auxlib}/la_pwrbuf.v | 0 .../lambda/{ => auxlib}/la_rsync.v | 0 .../lambda/{ => auxlib}/la_tbuf.v | 0 .../lambda/{ => stdlib}/la_and2.v | 0 .../lambda/{ => stdlib}/la_and3.v | 0 .../lambda/{ => stdlib}/la_and4.v | 0 .../lambda/{ => stdlib}/la_ao21.v | 0 .../lambda/{ => stdlib}/la_ao211.v | 0 .../lambda/{ => stdlib}/la_ao22.v | 0 .../lambda/{ => stdlib}/la_ao221.v | 0 .../lambda/{ => stdlib}/la_ao222.v | 0 .../lambda/{ => stdlib}/la_ao31.v | 0 .../lambda/{ => stdlib}/la_ao311.v | 0 .../lambda/{ => stdlib}/la_ao32.v | 0 .../lambda/{ => stdlib}/la_ao33.v | 0 .../lambda/{ => stdlib}/la_aoi21.v | 0 .../lambda/{ => stdlib}/la_aoi211.v | 0 .../lambda/{ => stdlib}/la_aoi22.v | 0 .../lambda/{ => stdlib}/la_aoi221.v | 0 .../lambda/{ => stdlib}/la_aoi222.v | 0 .../lambda/{ => stdlib}/la_aoi31.v | 0 .../lambda/{ => stdlib}/la_aoi311.v | 0 .../lambda/{ => stdlib}/la_aoi32.v | 0 .../lambda/{ => stdlib}/la_aoi33.v | 0 .../lambda/{ => stdlib}/la_buf.v | 0 .../lambda/{ => stdlib}/la_clkand2.v | 0 .../lambda/{ => stdlib}/la_clkbuf.v | 0 .../lambda/{ => stdlib}/la_clkinv.v | 0 .../lambda/{ => stdlib}/la_clknand2.v | 0 .../lambda/{ => stdlib}/la_clknor2.v | 0 .../lambda/{ => stdlib}/la_clkor2.v | 0 .../lambda/{ => stdlib}/la_clkor4.v | 0 .../lambda/{ => stdlib}/la_clkxor2.v | 0 .../lambda/{ => stdlib}/la_csa32.v | 0 .../lambda/{ => stdlib}/la_csa42.v | 0 .../lambda/{ => stdlib}/la_delay.v | 0 .../lambda/{ => stdlib}/la_dffnq.v | 0 .../lambda/{ => stdlib}/la_dffq.v | 0 .../lambda/{ => stdlib}/la_dffqn.v | 0 .../lambda/{ => stdlib}/la_dffrq.v | 0 .../lambda/{ => stdlib}/la_dffrqn.v | 0 .../lambda/{ => stdlib}/la_dffsq.v | 0 .../lambda/{ => stdlib}/la_dffsqn.v | 0 .../lambda/{ => stdlib}/la_dmux2.v | 0 .../lambda/{ => stdlib}/la_dmux3.v | 0 .../lambda/{ => stdlib}/la_dmux4.v | 0 .../lambda/{ => stdlib}/la_dmux5.v | 0 .../lambda/{ => stdlib}/la_dmux6.v | 0 .../lambda/{ => stdlib}/la_dmux7.v | 0 .../lambda/{ => stdlib}/la_dmux8.v | 0 .../lambda/{ => stdlib}/la_inv.v | 0 .../lambda/{ => stdlib}/la_latnq.v | 0 .../lambda/{ => stdlib}/la_latq.v | 0 .../lambda/{ => stdlib}/la_mux2.v | 0 .../lambda/{ => stdlib}/la_mux3.v | 0 .../lambda/{ => stdlib}/la_mux4.v | 0 .../lambda/{ => stdlib}/la_muxi2.v | 0 .../lambda/{ => stdlib}/la_muxi3.v | 0 .../lambda/{ => stdlib}/la_muxi4.v | 0 .../lambda/{ => stdlib}/la_nand2.v | 0 .../lambda/{ => stdlib}/la_nand3.v | 0 .../lambda/{ => stdlib}/la_nand4.v | 0 .../lambda/{ => stdlib}/la_nor2.v | 0 .../lambda/{ => stdlib}/la_nor3.v | 0 .../lambda/{ => stdlib}/la_nor4.v | 0 .../lambda/{ => stdlib}/la_oa21.v | 0 .../lambda/{ => stdlib}/la_oa211.v | 0 .../lambda/{ => stdlib}/la_oa22.v | 0 .../lambda/{ => stdlib}/la_oa221.v | 0 .../lambda/{ => stdlib}/la_oa222.v | 0 .../lambda/{ => stdlib}/la_oa31.v | 0 .../lambda/{ => stdlib}/la_oa311.v | 0 .../lambda/{ => stdlib}/la_oa32.v | 0 .../lambda/{ => stdlib}/la_oa33.v | 0 .../lambda/{ => stdlib}/la_oai21.v | 0 .../lambda/{ => stdlib}/la_oai22.v | 0 .../lambda/{ => stdlib}/la_oai221.v | 0 .../lambda/{ => stdlib}/la_oai222.v | 0 .../lambda/{ => stdlib}/la_oai31.v | 0 .../lambda/{ => stdlib}/la_oai311.v | 0 .../lambda/{ => stdlib}/la_oai32.v | 0 .../lambda/{ => stdlib}/la_oai33.v | 0 .../lambda/{ => stdlib}/la_or2.v | 0 .../lambda/{ => stdlib}/la_or3.v | 0 .../lambda/{ => stdlib}/la_or4.v | 0 .../lambda/{ => stdlib}/la_sdffq.v | 0 .../lambda/{ => stdlib}/la_sdffqn.v | 0 .../lambda/{ => stdlib}/la_sdffrq.v | 0 .../lambda/{ => stdlib}/la_sdffrqn.v | 0 .../lambda/{ => stdlib}/la_sdffsq.v | 0 .../lambda/{ => stdlib}/la_sdffsqn.v | 0 .../lambda/{ => stdlib}/la_tiehi.v | 0 .../lambda/{ => stdlib}/la_tielo.v | 0 .../lambda/{ => stdlib}/la_xnor2.v | 0 .../lambda/{ => stdlib}/la_xnor3.v | 0 .../lambda/{ => stdlib}/la_xnor4.v | 0 .../lambda/{ => stdlib}/la_xor2.v | 0 .../lambda/{ => stdlib}/la_xor3.v | 0 .../lambda/{ => stdlib}/la_xor4.v | 0 .../lambda/{ => auxlib}/la_antenna.v | 0 .../lambda/{ => auxlib}/la_clkicgand.v | 0 .../lambda/{ => auxlib}/la_clkicgor.v | 0 .../lambda/{ => auxlib}/la_clkmux2.v | 0 .../lambda/{ => auxlib}/la_clkmux4.v | 0 .../lambda/{ => auxlib}/la_decap.v | 0 .../lambda/{ => auxlib}/la_drsync.v | 0 .../lambda/{ => auxlib}/la_dsync.v | 0 .../lambda/{ => auxlib}/la_footer.v | 0 .../lambda/{ => auxlib}/la_header.v | 0 .../lambda/{ => auxlib}/la_iddr.v | 0 .../lambda/{ => auxlib}/la_isohi.v | 0 .../lambda/{ => auxlib}/la_isolo.v | 0 .../lambda/{ => auxlib}/la_keeper.v | 0 .../lambda/{ => auxlib}/la_oddr.v | 0 .../lambda/{ => auxlib}/la_pwrbuf.v | 0 .../lambda/{ => auxlib}/la_rsync.v | 0 .../lambda/{ => auxlib}/la_tbuf.v | 0 .../lambda/{ => stdlib}/la_and2.v | 0 .../lambda/{ => stdlib}/la_and3.v | 0 .../lambda/{ => stdlib}/la_and4.v | 0 .../lambda/{ => stdlib}/la_ao21.v | 0 .../lambda/{ => stdlib}/la_ao211.v | 0 .../lambda/{ => stdlib}/la_ao22.v | 0 .../lambda/{ => stdlib}/la_ao221.v | 0 .../lambda/{ => stdlib}/la_ao222.v | 0 .../lambda/{ => stdlib}/la_ao31.v | 0 .../lambda/{ => stdlib}/la_ao311.v | 0 .../lambda/{ => stdlib}/la_ao32.v | 0 .../lambda/{ => stdlib}/la_ao33.v | 0 .../lambda/{ => stdlib}/la_aoi21.v | 0 .../lambda/{ => stdlib}/la_aoi211.v | 0 .../lambda/{ => stdlib}/la_aoi22.v | 0 .../lambda/{ => stdlib}/la_aoi221.v | 0 .../lambda/{ => stdlib}/la_aoi222.v | 0 .../lambda/{ => stdlib}/la_aoi31.v | 0 .../lambda/{ => stdlib}/la_aoi311.v | 0 .../lambda/{ => stdlib}/la_aoi32.v | 0 .../lambda/{ => stdlib}/la_aoi33.v | 0 .../lambda/{ => stdlib}/la_buf.v | 0 .../lambda/{ => stdlib}/la_clkand2.v | 0 .../lambda/{ => stdlib}/la_clkbuf.v | 0 .../lambda/{ => stdlib}/la_clkinv.v | 0 .../lambda/{ => stdlib}/la_clknand2.v | 0 .../lambda/{ => stdlib}/la_clknor2.v | 0 .../lambda/{ => stdlib}/la_clkor2.v | 0 .../lambda/{ => stdlib}/la_clkor4.v | 0 .../lambda/{ => stdlib}/la_clkxor2.v | 0 .../lambda/{ => stdlib}/la_csa32.v | 0 .../lambda/{ => stdlib}/la_csa42.v | 0 .../lambda/{ => stdlib}/la_delay.v | 0 .../lambda/{ => stdlib}/la_dffnq.v | 0 .../lambda/{ => stdlib}/la_dffq.v | 0 .../lambda/{ => stdlib}/la_dffqn.v | 0 .../lambda/{ => stdlib}/la_dffrq.v | 0 .../lambda/{ => stdlib}/la_dffrqn.v | 0 .../lambda/{ => stdlib}/la_dffsq.v | 0 .../lambda/{ => stdlib}/la_dffsqn.v | 0 .../lambda/{ => stdlib}/la_dmux2.v | 0 .../lambda/{ => stdlib}/la_dmux3.v | 0 .../lambda/{ => stdlib}/la_dmux4.v | 0 .../lambda/{ => stdlib}/la_dmux5.v | 0 .../lambda/{ => stdlib}/la_dmux6.v | 0 .../lambda/{ => stdlib}/la_dmux7.v | 0 .../lambda/{ => stdlib}/la_dmux8.v | 0 .../lambda/{ => stdlib}/la_inv.v | 0 .../lambda/{ => stdlib}/la_latnq.v | 0 .../lambda/{ => stdlib}/la_latq.v | 0 .../lambda/{ => stdlib}/la_mux2.v | 0 .../lambda/{ => stdlib}/la_mux3.v | 0 .../lambda/{ => stdlib}/la_mux4.v | 0 .../lambda/{ => stdlib}/la_muxi2.v | 0 .../lambda/{ => stdlib}/la_muxi3.v | 0 .../lambda/{ => stdlib}/la_muxi4.v | 0 .../lambda/{ => stdlib}/la_nand2.v | 0 .../lambda/{ => stdlib}/la_nand3.v | 0 .../lambda/{ => stdlib}/la_nand4.v | 0 .../lambda/{ => stdlib}/la_nor2.v | 0 .../lambda/{ => stdlib}/la_nor3.v | 0 .../lambda/{ => stdlib}/la_nor4.v | 0 .../lambda/{ => stdlib}/la_oa21.v | 0 .../lambda/{ => stdlib}/la_oa211.v | 0 .../lambda/{ => stdlib}/la_oa22.v | 0 .../lambda/{ => stdlib}/la_oa221.v | 0 .../lambda/{ => stdlib}/la_oa222.v | 0 .../lambda/{ => stdlib}/la_oa31.v | 0 .../lambda/{ => stdlib}/la_oa311.v | 0 .../lambda/{ => stdlib}/la_oa32.v | 0 .../lambda/{ => stdlib}/la_oa33.v | 0 .../lambda/{ => stdlib}/la_oai21.v | 0 .../lambda/{ => stdlib}/la_oai22.v | 0 .../lambda/{ => stdlib}/la_oai221.v | 0 .../lambda/{ => stdlib}/la_oai222.v | 0 .../lambda/{ => stdlib}/la_oai31.v | 0 .../lambda/{ => stdlib}/la_oai311.v | 0 .../lambda/{ => stdlib}/la_oai32.v | 0 .../lambda/{ => stdlib}/la_oai33.v | 0 .../lambda/{ => stdlib}/la_or2.v | 0 .../lambda/{ => stdlib}/la_or3.v | 0 .../lambda/{ => stdlib}/la_or4.v | 0 .../lambda/{ => stdlib}/la_sdffq.v | 0 .../lambda/{ => stdlib}/la_sdffqn.v | 0 .../lambda/{ => stdlib}/la_sdffrq.v | 0 .../lambda/{ => stdlib}/la_sdffrqn.v | 0 .../lambda/{ => stdlib}/la_sdffsq.v | 0 .../lambda/{ => stdlib}/la_sdffsqn.v | 0 .../lambda/{ => stdlib}/la_tiehi.v | 0 .../lambda/{ => stdlib}/la_tielo.v | 0 .../lambda/{ => stdlib}/la_xnor2.v | 0 .../lambda/{ => stdlib}/la_xnor3.v | 0 .../lambda/{ => stdlib}/la_xnor4.v | 0 .../lambda/{ => stdlib}/la_xor2.v | 0 .../lambda/{ => stdlib}/la_xor3.v | 0 .../lambda/{ => stdlib}/la_xor4.v | 0 .../lambda/{ => auxlib}/la_antenna.v | 0 .../lambda/{ => auxlib}/la_clkicgand.v | 0 .../lambda/{ => auxlib}/la_clkicgor.v | 0 .../lambda/{ => auxlib}/la_clkmux2.v | 0 .../lambda/{ => auxlib}/la_clkmux4.v | 0 .../lambda/{ => auxlib}/la_decap.v | 0 .../lambda/{ => auxlib}/la_drsync.v | 0 .../lambda/{ => auxlib}/la_dsync.v | 0 .../lambda/{ => auxlib}/la_footer.v | 0 .../lambda/{ => auxlib}/la_header.v | 0 .../lambda/{ => auxlib}/la_iddr.v | 0 .../lambda/{ => auxlib}/la_isohi.v | 0 .../lambda/{ => auxlib}/la_isolo.v | 0 .../lambda/{ => auxlib}/la_keeper.v | 0 .../lambda/{ => auxlib}/la_oddr.v | 0 .../lambda/{ => auxlib}/la_pwrbuf.v | 0 .../lambda/{ => auxlib}/la_rsync.v | 0 .../lambda/{ => auxlib}/la_tbuf.v | 0 .../lambda/{ => stdlib}/la_and2.v | 0 .../lambda/{ => stdlib}/la_and3.v | 0 .../lambda/{ => stdlib}/la_and4.v | 0 .../lambda/{ => stdlib}/la_ao21.v | 0 .../lambda/{ => stdlib}/la_ao211.v | 0 .../lambda/{ => stdlib}/la_ao22.v | 0 .../lambda/{ => stdlib}/la_ao221.v | 0 .../lambda/{ => stdlib}/la_ao222.v | 0 .../lambda/{ => stdlib}/la_ao31.v | 0 .../lambda/{ => stdlib}/la_ao311.v | 0 .../lambda/{ => stdlib}/la_ao32.v | 0 .../lambda/{ => stdlib}/la_ao33.v | 0 .../lambda/{ => stdlib}/la_aoi21.v | 0 .../lambda/{ => stdlib}/la_aoi211.v | 0 .../lambda/{ => stdlib}/la_aoi22.v | 0 .../lambda/{ => stdlib}/la_aoi221.v | 0 .../lambda/{ => stdlib}/la_aoi222.v | 0 .../lambda/{ => stdlib}/la_aoi31.v | 0 .../lambda/{ => stdlib}/la_aoi311.v | 0 .../lambda/{ => stdlib}/la_aoi32.v | 0 .../lambda/{ => stdlib}/la_aoi33.v | 0 .../lambda/{ => stdlib}/la_buf.v | 0 .../lambda/{ => stdlib}/la_clkand2.v | 0 .../lambda/{ => stdlib}/la_clkbuf.v | 0 .../lambda/{ => stdlib}/la_clkinv.v | 0 .../lambda/{ => stdlib}/la_clknand2.v | 0 .../lambda/{ => stdlib}/la_clknor2.v | 0 .../lambda/{ => stdlib}/la_clkor2.v | 0 .../lambda/{ => stdlib}/la_clkor4.v | 0 .../lambda/{ => stdlib}/la_clkxor2.v | 0 .../lambda/{ => stdlib}/la_csa32.v | 0 .../lambda/{ => stdlib}/la_csa42.v | 0 .../lambda/{ => stdlib}/la_delay.v | 0 .../lambda/{ => stdlib}/la_dffnq.v | 0 .../lambda/{ => stdlib}/la_dffq.v | 0 .../lambda/{ => stdlib}/la_dffqn.v | 0 .../lambda/{ => stdlib}/la_dffrq.v | 0 .../lambda/{ => stdlib}/la_dffrqn.v | 0 .../lambda/{ => stdlib}/la_dffsq.v | 0 .../lambda/{ => stdlib}/la_dffsqn.v | 0 .../lambda/{ => stdlib}/la_dmux2.v | 0 .../lambda/{ => stdlib}/la_dmux3.v | 0 .../lambda/{ => stdlib}/la_dmux4.v | 0 .../lambda/{ => stdlib}/la_dmux5.v | 0 .../lambda/{ => stdlib}/la_dmux6.v | 0 .../lambda/{ => stdlib}/la_dmux7.v | 0 .../lambda/{ => stdlib}/la_dmux8.v | 0 .../lambda/{ => stdlib}/la_inv.v | 0 .../lambda/{ => stdlib}/la_latnq.v | 0 .../lambda/{ => stdlib}/la_latq.v | 0 .../lambda/{ => stdlib}/la_mux2.v | 0 .../lambda/{ => stdlib}/la_mux3.v | 0 .../lambda/{ => stdlib}/la_mux4.v | 0 .../lambda/{ => stdlib}/la_muxi2.v | 0 .../lambda/{ => stdlib}/la_muxi3.v | 0 .../lambda/{ => stdlib}/la_muxi4.v | 0 .../lambda/{ => stdlib}/la_nand2.v | 0 .../lambda/{ => stdlib}/la_nand3.v | 0 .../lambda/{ => stdlib}/la_nand4.v | 0 .../lambda/{ => stdlib}/la_nor2.v | 0 .../lambda/{ => stdlib}/la_nor3.v | 0 .../lambda/{ => stdlib}/la_nor4.v | 0 .../lambda/{ => stdlib}/la_oa21.v | 0 .../lambda/{ => stdlib}/la_oa211.v | 0 .../lambda/{ => stdlib}/la_oa22.v | 0 .../lambda/{ => stdlib}/la_oa221.v | 0 .../lambda/{ => stdlib}/la_oa222.v | 0 .../lambda/{ => stdlib}/la_oa31.v | 0 .../lambda/{ => stdlib}/la_oa311.v | 0 .../lambda/{ => stdlib}/la_oa32.v | 0 .../lambda/{ => stdlib}/la_oa33.v | 0 .../lambda/{ => stdlib}/la_oai21.v | 0 .../lambda/{ => stdlib}/la_oai22.v | 0 .../lambda/{ => stdlib}/la_oai221.v | 0 .../lambda/{ => stdlib}/la_oai222.v | 0 .../lambda/{ => stdlib}/la_oai31.v | 0 .../lambda/{ => stdlib}/la_oai311.v | 0 .../lambda/{ => stdlib}/la_oai32.v | 0 .../lambda/{ => stdlib}/la_oai33.v | 0 .../lambda/{ => stdlib}/la_or2.v | 0 .../lambda/{ => stdlib}/la_or3.v | 0 .../lambda/{ => stdlib}/la_or4.v | 0 .../lambda/{ => stdlib}/la_sdffq.v | 0 .../lambda/{ => stdlib}/la_sdffqn.v | 0 .../lambda/{ => stdlib}/la_sdffrq.v | 0 .../lambda/{ => stdlib}/la_sdffrqn.v | 0 .../lambda/{ => stdlib}/la_sdffsq.v | 0 .../lambda/{ => stdlib}/la_sdffsqn.v | 0 .../lambda/{ => stdlib}/la_tiehi.v | 0 .../lambda/{ => stdlib}/la_tielo.v | 0 .../lambda/{ => stdlib}/la_xnor2.v | 0 .../lambda/{ => stdlib}/la_xnor3.v | 0 .../lambda/{ => stdlib}/la_xnor4.v | 0 .../lambda/{ => stdlib}/la_xor2.v | 0 .../lambda/{ => stdlib}/la_xor3.v | 0 .../lambda/{ => stdlib}/la_xor4.v | 0 .../lambda/{ => auxlib}/la_antenna.v | 0 .../lambda/{ => auxlib}/la_clkicgand.v | 0 .../lambda/{ => auxlib}/la_clkicgor.v | 0 .../lambda/{ => auxlib}/la_clkmux2.v | 0 .../lambda/{ => auxlib}/la_clkmux4.v | 0 .../nangate45/lambda/{ => auxlib}/la_decap.v | 0 .../nangate45/lambda/{ => auxlib}/la_drsync.v | 0 .../nangate45/lambda/{ => auxlib}/la_dsync.v | 0 .../nangate45/lambda/{ => auxlib}/la_footer.v | 0 .../nangate45/lambda/{ => auxlib}/la_header.v | 0 .../nangate45/lambda/{ => auxlib}/la_iddr.v | 0 .../nangate45/lambda/{ => auxlib}/la_isohi.v | 0 .../nangate45/lambda/{ => auxlib}/la_isolo.v | 0 .../nangate45/lambda/{ => auxlib}/la_keeper.v | 0 .../nangate45/lambda/{ => auxlib}/la_oddr.v | 0 .../nangate45/lambda/{ => auxlib}/la_pwrbuf.v | 0 .../nangate45/lambda/{ => auxlib}/la_rsync.v | 0 .../nangate45/lambda/{ => auxlib}/la_tbuf.v | 0 .../nangate45/lambda/{ => stdlib}/la_and2.v | 0 .../nangate45/lambda/{ => stdlib}/la_and3.v | 0 .../nangate45/lambda/{ => stdlib}/la_and4.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao21.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao211.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao22.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao221.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao222.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao31.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao311.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao32.v | 0 .../nangate45/lambda/{ => stdlib}/la_ao33.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi21.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi211.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi22.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi221.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi222.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi31.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi311.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi32.v | 0 .../nangate45/lambda/{ => stdlib}/la_aoi33.v | 0 .../nangate45/lambda/{ => stdlib}/la_buf.v | 0 .../lambda/{ => stdlib}/la_clkand2.v | 0 .../nangate45/lambda/{ => stdlib}/la_clkbuf.v | 0 .../nangate45/lambda/{ => stdlib}/la_clkinv.v | 0 .../lambda/{ => stdlib}/la_clknand2.v | 0 .../lambda/{ => stdlib}/la_clknor2.v | 0 .../nangate45/lambda/{ => stdlib}/la_clkor2.v | 0 .../nangate45/lambda/{ => stdlib}/la_clkor4.v | 0 .../lambda/{ => stdlib}/la_clkxor2.v | 0 .../nangate45/lambda/{ => stdlib}/la_csa32.v | 0 .../nangate45/lambda/{ => stdlib}/la_csa42.v | 0 .../nangate45/lambda/{ => stdlib}/la_delay.v | 0 .../nangate45/lambda/{ => stdlib}/la_dffnq.v | 0 .../nangate45/lambda/{ => stdlib}/la_dffq.v | 0 .../nangate45/lambda/{ => stdlib}/la_dffqn.v | 0 .../nangate45/lambda/{ => stdlib}/la_dffrq.v | 0 .../nangate45/lambda/{ => stdlib}/la_dffrqn.v | 0 .../nangate45/lambda/{ => stdlib}/la_dffsq.v | 0 .../nangate45/lambda/{ => stdlib}/la_dffsqn.v | 0 .../nangate45/lambda/{ => stdlib}/la_dmux2.v | 0 .../nangate45/lambda/{ => stdlib}/la_dmux3.v | 0 .../nangate45/lambda/{ => stdlib}/la_dmux4.v | 0 .../nangate45/lambda/{ => stdlib}/la_dmux5.v | 0 .../nangate45/lambda/{ => stdlib}/la_dmux6.v | 0 .../nangate45/lambda/{ => stdlib}/la_dmux7.v | 0 .../nangate45/lambda/{ => stdlib}/la_dmux8.v | 0 .../nangate45/lambda/{ => stdlib}/la_inv.v | 0 .../nangate45/lambda/{ => stdlib}/la_latnq.v | 0 .../nangate45/lambda/{ => stdlib}/la_latq.v | 0 .../nangate45/lambda/{ => stdlib}/la_mux2.v | 0 .../nangate45/lambda/{ => stdlib}/la_mux3.v | 0 .../nangate45/lambda/{ => stdlib}/la_mux4.v | 0 .../nangate45/lambda/{ => stdlib}/la_muxi2.v | 0 .../nangate45/lambda/{ => stdlib}/la_muxi3.v | 0 .../nangate45/lambda/{ => stdlib}/la_muxi4.v | 0 .../nangate45/lambda/{ => stdlib}/la_nand2.v | 0 .../nangate45/lambda/{ => stdlib}/la_nand3.v | 0 .../nangate45/lambda/{ => stdlib}/la_nand4.v | 0 .../nangate45/lambda/{ => stdlib}/la_nor2.v | 0 .../nangate45/lambda/{ => stdlib}/la_nor3.v | 0 .../nangate45/lambda/{ => stdlib}/la_nor4.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa21.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa211.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa22.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa221.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa222.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa31.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa311.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa32.v | 0 .../nangate45/lambda/{ => stdlib}/la_oa33.v | 0 .../nangate45/lambda/{ => stdlib}/la_oai21.v | 0 .../nangate45/lambda/{ => stdlib}/la_oai22.v | 0 .../nangate45/lambda/{ => stdlib}/la_oai221.v | 0 .../nangate45/lambda/{ => stdlib}/la_oai222.v | 0 .../nangate45/lambda/{ => stdlib}/la_oai31.v | 0 .../nangate45/lambda/{ => stdlib}/la_oai311.v | 0 .../nangate45/lambda/{ => stdlib}/la_oai32.v | 0 .../nangate45/lambda/{ => stdlib}/la_oai33.v | 0 .../nangate45/lambda/{ => stdlib}/la_or2.v | 0 .../nangate45/lambda/{ => stdlib}/la_or3.v | 0 .../nangate45/lambda/{ => stdlib}/la_or4.v | 0 .../nangate45/lambda/{ => stdlib}/la_sdffq.v | 0 .../nangate45/lambda/{ => stdlib}/la_sdffqn.v | 0 .../nangate45/lambda/{ => stdlib}/la_sdffrq.v | 0 .../lambda/{ => stdlib}/la_sdffrqn.v | 0 .../nangate45/lambda/{ => stdlib}/la_sdffsq.v | 0 .../lambda/{ => stdlib}/la_sdffsqn.v | 0 .../nangate45/lambda/{ => stdlib}/la_tiehi.v | 0 .../nangate45/lambda/{ => stdlib}/la_tielo.v | 0 .../nangate45/lambda/{ => stdlib}/la_xnor2.v | 0 .../nangate45/lambda/{ => stdlib}/la_xnor3.v | 0 .../nangate45/lambda/{ => stdlib}/la_xnor4.v | 0 .../nangate45/lambda/{ => stdlib}/la_xor2.v | 0 .../nangate45/lambda/{ => stdlib}/la_xor3.v | 0 .../nangate45/lambda/{ => stdlib}/la_xor4.v | 0 .../lambda/{ => auxlib}/la_antenna.v | 0 .../lambda/{ => auxlib}/la_clkicgand.v | 0 .../lambda/{ => auxlib}/la_clkicgor.v | 0 .../lambda/{ => auxlib}/la_clkmux2.v | 0 .../lambda/{ => auxlib}/la_clkmux4.v | 0 .../lambda/{ => auxlib}/la_decap.v | 0 .../lambda/{ => auxlib}/la_drsync.v | 0 .../lambda/{ => auxlib}/la_dsync.v | 0 .../lambda/{ => auxlib}/la_footer.v | 0 .../lambda/{ => auxlib}/la_header.v | 0 .../lambda/{ => auxlib}/la_iddr.v | 0 .../lambda/{ => auxlib}/la_isohi.v | 0 .../lambda/{ => auxlib}/la_isolo.v | 0 .../lambda/{ => auxlib}/la_keeper.v | 0 .../lambda/{ => auxlib}/la_oddr.v | 0 .../lambda/{ => auxlib}/la_pwrbuf.v | 0 .../lambda/{ => auxlib}/la_rsync.v | 0 .../lambda/{ => auxlib}/la_tbuf.v | 0 .../lambda/{ => stdlib}/la_and2.v | 0 .../lambda/{ => stdlib}/la_and3.v | 0 .../lambda/{ => stdlib}/la_and4.v | 0 .../lambda/{ => stdlib}/la_ao21.v | 0 .../lambda/{ => stdlib}/la_ao211.v | 0 .../lambda/{ => stdlib}/la_ao22.v | 0 .../lambda/{ => stdlib}/la_ao221.v | 0 .../lambda/{ => stdlib}/la_ao222.v | 0 .../lambda/{ => stdlib}/la_ao31.v | 0 .../lambda/{ => stdlib}/la_ao311.v | 0 .../lambda/{ => stdlib}/la_ao32.v | 0 .../lambda/{ => stdlib}/la_ao33.v | 0 .../lambda/{ => stdlib}/la_aoi21.v | 0 .../lambda/{ => stdlib}/la_aoi211.v | 0 .../lambda/{ => stdlib}/la_aoi22.v | 0 .../lambda/{ => stdlib}/la_aoi221.v | 0 .../lambda/{ => stdlib}/la_aoi222.v | 0 .../lambda/{ => stdlib}/la_aoi31.v | 0 .../lambda/{ => stdlib}/la_aoi311.v | 0 .../lambda/{ => stdlib}/la_aoi32.v | 0 .../lambda/{ => stdlib}/la_aoi33.v | 0 .../lambda/{ => stdlib}/la_buf.v | 0 .../lambda/{ => stdlib}/la_clkand2.v | 0 .../lambda/{ => stdlib}/la_clkbuf.v | 0 .../lambda/{ => stdlib}/la_clkinv.v | 0 .../lambda/{ => stdlib}/la_clknand2.v | 0 .../lambda/{ => stdlib}/la_clknor2.v | 0 .../lambda/{ => stdlib}/la_clkor2.v | 0 .../lambda/{ => stdlib}/la_clkor4.v | 0 .../lambda/{ => stdlib}/la_clkxor2.v | 0 .../lambda/{ => stdlib}/la_csa32.v | 0 .../lambda/{ => stdlib}/la_csa42.v | 0 .../lambda/{ => stdlib}/la_delay.v | 0 .../lambda/{ => stdlib}/la_dffnq.v | 0 .../lambda/{ => stdlib}/la_dffq.v | 0 .../lambda/{ => stdlib}/la_dffqn.v | 0 .../lambda/{ => stdlib}/la_dffrq.v | 0 .../lambda/{ => stdlib}/la_dffrqn.v | 0 .../lambda/{ => stdlib}/la_dffsq.v | 0 .../lambda/{ => stdlib}/la_dffsqn.v | 0 .../lambda/{ => stdlib}/la_dmux2.v | 0 .../lambda/{ => stdlib}/la_dmux3.v | 0 .../lambda/{ => stdlib}/la_dmux4.v | 0 .../lambda/{ => stdlib}/la_dmux5.v | 0 .../lambda/{ => stdlib}/la_dmux6.v | 0 .../lambda/{ => stdlib}/la_dmux7.v | 0 .../lambda/{ => stdlib}/la_dmux8.v | 0 .../lambda/{ => stdlib}/la_inv.v | 0 .../lambda/{ => stdlib}/la_latnq.v | 0 .../lambda/{ => stdlib}/la_latq.v | 0 .../lambda/{ => stdlib}/la_mux2.v | 0 .../lambda/{ => stdlib}/la_mux3.v | 0 .../lambda/{ => stdlib}/la_mux4.v | 0 .../lambda/{ => stdlib}/la_muxi2.v | 0 .../lambda/{ => stdlib}/la_muxi3.v | 0 .../lambda/{ => stdlib}/la_muxi4.v | 0 .../lambda/{ => stdlib}/la_nand2.v | 0 .../lambda/{ => stdlib}/la_nand3.v | 0 .../lambda/{ => stdlib}/la_nand4.v | 0 .../lambda/{ => stdlib}/la_nor2.v | 0 .../lambda/{ => stdlib}/la_nor3.v | 0 .../lambda/{ => stdlib}/la_nor4.v | 0 .../lambda/{ => stdlib}/la_oa21.v | 0 .../lambda/{ => stdlib}/la_oa211.v | 0 .../lambda/{ => stdlib}/la_oa22.v | 0 .../lambda/{ => stdlib}/la_oa221.v | 0 .../lambda/{ => stdlib}/la_oa222.v | 0 .../lambda/{ => stdlib}/la_oa31.v | 0 .../lambda/{ => stdlib}/la_oa311.v | 0 .../lambda/{ => stdlib}/la_oa32.v | 0 .../lambda/{ => stdlib}/la_oa33.v | 0 .../lambda/{ => stdlib}/la_oai21.v | 0 .../lambda/{ => stdlib}/la_oai22.v | 0 .../lambda/{ => stdlib}/la_oai221.v | 0 .../lambda/{ => stdlib}/la_oai222.v | 0 .../lambda/{ => stdlib}/la_oai31.v | 0 .../lambda/{ => stdlib}/la_oai311.v | 0 .../lambda/{ => stdlib}/la_oai32.v | 0 .../lambda/{ => stdlib}/la_oai33.v | 0 .../lambda/{ => stdlib}/la_or2.v | 0 .../lambda/{ => stdlib}/la_or3.v | 0 .../lambda/{ => stdlib}/la_or4.v | 0 .../lambda/{ => stdlib}/la_sdffq.v | 0 .../lambda/{ => stdlib}/la_sdffqn.v | 0 .../lambda/{ => stdlib}/la_sdffrq.v | 0 .../lambda/{ => stdlib}/la_sdffrqn.v | 0 .../lambda/{ => stdlib}/la_sdffsq.v | 0 .../lambda/{ => stdlib}/la_sdffsqn.v | 0 .../lambda/{ => stdlib}/la_tiehi.v | 0 .../lambda/{ => stdlib}/la_tielo.v | 0 .../lambda/{ => stdlib}/la_xnor2.v | 0 .../lambda/{ => stdlib}/la_xnor3.v | 0 .../lambda/{ => stdlib}/la_xnor4.v | 0 .../lambda/{ => stdlib}/la_xor2.v | 0 .../lambda/{ => stdlib}/la_xor3.v | 0 .../lambda/{ => stdlib}/la_xor4.v | 0 .../lambda/{ => auxlib}/la_antenna.v | 0 .../lambda/{ => auxlib}/la_clkicgand.v | 0 .../lambda/{ => auxlib}/la_clkicgor.v | 0 .../lambda/{ => auxlib}/la_clkmux2.v | 0 .../lambda/{ => auxlib}/la_clkmux4.v | 0 .../lambda/{ => auxlib}/la_decap.v | 0 .../lambda/{ => auxlib}/la_drsync.v | 0 .../lambda/{ => auxlib}/la_dsync.v | 0 .../lambda/{ => auxlib}/la_footer.v | 0 .../lambda/{ => auxlib}/la_header.v | 0 .../lambda/{ => auxlib}/la_iddr.v | 0 .../lambda/{ => auxlib}/la_isohi.v | 0 .../lambda/{ => auxlib}/la_isolo.v | 0 .../lambda/{ => auxlib}/la_keeper.v | 0 .../lambda/{ => auxlib}/la_oddr.v | 0 .../lambda/{ => auxlib}/la_pwrbuf.v | 0 .../lambda/{ => auxlib}/la_rsync.v | 0 .../lambda/{ => auxlib}/la_tbuf.v | 0 .../lambda/{ => stdlib}/la_and2.v | 0 .../lambda/{ => stdlib}/la_and3.v | 0 .../lambda/{ => stdlib}/la_and4.v | 0 .../lambda/{ => stdlib}/la_ao21.v | 0 .../lambda/{ => stdlib}/la_ao211.v | 0 .../lambda/{ => stdlib}/la_ao22.v | 0 .../lambda/{ => stdlib}/la_ao221.v | 0 .../lambda/{ => stdlib}/la_ao222.v | 0 .../lambda/{ => stdlib}/la_ao31.v | 0 .../lambda/{ => stdlib}/la_ao311.v | 0 .../lambda/{ => stdlib}/la_ao32.v | 0 .../lambda/{ => stdlib}/la_ao33.v | 0 .../lambda/{ => stdlib}/la_aoi21.v | 0 .../lambda/{ => stdlib}/la_aoi211.v | 0 .../lambda/{ => stdlib}/la_aoi22.v | 0 .../lambda/{ => stdlib}/la_aoi221.v | 0 .../lambda/{ => stdlib}/la_aoi222.v | 0 .../lambda/{ => stdlib}/la_aoi31.v | 0 .../lambda/{ => stdlib}/la_aoi311.v | 0 .../lambda/{ => stdlib}/la_aoi32.v | 0 .../lambda/{ => stdlib}/la_aoi33.v | 0 .../lambda/{ => stdlib}/la_buf.v | 0 .../lambda/{ => stdlib}/la_clkand2.v | 0 .../lambda/{ => stdlib}/la_clkbuf.v | 0 .../lambda/{ => stdlib}/la_clkinv.v | 0 .../lambda/{ => stdlib}/la_clknand2.v | 0 .../lambda/{ => stdlib}/la_clknor2.v | 0 .../lambda/{ => stdlib}/la_clkor2.v | 0 .../lambda/{ => stdlib}/la_clkor4.v | 0 .../lambda/{ => stdlib}/la_clkxor2.v | 0 .../lambda/{ => stdlib}/la_csa32.v | 0 .../lambda/{ => stdlib}/la_csa42.v | 0 .../lambda/{ => stdlib}/la_delay.v | 0 .../lambda/{ => stdlib}/la_dffnq.v | 0 .../lambda/{ => stdlib}/la_dffq.v | 0 .../lambda/{ => stdlib}/la_dffqn.v | 0 .../lambda/{ => stdlib}/la_dffrq.v | 0 .../lambda/{ => stdlib}/la_dffrqn.v | 0 .../lambda/{ => stdlib}/la_dffsq.v | 0 .../lambda/{ => stdlib}/la_dffsqn.v | 0 .../lambda/{ => stdlib}/la_dmux2.v | 0 .../lambda/{ => stdlib}/la_dmux3.v | 0 .../lambda/{ => stdlib}/la_dmux4.v | 0 .../lambda/{ => stdlib}/la_dmux5.v | 0 .../lambda/{ => stdlib}/la_dmux6.v | 0 .../lambda/{ => stdlib}/la_dmux7.v | 0 .../lambda/{ => stdlib}/la_dmux8.v | 0 .../lambda/{ => stdlib}/la_inv.v | 0 .../lambda/{ => stdlib}/la_latnq.v | 0 .../lambda/{ => stdlib}/la_latq.v | 0 .../lambda/{ => stdlib}/la_mux2.v | 0 .../lambda/{ => stdlib}/la_mux3.v | 0 .../lambda/{ => stdlib}/la_mux4.v | 0 .../lambda/{ => stdlib}/la_muxi2.v | 0 .../lambda/{ => stdlib}/la_muxi3.v | 0 .../lambda/{ => stdlib}/la_muxi4.v | 0 .../lambda/{ => stdlib}/la_nand2.v | 0 .../lambda/{ => stdlib}/la_nand3.v | 0 .../lambda/{ => stdlib}/la_nand4.v | 0 .../lambda/{ => stdlib}/la_nor2.v | 0 .../lambda/{ => stdlib}/la_nor3.v | 0 .../lambda/{ => stdlib}/la_nor4.v | 0 .../lambda/{ => stdlib}/la_oa21.v | 0 .../lambda/{ => stdlib}/la_oa211.v | 0 .../lambda/{ => stdlib}/la_oa22.v | 0 .../lambda/{ => stdlib}/la_oa221.v | 0 .../lambda/{ => stdlib}/la_oa222.v | 0 .../lambda/{ => stdlib}/la_oa31.v | 0 .../lambda/{ => stdlib}/la_oa311.v | 0 .../lambda/{ => stdlib}/la_oa32.v | 0 .../lambda/{ => stdlib}/la_oa33.v | 0 .../lambda/{ => stdlib}/la_oai21.v | 0 .../lambda/{ => stdlib}/la_oai22.v | 0 .../lambda/{ => stdlib}/la_oai221.v | 0 .../lambda/{ => stdlib}/la_oai222.v | 0 .../lambda/{ => stdlib}/la_oai31.v | 0 .../lambda/{ => stdlib}/la_oai311.v | 0 .../lambda/{ => stdlib}/la_oai32.v | 0 .../lambda/{ => stdlib}/la_oai33.v | 0 .../lambda/{ => stdlib}/la_or2.v | 0 .../lambda/{ => stdlib}/la_or3.v | 0 .../lambda/{ => stdlib}/la_or4.v | 0 .../lambda/{ => stdlib}/la_sdffq.v | 0 .../lambda/{ => stdlib}/la_sdffqn.v | 0 .../lambda/{ => stdlib}/la_sdffrq.v | 0 .../lambda/{ => stdlib}/la_sdffrqn.v | 0 .../lambda/{ => stdlib}/la_sdffsq.v | 0 .../lambda/{ => stdlib}/la_sdffsqn.v | 0 .../lambda/{ => stdlib}/la_tiehi.v | 0 .../lambda/{ => stdlib}/la_tielo.v | 0 .../lambda/{ => stdlib}/la_xnor2.v | 0 .../lambda/{ => stdlib}/la_xnor3.v | 0 .../lambda/{ => stdlib}/la_xnor4.v | 0 .../lambda/{ => stdlib}/la_xor2.v | 0 .../lambda/{ => stdlib}/la_xor3.v | 0 .../lambda/{ => stdlib}/la_xor4.v | 0 .../sky130hd/lambda/{ => auxlib}/la_antenna.v | 0 .../lambda/{ => auxlib}/la_clkicgand.v | 0 .../lambda/{ => auxlib}/la_clkicgor.v | 0 .../sky130hd/lambda/{ => auxlib}/la_clkmux2.v | 0 .../sky130hd/lambda/{ => auxlib}/la_clkmux4.v | 0 .../sky130hd/lambda/{ => auxlib}/la_decap.v | 0 .../sky130hd/lambda/{ => auxlib}/la_drsync.v | 0 .../sky130hd/lambda/{ => auxlib}/la_dsync.v | 0 .../sky130hd/lambda/{ => auxlib}/la_footer.v | 0 .../sky130hd/lambda/{ => auxlib}/la_header.v | 0 .../sky130hd/lambda/{ => auxlib}/la_iddr.v | 0 .../sky130hd/lambda/{ => auxlib}/la_isohi.v | 0 .../sky130hd/lambda/{ => auxlib}/la_isolo.v | 0 .../sky130hd/lambda/{ => auxlib}/la_keeper.v | 0 .../sky130hd/lambda/{ => auxlib}/la_oddr.v | 0 .../sky130hd/lambda/{ => auxlib}/la_pwrbuf.v | 0 .../sky130hd/lambda/{ => auxlib}/la_rsync.v | 0 .../sky130hd/lambda/{ => auxlib}/la_tbuf.v | 0 .../sky130hd/lambda/{ => stdlib}/la_and2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_and3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_and4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao21.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao211.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao22.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao221.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao222.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao31.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao311.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao32.v | 0 .../sky130hd/lambda/{ => stdlib}/la_ao33.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi21.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi211.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi22.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi221.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi222.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi31.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi311.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi32.v | 0 .../sky130hd/lambda/{ => stdlib}/la_aoi33.v | 0 .../sky130hd/lambda/{ => stdlib}/la_buf.v | 0 .../sky130hd/lambda/{ => stdlib}/la_clkand2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_clkbuf.v | 0 .../sky130hd/lambda/{ => stdlib}/la_clkinv.v | 0 .../lambda/{ => stdlib}/la_clknand2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_clknor2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_clkor2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_clkor4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_clkxor2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_csa32.v | 0 .../sky130hd/lambda/{ => stdlib}/la_csa42.v | 0 .../sky130hd/lambda/{ => stdlib}/la_delay.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dffnq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dffq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dffqn.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dffrq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dffrqn.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dffsq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dffsqn.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dmux2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dmux3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dmux4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dmux5.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dmux6.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dmux7.v | 0 .../sky130hd/lambda/{ => stdlib}/la_dmux8.v | 0 .../sky130hd/lambda/{ => stdlib}/la_inv.v | 0 .../sky130hd/lambda/{ => stdlib}/la_latnq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_latq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_mux2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_mux3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_mux4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_muxi2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_muxi3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_muxi4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_nand2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_nand3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_nand4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_nor2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_nor3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_nor4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa21.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa211.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa22.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa221.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa222.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa31.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa311.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa32.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oa33.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oai21.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oai22.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oai221.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oai222.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oai31.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oai311.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oai32.v | 0 .../sky130hd/lambda/{ => stdlib}/la_oai33.v | 0 .../sky130hd/lambda/{ => stdlib}/la_or2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_or3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_or4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_sdffq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_sdffqn.v | 0 .../sky130hd/lambda/{ => stdlib}/la_sdffrq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_sdffrqn.v | 0 .../sky130hd/lambda/{ => stdlib}/la_sdffsq.v | 0 .../sky130hd/lambda/{ => stdlib}/la_sdffsqn.v | 0 .../sky130hd/lambda/{ => stdlib}/la_tiehi.v | 0 .../sky130hd/lambda/{ => stdlib}/la_tielo.v | 0 .../sky130hd/lambda/{ => stdlib}/la_xnor2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_xnor3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_xnor4.v | 0 .../sky130hd/lambda/{ => stdlib}/la_xor2.v | 0 .../sky130hd/lambda/{ => stdlib}/la_xor3.v | 0 .../sky130hd/lambda/{ => stdlib}/la_xor4.v | 0 .../lambda/{ => auxlib}/la_antenna.v | 0 .../lambda/{ => auxlib}/la_clkicgand.v | 0 .../lambda/{ => auxlib}/la_clkicgor.v | 0 .../lambda/{ => auxlib}/la_clkmux2.v | 0 .../lambda/{ => auxlib}/la_clkmux4.v | 0 .../sky130hdll/lambda/{ => auxlib}/la_decap.v | 0 .../lambda/{ => auxlib}/la_drsync.v | 0 .../sky130hdll/lambda/{ => auxlib}/la_dsync.v | 0 .../lambda/{ => auxlib}/la_footer.v | 0 .../lambda/{ => auxlib}/la_header.v | 0 .../sky130hdll/lambda/{ => auxlib}/la_iddr.v | 0 .../sky130hdll/lambda/{ => auxlib}/la_isohi.v | 0 .../sky130hdll/lambda/{ => auxlib}/la_isolo.v | 0 .../lambda/{ => auxlib}/la_keeper.v | 0 .../sky130hdll/lambda/{ => auxlib}/la_oddr.v | 0 .../lambda/{ => auxlib}/la_pwrbuf.v | 0 .../sky130hdll/lambda/{ => auxlib}/la_rsync.v | 0 .../sky130hdll/lambda/{ => auxlib}/la_tbuf.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_and2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_and3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_and4.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao21.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao211.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao22.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao221.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao222.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao31.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao311.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao32.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_ao33.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_aoi21.v | 0 .../lambda/{ => stdlib}/la_aoi211.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_aoi22.v | 0 .../lambda/{ => stdlib}/la_aoi221.v | 0 .../lambda/{ => stdlib}/la_aoi222.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_aoi31.v | 0 .../lambda/{ => stdlib}/la_aoi311.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_aoi32.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_aoi33.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_buf.v | 0 .../lambda/{ => stdlib}/la_clkand2.v | 0 .../lambda/{ => stdlib}/la_clkbuf.v | 0 .../lambda/{ => stdlib}/la_clkinv.v | 0 .../lambda/{ => stdlib}/la_clknand2.v | 0 .../lambda/{ => stdlib}/la_clknor2.v | 0 .../lambda/{ => stdlib}/la_clkor2.v | 0 .../lambda/{ => stdlib}/la_clkor4.v | 0 .../lambda/{ => stdlib}/la_clkxor2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_csa32.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_csa42.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_delay.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dffnq.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dffq.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dffqn.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dffrq.v | 0 .../lambda/{ => stdlib}/la_dffrqn.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dffsq.v | 0 .../lambda/{ => stdlib}/la_dffsqn.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dmux2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dmux3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dmux4.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dmux5.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dmux6.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dmux7.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_dmux8.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_inv.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_latnq.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_latq.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_mux2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_mux3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_mux4.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_muxi2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_muxi3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_muxi4.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_nand2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_nand3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_nand4.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_nor2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_nor3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_nor4.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa21.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa211.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa22.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa221.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa222.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa31.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa311.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa32.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oa33.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oai21.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oai22.v | 0 .../lambda/{ => stdlib}/la_oai221.v | 0 .../lambda/{ => stdlib}/la_oai222.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oai31.v | 0 .../lambda/{ => stdlib}/la_oai311.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oai32.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_oai33.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_or2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_or3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_or4.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_sdffq.v | 0 .../lambda/{ => stdlib}/la_sdffqn.v | 0 .../lambda/{ => stdlib}/la_sdffrq.v | 0 .../lambda/{ => stdlib}/la_sdffrqn.v | 0 .../lambda/{ => stdlib}/la_sdffsq.v | 0 .../lambda/{ => stdlib}/la_sdffsqn.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_tiehi.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_tielo.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_xnor2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_xnor3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_xnor4.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_xor2.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_xor3.v | 0 .../sky130hdll/lambda/{ => stdlib}/la_xor4.v | 0 pyproject.toml | 2 +- tests/test_lambda.py | 25 ++++++++++++++++--- 914 files changed, 22 insertions(+), 5 deletions(-) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_antenna.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_clkicgand.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_clkicgor.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_clkmux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_clkmux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_decap.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_drsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_dsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_footer.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_header.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_iddr.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_isohi.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_isolo.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_keeper.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_oddr.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_pwrbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_rsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => auxlib}/la_tbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_and2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_and3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_and4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_ao33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_aoi33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_buf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_clkand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_clkbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_clkinv.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_clknand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_clknor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_clkor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_clkor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_clkxor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_csa32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_csa42.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_delay.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dffnq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dffq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dffqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dffrq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dffrqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dffsq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dffsqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dmux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dmux3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dmux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dmux5.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dmux6.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dmux7.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_dmux8.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_inv.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_latnq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_latq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_mux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_mux3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_mux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_muxi2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_muxi3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_muxi4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_nand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_nand3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_nand4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_nor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_nor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_nor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oa33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oai21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oai22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oai221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oai222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oai31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oai311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oai32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_oai33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_or2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_or3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_or4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_sdffq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_sdffqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_sdffrq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_sdffrqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_sdffsq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_sdffsqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_tiehi.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_tielo.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_xnor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_xnor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_xnor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_xor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_xor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/{ => stdlib}/la_xor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_antenna.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_clkicgand.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_clkicgor.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_clkmux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_clkmux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_decap.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_drsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_dsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_footer.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_header.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_iddr.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_isohi.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_isolo.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_keeper.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_oddr.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_pwrbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_rsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => auxlib}/la_tbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_and2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_and3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_and4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_ao33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_aoi33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_buf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_clkand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_clkbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_clkinv.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_clknand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_clknor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_clkor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_clkor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_clkxor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_csa32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_csa42.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_delay.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dffnq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dffq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dffqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dffrq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dffrqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dffsq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dffsqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dmux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dmux3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dmux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dmux5.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dmux6.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dmux7.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_dmux8.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_inv.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_latnq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_latq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_mux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_mux3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_mux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_muxi2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_muxi3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_muxi4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_nand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_nand3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_nand4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_nor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_nor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_nor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oa33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oai21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oai22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oai221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oai222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oai31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oai311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oai32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_oai33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_or2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_or3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_or4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_sdffq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_sdffqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_sdffrq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_sdffrqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_sdffsq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_sdffsqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_tiehi.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_tielo.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_xnor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_xnor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_xnor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_xor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_xor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/{ => stdlib}/la_xor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_antenna.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_clkicgand.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_clkicgor.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_clkmux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_clkmux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_decap.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_drsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_dsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_footer.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_header.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_iddr.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_isohi.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_isolo.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_keeper.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_oddr.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_pwrbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_rsync.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => auxlib}/la_tbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_and2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_and3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_and4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_ao33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_aoi33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_buf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_clkand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_clkbuf.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_clkinv.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_clknand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_clknor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_clkor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_clkor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_clkxor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_csa32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_csa42.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_delay.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dffnq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dffq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dffqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dffrq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dffrqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dffsq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dffsqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dmux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dmux3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dmux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dmux5.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dmux6.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dmux7.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_dmux8.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_inv.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_latnq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_latq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_mux2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_mux3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_mux4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_muxi2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_muxi3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_muxi4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_nand2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_nand3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_nand4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_nor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_nor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_nor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa211.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oa33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oai21.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oai22.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oai221.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oai222.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oai31.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oai311.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oai32.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_oai33.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_or2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_or3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_or4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_sdffq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_sdffqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_sdffrq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_sdffrqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_sdffsq.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_sdffsqn.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_tiehi.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_tielo.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_xnor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_xnor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_xnor4.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_xor2.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_xor3.v (100%) rename lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/{ => stdlib}/la_xor4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_antenna.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_clkicgand.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_clkicgor.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_clkmux2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_clkmux4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_decap.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_drsync.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_dsync.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_footer.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_header.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_iddr.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_isohi.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_isolo.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_keeper.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_oddr.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_pwrbuf.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_rsync.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => auxlib}/la_tbuf.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_and2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_and3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_and4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao21.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao211.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao22.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao221.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao222.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao31.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao311.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao32.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_ao33.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi21.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi211.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi22.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi221.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi222.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi31.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi311.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi32.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_aoi33.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_buf.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_clkand2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_clkbuf.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_clkinv.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_clknand2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_clknor2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_clkor2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_clkor4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_clkxor2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_csa32.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_csa42.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_delay.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dffnq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dffq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dffqn.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dffrq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dffrqn.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dffsq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dffsqn.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dmux2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dmux3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dmux4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dmux5.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dmux6.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dmux7.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_dmux8.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_inv.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_latnq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_latq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_mux2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_mux3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_mux4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_muxi2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_muxi3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_muxi4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_nand2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_nand3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_nand4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_nor2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_nor3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_nor4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa21.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa211.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa22.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa221.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa222.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa31.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa311.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa32.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oa33.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oai21.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oai22.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oai221.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oai222.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oai31.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oai311.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oai32.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_oai33.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_or2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_or3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_or4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_sdffq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_sdffqn.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_sdffrq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_sdffrqn.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_sdffsq.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_sdffsqn.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_tiehi.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_tielo.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_xnor2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_xnor3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_xnor4.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_xor2.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_xor3.v (100%) rename lambdapdk/freepdk45/libs/nangate45/lambda/{ => stdlib}/la_xor4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_antenna.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_clkicgand.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_clkicgor.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_clkmux2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_clkmux4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_decap.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_drsync.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_dsync.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_footer.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_header.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_iddr.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_isohi.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_isolo.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_keeper.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_oddr.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_pwrbuf.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_rsync.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => auxlib}/la_tbuf.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_and2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_and3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_and4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao21.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao211.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao22.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao221.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao222.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao31.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao311.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_ao33.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi21.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi211.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi22.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi221.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi222.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi31.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi311.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_aoi33.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_buf.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_clkand2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_clkbuf.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_clkinv.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_clknand2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_clknor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_clkor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_clkor4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_clkxor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_csa32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_csa42.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_delay.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dffnq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dffq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dffqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dffrq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dffrqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dffsq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dffsqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dmux2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dmux3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dmux4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dmux5.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dmux6.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dmux7.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_dmux8.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_inv.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_latnq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_latq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_mux2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_mux3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_mux4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_muxi2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_muxi3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_muxi4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_nand2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_nand3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_nand4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_nor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_nor3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_nor4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa21.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa211.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa22.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa221.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa222.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa31.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa311.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oa33.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oai21.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oai22.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oai221.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oai222.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oai31.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oai311.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oai32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_oai33.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_or2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_or3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_or4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_sdffq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_sdffqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_sdffrq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_sdffrqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_sdffsq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_sdffsqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_tiehi.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_tielo.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_xnor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_xnor3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_xnor4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_xor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_xor3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/{ => stdlib}/la_xor4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_antenna.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_clkicgand.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_clkicgor.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_clkmux2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_clkmux4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_decap.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_drsync.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_dsync.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_footer.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_header.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_iddr.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_isohi.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_isolo.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_keeper.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_oddr.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_pwrbuf.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_rsync.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => auxlib}/la_tbuf.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_and2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_and3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_and4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao21.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao211.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao22.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao221.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao222.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao31.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao311.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_ao33.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi21.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi211.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi22.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi221.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi222.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi31.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi311.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_aoi33.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_buf.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_clkand2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_clkbuf.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_clkinv.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_clknand2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_clknor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_clkor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_clkor4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_clkxor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_csa32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_csa42.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_delay.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dffnq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dffq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dffqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dffrq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dffrqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dffsq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dffsqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dmux2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dmux3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dmux4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dmux5.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dmux6.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dmux7.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_dmux8.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_inv.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_latnq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_latq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_mux2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_mux3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_mux4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_muxi2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_muxi3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_muxi4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_nand2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_nand3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_nand4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_nor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_nor3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_nor4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa21.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa211.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa22.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa221.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa222.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa31.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa311.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oa33.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oai21.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oai22.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oai221.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oai222.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oai31.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oai311.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oai32.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_oai33.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_or2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_or3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_or4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_sdffq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_sdffqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_sdffrq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_sdffrqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_sdffsq.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_sdffsqn.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_tiehi.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_tielo.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_xnor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_xnor3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_xnor4.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_xor2.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_xor3.v (100%) rename lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/{ => stdlib}/la_xor4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_antenna.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_clkicgand.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_clkicgor.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_clkmux2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_clkmux4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_decap.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_drsync.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_dsync.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_footer.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_header.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_iddr.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_isohi.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_isolo.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_keeper.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_oddr.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_pwrbuf.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_rsync.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => auxlib}/la_tbuf.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_and2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_and3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_and4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao21.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao211.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao22.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao221.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao222.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao31.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao311.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao32.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_ao33.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi21.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi211.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi22.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi221.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi222.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi31.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi311.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi32.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_aoi33.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_buf.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_clkand2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_clkbuf.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_clkinv.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_clknand2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_clknor2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_clkor2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_clkor4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_clkxor2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_csa32.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_csa42.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_delay.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dffnq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dffq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dffqn.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dffrq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dffrqn.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dffsq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dffsqn.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dmux2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dmux3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dmux4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dmux5.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dmux6.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dmux7.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_dmux8.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_inv.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_latnq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_latq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_mux2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_mux3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_mux4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_muxi2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_muxi3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_muxi4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_nand2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_nand3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_nand4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_nor2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_nor3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_nor4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa21.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa211.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa22.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa221.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa222.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa31.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa311.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa32.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oa33.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oai21.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oai22.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oai221.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oai222.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oai31.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oai311.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oai32.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_oai33.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_or2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_or3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_or4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_sdffq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_sdffqn.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_sdffrq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_sdffrqn.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_sdffsq.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_sdffsqn.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_tiehi.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_tielo.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_xnor2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_xnor3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_xnor4.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_xor2.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_xor3.v (100%) rename lambdapdk/sky130/libs/sky130hd/lambda/{ => stdlib}/la_xor4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_antenna.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_clkicgand.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_clkicgor.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_clkmux2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_clkmux4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_decap.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_drsync.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_dsync.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_footer.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_header.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_iddr.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_isohi.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_isolo.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_keeper.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_oddr.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_pwrbuf.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_rsync.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => auxlib}/la_tbuf.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_and2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_and3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_and4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao21.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao211.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao22.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao221.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao222.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao31.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao311.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao32.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_ao33.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi21.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi211.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi22.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi221.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi222.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi31.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi311.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi32.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_aoi33.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_buf.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_clkand2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_clkbuf.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_clkinv.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_clknand2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_clknor2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_clkor2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_clkor4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_clkxor2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_csa32.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_csa42.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_delay.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dffnq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dffq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dffqn.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dffrq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dffrqn.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dffsq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dffsqn.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dmux2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dmux3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dmux4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dmux5.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dmux6.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dmux7.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_dmux8.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_inv.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_latnq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_latq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_mux2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_mux3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_mux4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_muxi2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_muxi3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_muxi4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_nand2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_nand3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_nand4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_nor2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_nor3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_nor4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa21.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa211.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa22.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa221.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa222.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa31.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa311.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa32.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oa33.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oai21.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oai22.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oai221.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oai222.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oai31.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oai311.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oai32.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_oai33.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_or2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_or3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_or4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_sdffq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_sdffqn.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_sdffrq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_sdffrqn.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_sdffsq.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_sdffsqn.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_tiehi.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_tielo.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_xnor2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_xnor3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_xnor4.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_xor2.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_xor3.v (100%) rename lambdapdk/sky130/libs/sky130hdll/lambda/{ => stdlib}/la_xor4.v (100%) diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_antenna.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_antenna.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_antenna.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgand.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_clkicgor.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v 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_lvt/lambda/la_decap.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_decap.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_decap.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_decap.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_drsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_dsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_footer.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_footer.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_footer.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_header.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_header.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_header.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_iddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_isohi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_isolo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_keeper.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_keeper.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_keeper.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_oddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_pwrbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_rsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_tbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v 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/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_antenna.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_antenna.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_antenna.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgand.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_clkicgor.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_decap.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_decap.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_drsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_dsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_footer.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_footer.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_footer.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_header.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_header.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_header.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_iddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_isohi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_isolo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_keeper.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_keeper.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_keeper.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_oddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_pwrbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_rsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_tbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v 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/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_antenna.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_antenna.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_antenna.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgand.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_clkicgor.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v 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/asap7/libs/asap7sc7p5t_slvt/lambda/la_decap.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_decap.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_decap.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_decap.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_drsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_dsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_footer.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_footer.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_footer.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_header.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_header.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_header.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_iddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_isohi.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_isolo.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_keeper.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_keeper.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_keeper.v 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 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_oddr.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_pwrbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_rsync.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v similarity index 100% rename from lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/la_tbuf.v rename to lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v 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/lambda/la_antenna.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_antenna.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgand.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgand.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgor.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkicgor.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux2.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_clkmux4.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_decap.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_decap.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_drsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_drsync.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_dsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_dsync.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_footer.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_footer.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_footer.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_footer.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_header.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_header.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_header.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_header.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_iddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_iddr.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_isohi.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_isohi.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_isolo.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_isolo.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_keeper.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_keeper.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_keeper.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_keeper.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_oddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_oddr.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_pwrbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_pwrbuf.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_rsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_rsync.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/la_tbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v similarity index 100% rename from lambdapdk/freepdk45/libs/nangate45/lambda/la_tbuf.v rename to lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v 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_fd_sc_mcu7t5v0/lambda/la_antenna.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_antenna.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgand.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgand.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgand.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgand.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgor.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgor.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkicgor.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgor.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_clkmux4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_decap.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_decap.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v 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 100% 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 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_dsync.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_dsync.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_dsync.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_footer.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_footer.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_footer.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_footer.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_header.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_header.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v 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 100% 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 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_isohi.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isohi.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_isohi.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isohi.v 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 100% 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 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_keeper.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_keeper.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v 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 100% 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 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_pwrbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_pwrbuf.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_pwrbuf.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_pwrbuf.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_rsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_rsync.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_rsync.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_rsync.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_tbuf.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/la_tbuf.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_tbuf.v 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/la_antenna.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_antenna.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_antenna.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_antenna.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgand.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgand.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgand.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgand.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgor.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgor.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkicgor.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgor.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux2.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux4.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_clkmux4.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_decap.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_decap.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v 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 100% 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 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_dsync.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_dsync.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_dsync.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_footer.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_footer.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_footer.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_footer.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_header.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_header.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v 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 100% 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 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_isohi.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isohi.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_isohi.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isohi.v 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 100% 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 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_keeper.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_keeper.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v 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 100% 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 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_pwrbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_pwrbuf.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_pwrbuf.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_pwrbuf.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_rsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_rsync.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_rsync.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_rsync.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_tbuf.v similarity index 100% rename from lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/la_tbuf.v rename to lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_tbuf.v 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/sky130/libs/sky130hd/lambda/la_antenna.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_antenna.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgand.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgand.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgor.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkicgor.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux2.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux2.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux4.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_clkmux4.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_decap.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_decap.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_drsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_drsync.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_dsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_dsync.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_footer.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_footer.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_footer.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_footer.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_header.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_header.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_header.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_header.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_iddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_iddr.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_isohi.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_isohi.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_isolo.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_isolo.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_keeper.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_keeper.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_keeper.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_keeper.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_oddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_oddr.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_pwrbuf.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_rsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_rsync.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/la_tbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hd/lambda/la_tbuf.v rename to lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v 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/sky130/libs/sky130hdll/lambda/la_antenna.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_antenna.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_antenna.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_antenna.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgand.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgand.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgor.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkicgor.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkmux2.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux2.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkmux2.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux2.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_clkmux4.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux4.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_clkmux4.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkmux4.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_decap.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_decap.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_decap.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_decap.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_drsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_drsync.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_dsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_dsync.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_footer.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_footer.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_footer.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_footer.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_header.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_header.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_header.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_header.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_iddr.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_iddr.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_isohi.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_isohi.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_isolo.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_isolo.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_keeper.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_keeper.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_keeper.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_keeper.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_oddr.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_oddr.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_pwrbuf.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_rsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_rsync.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/la_tbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v similarity index 100% rename from lambdapdk/sky130/libs/sky130hdll/lambda/la_tbuf.v rename to lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v 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/pyproject.toml b/pyproject.toml index d0afcc02..286aa4d3 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.4" ] [tool.tclint] 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('')) From 461b23eaf258b28739e66c358d9544f4d424cc5b Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Sat, 8 Jun 2024 13:49:24 -0400 Subject: [PATCH 02/12] implement auxlibs --- lambdapdk/asap7/libs/asap7sc7p5t.py | 12 ++++++++---- lambdapdk/freepdk45/libs/nangate45.py | 14 +++++++++----- lambdapdk/gf180/libs/gf180mcu.py | 11 ++++++----- lambdapdk/sky130/libs/sky130sc.py | 12 +++++++----- 4 files changed, 30 insertions(+), 19 deletions(-) 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/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/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/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 From 12489963544d8ca0665f09cf04da298699c63882 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Sat, 8 Jun 2024 13:59:27 -0400 Subject: [PATCH 03/12] add auxlib copy --- scripts/generate_lamdbalib.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index e203fbd5..973f072b 100755 --- a/scripts/generate_lamdbalib.py +++ b/scripts/generate_lamdbalib.py @@ -55,10 +55,25 @@ 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")) + 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() + + procs = [] + for pdk, info in libs.items(): + target = info["target"] + + for lib in info['libs']: + p = multiprocessing.Process( + target=lambdalib.copy, + args=(f"{pdk_root}/lambdapdk/{pdk}/libs/{lib}/lambda/auxlib", + 'auxlib')) procs.append(p) p.start() for proc in procs: From 72616e859539f4c0c42701199493b312759022f0 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 20 Jun 2024 16:07:39 -0400 Subject: [PATCH 04/12] add arguments to lib generator --- scripts/generate_lamdbalib.py | 94 +++++++++++++++++++++++------------ 1 file changed, 61 insertions(+), 33 deletions(-) diff --git a/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index 973f072b..6a888c30 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,39 +18,40 @@ 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" + ] + }, + "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" + ] + }, +} - libs = { - "sky130": { - "target": skywater130_demo, - "libs": [ - "sky130hd" - ] - }, - "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"] @@ -65,10 +67,10 @@ for proc in procs: proc.join() + +def auxlib(): procs = [] for pdk, info in libs.items(): - target = info["target"] - for lib in info['libs']: p = multiprocessing.Process( target=lambdalib.copy, @@ -79,6 +81,8 @@ for proc in procs: proc.join() + +def ramlib(): asap7_spram_port_map = [ ("clk", "clk"), ("addr_in", "mem_addr"), @@ -210,6 +214,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", @@ -241,3 +247,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() From b2670c369b35157d9a9bf4fa330d353e68bc7ed5 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 20 Jun 2024 16:08:24 -0400 Subject: [PATCH 05/12] copy auxlib --- .../lambda/auxlib/la_clkicgand.v | 68 +++------- .../lambda/auxlib/la_clkicgor.v | 73 +++-------- .../asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v | 86 ++++-------- .../asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v | 88 ++++--------- .../asap7sc7p5t_lvt/lambda/auxlib/la_ibuf.v | 16 +++ .../asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v | 85 ++++-------- .../asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v | 24 ++++ .../asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v | 44 ++----- .../asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v | 49 ++----- .../asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v | 16 +++ .../asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v | 76 +++-------- .../asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v | 28 ++++ .../asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v | 53 +++----- .../asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v | 104 +++++---------- .../asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v | 40 ++---- .../lambda/auxlib/la_clkicgand.v | 68 +++------- .../lambda/auxlib/la_clkicgor.v | 73 +++-------- .../asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v | 86 ++++-------- .../asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v | 88 ++++--------- .../asap7sc7p5t_rvt/lambda/auxlib/la_ibuf.v | 16 +++ .../asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v | 85 ++++-------- .../asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v | 24 ++++ .../asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v | 44 ++----- .../asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v | 49 ++----- .../asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v | 16 +++ .../asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v | 76 +++-------- .../asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v | 28 ++++ .../asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v | 53 +++----- .../asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v | 104 +++++---------- .../asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v | 40 ++---- .../lambda/auxlib/la_clkicgand.v | 68 +++------- .../lambda/auxlib/la_clkicgor.v | 73 +++-------- .../lambda/auxlib/la_drsync.v | 86 ++++-------- .../asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v | 88 ++++--------- .../asap7sc7p5t_slvt/lambda/auxlib/la_ibuf.v | 16 +++ .../asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v | 85 ++++-------- .../asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v | 24 ++++ .../asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v | 44 ++----- .../asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v | 49 ++----- .../asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v | 16 +++ .../asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v | 76 +++-------- .../asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v | 28 ++++ .../lambda/auxlib/la_pwrbuf.v | 53 +++----- .../asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v | 104 +++++---------- .../asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v | 40 ++---- .../libs/nangate45/lambda/auxlib/la_antenna.v | 6 +- .../nangate45/lambda/auxlib/la_clkicgand.v | 68 +++------- .../nangate45/lambda/auxlib/la_clkicgor.v | 73 +++-------- .../libs/nangate45/lambda/auxlib/la_clkmux2.v | 84 +++++++----- .../libs/nangate45/lambda/auxlib/la_clkmux4.v | 122 ++++++++++++------ .../libs/nangate45/lambda/auxlib/la_decap.v | 6 +- .../libs/nangate45/lambda/auxlib/la_drsync.v | 76 ++++------- .../libs/nangate45/lambda/auxlib/la_dsync.v | 83 ++++-------- .../libs/nangate45/lambda/auxlib/la_footer.v | 16 ++- .../libs/nangate45/lambda/auxlib/la_header.v | 10 +- .../libs/nangate45/lambda/auxlib/la_ibuf.v | 16 +++ .../libs/nangate45/lambda/auxlib/la_iddr.v | 86 ++++-------- .../libs/nangate45/lambda/auxlib/la_idiff.v | 24 ++++ .../libs/nangate45/lambda/auxlib/la_isohi.v | 44 ++----- .../libs/nangate45/lambda/auxlib/la_isolo.v | 49 ++----- .../libs/nangate45/lambda/auxlib/la_keeper.v | 6 +- .../libs/nangate45/lambda/auxlib/la_obuf.v | 16 +++ .../libs/nangate45/lambda/auxlib/la_oddr.v | 65 +++------- .../libs/nangate45/lambda/auxlib/la_odiff.v | 28 ++++ .../libs/nangate45/lambda/auxlib/la_pwrbuf.v | 54 +++----- .../libs/nangate45/lambda/auxlib/la_rsync.v | 99 +++++--------- .../libs/nangate45/lambda/auxlib/la_tbuf.v | 38 ++---- .../lambda/auxlib/la_antenna.v | 6 +- .../lambda/auxlib/la_clkicgand.v | 73 +++-------- .../lambda/auxlib/la_clkicgor.v | 73 +++-------- .../lambda/auxlib/la_clkmux2.v | 84 +++++++----- .../lambda/auxlib/la_clkmux4.v | 122 ++++++++++++------ .../lambda/auxlib/la_decap.v | 6 +- .../lambda/auxlib/la_drsync.v | 72 ++++------- .../lambda/auxlib/la_dsync.v | 79 ++++-------- .../lambda/auxlib/la_footer.v | 16 ++- .../lambda/auxlib/la_header.v | 10 +- .../lambda/auxlib/la_ibuf.v | 16 +++ .../lambda/auxlib/la_iddr.v | 82 ++++-------- .../lambda/auxlib/la_idiff.v | 24 ++++ .../lambda/auxlib/la_isohi.v | 44 ++----- .../lambda/auxlib/la_isolo.v | 49 ++----- .../lambda/auxlib/la_keeper.v | 6 +- .../lambda/auxlib/la_obuf.v | 16 +++ .../lambda/auxlib/la_oddr.v | 70 +++------- .../lambda/auxlib/la_odiff.v | 28 ++++ .../lambda/auxlib/la_pwrbuf.v | 54 +++----- .../lambda/auxlib/la_rsync.v | 95 +++++--------- .../lambda/auxlib/la_tbuf.v | 38 ++---- .../lambda/auxlib/la_antenna.v | 6 +- .../lambda/auxlib/la_clkicgand.v | 73 +++-------- .../lambda/auxlib/la_clkicgor.v | 73 +++-------- .../lambda/auxlib/la_clkmux2.v | 84 +++++++----- .../lambda/auxlib/la_clkmux4.v | 122 ++++++++++++------ .../lambda/auxlib/la_decap.v | 6 +- .../lambda/auxlib/la_drsync.v | 72 ++++------- .../lambda/auxlib/la_dsync.v | 79 ++++-------- .../lambda/auxlib/la_footer.v | 16 ++- .../lambda/auxlib/la_header.v | 10 +- .../lambda/auxlib/la_ibuf.v | 16 +++ .../lambda/auxlib/la_iddr.v | 82 ++++-------- .../lambda/auxlib/la_idiff.v | 24 ++++ .../lambda/auxlib/la_isohi.v | 44 ++----- .../lambda/auxlib/la_isolo.v | 49 ++----- .../lambda/auxlib/la_keeper.v | 6 +- .../lambda/auxlib/la_obuf.v | 16 +++ .../lambda/auxlib/la_oddr.v | 70 +++------- .../lambda/auxlib/la_odiff.v | 28 ++++ .../lambda/auxlib/la_pwrbuf.v | 54 +++----- .../lambda/auxlib/la_rsync.v | 95 +++++--------- .../lambda/auxlib/la_tbuf.v | 38 ++---- .../libs/sky130hd/lambda/auxlib/la_antenna.v | 6 +- .../sky130hd/lambda/auxlib/la_clkicgand.v | 68 +++------- .../libs/sky130hd/lambda/auxlib/la_clkicgor.v | 68 +++------- .../libs/sky130hd/lambda/auxlib/la_clkmux2.v | 84 +++++++----- .../libs/sky130hd/lambda/auxlib/la_clkmux4.v | 122 ++++++++++++------ .../libs/sky130hd/lambda/auxlib/la_decap.v | 6 +- .../libs/sky130hd/lambda/auxlib/la_drsync.v | 72 ++++------- .../libs/sky130hd/lambda/auxlib/la_dsync.v | 79 ++++-------- .../libs/sky130hd/lambda/auxlib/la_footer.v | 16 ++- .../libs/sky130hd/lambda/auxlib/la_header.v | 10 +- .../libs/sky130hd/lambda/auxlib/la_ibuf.v | 16 +++ .../libs/sky130hd/lambda/auxlib/la_iddr.v | 82 ++++-------- .../libs/sky130hd/lambda/auxlib/la_idiff.v | 24 ++++ .../libs/sky130hd/lambda/auxlib/la_isohi.v | 44 ++----- .../libs/sky130hd/lambda/auxlib/la_isolo.v | 44 ++----- .../libs/sky130hd/lambda/auxlib/la_keeper.v | 6 +- .../libs/sky130hd/lambda/auxlib/la_obuf.v | 16 +++ .../libs/sky130hd/lambda/auxlib/la_oddr.v | 65 +++------- .../libs/sky130hd/lambda/auxlib/la_odiff.v | 28 ++++ .../libs/sky130hd/lambda/auxlib/la_pwrbuf.v | 54 +++----- .../libs/sky130hd/lambda/auxlib/la_rsync.v | 95 +++++--------- .../libs/sky130hd/lambda/auxlib/la_tbuf.v | 38 ++---- 133 files changed, 2766 insertions(+), 4022 deletions(-) create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_ibuf.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_ibuf.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_ibuf.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v create mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v create mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_ibuf.v create mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_idiff.v create mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_obuf.v create mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_odiff.v create mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_ibuf.v create mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_idiff.v create mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_obuf.v create mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_odiff.v create mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_ibuf.v create mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_idiff.v create mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_obuf.v create mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_odiff.v create mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_ibuf.v create mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_idiff.v create mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_obuf.v create mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_odiff.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v index 3edac5f6..999bdfbf 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v @@ -1,52 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -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/auxlib/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v index 3864c9ff..7394460b 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -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/auxlib/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v index 38725bb6..60c299a5 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v @@ -1,67 +1,25 @@ -// //############################################################################# -// //# Function: Synchronizer with async reset # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// 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; -// -// 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}; -// -// assign out = shiftreg[STAGES-1]; -// -// endmodule +//############################################################################# +//# Function: Synchronizer with async reset # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_drsync #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock + input in, // input data + input nreset, // async active low reset + output out // synchronized data +); -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + localparam STAGES = 2; + + 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}; + + assign out = shiftreg[STAGES-1]; -module la_drsync(clk, in, nreset, out); - wire _0_; - wire _1_; - wire _2_; - input clk; - wire clk; - input in; - wire in; - input nreset; - wire nreset; - output out; - wire out; - wire \shiftreg[0] ; - INVx1_ASAP7_75t_L _3_ ( - .A(_0_), - .Y(out) - ); - INVx1_ASAP7_75t_L _4_ ( - .A(_1_), - .Y(\shiftreg[0] ) - ); - DFFASRHQNx1_ASAP7_75t_L _5_ ( - .CLK(clk), - .D(in), - .QN(_1_), - .RESETN(_2_), - .SETN(nreset) - ); - DFFASRHQNx1_ASAP7_75t_L _6_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .QN(_0_), - .RESETN(_2_), - .SETN(nreset) - ); - TIEHIx1_ASAP7_75t_L _7_ ( - .H(_2_) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v index 2ea00edb..7df4c09a 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v @@ -1,66 +1,28 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 + ); -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + 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 -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/auxlib/la_ibuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_ibuf.v new file mode 100644 index 00000000..51b5a9b6 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_ibuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_ibuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v index 2cd3d1c7..308fc64b 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v @@ -1,65 +1,26 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate input buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -module la_iddr(clk, in, outrise, outfall); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - wire inrise; - output outfall; - wire outfall; - output outrise; - wire outrise; - INVx1_ASAP7_75t_L _2_ ( - .A(_0_), - .Y(outfall) - ); - INVx1_ASAP7_75t_L _3_ ( - .A(_1_), - .Y(inrise) - ); - DLLx1_ASAP7_75t_L _4_ ( - .CLK(clk), - .D(inrise), - .Q(outrise) - ); - DFFHQNx1_ASAP7_75t_L _5_ ( - .CLK(clk), - .D(in), - .QN(_1_) - ); - DFFLQNx1_ASAP7_75t_L _6_ ( - .CLK(clk), - .D(in), - .QN(_0_) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v new file mode 100644 index 00000000..57dfb82b --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Differential Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_idiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // positive input + input inb, // negative input + output z // output + ); + + if(DIFF) + assign z = (in & ~inb) | // for proper diff inputs + (~in & ~inb); // fail on non diff input + else + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v index 65b09784..bc0142f2 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_isohi #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = iso | in +); + + assign out = iso | in; -module la_isohi(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - OR2x2_ASAP7_75t_L _0_ ( - .A(in), - .B(iso), - .Y(out) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v index c851e8a8..da1af532 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v @@ -1,38 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_isolo #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = ~iso & in +); + + assign out = ~iso & in; -module la_isolo(iso, in, out); - wire _0_; - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - INVx2_ASAP7_75t_L _1_ ( - .A(iso), - .Y(_0_) - ); - AND2x2_ASAP7_75t_L _2_ ( - .A(in), - .B(_0_), - .Y(out) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v new file mode 100644 index 00000000..5aff53b1 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_obuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v index 6948adb0..7f366700 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v @@ -1,59 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate output buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -module la_oddr(clk, in0, in1, out); - wire _0_; - wire _1_; - input clk; - wire clk; - input in0; - wire in0; - input in1; - wire in1; - wire in1_sh; - output out; - wire out; - INVx1_ASAP7_75t_L _2_ ( - .A(clk), - .Y(_0_) - ); - AND2x4_ASAP7_75t_L _3_ ( - .A(in1_sh), - .B(clk), - .Y(_1_) - ); - AO21x1_ASAP7_75t_L _4_ ( - .A1(in0), - .A2(_0_), - .B(_1_), - .Y(out) - ); - DLLx1_ASAP7_75t_L _5_ ( - .CLK(clk), - .D(in1), - .Q(in1_sh) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v new file mode 100644 index 00000000..93e76e80 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v @@ -0,0 +1,28 @@ +//############################################################################# +//# Function: Differential Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_odiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // input + output z, // non inverting output + output zb // inverted output + ); + + if(DIFF) + begin + assign z = in; + assign zb = ~in; + end + else + begin + assign z = in; + assign zb = 1'b0; + end +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v index e10372e3..78ef500a 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v @@ -1,36 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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 -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/auxlib/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v index a47f3d2a..d7859857 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v @@ -1,75 +1,35 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + ( + 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 -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/auxlib/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v index 1e0334a1..e515a281 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v @@ -1,29 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + assign z = oe ? a : 1'bz; -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/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v index 7d3fdbda..999bdfbf 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v @@ -1,52 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -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/auxlib/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v index 77582a6c..7394460b 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -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/auxlib/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v index 21d1054f..60c299a5 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v @@ -1,67 +1,25 @@ -// //############################################################################# -// //# Function: Synchronizer with async reset # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// 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; -// -// 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}; -// -// assign out = shiftreg[STAGES-1]; -// -// endmodule +//############################################################################# +//# Function: Synchronizer with async reset # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_drsync #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock + input in, // input data + input nreset, // async active low reset + output out // synchronized data +); -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + localparam STAGES = 2; + + 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}; + + assign out = shiftreg[STAGES-1]; -module la_drsync(clk, in, nreset, out); - wire _0_; - wire _1_; - wire _2_; - input clk; - wire clk; - input in; - wire in; - input nreset; - wire nreset; - output out; - wire out; - wire \shiftreg[0] ; - INVx1_ASAP7_75t_R _3_ ( - .A(_0_), - .Y(out) - ); - INVx1_ASAP7_75t_R _4_ ( - .A(_1_), - .Y(\shiftreg[0] ) - ); - DFFASRHQNx1_ASAP7_75t_R _5_ ( - .CLK(clk), - .D(in), - .QN(_1_), - .RESETN(_2_), - .SETN(nreset) - ); - DFFASRHQNx1_ASAP7_75t_R _6_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .QN(_0_), - .RESETN(_2_), - .SETN(nreset) - ); - TIEHIx1_ASAP7_75t_R _7_ ( - .H(_2_) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v index cdd5a2f5..7df4c09a 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v @@ -1,66 +1,28 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 + ); -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + 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 -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/auxlib/la_ibuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_ibuf.v new file mode 100644 index 00000000..51b5a9b6 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_ibuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_ibuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v index 44122d44..308fc64b 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v @@ -1,65 +1,26 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate input buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -module la_iddr(clk, in, outrise, outfall); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - wire inrise; - output outfall; - wire outfall; - output outrise; - wire outrise; - INVx1_ASAP7_75t_R _2_ ( - .A(_0_), - .Y(outfall) - ); - INVx1_ASAP7_75t_R _3_ ( - .A(_1_), - .Y(inrise) - ); - DLLx1_ASAP7_75t_R _4_ ( - .CLK(clk), - .D(inrise), - .Q(outrise) - ); - DFFHQNx1_ASAP7_75t_R _5_ ( - .CLK(clk), - .D(in), - .QN(_1_) - ); - DFFLQNx1_ASAP7_75t_R _6_ ( - .CLK(clk), - .D(in), - .QN(_0_) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v new file mode 100644 index 00000000..57dfb82b --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Differential Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_idiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // positive input + input inb, // negative input + output z // output + ); + + if(DIFF) + assign z = (in & ~inb) | // for proper diff inputs + (~in & ~inb); // fail on non diff input + else + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v index 0c30f43d..bc0142f2 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_isohi #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = iso | in +); + + assign out = iso | in; -module la_isohi(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - OR2x2_ASAP7_75t_R _0_ ( - .A(in), - .B(iso), - .Y(out) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v index f7ae329d..da1af532 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v @@ -1,38 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_isolo #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = ~iso & in +); + + assign out = ~iso & in; -module la_isolo(iso, in, out); - wire _0_; - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - INVx2_ASAP7_75t_R _1_ ( - .A(iso), - .Y(_0_) - ); - AND2x2_ASAP7_75t_R _2_ ( - .A(in), - .B(_0_), - .Y(out) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v new file mode 100644 index 00000000..5aff53b1 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_obuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v index cb910d3b..7f366700 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v @@ -1,59 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate output buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -module la_oddr(clk, in0, in1, out); - wire _0_; - wire _1_; - input clk; - wire clk; - input in0; - wire in0; - input in1; - wire in1; - wire in1_sh; - output out; - wire out; - INVx1_ASAP7_75t_R _2_ ( - .A(clk), - .Y(_0_) - ); - AND2x4_ASAP7_75t_R _3_ ( - .A(in1_sh), - .B(clk), - .Y(_1_) - ); - AO21x1_ASAP7_75t_R _4_ ( - .A1(in0), - .A2(_0_), - .B(_1_), - .Y(out) - ); - DLLx1_ASAP7_75t_R _5_ ( - .CLK(clk), - .D(in1), - .Q(in1_sh) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v new file mode 100644 index 00000000..93e76e80 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v @@ -0,0 +1,28 @@ +//############################################################################# +//# Function: Differential Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_odiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // input + output z, // non inverting output + output zb // inverted output + ); + + if(DIFF) + begin + assign z = in; + assign zb = ~in; + end + else + begin + assign z = in; + assign zb = 1'b0; + end +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v index e10372e3..78ef500a 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v @@ -1,36 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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 -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/auxlib/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v index ece6d79d..d7859857 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v @@ -1,75 +1,35 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + ( + 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 -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/auxlib/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v index 1e0334a1..e515a281 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v @@ -1,29 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + assign z = oe ? a : 1'bz; -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/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v index 39608888..999bdfbf 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v @@ -1,52 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -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/auxlib/la_clkicgor.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v index 28f8c65f..7394460b 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -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/auxlib/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v index d053b37d..60c299a5 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v @@ -1,67 +1,25 @@ -// //############################################################################# -// //# Function: Synchronizer with async reset # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// 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; -// -// 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}; -// -// assign out = shiftreg[STAGES-1]; -// -// endmodule +//############################################################################# +//# Function: Synchronizer with async reset # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_drsync #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock + input in, // input data + input nreset, // async active low reset + output out // synchronized data +); -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + localparam STAGES = 2; + + 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}; + + assign out = shiftreg[STAGES-1]; -module la_drsync(clk, in, nreset, out); - wire _0_; - wire _1_; - wire _2_; - input clk; - wire clk; - input in; - wire in; - input nreset; - wire nreset; - output out; - wire out; - wire \shiftreg[0] ; - INVx1_ASAP7_75t_SL _3_ ( - .A(_0_), - .Y(out) - ); - INVx1_ASAP7_75t_SL _4_ ( - .A(_1_), - .Y(\shiftreg[0] ) - ); - DFFASRHQNx1_ASAP7_75t_SL _5_ ( - .CLK(clk), - .D(in), - .QN(_1_), - .RESETN(_2_), - .SETN(nreset) - ); - DFFASRHQNx1_ASAP7_75t_SL _6_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .QN(_0_), - .RESETN(_2_), - .SETN(nreset) - ); - TIEHIx1_ASAP7_75t_SL _7_ ( - .H(_2_) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v index a61f5f65..7df4c09a 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v @@ -1,66 +1,28 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 + ); -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + 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 -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/auxlib/la_ibuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_ibuf.v new file mode 100644 index 00000000..51b5a9b6 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_ibuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_ibuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v index 51867424..308fc64b 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v @@ -1,65 +1,26 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate input buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -module la_iddr(clk, in, outrise, outfall); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - wire inrise; - output outfall; - wire outfall; - output outrise; - wire outrise; - INVx1_ASAP7_75t_SL _2_ ( - .A(_0_), - .Y(outfall) - ); - INVx1_ASAP7_75t_SL _3_ ( - .A(_1_), - .Y(inrise) - ); - DLLx1_ASAP7_75t_SL _4_ ( - .CLK(clk), - .D(inrise), - .Q(outrise) - ); - DFFHQNx1_ASAP7_75t_SL _5_ ( - .CLK(clk), - .D(in), - .QN(_1_) - ); - DFFLQNx1_ASAP7_75t_SL _6_ ( - .CLK(clk), - .D(in), - .QN(_0_) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v new file mode 100644 index 00000000..57dfb82b --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Differential Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_idiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // positive input + input inb, // negative input + output z // output + ); + + if(DIFF) + assign z = (in & ~inb) | // for proper diff inputs + (~in & ~inb); // fail on non diff input + else + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v index b8d3101c..bc0142f2 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_isohi #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = iso | in +); + + assign out = iso | in; -module la_isohi(iso, in, out); - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - OR2x2_ASAP7_75t_SL _0_ ( - .A(in), - .B(iso), - .Y(out) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v index b7ddd134..da1af532 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v @@ -1,38 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_isolo #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = ~iso & in +); + + assign out = ~iso & in; -module la_isolo(iso, in, out); - wire _0_; - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - INVx2_ASAP7_75t_SL _1_ ( - .A(iso), - .Y(_0_) - ); - AND2x2_ASAP7_75t_SL _2_ ( - .A(in), - .B(_0_), - .Y(out) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v new file mode 100644 index 00000000..5aff53b1 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_obuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v index f1731df2..7f366700 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v @@ -1,59 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate output buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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; -module la_oddr(clk, in0, in1, out); - wire _0_; - wire _1_; - input clk; - wire clk; - input in0; - wire in0; - input in1; - wire in1; - wire in1_sh; - output out; - wire out; - INVx1_ASAP7_75t_SL _2_ ( - .A(clk), - .Y(_0_) - ); - AND2x4_ASAP7_75t_SL _3_ ( - .A(in1_sh), - .B(clk), - .Y(_1_) - ); - AO21x1_ASAP7_75t_SL _4_ ( - .A1(in0), - .A2(_0_), - .B(_1_), - .Y(out) - ); - DLLx1_ASAP7_75t_SL _5_ ( - .CLK(clk), - .D(in1), - .Q(in1_sh) - ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v new file mode 100644 index 00000000..93e76e80 --- /dev/null +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v @@ -0,0 +1,28 @@ +//############################################################################# +//# Function: Differential Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_odiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // input + output z, // non inverting output + output zb // inverted output + ); + + if(DIFF) + begin + assign z = in; + assign zb = ~in; + end + else + begin + assign z = in; + assign zb = 1'b0; + end +endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v index e10372e3..78ef500a 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v @@ -1,36 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +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 -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/auxlib/la_rsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v index 24c0821b..d7859857 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v @@ -1,75 +1,35 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ + ( + 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 -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/auxlib/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v index 1e0334a1..e515a281 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v @@ -1,29 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.40 (git sha1 a1bb0255d, g++ 11.4.0-1ubuntu1~22.04 -fPIC -Os) */ +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + assign z = oe ? a : 1'bz; -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/auxlib/la_antenna.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v index 7e2d48ae..9b86fd26 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v @@ -4,9 +4,11 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_antenna #(parameter PROP = "DEFAULT") ( +module la_antenna #( + parameter PROP = "DEFAULT" +) ( input vss, output z - ); +); endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v index 58d5177a..999bdfbf 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v @@ -1,52 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_clkicgor.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v index 624737be..7394460b 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_clkmux2.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux2.v index fd74ce57..8efc9015 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux2.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux2.v @@ -4,52 +4,68 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_clkmux2 - #(parameter PROP = "DEFAULT" // cell property - ) - ( +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; + 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])); + // 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])); + // 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)); + 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})); + // 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])); + 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])); + // 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)); + // final clock or (1) + la_clkor2 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .z(out) + ); -endmodule // la_clkmux2 +endmodule // la_clkmux2 diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux4.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux4.v index deea9029..0b2ff761 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux4.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkmux4.v @@ -4,10 +4,9 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_clkmux4 - #(parameter PROP = "DEFAULT" // cell property - ) - ( +module la_clkmux4 #( + parameter PROP = "DEFAULT" // cell property +) ( input clk0, input clk1, input clk2, @@ -18,52 +17,89 @@ module la_clkmux4 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; + 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])); + // 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])); + // 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])); + // 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)); + 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})); + // 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])); + 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])); + // 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)); + // final clock or (1) + la_clkor4 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .c(clkg[2]), + .d(clkg[3]), + .z(out) + ); -endmodule // la_clkmux4 +endmodule // la_clkmux4 diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v index 9e5ebf7c..e863a137 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v @@ -4,9 +4,11 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_decap #(parameter PROP = "DEFAULT") ( +module la_decap #( + parameter PROP = "DEFAULT" +) ( input vss, output vdd - ); +); endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v index 1edb0043..60c299a5 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v @@ -1,57 +1,25 @@ -// //############################################################################# -// //# Function: Synchronizer with async reset # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// 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; -// -// 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}; -// -// assign out = shiftreg[STAGES-1]; -// -// endmodule +//############################################################################# +//# Function: Synchronizer with async reset # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_drsync #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock + input in, // input data + input nreset, // async active low reset + output out // synchronized data +); -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + localparam STAGES = 2; + + 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}; + + assign out = shiftreg[STAGES-1]; -module la_drsync(clk, in, nreset, out); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - input nreset; - wire nreset; - output out; - wire out; - wire \shiftreg[0] ; - DFFR_X1 _2_ ( - .CK(clk), - .D(in), - .Q(\shiftreg[0] ), - .QN(_1_), - .RN(nreset) - ); - DFFR_X1 _3_ ( - .CK(clk), - .D(\shiftreg[0] ), - .Q(out), - .QN(_0_), - .RN(nreset) - ); endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v index 2d67fdc8..7df4c09a 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v @@ -1,61 +1,28 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 + ); -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + 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 -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/auxlib/la_footer.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_footer.v index b2a644e2..04a71fe0 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_footer.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_footer.v @@ -4,13 +4,15 @@ //# 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 - ); +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 + // Primitive Device + nmos m0 (vddout, vddin, nsleep); //d,s,g endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_header.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_header.v index f4698b93..0d247705 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_header.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_header.v @@ -4,13 +4,15 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_header #(parameter PROP = "DEFAULT") ( +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 + // Primitive Device + pmos m0 (vddout, vssin, sleep); //d,s,g endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_ibuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_ibuf.v new file mode 100644 index 00000000..51b5a9b6 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_ibuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_ibuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v index 8d879960..308fc64b 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v @@ -1,66 +1,26 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate input buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_idiff.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_idiff.v new file mode 100644 index 00000000..57dfb82b --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_idiff.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Differential Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_idiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // positive input + input inb, // negative input + output z // output + ); + + if(DIFF) + assign z = (in & ~inb) | // for proper diff inputs + (~in & ~inb); // fail on non diff input + else + assign z = in; + +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v index 15514874..bc0142f2 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_isohi #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = iso | in +); + + assign out = iso | in; -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/auxlib/la_isolo.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v index db95e94f..da1af532 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v @@ -1,38 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_isolo #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = ~iso & in +); + + assign out = ~iso & in; -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/auxlib/la_keeper.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_keeper.v index 847994bf..ee1ff415 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_keeper.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_keeper.v @@ -4,8 +4,10 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_keeper #(parameter PROP = "DEFAULT") ( +module la_keeper #( + parameter PROP = "DEFAULT" +) ( inout z - ); +); endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_obuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_obuf.v new file mode 100644 index 00000000..5aff53b1 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_obuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_obuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v index e66c2eb3..7f366700 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v @@ -1,48 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate output buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_odiff.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_odiff.v new file mode 100644 index 00000000..93e76e80 --- /dev/null +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_odiff.v @@ -0,0 +1,28 @@ +//############################################################################# +//# Function: Differential Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_odiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // input + output z, // non inverting output + output zb // inverted output + ); + + if(DIFF) + begin + assign z = in; + assign zb = ~in; + end + else + begin + assign z = in; + assign zb = 1'b0; + end +endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v index 1d894b0c..78ef500a 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v @@ -1,37 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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 -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/auxlib/la_rsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v index 1024ce7c..d7859857 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v @@ -1,70 +1,35 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + ( + 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 -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/auxlib/la_tbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v index ff943c6f..e515a281 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v @@ -1,27 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + assign z = oe ? a : 1'bz; -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/auxlib/la_antenna.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v index 7e2d48ae..9b86fd26 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v @@ -4,9 +4,11 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_antenna #(parameter PROP = "DEFAULT") ( +module la_antenna #( + parameter PROP = "DEFAULT" +) ( input vss, output z - ); +); 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 index 80121e14..999bdfbf 100644 --- 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 @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_clkicgor.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkicgor.v index 3eadc480..7394460b 100644 --- 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 @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_clkmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_clkmux2.v index fd74ce57..8efc9015 100644 --- 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 @@ -4,52 +4,68 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_clkmux2 - #(parameter PROP = "DEFAULT" // cell property - ) - ( +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; + 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])); + // 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])); + // 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)); + 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})); + // 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])); + 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])); + // 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)); + // final clock or (1) + la_clkor2 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .z(out) + ); -endmodule // la_clkmux2 +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 index deea9029..0b2ff761 100644 --- 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 @@ -4,10 +4,9 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_clkmux4 - #(parameter PROP = "DEFAULT" // cell property - ) - ( +module la_clkmux4 #( + parameter PROP = "DEFAULT" // cell property +) ( input clk0, input clk1, input clk2, @@ -18,52 +17,89 @@ module la_clkmux4 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; + 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])); + // 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])); + // 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])); + // 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)); + 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})); + // 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])); + 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])); + // 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)); + // final clock or (1) + la_clkor4 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .c(clkg[2]), + .d(clkg[3]), + .z(out) + ); -endmodule // la_clkmux4 +endmodule // la_clkmux4 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v index 9e5ebf7c..e863a137 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v @@ -4,9 +4,11 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_decap #(parameter PROP = "DEFAULT") ( +module la_decap #( + parameter PROP = "DEFAULT" +) ( input vss, output vdd - ); +); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v index 78591576..60c299a5 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v @@ -1,53 +1,25 @@ -// //############################################################################# -// //# Function: Synchronizer with async reset # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// 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; -// -// 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}; -// -// assign out = shiftreg[STAGES-1]; -// -// endmodule +//############################################################################# +//# Function: Synchronizer with async reset # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_drsync #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock + input in, // input data + input nreset, // async active low reset + output out // synchronized data +); -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + localparam STAGES = 2; + + 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}; + + assign out = shiftreg[STAGES-1]; -module la_drsync(clk, in, nreset, out); - input clk; - wire clk; - input in; - wire in; - input nreset; - wire nreset; - output out; - wire out; - wire \shiftreg[0] ; - gf180mcu_fd_sc_mcu7t5v0__dffrnq_2 _0_ ( - .CLK(clk), - .D(in), - .Q(\shiftreg[0] ), - .RN(nreset) - ); - gf180mcu_fd_sc_mcu7t5v0__dffrnq_2 _1_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .Q(out), - .RN(nreset) - ); endmodule 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 index 125b6864..7df4c09a 100644 --- 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 @@ -1,57 +1,28 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 + ); -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + 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 -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/auxlib/la_footer.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_footer.v index b2a644e2..04a71fe0 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_footer.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_footer.v @@ -4,13 +4,15 @@ //# 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 - ); +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 + // Primitive Device + nmos m0 (vddout, vddin, nsleep); //d,s,g endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v index f4698b93..0d247705 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v @@ -4,13 +4,15 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_header #(parameter PROP = "DEFAULT") ( +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 + // Primitive Device + pmos m0 (vddout, vssin, sleep); //d,s,g endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_ibuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_ibuf.v new file mode 100644 index 00000000..51b5a9b6 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_ibuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_ibuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v index 105b099e..308fc64b 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v @@ -1,62 +1,26 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate input buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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; - gf180mcu_fd_sc_mcu7t5v0__clkinv_2 _1_ ( - .I(clk), - .ZN(_0_) - ); - gf180mcu_fd_sc_mcu7t5v0__latq_1 _2_ ( - .D(inrise), - .E(_0_), - .Q(outrise) - ); - gf180mcu_fd_sc_mcu7t5v0__dffq_2 _3_ ( - .CLK(clk), - .D(in), - .Q(inrise) - ); - gf180mcu_fd_sc_mcu7t5v0__dffnq_2 _4_ ( - .CLKN(clk), - .D(in), - .Q(outfall) - ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_idiff.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_idiff.v new file mode 100644 index 00000000..57dfb82b --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_idiff.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Differential Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_idiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // positive input + input inb, // negative input + output z // output + ); + + if(DIFF) + assign z = (in & ~inb) | // for proper diff inputs + (~in & ~inb); // fail on non diff input + else + assign z = in; + +endmodule 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 index 2f94be9b..bc0142f2 100644 --- 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 @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_isohi #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = iso | in +); + + assign out = iso | in; -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/auxlib/la_isolo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v index a0edddcc..da1af532 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v @@ -1,38 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_isolo #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = ~iso & in +); + + assign out = ~iso & in; -module la_isolo(iso, in, out); - wire _0_; - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - gf180mcu_fd_sc_mcu7t5v0__clkinv_2 _1_ ( - .I(iso), - .ZN(_0_) - ); - gf180mcu_fd_sc_mcu7t5v0__and2_2 _2_ ( - .A1(in), - .A2(_0_), - .Z(out) - ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v index 847994bf..ee1ff415 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v @@ -4,8 +4,10 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_keeper #(parameter PROP = "DEFAULT") ( +module la_keeper #( + parameter PROP = "DEFAULT" +) ( inout z - ); +); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_obuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_obuf.v new file mode 100644 index 00000000..5aff53b1 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_obuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_obuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v index d625c68b..7f366700 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v @@ -1,53 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate output buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -module la_oddr(clk, in0, in1, out); - wire _0_; - input clk; - wire clk; - input in0; - wire in0; - input in1; - wire in1; - wire in1_sh; - output out; - wire out; - gf180mcu_fd_sc_mcu7t5v0__mux2_2 _1_ ( - .I0(in0), - .I1(in1_sh), - .S(clk), - .Z(out) - ); - gf180mcu_fd_sc_mcu7t5v0__clkinv_2 _2_ ( - .I(clk), - .ZN(_0_) - ); - gf180mcu_fd_sc_mcu7t5v0__latq_1 _3_ ( - .D(in1), - .E(_0_), - .Q(in1_sh) - ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_odiff.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_odiff.v new file mode 100644 index 00000000..93e76e80 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_odiff.v @@ -0,0 +1,28 @@ +//############################################################################# +//# Function: Differential Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_odiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // input + output z, // non inverting output + output zb // inverted output + ); + + if(DIFF) + begin + assign z = in; + assign zb = ~in; + end + else + begin + assign z = in; + assign zb = 1'b0; + end +endmodule 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 index 1d894b0c..78ef500a 100644 --- 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 @@ -1,37 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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 -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/auxlib/la_rsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_rsync.v index 8799512c..d7859857 100644 --- 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 @@ -1,66 +1,35 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + ( + 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 -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/auxlib/la_tbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_tbuf.v index ff943c6f..e515a281 100644 --- 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 @@ -1,27 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + assign z = oe ? a : 1'bz; -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/auxlib/la_antenna.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_antenna.v index 7e2d48ae..9b86fd26 100644 --- 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 @@ -4,9 +4,11 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_antenna #(parameter PROP = "DEFAULT") ( +module la_antenna #( + parameter PROP = "DEFAULT" +) ( input vss, output z - ); +); 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 index ff7cae58..999bdfbf 100644 --- 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 @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_clkicgor.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkicgor.v index c84acf2a..7394460b 100644 --- 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 @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_clkmux2.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_clkmux2.v index fd74ce57..8efc9015 100644 --- 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 @@ -4,52 +4,68 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_clkmux2 - #(parameter PROP = "DEFAULT" // cell property - ) - ( +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; + 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])); + // 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])); + // 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)); + 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})); + // 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])); + 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])); + // 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)); + // final clock or (1) + la_clkor2 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .z(out) + ); -endmodule // la_clkmux2 +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 index deea9029..0b2ff761 100644 --- 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 @@ -4,10 +4,9 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_clkmux4 - #(parameter PROP = "DEFAULT" // cell property - ) - ( +module la_clkmux4 #( + parameter PROP = "DEFAULT" // cell property +) ( input clk0, input clk1, input clk2, @@ -18,52 +17,89 @@ module la_clkmux4 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; + 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])); + // 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])); + // 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])); + // 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)); + 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})); + // 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])); + 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])); + // 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)); + // final clock or (1) + la_clkor4 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .c(clkg[2]), + .d(clkg[3]), + .z(out) + ); -endmodule // la_clkmux4 +endmodule // la_clkmux4 diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v index 9e5ebf7c..e863a137 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v @@ -4,9 +4,11 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_decap #(parameter PROP = "DEFAULT") ( +module la_decap #( + parameter PROP = "DEFAULT" +) ( input vss, output vdd - ); +); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v index c4673e8e..60c299a5 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v @@ -1,53 +1,25 @@ -// //############################################################################# -// //# Function: Synchronizer with async reset # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// 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; -// -// 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}; -// -// assign out = shiftreg[STAGES-1]; -// -// endmodule +//############################################################################# +//# Function: Synchronizer with async reset # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_drsync #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock + input in, // input data + input nreset, // async active low reset + output out // synchronized data +); -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + localparam STAGES = 2; + + 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}; + + assign out = shiftreg[STAGES-1]; -module la_drsync(clk, in, nreset, out); - input clk; - wire clk; - input in; - wire in; - input nreset; - wire nreset; - output out; - wire out; - wire \shiftreg[0] ; - gf180mcu_fd_sc_mcu9t5v0__dffrnq_2 _0_ ( - .CLK(clk), - .D(in), - .Q(\shiftreg[0] ), - .RN(nreset) - ); - gf180mcu_fd_sc_mcu9t5v0__dffrnq_2 _1_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .Q(out), - .RN(nreset) - ); endmodule 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 index e3b5449c..7df4c09a 100644 --- 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 @@ -1,57 +1,28 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 + ); -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + 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 -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/auxlib/la_footer.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_footer.v index b2a644e2..04a71fe0 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_footer.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_footer.v @@ -4,13 +4,15 @@ //# 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 - ); +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 + // Primitive Device + nmos m0 (vddout, vddin, nsleep); //d,s,g endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v index f4698b93..0d247705 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v @@ -4,13 +4,15 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_header #(parameter PROP = "DEFAULT") ( +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 + // Primitive Device + pmos m0 (vddout, vssin, sleep); //d,s,g endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_ibuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_ibuf.v new file mode 100644 index 00000000..51b5a9b6 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_ibuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_ibuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v index c9b2d960..308fc64b 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v @@ -1,62 +1,26 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate input buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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; - gf180mcu_fd_sc_mcu9t5v0__clkinv_2 _1_ ( - .I(clk), - .ZN(_0_) - ); - gf180mcu_fd_sc_mcu9t5v0__latq_1 _2_ ( - .D(inrise), - .E(_0_), - .Q(outrise) - ); - gf180mcu_fd_sc_mcu9t5v0__dffq_2 _3_ ( - .CLK(clk), - .D(in), - .Q(inrise) - ); - gf180mcu_fd_sc_mcu9t5v0__dffnq_2 _4_ ( - .CLKN(clk), - .D(in), - .Q(outfall) - ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_idiff.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_idiff.v new file mode 100644 index 00000000..57dfb82b --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_idiff.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Differential Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_idiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // positive input + input inb, // negative input + output z // output + ); + + if(DIFF) + assign z = (in & ~inb) | // for proper diff inputs + (~in & ~inb); // fail on non diff input + else + assign z = in; + +endmodule 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 index d99ce96c..bc0142f2 100644 --- 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 @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_isohi #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = iso | in +); + + assign out = iso | in; -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/auxlib/la_isolo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v index 332d1cad..da1af532 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v @@ -1,38 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_isolo #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = ~iso & in +); + + assign out = ~iso & in; -module la_isolo(iso, in, out); - wire _0_; - input in; - wire in; - input iso; - wire iso; - output out; - wire out; - gf180mcu_fd_sc_mcu9t5v0__clkinv_2 _1_ ( - .I(iso), - .ZN(_0_) - ); - gf180mcu_fd_sc_mcu9t5v0__and2_2 _2_ ( - .A1(in), - .A2(_0_), - .Z(out) - ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v index 847994bf..ee1ff415 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v @@ -4,8 +4,10 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_keeper #(parameter PROP = "DEFAULT") ( +module la_keeper #( + parameter PROP = "DEFAULT" +) ( inout z - ); +); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_obuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_obuf.v new file mode 100644 index 00000000..5aff53b1 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_obuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_obuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v index 017e4ea7..7f366700 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v @@ -1,53 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate output buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -module la_oddr(clk, in0, in1, out); - wire _0_; - input clk; - wire clk; - input in0; - wire in0; - input in1; - wire in1; - wire in1_sh; - output out; - wire out; - gf180mcu_fd_sc_mcu9t5v0__mux2_2 _1_ ( - .I0(in0), - .I1(in1_sh), - .S(clk), - .Z(out) - ); - gf180mcu_fd_sc_mcu9t5v0__clkinv_2 _2_ ( - .I(clk), - .ZN(_0_) - ); - gf180mcu_fd_sc_mcu9t5v0__latq_1 _3_ ( - .D(in1), - .E(_0_), - .Q(in1_sh) - ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_odiff.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_odiff.v new file mode 100644 index 00000000..93e76e80 --- /dev/null +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_odiff.v @@ -0,0 +1,28 @@ +//############################################################################# +//# Function: Differential Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_odiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // input + output z, // non inverting output + output zb // inverted output + ); + + if(DIFF) + begin + assign z = in; + assign zb = ~in; + end + else + begin + assign z = in; + assign zb = 1'b0; + end +endmodule 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 index 1d894b0c..78ef500a 100644 --- 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 @@ -1,37 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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 -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/auxlib/la_rsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_rsync.v index 92d3afa7..d7859857 100644 --- 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 @@ -1,66 +1,35 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + ( + 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 -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/auxlib/la_tbuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_tbuf.v index ff943c6f..e515a281 100644 --- 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 @@ -1,27 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + assign z = oe ? a : 1'bz; -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/auxlib/la_antenna.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v index 7e2d48ae..9b86fd26 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v @@ -4,9 +4,11 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_antenna #(parameter PROP = "DEFAULT") ( +module la_antenna #( + parameter PROP = "DEFAULT" +) ( input vss, output z - ); +); endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v index bdb53073..999bdfbf 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v @@ -1,52 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_clkicgor.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v index bca51c7f..7394460b 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v @@ -1,52 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_clkmux2.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux2.v index fd74ce57..8efc9015 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux2.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux2.v @@ -4,52 +4,68 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_clkmux2 - #(parameter PROP = "DEFAULT" // cell property - ) - ( +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; + 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])); + // 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])); + // 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)); + 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})); + // 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])); + 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])); + // 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)); + // final clock or (1) + la_clkor2 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .z(out) + ); -endmodule // la_clkmux2 +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 index deea9029..0b2ff761 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux4.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkmux4.v @@ -4,10 +4,9 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_clkmux4 - #(parameter PROP = "DEFAULT" // cell property - ) - ( +module la_clkmux4 #( + parameter PROP = "DEFAULT" // cell property +) ( input clk0, input clk1, input clk2, @@ -18,52 +17,89 @@ module la_clkmux4 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; + 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])); + // 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])); + // 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])); + // 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)); + 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})); + // 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])); + 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])); + // 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)); + // final clock or (1) + la_clkor4 iorclk ( + .a(clkg[0]), + .b(clkg[1]), + .c(clkg[2]), + .d(clkg[3]), + .z(out) + ); -endmodule // la_clkmux4 +endmodule // la_clkmux4 diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v index 9e5ebf7c..e863a137 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v @@ -4,9 +4,11 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_decap #(parameter PROP = "DEFAULT") ( +module la_decap #( + parameter PROP = "DEFAULT" +) ( input vss, output vdd - ); +); endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v index 85d91ec3..60c299a5 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v @@ -1,53 +1,25 @@ -// //############################################################################# -// //# Function: Synchronizer with async reset # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// 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; -// -// 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}; -// -// assign out = shiftreg[STAGES-1]; -// -// endmodule +//############################################################################# +//# Function: Synchronizer with async reset # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_drsync #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock + input in, // input data + input nreset, // async active low reset + output out // synchronized data +); -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + localparam STAGES = 2; + + 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}; + + assign out = shiftreg[STAGES-1]; -module la_drsync(clk, in, nreset, out); - input clk; - wire clk; - input in; - wire in; - input nreset; - wire nreset; - output out; - wire out; - wire \shiftreg[0] ; - sky130_fd_sc_hd__dfrtp_1 _0_ ( - .CLK(clk), - .D(in), - .Q(\shiftreg[0] ), - .RESET_B(nreset) - ); - sky130_fd_sc_hd__dfrtp_1 _1_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .Q(out), - .RESET_B(nreset) - ); endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v index b569d707..7df4c09a 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v @@ -1,57 +1,28 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 + ); -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + 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 -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/auxlib/la_footer.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_footer.v index b2a644e2..04a71fe0 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_footer.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_footer.v @@ -4,13 +4,15 @@ //# 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 - ); +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 + // Primitive Device + nmos m0 (vddout, vddin, nsleep); //d,s,g endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_header.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_header.v index f4698b93..0d247705 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_header.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_header.v @@ -4,13 +4,15 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_header #(parameter PROP = "DEFAULT") ( +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 + // Primitive Device + pmos m0 (vddout, vssin, sleep); //d,s,g endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_ibuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_ibuf.v new file mode 100644 index 00000000..51b5a9b6 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_ibuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_ibuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v index 59259807..308fc64b 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v @@ -1,62 +1,26 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate input buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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/auxlib/la_idiff.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_idiff.v new file mode 100644 index 00000000..57dfb82b --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_idiff.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Differential Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_idiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // positive input + input inb, // negative input + output z // output + ); + + if(DIFF) + assign z = (in & ~inb) | // for proper diff inputs + (~in & ~inb); // fail on non diff input + else + assign z = in; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v index 198e107b..bc0142f2 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_isohi #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = iso | in +); + + assign out = iso | in; -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/auxlib/la_isolo.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v index 95e3e956..da1af532 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_isolo #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = ~iso & in +); + + assign out = ~iso & in; -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/auxlib/la_keeper.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_keeper.v index 847994bf..ee1ff415 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_keeper.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_keeper.v @@ -4,8 +4,10 @@ //# License: MIT (see LICENSE file in Lambda repository) # //############################################################################# -module la_keeper #(parameter PROP = "DEFAULT") ( +module la_keeper #( + parameter PROP = "DEFAULT" +) ( inout z - ); +); endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_obuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_obuf.v new file mode 100644 index 00000000..5aff53b1 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_obuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_obuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v index 6617edc4..7f366700 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v @@ -1,48 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate output buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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; -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_odiff.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_odiff.v new file mode 100644 index 00000000..93e76e80 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_odiff.v @@ -0,0 +1,28 @@ +//############################################################################# +//# Function: Differential Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_odiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // input + output z, // non inverting output + output zb // inverted output + ); + + if(DIFF) + begin + assign z = in; + assign zb = ~in; + end + else + begin + assign z = in; + assign zb = 1'b0; + end +endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v index 1d894b0c..78ef500a 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v @@ -1,37 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +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 -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/auxlib/la_rsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v index 22341a43..d7859857 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v @@ -1,66 +1,35 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ + ( + 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 -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/auxlib/la_tbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v index ff943c6f..e515a281 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v @@ -1,27 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */ +module la_tbuf #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + assign z = oe ? a : 1'bz; -module la_tbuf(a, oe, z); - input a; - wire a; - input oe; - wire oe; - output z; - wire z; - assign z = a; endmodule From ef794a727051f11148478d8fc0903f2953b2638e Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 20 Jun 2024 16:13:35 -0400 Subject: [PATCH 06/12] ensure auxlib for sky130hdll --- .../sky130hdll/lambda/auxlib/la_clkicgand.v | 68 ++++---------- .../sky130hdll/lambda/auxlib/la_clkicgor.v | 73 ++++----------- .../libs/sky130hdll/lambda/auxlib/la_drsync.v | 70 +++++--------- .../libs/sky130hdll/lambda/auxlib/la_dsync.v | 84 +++++------------ .../libs/sky130hdll/lambda/auxlib/la_ibuf.v | 16 ++++ .../libs/sky130hdll/lambda/auxlib/la_iddr.v | 86 +++++------------ .../libs/sky130hdll/lambda/auxlib/la_idiff.v | 24 +++++ .../libs/sky130hdll/lambda/auxlib/la_isohi.v | 44 +++------ .../libs/sky130hdll/lambda/auxlib/la_isolo.v | 44 +++------ .../libs/sky130hdll/lambda/auxlib/la_obuf.v | 16 ++++ .../libs/sky130hdll/lambda/auxlib/la_oddr.v | 65 ++++--------- .../libs/sky130hdll/lambda/auxlib/la_odiff.v | 28 ++++++ .../libs/sky130hdll/lambda/auxlib/la_pwrbuf.v | 53 ++++------- .../libs/sky130hdll/lambda/auxlib/la_rsync.v | 92 +++++++------------ .../libs/sky130hdll/lambda/auxlib/la_tbuf.v | 40 +++----- pyproject.toml | 2 +- scripts/generate_lamdbalib.py | 3 +- 17 files changed, 309 insertions(+), 499 deletions(-) create mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_ibuf.v create mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_idiff.v create mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_obuf.v create mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_odiff.v diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v index 93b7cb2b..999bdfbf 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v @@ -1,52 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* 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 #( + 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; -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/auxlib/la_clkicgor.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v index 41faed81..7394460b 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v @@ -1,57 +1,22 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* 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 #( + 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; -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/auxlib/la_drsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v index 3c069533..60c299a5 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v @@ -1,51 +1,25 @@ -// //############################################################################# -// //# Function: Synchronizer with async reset # -// //# Copyright: Lambda Project Authors. All rights Reserved. # -// //# License: MIT (see LICENSE file in Lambda repository) # -// //############################################################################# -// 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; -// -// 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}; -// -// assign out = shiftreg[STAGES-1]; -// -// endmodule +//############################################################################# +//# Function: Synchronizer with async reset # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# +module la_drsync #( + parameter PROP = "DEFAULT" +) ( + input clk, // clock + input in, // input data + input nreset, // async active low reset + output out // synchronized data +); -/* 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) */ + localparam STAGES = 2; + + 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}; + + assign out = shiftreg[STAGES-1]; -module la_drsync(clk, in, nreset, out); - input clk; - wire clk; - input in; - wire in; - input nreset; - wire nreset; - output out; - wire out; - wire \shiftreg[0] ; - sky130_fd_sc_hdll__dfrtp_1 _0_ ( - .CLK(clk), - .D(in), - .Q(\shiftreg[0] ), - .RESET_B(nreset) - ); - sky130_fd_sc_hdll__dfrtp_1 _1_ ( - .CLK(clk), - .D(\shiftreg[0] ), - .Q(out), - .RESET_B(nreset) - ); endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v index 90ae0e92..7df4c09a 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v @@ -1,62 +1,28 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 + ); -/* 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) */ + 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 -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/auxlib/la_ibuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_ibuf.v new file mode 100644 index 00000000..51b5a9b6 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_ibuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_ibuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v index 764be0a4..308fc64b 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v @@ -1,66 +1,26 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate input buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* 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_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; -module la_iddr(clk, in, outrise, outfall); - wire _0_; - wire _1_; - input clk; - wire clk; - input in; - wire in; - wire inrise; - output outfall; - wire outfall; - output outrise; - wire outrise; - sky130_fd_sc_hdll__inv_1 _2_ ( - .A(clk), - .Y(_0_) - ); - sky130_fd_sc_hdll__dlxtn_1 _3_ ( - .D(inrise), - .GATE_N(clk), - .Q(outrise) - ); - sky130_fd_sc_hdll__dfrtp_1 _4_ ( - .CLK(clk), - .D(in), - .Q(inrise), - .RESET_B(_1_) - ); - sky130_fd_sc_hdll__dfrtp_1 _5_ ( - .CLK(_0_), - .D(in), - .Q(outfall), - .RESET_B(_1_) - ); - sky130_fd_sc_hdll__conb_1 _6_ ( - .HI(_1_) - ); endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_idiff.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_idiff.v new file mode 100644 index 00000000..57dfb82b --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_idiff.v @@ -0,0 +1,24 @@ +//############################################################################# +//# Function: Differential Chip Input Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_idiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // positive input + input inb, // negative input + output z // output + ); + + if(DIFF) + assign z = (in & ~inb) | // for proper diff inputs + (~in & ~inb); // fail on non diff input + else + assign z = in; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v index 0aeb5858..bc0142f2 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* 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 #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = iso | in +); + + assign out = iso | in; -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/auxlib/la_isolo.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v index 02a56824..da1af532 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v @@ -1,33 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Power isolation circuit # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* 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 #( + parameter PROP = "DEFAULT" +) ( + input iso, // isolation signal + input in, // input + output out // out = ~iso & in +); + + assign out = ~iso & in; -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/auxlib/la_obuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_obuf.v new file mode 100644 index 00000000..5aff53b1 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_obuf.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: Single Ended Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_obuf + #(parameter PROP = "DEFAULT") + ( + input in, // positive input + output z // output + ); + + assign z = in; + +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v index d03acd84..7f366700 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v @@ -1,48 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Dual data rate output buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* 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_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; -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_hdll__clkmux2_1 _0_ ( - .A0(in0), - .A1(in1_sh), - .S(clk), - .X(out) - ); - sky130_fd_sc_hdll__dlxtn_1 _1_ ( - .D(in1), - .GATE_N(clk), - .Q(in1_sh) - ); endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_odiff.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_odiff.v new file mode 100644 index 00000000..93e76e80 --- /dev/null +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_odiff.v @@ -0,0 +1,28 @@ +//############################################################################# +//# Function: Differential Chip Output Buffer (with ESD protection) # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# + +module la_odiff + #( + parameter PROP = "DEFAULT", + parameter DIFF = 0 // differential buffer if value > 0 + ) + ( + input in, // input + output z, // non inverting output + output zb // inverted output + ); + + if(DIFF) + begin + assign z = in; + assign zb = ~in; + end + else + begin + assign z = in; + assign zb = 1'b0; + end +endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v index 15f2206b..78ef500a 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v @@ -1,36 +1,23 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Non-inverting buffer with supplies # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* 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 #( + 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 -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/auxlib/la_rsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v index 83798669..d7859857 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v @@ -1,63 +1,35 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# 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 -/* 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) */ + ( + 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 -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/auxlib/la_tbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v index c6cf3982..e515a281 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v @@ -1,29 +1,17 @@ -// //############################################################################# -// //# 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 +//############################################################################# +//# Function: Tristate Buffer # +//# Copyright: Lambda Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in Lambda repository) # +//############################################################################# -/* 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 #( + parameter PROP = "DEFAULT" +) ( + input a, + input oe, + output z +); + + assign z = oe ? a : 1'bz; -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/pyproject.toml b/pyproject.toml index 286aa4d3..57e18de8 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.4" + "lambdalib == 0.2.5" ] [tool.tclint] diff --git a/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index 6a888c30..300bbb0f 100755 --- a/scripts/generate_lamdbalib.py +++ b/scripts/generate_lamdbalib.py @@ -24,7 +24,8 @@ "sky130": { "target": skywater130_demo, "libs": [ - "sky130hd" + "sky130hd", + "sky130hdll" ] }, "gf180": { From a7fc3e3893e242e3b0a7bde8f013c78c3585af4a Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Thu, 20 Jun 2024 16:33:13 -0400 Subject: [PATCH 07/12] impl nangate45 --- .../libs/nangate45/lambda/auxlib/la_antenna.v | 2 + .../nangate45/lambda/auxlib/la_clkicgand.v | 8 +- .../nangate45/lambda/auxlib/la_clkicgor.v | 15 +++- .../libs/nangate45/lambda/auxlib/la_decap.v | 14 ---- .../libs/nangate45/lambda/auxlib/la_drsync.v | 74 +++++++++++----- .../libs/nangate45/lambda/auxlib/la_dsync.v | 44 +++++++--- .../libs/nangate45/lambda/auxlib/la_footer.v | 18 ---- .../libs/nangate45/lambda/auxlib/la_header.v | 18 ---- .../libs/nangate45/lambda/auxlib/la_ibuf.v | 16 ---- .../libs/nangate45/lambda/auxlib/la_iddr.v | 84 ++++++++++++++----- .../libs/nangate45/lambda/auxlib/la_idiff.v | 24 ------ .../libs/nangate45/lambda/auxlib/la_isohi.v | 44 ++++++---- .../libs/nangate45/lambda/auxlib/la_isolo.v | 49 +++++++---- .../libs/nangate45/lambda/auxlib/la_keeper.v | 13 --- .../libs/nangate45/lambda/auxlib/la_obuf.v | 16 ---- .../libs/nangate45/lambda/auxlib/la_oddr.v | 65 +++++++++----- .../libs/nangate45/lambda/auxlib/la_odiff.v | 28 ------- .../libs/nangate45/lambda/auxlib/la_pwrbuf.v | 6 +- .../libs/nangate45/lambda/auxlib/la_rsync.v | 53 ++++++++---- .../libs/nangate45/lambda/auxlib/la_tbuf.v | 4 +- scripts/generate_lamdbalib.py | 67 ++++++++++++++- 21 files changed, 383 insertions(+), 279 deletions(-) delete mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v delete mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_footer.v delete mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_header.v delete mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_ibuf.v delete mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_idiff.v delete mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_keeper.v delete mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_obuf.v delete mode 100644 lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_odiff.v diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_antenna.v index 9b86fd26..3856008c 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/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 index 999bdfbf..50bb32c2 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgand.v @@ -13,10 +13,12 @@ module la_clkicgand #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (~clk) en_stable <= en | te; + // always @(clk or en or te) if (~clk) en_stable <= en | te; - assign eclk = clk & en_stable; + // 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 index 7394460b..601f91bb 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_clkicgor.v @@ -13,10 +13,19 @@ module la_clkicgor #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (clk) en_stable <= en | te; + // 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)); - assign eclk = clk | ~en_stable; endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v deleted file mode 100644 index e863a137..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_decap.v +++ /dev/null @@ -1,14 +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/auxlib/la_drsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v index 60c299a5..869c61c6 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_drsync.v @@ -1,25 +1,55 @@ -//############################################################################# -//# Function: Synchronizer with async reset # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# -module la_drsync #( - parameter PROP = "DEFAULT" -) ( - input clk, // clock - input in, // input data - input nreset, // async active low reset - output out // synchronized data -); +// //############################################################################# +// //# Function: Synchronizer with async reset # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// 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; +// +// 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}; +// +// assign out = shiftreg[STAGES-1]; +// +// endmodule - localparam STAGES = 2; - - 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}; - - assign out = shiftreg[STAGES-1]; +/* 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_; + wire _1_; + input clk; + wire clk; + input in; + wire in; + input nreset; + wire nreset; + output out; + wire out; + wire \shiftreg[0] ; + DFFR_X1 _2_ ( + .CK(clk), + .D(in), + .Q(\shiftreg[0] ), + .QN(_1_), + .RN(nreset) + ); + DFFR_X1 _3_ ( + .CK(clk), + .D(\shiftreg[0] ), + .Q(out), + .QN(_0_), + .RN(nreset) + ); endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v index 7df4c09a..cea8c004 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_dsync.v @@ -12,17 +12,39 @@ module la_dsync #(parameter PROP = "DEFAULT", output out // synchronized data ); - reg [STAGES:0] shiftreg; - always @(posedge clk) - shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; +// 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 +// `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_footer.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/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/freepdk45/libs/nangate45/lambda/auxlib/la_header.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/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/freepdk45/libs/nangate45/lambda/auxlib/la_ibuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_ibuf.v deleted file mode 100644 index 51b5a9b6..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_ibuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_ibuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v index 308fc64b..ac326191 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_iddr.v @@ -1,26 +1,64 @@ -//############################################################################# -//# Function: Dual data rate input buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_idiff.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_idiff.v deleted file mode 100644 index 57dfb82b..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_idiff.v +++ /dev/null @@ -1,24 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_idiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // positive input - input inb, // negative input - output z // output - ); - - if(DIFF) - assign z = (in & ~inb) | // for proper diff inputs - (~in & ~inb); // fail on non diff input - else - assign z = in; - -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v index bc0142f2..26824e49 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isohi.v @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isohi #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = iso | in -); - - assign out = iso | in; +/* 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 index da1af532..9beb24d6 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_isolo.v @@ -1,17 +1,38 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isolo #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = ~iso & in -); - - assign out = ~iso & in; +/* 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_keeper.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/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/freepdk45/libs/nangate45/lambda/auxlib/la_obuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_obuf.v deleted file mode 100644 index 5aff53b1..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_obuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_obuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v index 7f366700..bf8af64e 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_oddr.v @@ -1,23 +1,48 @@ -//############################################################################# -//# Function: Dual data rate output buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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/freepdk45/libs/nangate45/lambda/auxlib/la_odiff.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_odiff.v deleted file mode 100644 index 93e76e80..00000000 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_odiff.v +++ /dev/null @@ -1,28 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_odiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // input - output z, // non inverting output - output zb // inverted output - ); - - if(DIFF) - begin - assign z = in; - assign zb = ~in; - end - else - begin - assign z = in; - assign zb = 1'b0; - end -endmodule diff --git a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v index 78ef500a..1e4b5130 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_pwrbuf.v @@ -14,10 +14,6 @@ module la_pwrbuf #( output z ); -`ifdef SIM - assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -`else - assign z = a; -`endif + 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 index d7859857..117d4ef0 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_rsync.v @@ -13,23 +13,48 @@ module la_rsync #(parameter PROP = "DEFAULT", output nrst_out // async assert, sync deassert reset ); - reg [STAGES:0] sync_pipe; - integer sync_delay; +// 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}; +// 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; +// `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 +// 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 index e515a281..0b1cbbbf 100644 --- a/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/freepdk45/libs/nangate45/lambda/auxlib/la_tbuf.v @@ -12,6 +12,8 @@ module la_tbuf #( output z ); - assign z = oe ? a : 1'bz; + // assign z = oe ? a : 1'bz; + + TBUF_X1 u0(.A(a), .EN(oe), .Z(z)); endmodule diff --git a/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index 300bbb0f..827ea13d 100755 --- a/scripts/generate_lamdbalib.py +++ b/scripts/generate_lamdbalib.py @@ -70,13 +70,76 @@ def stdlib(): def auxlib(): + always_copy = [ + 'la_clkmux2', + 'la_clkmux4', + ] + generate_libs = { + "freepdk45": { + "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' + ] + } + } + } + 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", - 'auxlib')) + 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"] + + if pdk != 'freepdk45': + continue + + for lib in info['libs']: + 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: From 5a3b10ec6929f964b9fb649d40debf8a8ec203d0 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Fri, 21 Jun 2024 16:57:28 -0400 Subject: [PATCH 08/12] add sky130 auxlib --- .../libs/sky130hd/lambda/auxlib/la_antenna.v | 2 + .../sky130hd/lambda/auxlib/la_clkicgand.v | 8 +-- .../libs/sky130hd/lambda/auxlib/la_clkicgor.v | 14 +++-- .../libs/sky130hd/lambda/auxlib/la_dsync.v | 43 +++++++++++---- .../libs/sky130hd/lambda/auxlib/la_footer.v | 18 ------- .../libs/sky130hd/lambda/auxlib/la_header.v | 18 ------- .../libs/sky130hd/lambda/auxlib/la_ibuf.v | 16 ------ .../libs/sky130hd/lambda/auxlib/la_idiff.v | 24 --------- .../libs/sky130hd/lambda/auxlib/la_keeper.v | 13 ----- .../libs/sky130hd/lambda/auxlib/la_obuf.v | 16 ------ .../libs/sky130hd/lambda/auxlib/la_odiff.v | 28 ---------- .../libs/sky130hd/lambda/auxlib/la_pwrbuf.v | 12 +++-- .../libs/sky130hd/lambda/auxlib/la_rsync.v | 52 ++++++++++++++----- .../libs/sky130hd/lambda/auxlib/la_tbuf.v | 6 ++- .../sky130hdll/lambda/auxlib/la_antenna.v | 2 + .../sky130hdll/lambda/auxlib/la_clkicgand.v | 8 +-- .../sky130hdll/lambda/auxlib/la_clkicgor.v | 14 +++-- .../libs/sky130hdll/lambda/auxlib/la_dsync.v | 43 +++++++++++---- .../libs/sky130hdll/lambda/auxlib/la_footer.v | 18 ------- .../libs/sky130hdll/lambda/auxlib/la_header.v | 18 ------- .../libs/sky130hdll/lambda/auxlib/la_ibuf.v | 16 ------ .../libs/sky130hdll/lambda/auxlib/la_idiff.v | 24 --------- .../libs/sky130hdll/lambda/auxlib/la_keeper.v | 13 ----- .../libs/sky130hdll/lambda/auxlib/la_obuf.v | 16 ------ .../libs/sky130hdll/lambda/auxlib/la_odiff.v | 28 ---------- .../libs/sky130hdll/lambda/auxlib/la_pwrbuf.v | 12 +++-- .../libs/sky130hdll/lambda/auxlib/la_rsync.v | 52 ++++++++++++++----- .../libs/sky130hdll/lambda/auxlib/la_tbuf.v | 6 ++- scripts/generate_lamdbalib.py | 42 +++++++++++++++ 29 files changed, 242 insertions(+), 340 deletions(-) delete mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_footer.v delete mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_header.v delete mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_ibuf.v delete mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_idiff.v delete mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_keeper.v delete mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_obuf.v delete mode 100644 lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_odiff.v delete mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_footer.v delete mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_header.v delete mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_ibuf.v delete mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_idiff.v delete mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_keeper.v delete mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_obuf.v delete mode 100644 lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_odiff.v diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_antenna.v index 9b86fd26..a5835b48 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/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 index 999bdfbf..24687df3 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgand.v @@ -13,10 +13,12 @@ module la_clkicgand #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (~clk) en_stable <= en | te; + // always @(clk or en or te) if (~clk) en_stable <= en | te; - assign eclk = clk & en_stable; + // 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 index 7394460b..aa6b4a12 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_clkicgor.v @@ -13,10 +13,18 @@ module la_clkicgor #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (clk) en_stable <= en | te; + // always @(clk or en or te) if (clk) en_stable <= en | te; - assign eclk = clk | ~en_stable; + // 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_dsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v index 7df4c09a..0bf81203 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_dsync.v @@ -12,17 +12,38 @@ module la_dsync #(parameter PROP = "DEFAULT", output out // synchronized data ); - reg [STAGES:0] shiftreg; - always @(posedge clk) - shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; +// 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 +// `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_footer.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/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/sky130hd/lambda/auxlib/la_header.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/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/sky130hd/lambda/auxlib/la_ibuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_ibuf.v deleted file mode 100644 index 51b5a9b6..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_ibuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_ibuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_idiff.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_idiff.v deleted file mode 100644 index 57dfb82b..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_idiff.v +++ /dev/null @@ -1,24 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_idiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // positive input - input inb, // negative input - output z // output - ); - - if(DIFF) - assign z = (in & ~inb) | // for proper diff inputs - (~in & ~inb); // fail on non diff input - else - assign z = in; - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_keeper.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/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/sky130hd/lambda/auxlib/la_obuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_obuf.v deleted file mode 100644 index 5aff53b1..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_obuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_obuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_odiff.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_odiff.v deleted file mode 100644 index 93e76e80..00000000 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_odiff.v +++ /dev/null @@ -1,28 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_odiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // input - output z, // non inverting output - output zb // inverted output - ); - - if(DIFF) - begin - assign z = in; - assign zb = ~in; - end - else - begin - assign z = in; - assign zb = 1'b0; - end -endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v index 78ef500a..cc113910 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_pwrbuf.v @@ -14,10 +14,12 @@ module la_pwrbuf #( output z ); -`ifdef SIM - assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -`else - assign z = a; -`endif +// `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 index d7859857..fb63793f 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_rsync.v @@ -13,23 +13,47 @@ module la_rsync #(parameter PROP = "DEFAULT", output nrst_out // async assert, sync deassert reset ); - reg [STAGES:0] sync_pipe; - integer sync_delay; +// 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}; +// 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; +// `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 +// 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 index e515a281..4d2fb80e 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_tbuf.v @@ -12,6 +12,10 @@ module la_tbuf #( output z ); - assign z = oe ? a : 1'bz; + // 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/sky130hdll/lambda/auxlib/la_antenna.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_antenna.v index 9b86fd26..a5628244 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/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 index 999bdfbf..4fd1c7e6 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgand.v @@ -13,10 +13,12 @@ module la_clkicgand #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (~clk) en_stable <= en | te; + // always @(clk or en or te) if (~clk) en_stable <= en | te; - assign eclk = clk & en_stable; + // 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 index 7394460b..9629e768 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_clkicgor.v @@ -13,10 +13,18 @@ module la_clkicgor #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (clk) en_stable <= en | te; + // always @(clk or en or te) if (clk) en_stable <= en | te; - assign eclk = clk | ~en_stable; + // 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_dsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v index 7df4c09a..a9caaac8 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_dsync.v @@ -12,17 +12,38 @@ module la_dsync #(parameter PROP = "DEFAULT", output out // synchronized data ); - reg [STAGES:0] shiftreg; - always @(posedge clk) - shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; +// 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 +// `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/auxlib/la_footer.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/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/auxlib/la_header.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/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/auxlib/la_ibuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_ibuf.v deleted file mode 100644 index 51b5a9b6..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_ibuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_ibuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_idiff.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_idiff.v deleted file mode 100644 index 57dfb82b..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_idiff.v +++ /dev/null @@ -1,24 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_idiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // positive input - input inb, // negative input - output z // output - ); - - if(DIFF) - assign z = (in & ~inb) | // for proper diff inputs - (~in & ~inb); // fail on non diff input - else - assign z = in; - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_keeper.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/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/auxlib/la_obuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_obuf.v deleted file mode 100644 index 5aff53b1..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_obuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_obuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_odiff.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_odiff.v deleted file mode 100644 index 93e76e80..00000000 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_odiff.v +++ /dev/null @@ -1,28 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_odiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // input - output z, // non inverting output - output zb // inverted output - ); - - if(DIFF) - begin - assign z = in; - assign zb = ~in; - end - else - begin - assign z = in; - assign zb = 1'b0; - end -endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v index 78ef500a..eacd45ff 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_pwrbuf.v @@ -14,10 +14,12 @@ module la_pwrbuf #( output z ); -`ifdef SIM - assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -`else - assign z = a; -`endif +// `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 index d7859857..92113027 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_rsync.v @@ -13,23 +13,47 @@ module la_rsync #(parameter PROP = "DEFAULT", output nrst_out // async assert, sync deassert reset ); - reg [STAGES:0] sync_pipe; - integer sync_delay; +// 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}; +// 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; +// `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 +// 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 index e515a281..011e622a 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_tbuf.v @@ -12,6 +12,10 @@ module la_tbuf #( output z ); - assign z = oe ? a : 1'bz; + // 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/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index 827ea13d..d7b0a330 100755 --- a/scripts/generate_lamdbalib.py +++ b/scripts/generate_lamdbalib.py @@ -75,6 +75,48 @@ def auxlib(): 'la_clkmux4', ] generate_libs = { + "sky130": { + "sky130hd": { + "implemented": [ + 'la_antenna', + 'la_clkicgand', + 'la_clkicgor', + 'la_pwrbuf', + 'la_tbuf', + 'la_dsync', + 'la_rsync' + ], + "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' + ], + "missing": [ + 'la_footer', + 'la_header', + 'la_ibuf', + 'la_idiff', + 'la_keeper', + 'la_obuf', + 'la_odiff' + ] + } + }, "freepdk45": { "nangate45": { "implemented": [ From 6f8551313f439aa92da886a0a489eac4bbe27afd Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Fri, 21 Jun 2024 17:17:07 -0400 Subject: [PATCH 09/12] add gf180 auxlib --- .../lambda/auxlib/la_antenna.v | 2 + .../lambda/auxlib/la_clkicgand.v | 8 +- .../lambda/auxlib/la_clkicgor.v | 15 +++- .../lambda/auxlib/la_decap.v | 14 ---- .../lambda/auxlib/la_drsync.v | 74 +++++++++++----- .../lambda/auxlib/la_dsync.v | 43 +++++++--- .../lambda/auxlib/la_footer.v | 18 ---- .../lambda/auxlib/la_header.v | 18 ---- .../lambda/auxlib/la_ibuf.v | 16 ---- .../lambda/auxlib/la_iddr.v | 84 ++++++++++++++----- .../lambda/auxlib/la_idiff.v | 24 ------ .../lambda/auxlib/la_isohi.v | 44 ++++++---- .../lambda/auxlib/la_isolo.v | 49 +++++++---- .../lambda/auxlib/la_keeper.v | 13 --- .../lambda/auxlib/la_obuf.v | 16 ---- .../lambda/auxlib/la_oddr.v | 65 +++++++++----- .../lambda/auxlib/la_odiff.v | 28 ------- .../lambda/auxlib/la_pwrbuf.v | 12 +-- .../lambda/auxlib/la_rsync.v | 52 ++++++++---- .../lambda/auxlib/la_tbuf.v | 4 +- .../lambda/auxlib/la_antenna.v | 2 + .../lambda/auxlib/la_clkicgand.v | 8 +- .../lambda/auxlib/la_clkicgor.v | 15 +++- .../lambda/auxlib/la_decap.v | 14 ---- .../lambda/auxlib/la_drsync.v | 74 +++++++++++----- .../lambda/auxlib/la_dsync.v | 43 +++++++--- .../lambda/auxlib/la_footer.v | 18 ---- .../lambda/auxlib/la_header.v | 18 ---- .../lambda/auxlib/la_ibuf.v | 16 ---- .../lambda/auxlib/la_iddr.v | 84 ++++++++++++++----- .../lambda/auxlib/la_idiff.v | 24 ------ .../lambda/auxlib/la_isohi.v | 44 ++++++---- .../lambda/auxlib/la_isolo.v | 49 +++++++---- .../lambda/auxlib/la_keeper.v | 13 --- .../lambda/auxlib/la_obuf.v | 16 ---- .../lambda/auxlib/la_oddr.v | 65 +++++++++----- .../lambda/auxlib/la_odiff.v | 28 ------- .../lambda/auxlib/la_pwrbuf.v | 12 +-- .../lambda/auxlib/la_rsync.v | 52 ++++++++---- .../lambda/auxlib/la_tbuf.v | 4 +- .../libs/sky130hd/lambda/auxlib/la_decap.v | 2 + .../libs/sky130hdll/lambda/auxlib/la_decap.v | 2 + scripts/generate_lamdbalib.py | 48 ++++++++++- 43 files changed, 695 insertions(+), 555 deletions(-) delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_footer.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_ibuf.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_idiff.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_obuf.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_odiff.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_footer.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_ibuf.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_idiff.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_obuf.v delete mode 100644 lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_odiff.v diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_antenna.v index 9b86fd26..16d7b28e 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/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 index 999bdfbf..62c9d32e 100644 --- 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 @@ -13,10 +13,12 @@ module la_clkicgand #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (~clk) en_stable <= en | te; + // always @(clk or en or te) if (~clk) en_stable <= en | te; - assign eclk = clk & en_stable; + // 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 index 7394460b..9dbd00f2 100644 --- 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 @@ -13,10 +13,19 @@ module la_clkicgor #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (clk) en_stable <= en | te; + // 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)); - assign eclk = clk | ~en_stable; endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v deleted file mode 100644 index e863a137..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_decap.v +++ /dev/null @@ -1,14 +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/auxlib/la_drsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v index 60c299a5..869c61c6 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v @@ -1,25 +1,55 @@ -//############################################################################# -//# Function: Synchronizer with async reset # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# -module la_drsync #( - parameter PROP = "DEFAULT" -) ( - input clk, // clock - input in, // input data - input nreset, // async active low reset - output out // synchronized data -); +// //############################################################################# +// //# Function: Synchronizer with async reset # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// 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; +// +// 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}; +// +// assign out = shiftreg[STAGES-1]; +// +// endmodule - localparam STAGES = 2; - - 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}; - - assign out = shiftreg[STAGES-1]; +/* 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_; + wire _1_; + input clk; + wire clk; + input in; + wire in; + input nreset; + wire nreset; + output out; + wire out; + wire \shiftreg[0] ; + DFFR_X1 _2_ ( + .CK(clk), + .D(in), + .Q(\shiftreg[0] ), + .QN(_1_), + .RN(nreset) + ); + DFFR_X1 _3_ ( + .CK(clk), + .D(\shiftreg[0] ), + .Q(out), + .QN(_0_), + .RN(nreset) + ); endmodule 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 index 7df4c09a..59a6fc9a 100644 --- 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 @@ -12,17 +12,38 @@ module la_dsync #(parameter PROP = "DEFAULT", output out // synchronized data ); - reg [STAGES:0] shiftreg; - always @(posedge clk) - shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; +// 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 +// `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/auxlib/la_footer.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/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/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/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/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_ibuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_ibuf.v deleted file mode 100644 index 51b5a9b6..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_ibuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_ibuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v index 308fc64b..ac326191 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v @@ -1,26 +1,64 @@ -//############################################################################# -//# Function: Dual data rate input buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_idiff.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_idiff.v deleted file mode 100644 index 57dfb82b..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_idiff.v +++ /dev/null @@ -1,24 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_idiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // positive input - input inb, // negative input - output z // output - ); - - if(DIFF) - assign z = (in & ~inb) | // for proper diff inputs - (~in & ~inb); // fail on non diff input - else - assign z = in; - -endmodule 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 index bc0142f2..26824e49 100644 --- 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 @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isohi #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = iso | in -); - - assign out = iso | in; +/* 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/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v index da1af532..9beb24d6 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v @@ -1,17 +1,38 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isolo #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = ~iso & in -); - - assign out = ~iso & in; +/* 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/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/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/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_obuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_obuf.v deleted file mode 100644 index 5aff53b1..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_obuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_obuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v index 7f366700..bf8af64e 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v @@ -1,23 +1,48 @@ -//############################################################################# -//# Function: Dual data rate output buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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/auxlib/la_odiff.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_odiff.v deleted file mode 100644 index 93e76e80..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_odiff.v +++ /dev/null @@ -1,28 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_odiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // input - output z, // non inverting output - output zb // inverted output - ); - - if(DIFF) - begin - assign z = in; - assign zb = ~in; - end - else - begin - assign z = in; - assign zb = 1'b0; - end -endmodule 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 index 78ef500a..8048c472 100644 --- 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 @@ -14,10 +14,12 @@ module la_pwrbuf #( output z ); -`ifdef SIM - assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -`else - assign z = a; -`endif +// `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 index d7859857..17e195d7 100644 --- 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 @@ -13,23 +13,47 @@ module la_rsync #(parameter PROP = "DEFAULT", output nrst_out // async assert, sync deassert reset ); - reg [STAGES:0] sync_pipe; - integer sync_delay; +// 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}; +// 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; +// `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 +// 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 index e515a281..721a1f3e 100644 --- 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 @@ -12,6 +12,8 @@ module la_tbuf #( output z ); - assign z = oe ? a : 1'bz; + // 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_mcu9t5v0/lambda/auxlib/la_antenna.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_antenna.v index 9b86fd26..251e1d96 100644 --- 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 @@ -11,4 +11,6 @@ module la_antenna #( 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 index 999bdfbf..6a9e3e4d 100644 --- 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 @@ -13,10 +13,12 @@ module la_clkicgand #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (~clk) en_stable <= en | te; + // always @(clk or en or te) if (~clk) en_stable <= en | te; - assign eclk = clk & en_stable; + // 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 index 7394460b..47df85fa 100644 --- 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 @@ -13,10 +13,19 @@ module la_clkicgor #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (clk) en_stable <= en | te; + // 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)); - assign eclk = clk | ~en_stable; endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v deleted file mode 100644 index e863a137..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_decap.v +++ /dev/null @@ -1,14 +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/auxlib/la_drsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v index 60c299a5..869c61c6 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v @@ -1,25 +1,55 @@ -//############################################################################# -//# Function: Synchronizer with async reset # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# -module la_drsync #( - parameter PROP = "DEFAULT" -) ( - input clk, // clock - input in, // input data - input nreset, // async active low reset - output out // synchronized data -); +// //############################################################################# +// //# Function: Synchronizer with async reset # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// 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; +// +// 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}; +// +// assign out = shiftreg[STAGES-1]; +// +// endmodule - localparam STAGES = 2; - - 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}; - - assign out = shiftreg[STAGES-1]; +/* 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_; + wire _1_; + input clk; + wire clk; + input in; + wire in; + input nreset; + wire nreset; + output out; + wire out; + wire \shiftreg[0] ; + DFFR_X1 _2_ ( + .CK(clk), + .D(in), + .Q(\shiftreg[0] ), + .QN(_1_), + .RN(nreset) + ); + DFFR_X1 _3_ ( + .CK(clk), + .D(\shiftreg[0] ), + .Q(out), + .QN(_0_), + .RN(nreset) + ); endmodule 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 index 7df4c09a..30dc31e1 100644 --- 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 @@ -12,17 +12,38 @@ module la_dsync #(parameter PROP = "DEFAULT", output out // synchronized data ); - reg [STAGES:0] shiftreg; - always @(posedge clk) - shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; +// 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 +// `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/auxlib/la_footer.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/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/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/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/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_ibuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_ibuf.v deleted file mode 100644 index 51b5a9b6..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_ibuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_ibuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v index 308fc64b..ac326191 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v @@ -1,26 +1,64 @@ -//############################################################################# -//# Function: Dual data rate input buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_idiff.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_idiff.v deleted file mode 100644 index 57dfb82b..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_idiff.v +++ /dev/null @@ -1,24 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_idiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // positive input - input inb, // negative input - output z // output - ); - - if(DIFF) - assign z = (in & ~inb) | // for proper diff inputs - (~in & ~inb); // fail on non diff input - else - assign z = in; - -endmodule 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 index bc0142f2..26824e49 100644 --- 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 @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isohi #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = iso | in -); - - assign out = iso | in; +/* 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/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v index da1af532..9beb24d6 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v @@ -1,17 +1,38 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isolo #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = ~iso & in -); - - assign out = ~iso & in; +/* 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/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/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/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_obuf.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_obuf.v deleted file mode 100644 index 5aff53b1..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_obuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_obuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v index 7f366700..bf8af64e 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v @@ -1,23 +1,48 @@ -//############################################################################# -//# Function: Dual data rate output buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_mcu9t5v0/lambda/auxlib/la_odiff.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_odiff.v deleted file mode 100644 index 93e76e80..00000000 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_odiff.v +++ /dev/null @@ -1,28 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_odiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // input - output z, // non inverting output - output zb // inverted output - ); - - if(DIFF) - begin - assign z = in; - assign zb = ~in; - end - else - begin - assign z = in; - assign zb = 1'b0; - end -endmodule 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 index 78ef500a..31b195df 100644 --- 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 @@ -14,10 +14,12 @@ module la_pwrbuf #( output z ); -`ifdef SIM - assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -`else - assign z = a; -`endif +// `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 index d7859857..2fd9f1ea 100644 --- 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 @@ -13,23 +13,47 @@ module la_rsync #(parameter PROP = "DEFAULT", output nrst_out // async assert, sync deassert reset ); - reg [STAGES:0] sync_pipe; - integer sync_delay; +// 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}; +// 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; +// `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 +// 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 index e515a281..c48397e4 100644 --- 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 @@ -12,6 +12,8 @@ module la_tbuf #( output z ); - assign z = oe ? a : 1'bz; + // assign z = oe ? a : 1'bz; + +gf180mcu_fd_sc_mcu9t5v0__bufz_1 u0(.I(a), .EN(oe), .Z(z)); endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_decap.v index e863a137..c3f6c3ca 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/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/sky130hdll/lambda/auxlib/la_decap.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_decap.v index e863a137..91e378b7 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_decap.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_decap.v @@ -11,4 +11,6 @@ module la_decap #( output vdd ); +sky130_fd_sc_hd11__decap_12 u0(.VGND(vss), .VPWR(vdd)); + endmodule diff --git a/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index d7b0a330..38408d53 100755 --- a/scripts/generate_lamdbalib.py +++ b/scripts/generate_lamdbalib.py @@ -84,7 +84,8 @@ def auxlib(): 'la_pwrbuf', 'la_tbuf', 'la_dsync', - 'la_rsync' + 'la_rsync', + 'la_decap' ], "missing": [ 'la_footer', @@ -97,6 +98,29 @@ def auxlib(): ] }, "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": { + "gf180mcu_fd_sc_mcu7t5v0": { "implemented": [ 'la_antenna', 'la_clkicgand', @@ -107,6 +131,28 @@ def auxlib(): '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', From f2ee16f5b4b7846a49d8e29abe342ca7621b2bb2 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Fri, 21 Jun 2024 17:29:56 -0400 Subject: [PATCH 10/12] asap7 auxlib --- .../lambda/auxlib/la_antenna.v | 14 ---- .../lambda/auxlib/la_clkicgand.v | 8 ++- .../lambda/auxlib/la_clkicgor.v | 14 +++- .../asap7sc7p5t_lvt/lambda/auxlib/la_decap.v | 2 + .../asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v | 45 +++++++++---- .../asap7sc7p5t_lvt/lambda/auxlib/la_footer.v | 18 ----- .../asap7sc7p5t_lvt/lambda/auxlib/la_header.v | 18 ----- .../asap7sc7p5t_lvt/lambda/auxlib/la_ibuf.v | 16 ----- .../asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v | 24 ------- .../asap7sc7p5t_lvt/lambda/auxlib/la_keeper.v | 13 ---- .../asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v | 16 ----- .../asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v | 28 -------- .../asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v | 6 +- .../asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v | 57 ++++++++++++---- .../asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v | 17 ----- .../lambda/auxlib/la_antenna.v | 14 ---- .../lambda/auxlib/la_clkicgand.v | 8 ++- .../lambda/auxlib/la_clkicgor.v | 14 +++- .../asap7sc7p5t_rvt/lambda/auxlib/la_decap.v | 2 + .../asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v | 45 +++++++++---- .../asap7sc7p5t_rvt/lambda/auxlib/la_footer.v | 18 ----- .../asap7sc7p5t_rvt/lambda/auxlib/la_header.v | 18 ----- .../asap7sc7p5t_rvt/lambda/auxlib/la_ibuf.v | 16 ----- .../asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v | 24 ------- .../asap7sc7p5t_rvt/lambda/auxlib/la_keeper.v | 13 ---- .../asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v | 16 ----- .../asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v | 28 -------- .../asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v | 6 +- .../asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v | 57 ++++++++++++---- .../asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v | 17 ----- .../lambda/auxlib/la_antenna.v | 14 ---- .../lambda/auxlib/la_clkicgand.v | 8 ++- .../lambda/auxlib/la_clkicgor.v | 14 +++- .../asap7sc7p5t_slvt/lambda/auxlib/la_decap.v | 2 + .../asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v | 45 +++++++++---- .../lambda/auxlib/la_footer.v | 18 ----- .../lambda/auxlib/la_header.v | 18 ----- .../asap7sc7p5t_slvt/lambda/auxlib/la_ibuf.v | 16 ----- .../asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v | 24 ------- .../lambda/auxlib/la_keeper.v | 13 ---- .../asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v | 16 ----- .../asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v | 28 -------- .../lambda/auxlib/la_pwrbuf.v | 6 +- .../asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v | 57 ++++++++++++---- .../asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v | 17 ----- scripts/generate_lamdbalib.py | 65 +++++++++++++++++++ 46 files changed, 353 insertions(+), 600 deletions(-) delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_antenna.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_footer.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_header.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_ibuf.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_keeper.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_antenna.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_footer.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_header.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_ibuf.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_keeper.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_antenna.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_footer.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_header.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_ibuf.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_keeper.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v delete mode 100644 lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_antenna.v deleted file mode 100644 index 9b86fd26..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_antenna.v +++ /dev/null @@ -1,14 +0,0 @@ -//############################################################################# -//# 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 -); - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v index 999bdfbf..f934ba04 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgand.v @@ -13,10 +13,12 @@ module la_clkicgand #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (~clk) en_stable <= en | te; + // always @(clk or en or te) if (~clk) en_stable <= en | te; - assign eclk = clk & en_stable; + // 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 index 7394460b..3070601f 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_clkicgor.v @@ -13,10 +13,18 @@ module la_clkicgor #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (clk) en_stable <= en | te; + // always @(clk or en or te) if (clk) en_stable <= en | te; - assign eclk = clk | ~en_stable; + // 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/auxlib/la_decap.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_decap.v index e863a137..aaec9672 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/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/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v index 7df4c09a..09372306 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_dsync.v @@ -12,17 +12,40 @@ module la_dsync #(parameter PROP = "DEFAULT", output out // synchronized data ); - reg [STAGES:0] shiftreg; - always @(posedge clk) - shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; +// 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 +// `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/auxlib/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/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/auxlib/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/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/auxlib/la_ibuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_ibuf.v deleted file mode 100644 index 51b5a9b6..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_ibuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_ibuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v deleted file mode 100644 index 57dfb82b..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_idiff.v +++ /dev/null @@ -1,24 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_idiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // positive input - input inb, // negative input - output z // output - ); - - if(DIFF) - assign z = (in & ~inb) | // for proper diff inputs - (~in & ~inb); // fail on non diff input - else - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/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/auxlib/la_obuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v deleted file mode 100644 index 5aff53b1..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_obuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_obuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v deleted file mode 100644 index 93e76e80..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_odiff.v +++ /dev/null @@ -1,28 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_odiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // input - output z, // non inverting output - output zb // inverted output - ); - - if(DIFF) - begin - assign z = in; - assign zb = ~in; - end - else - begin - assign z = in; - assign zb = 1'b0; - end -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v index 78ef500a..d9584acf 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_pwrbuf.v @@ -14,10 +14,6 @@ module la_pwrbuf #( output z ); -`ifdef SIM - assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -`else - assign z = a; -`endif +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 index d7859857..7219240f 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_rsync.v @@ -13,23 +13,52 @@ module la_rsync #(parameter PROP = "DEFAULT", output nrst_out // async assert, sync deassert reset ); - reg [STAGES:0] sync_pipe; - integer sync_delay; +// 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}; +// 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; +// `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 +// 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/auxlib/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v deleted file mode 100644 index e515a281..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_tbuf.v +++ /dev/null @@ -1,17 +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 diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_antenna.v deleted file mode 100644 index 9b86fd26..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_antenna.v +++ /dev/null @@ -1,14 +0,0 @@ -//############################################################################# -//# 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 -); - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v index 999bdfbf..4d442f36 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgand.v @@ -13,10 +13,12 @@ module la_clkicgand #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (~clk) en_stable <= en | te; + // always @(clk or en or te) if (~clk) en_stable <= en | te; - assign eclk = clk & en_stable; + // 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 index 7394460b..63cb8e0c 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_clkicgor.v @@ -13,10 +13,18 @@ module la_clkicgor #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (clk) en_stable <= en | te; + // always @(clk or en or te) if (clk) en_stable <= en | te; - assign eclk = clk | ~en_stable; + // 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/auxlib/la_decap.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_decap.v index e863a137..bcb3d639 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/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/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v index 7df4c09a..b3e5220d 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_dsync.v @@ -12,17 +12,40 @@ module la_dsync #(parameter PROP = "DEFAULT", output out // synchronized data ); - reg [STAGES:0] shiftreg; - always @(posedge clk) - shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; +// 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 +// `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/auxlib/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/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/auxlib/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/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/auxlib/la_ibuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_ibuf.v deleted file mode 100644 index 51b5a9b6..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_ibuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_ibuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v deleted file mode 100644 index 57dfb82b..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_idiff.v +++ /dev/null @@ -1,24 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_idiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // positive input - input inb, // negative input - output z // output - ); - - if(DIFF) - assign z = (in & ~inb) | // for proper diff inputs - (~in & ~inb); // fail on non diff input - else - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/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/auxlib/la_obuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v deleted file mode 100644 index 5aff53b1..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_obuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_obuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v deleted file mode 100644 index 93e76e80..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_odiff.v +++ /dev/null @@ -1,28 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_odiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // input - output z, // non inverting output - output zb // inverted output - ); - - if(DIFF) - begin - assign z = in; - assign zb = ~in; - end - else - begin - assign z = in; - assign zb = 1'b0; - end -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v index 78ef500a..95c44f09 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_pwrbuf.v @@ -14,10 +14,6 @@ module la_pwrbuf #( output z ); -`ifdef SIM - assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -`else - assign z = a; -`endif +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 index d7859857..94efc434 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_rsync.v @@ -13,23 +13,52 @@ module la_rsync #(parameter PROP = "DEFAULT", output nrst_out // async assert, sync deassert reset ); - reg [STAGES:0] sync_pipe; - integer sync_delay; +// 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}; +// 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; +// `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 +// 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/auxlib/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v deleted file mode 100644 index e515a281..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_tbuf.v +++ /dev/null @@ -1,17 +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 diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_antenna.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_antenna.v deleted file mode 100644 index 9b86fd26..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_antenna.v +++ /dev/null @@ -1,14 +0,0 @@ -//############################################################################# -//# 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 -); - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v index 999bdfbf..844e7a49 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgand.v @@ -13,10 +13,12 @@ module la_clkicgand #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (~clk) en_stable <= en | te; + // always @(clk or en or te) if (~clk) en_stable <= en | te; - assign eclk = clk & en_stable; + // 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 index 7394460b..23e553da 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_clkicgor.v @@ -13,10 +13,18 @@ module la_clkicgor #( output eclk // enabled clock output ); - reg en_stable; + // reg en_stable; - always @(clk or en or te) if (clk) en_stable <= en | te; + // always @(clk or en or te) if (clk) en_stable <= en | te; - assign eclk = clk | ~en_stable; + // 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/auxlib/la_decap.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_decap.v index e863a137..e80f5554 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/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/auxlib/la_dsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v index 7df4c09a..569c841f 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_dsync.v @@ -12,17 +12,40 @@ module la_dsync #(parameter PROP = "DEFAULT", output out // synchronized data ); - reg [STAGES:0] shiftreg; - always @(posedge clk) - shiftreg[STAGES:0] <= {shiftreg[STAGES-1:0], in}; +// 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 +// `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/auxlib/la_footer.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_footer.v deleted file mode 100644 index 04a71fe0..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/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/auxlib/la_header.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_header.v deleted file mode 100644 index 0d247705..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/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/auxlib/la_ibuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_ibuf.v deleted file mode 100644 index 51b5a9b6..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_ibuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_ibuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v deleted file mode 100644 index 57dfb82b..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_idiff.v +++ /dev/null @@ -1,24 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Input Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_idiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // positive input - input inb, // negative input - output z // output - ); - - if(DIFF) - assign z = (in & ~inb) | // for proper diff inputs - (~in & ~inb); // fail on non diff input - else - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_keeper.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_keeper.v deleted file mode 100644 index ee1ff415..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/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/auxlib/la_obuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v deleted file mode 100644 index 5aff53b1..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_obuf.v +++ /dev/null @@ -1,16 +0,0 @@ -//############################################################################# -//# Function: Single Ended Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_obuf - #(parameter PROP = "DEFAULT") - ( - input in, // positive input - output z // output - ); - - assign z = in; - -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v deleted file mode 100644 index 93e76e80..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_odiff.v +++ /dev/null @@ -1,28 +0,0 @@ -//############################################################################# -//# Function: Differential Chip Output Buffer (with ESD protection) # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# - -module la_odiff - #( - parameter PROP = "DEFAULT", - parameter DIFF = 0 // differential buffer if value > 0 - ) - ( - input in, // input - output z, // non inverting output - output zb // inverted output - ); - - if(DIFF) - begin - assign z = in; - assign zb = ~in; - end - else - begin - assign z = in; - assign zb = 1'b0; - end -endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v index 78ef500a..59d6f08c 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_pwrbuf.v @@ -14,10 +14,6 @@ module la_pwrbuf #( output z ); -`ifdef SIM - assign z = ((vdd === 1'b1) && (vss === 1'b0)) ? a : 1'bX; -`else - assign z = a; -`endif +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 index d7859857..924391cb 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_rsync.v @@ -13,23 +13,52 @@ module la_rsync #(parameter PROP = "DEFAULT", output nrst_out // async assert, sync deassert reset ); - reg [STAGES:0] sync_pipe; - integer sync_delay; +// 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}; +// 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; +// `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 +// 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/auxlib/la_tbuf.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v deleted file mode 100644 index e515a281..00000000 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_tbuf.v +++ /dev/null @@ -1,17 +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 diff --git a/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index 38408d53..21c3306f 100755 --- a/scripts/generate_lamdbalib.py +++ b/scripts/generate_lamdbalib.py @@ -185,6 +185,71 @@ def auxlib(): 'la_odiff' ] } + }, + "asap7": { + "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' + ] + }, } } From d11dc59e68ba5373a91363caa715f3ff11d460ac Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Fri, 21 Jun 2024 17:34:56 -0400 Subject: [PATCH 11/12] all auxlibs --- .../asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v | 86 ++++++++++++++----- .../asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v | 85 +++++++++++++----- .../asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v | 44 +++++++--- .../asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v | 49 ++++++++--- .../asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v | 76 +++++++++++----- .../asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v | 86 ++++++++++++++----- .../asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v | 85 +++++++++++++----- .../asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v | 44 +++++++--- .../asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v | 49 ++++++++--- .../asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v | 76 +++++++++++----- .../lambda/auxlib/la_drsync.v | 86 ++++++++++++++----- .../asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v | 85 +++++++++++++----- .../asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v | 44 +++++++--- .../asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v | 49 ++++++++--- .../asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v | 76 +++++++++++----- .../lambda/auxlib/la_drsync.v | 12 +-- .../lambda/auxlib/la_iddr.v | 24 +++--- .../lambda/auxlib/la_isohi.v | 4 +- .../lambda/auxlib/la_isolo.v | 12 +-- .../lambda/auxlib/la_oddr.v | 15 ++-- .../lambda/auxlib/la_drsync.v | 12 +-- .../lambda/auxlib/la_iddr.v | 24 +++--- .../lambda/auxlib/la_isohi.v | 4 +- .../lambda/auxlib/la_isolo.v | 12 +-- .../lambda/auxlib/la_oddr.v | 15 ++-- .../libs/sky130hd/lambda/auxlib/la_drsync.v | 70 ++++++++++----- .../libs/sky130hd/lambda/auxlib/la_iddr.v | 80 ++++++++++++----- .../libs/sky130hd/lambda/auxlib/la_isohi.v | 44 +++++++--- .../libs/sky130hd/lambda/auxlib/la_isolo.v | 44 +++++++--- .../libs/sky130hd/lambda/auxlib/la_oddr.v | 65 +++++++++----- .../libs/sky130hdll/lambda/auxlib/la_drsync.v | 70 ++++++++++----- .../libs/sky130hdll/lambda/auxlib/la_iddr.v | 86 ++++++++++++++----- .../libs/sky130hdll/lambda/auxlib/la_isohi.v | 44 +++++++--- .../libs/sky130hdll/lambda/auxlib/la_isolo.v | 44 +++++++--- .../libs/sky130hdll/lambda/auxlib/la_oddr.v | 65 +++++++++----- scripts/generate_lamdbalib.py | 3 - 36 files changed, 1231 insertions(+), 538 deletions(-) diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v index 60c299a5..1f2c515b 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_drsync.v @@ -1,25 +1,67 @@ -//############################################################################# -//# Function: Synchronizer with async reset # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# -module la_drsync #( - parameter PROP = "DEFAULT" -) ( - input clk, // clock - input in, // input data - input nreset, // async active low reset - output out // synchronized data -); +// //############################################################################# +// //# Function: Synchronizer with async reset # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// 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; +// +// 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}; +// +// assign out = shiftreg[STAGES-1]; +// +// endmodule - localparam STAGES = 2; - - 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}; - - assign out = shiftreg[STAGES-1]; +/* 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_; + wire _1_; + wire _2_; + input clk; + wire clk; + input in; + wire in; + input nreset; + wire nreset; + output out; + wire out; + wire \shiftreg[0] ; + INVx2_ASAP7_75t_L _3_ ( + .A(_0_), + .Y(out) + ); + INVx2_ASAP7_75t_L _4_ ( + .A(_1_), + .Y(\shiftreg[0] ) + ); + DFFASRHQNx1_ASAP7_75t_L _5_ ( + .CLK(clk), + .D(in), + .QN(_1_), + .RESETN(_2_), + .SETN(nreset) + ); + DFFASRHQNx1_ASAP7_75t_L _6_ ( + .CLK(clk), + .D(\shiftreg[0] ), + .QN(_0_), + .RESETN(_2_), + .SETN(nreset) + ); + TIEHIx1_ASAP7_75t_L _7_ ( + .H(_2_) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v index 308fc64b..4f14141a 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_iddr.v @@ -1,26 +1,65 @@ -//############################################################################# -//# Function: Dual data rate input buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_; + input clk; + wire clk; + input in; + wire in; + wire inrise; + output outfall; + wire outfall; + output outrise; + wire outrise; + INVx2_ASAP7_75t_L _2_ ( + .A(_0_), + .Y(outfall) + ); + INVx2_ASAP7_75t_L _3_ ( + .A(_1_), + .Y(inrise) + ); + DLLx1_ASAP7_75t_L _4_ ( + .CLK(clk), + .D(inrise), + .Q(outrise) + ); + DFFHQNx1_ASAP7_75t_L _5_ ( + .CLK(clk), + .D(in), + .QN(_1_) + ); + DFFLQNx1_ASAP7_75t_L _6_ ( + .CLK(clk), + .D(in), + .QN(_0_) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v index bc0142f2..fcf4da08 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isohi.v @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isohi #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = iso | in -); - - assign out = iso | in; +/* 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; + OR2x2_ASAP7_75t_L _0_ ( + .A(in), + .B(iso), + .Y(out) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v index da1af532..5ced548e 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_isolo.v @@ -1,17 +1,38 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isolo #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = ~iso & in -); - - assign out = ~iso & in; +/* 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; + INVx2_ASAP7_75t_L _1_ ( + .A(iso), + .Y(_0_) + ); + AND2x4_ASAP7_75t_L _2_ ( + .A(in), + .B(_0_), + .Y(out) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v index 7f366700..e4136fca 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/auxlib/la_oddr.v @@ -1,23 +1,59 @@ -//############################################################################# -//# Function: Dual data rate output buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_; + wire _1_; + input clk; + wire clk; + input in0; + wire in0; + input in1; + wire in1; + wire in1_sh; + output out; + wire out; + INVx1_ASAP7_75t_L _2_ ( + .A(clk), + .Y(_0_) + ); + AND2x2_ASAP7_75t_L _3_ ( + .A(in1_sh), + .B(clk), + .Y(_1_) + ); + AO21x1_ASAP7_75t_L _4_ ( + .A1(in0), + .A2(_0_), + .B(_1_), + .Y(out) + ); + DLLx1_ASAP7_75t_L _5_ ( + .CLK(clk), + .D(in1), + .Q(in1_sh) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v index 60c299a5..7d7611c7 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_drsync.v @@ -1,25 +1,67 @@ -//############################################################################# -//# Function: Synchronizer with async reset # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# -module la_drsync #( - parameter PROP = "DEFAULT" -) ( - input clk, // clock - input in, // input data - input nreset, // async active low reset - output out // synchronized data -); +// //############################################################################# +// //# Function: Synchronizer with async reset # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// 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; +// +// 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}; +// +// assign out = shiftreg[STAGES-1]; +// +// endmodule - localparam STAGES = 2; - - 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}; - - assign out = shiftreg[STAGES-1]; +/* 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_; + wire _1_; + wire _2_; + input clk; + wire clk; + input in; + wire in; + input nreset; + wire nreset; + output out; + wire out; + wire \shiftreg[0] ; + INVx2_ASAP7_75t_R _3_ ( + .A(_0_), + .Y(out) + ); + INVx2_ASAP7_75t_R _4_ ( + .A(_1_), + .Y(\shiftreg[0] ) + ); + DFFASRHQNx1_ASAP7_75t_R _5_ ( + .CLK(clk), + .D(in), + .QN(_1_), + .RESETN(_2_), + .SETN(nreset) + ); + DFFASRHQNx1_ASAP7_75t_R _6_ ( + .CLK(clk), + .D(\shiftreg[0] ), + .QN(_0_), + .RESETN(_2_), + .SETN(nreset) + ); + TIEHIx1_ASAP7_75t_R _7_ ( + .H(_2_) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v index 308fc64b..89f43669 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_iddr.v @@ -1,26 +1,65 @@ -//############################################################################# -//# Function: Dual data rate input buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_; + input clk; + wire clk; + input in; + wire in; + wire inrise; + output outfall; + wire outfall; + output outrise; + wire outrise; + INVx2_ASAP7_75t_R _2_ ( + .A(_0_), + .Y(outfall) + ); + INVx2_ASAP7_75t_R _3_ ( + .A(_1_), + .Y(inrise) + ); + DLLx1_ASAP7_75t_R _4_ ( + .CLK(clk), + .D(inrise), + .Q(outrise) + ); + DFFHQNx1_ASAP7_75t_R _5_ ( + .CLK(clk), + .D(in), + .QN(_1_) + ); + DFFLQNx1_ASAP7_75t_R _6_ ( + .CLK(clk), + .D(in), + .QN(_0_) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v index bc0142f2..5abb17ec 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isohi.v @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isohi #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = iso | in -); - - assign out = iso | in; +/* 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; + OR2x2_ASAP7_75t_R _0_ ( + .A(in), + .B(iso), + .Y(out) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v index da1af532..94fef07c 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_isolo.v @@ -1,17 +1,38 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isolo #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = ~iso & in -); - - assign out = ~iso & in; +/* 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; + INVx2_ASAP7_75t_R _1_ ( + .A(iso), + .Y(_0_) + ); + AND2x4_ASAP7_75t_R _2_ ( + .A(in), + .B(_0_), + .Y(out) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v index 7f366700..04828c57 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/auxlib/la_oddr.v @@ -1,23 +1,59 @@ -//############################################################################# -//# Function: Dual data rate output buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_; + wire _1_; + input clk; + wire clk; + input in0; + wire in0; + input in1; + wire in1; + wire in1_sh; + output out; + wire out; + INVx1_ASAP7_75t_R _2_ ( + .A(clk), + .Y(_0_) + ); + AND2x2_ASAP7_75t_R _3_ ( + .A(in1_sh), + .B(clk), + .Y(_1_) + ); + AO21x1_ASAP7_75t_R _4_ ( + .A1(in0), + .A2(_0_), + .B(_1_), + .Y(out) + ); + DLLx1_ASAP7_75t_R _5_ ( + .CLK(clk), + .D(in1), + .Q(in1_sh) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v index 60c299a5..08f43a39 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_drsync.v @@ -1,25 +1,67 @@ -//############################################################################# -//# Function: Synchronizer with async reset # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# -module la_drsync #( - parameter PROP = "DEFAULT" -) ( - input clk, // clock - input in, // input data - input nreset, // async active low reset - output out // synchronized data -); +// //############################################################################# +// //# Function: Synchronizer with async reset # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// 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; +// +// 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}; +// +// assign out = shiftreg[STAGES-1]; +// +// endmodule - localparam STAGES = 2; - - 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}; - - assign out = shiftreg[STAGES-1]; +/* 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_; + wire _1_; + wire _2_; + input clk; + wire clk; + input in; + wire in; + input nreset; + wire nreset; + output out; + wire out; + wire \shiftreg[0] ; + INVx2_ASAP7_75t_SL _3_ ( + .A(_0_), + .Y(out) + ); + INVx2_ASAP7_75t_SL _4_ ( + .A(_1_), + .Y(\shiftreg[0] ) + ); + DFFASRHQNx1_ASAP7_75t_SL _5_ ( + .CLK(clk), + .D(in), + .QN(_1_), + .RESETN(_2_), + .SETN(nreset) + ); + DFFASRHQNx1_ASAP7_75t_SL _6_ ( + .CLK(clk), + .D(\shiftreg[0] ), + .QN(_0_), + .RESETN(_2_), + .SETN(nreset) + ); + TIEHIx1_ASAP7_75t_SL _7_ ( + .H(_2_) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v index 308fc64b..bf36b840 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_iddr.v @@ -1,26 +1,65 @@ -//############################################################################# -//# Function: Dual data rate input buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_; + input clk; + wire clk; + input in; + wire in; + wire inrise; + output outfall; + wire outfall; + output outrise; + wire outrise; + INVx2_ASAP7_75t_SL _2_ ( + .A(_0_), + .Y(outfall) + ); + INVx2_ASAP7_75t_SL _3_ ( + .A(_1_), + .Y(inrise) + ); + DLLx1_ASAP7_75t_SL _4_ ( + .CLK(clk), + .D(inrise), + .Q(outrise) + ); + DFFHQNx1_ASAP7_75t_SL _5_ ( + .CLK(clk), + .D(in), + .QN(_1_) + ); + DFFLQNx1_ASAP7_75t_SL _6_ ( + .CLK(clk), + .D(in), + .QN(_0_) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v index bc0142f2..ecd8b687 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isohi.v @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isohi #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = iso | in -); - - assign out = iso | in; +/* 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; + OR2x2_ASAP7_75t_SL _0_ ( + .A(in), + .B(iso), + .Y(out) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v index da1af532..20d1ef34 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_isolo.v @@ -1,17 +1,38 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isolo #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = ~iso & in -); - - assign out = ~iso & in; +/* 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; + INVx2_ASAP7_75t_SL _1_ ( + .A(iso), + .Y(_0_) + ); + AND2x4_ASAP7_75t_SL _2_ ( + .A(in), + .B(_0_), + .Y(out) + ); endmodule diff --git a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v index 7f366700..ab70bc08 100644 --- a/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v +++ b/lambdapdk/asap7/libs/asap7sc7p5t_slvt/lambda/auxlib/la_oddr.v @@ -1,23 +1,59 @@ -//############################################################################# -//# Function: Dual data rate output buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_; + wire _1_; + input clk; + wire clk; + input in0; + wire in0; + input in1; + wire in1; + wire in1_sh; + output out; + wire out; + INVx1_ASAP7_75t_SL _2_ ( + .A(clk), + .Y(_0_) + ); + AND2x4_ASAP7_75t_SL _3_ ( + .A(in1_sh), + .B(clk), + .Y(_1_) + ); + AO21x1_ASAP7_75t_SL _4_ ( + .A1(in0), + .A2(_0_), + .B(_1_), + .Y(out) + ); + DLLx1_ASAP7_75t_SL _5_ ( + .CLK(clk), + .D(in1), + .Q(in1_sh) + ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v index 869c61c6..4d2f43b2 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_drsync.v @@ -27,8 +27,6 @@ /* 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_; - wire _1_; input clk; wire clk; input in; @@ -38,18 +36,16 @@ module la_drsync(clk, in, nreset, out); output out; wire out; wire \shiftreg[0] ; - DFFR_X1 _2_ ( - .CK(clk), + gf180mcu_fd_sc_mcu7t5v0__dffrnq_2 _0_ ( + .CLK(clk), .D(in), .Q(\shiftreg[0] ), - .QN(_1_), .RN(nreset) ); - DFFR_X1 _3_ ( - .CK(clk), + gf180mcu_fd_sc_mcu7t5v0__dffrnq_2 _1_ ( + .CLK(clk), .D(\shiftreg[0] ), .Q(out), - .QN(_0_), .RN(nreset) ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v index ac326191..722df1bc 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_iddr.v @@ -29,8 +29,6 @@ module la_iddr(clk, in, outrise, outfall); wire _0_; - wire _1_; - wire _2_; input clk; wire clk; input in; @@ -40,25 +38,23 @@ module la_iddr(clk, in, outrise, outfall); wire outfall; output outrise; wire outrise; - INV_X2 _3_ ( - .A(clk), + gf180mcu_fd_sc_mcu7t5v0__clkinv_2 _1_ ( + .I(clk), .ZN(_0_) ); - DLL_X1 _4_ ( + gf180mcu_fd_sc_mcu7t5v0__latq_1 _2_ ( .D(inrise), - .GN(clk), + .E(_0_), .Q(outrise) ); - DFF_X1 _5_ ( - .CK(clk), + gf180mcu_fd_sc_mcu7t5v0__dffq_2 _3_ ( + .CLK(clk), .D(in), - .Q(inrise), - .QN(_2_) + .Q(inrise) ); - DFF_X1 _6_ ( - .CK(_0_), + gf180mcu_fd_sc_mcu7t5v0__dffnq_2 _4_ ( + .CLKN(clk), .D(in), - .Q(outfall), - .QN(_1_) + .Q(outfall) ); endmodule 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 index 26824e49..49484e54 100644 --- 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 @@ -25,9 +25,9 @@ module la_isohi(iso, in, out); wire iso; output out; wire out; - OR2_X4 _0_ ( + gf180mcu_fd_sc_mcu7t5v0__or2_4 _0_ ( .A1(in), .A2(iso), - .ZN(out) + .Z(out) ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v index 9beb24d6..b4889346 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_isolo.v @@ -26,13 +26,13 @@ module la_isolo(iso, in, out); wire iso; output out; wire out; - INV_X2 _1_ ( - .A(in), + gf180mcu_fd_sc_mcu7t5v0__clkinv_2 _1_ ( + .I(iso), .ZN(_0_) ); - NOR2_X2 _2_ ( - .A1(_0_), - .A2(iso), - .ZN(out) + gf180mcu_fd_sc_mcu7t5v0__and2_2 _2_ ( + .A1(in), + .A2(_0_), + .Z(out) ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v index bf8af64e..4214e6dc 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu7t5v0/lambda/auxlib/la_oddr.v @@ -25,6 +25,7 @@ /* 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_; input clk; wire clk; input in0; @@ -34,15 +35,19 @@ module la_oddr(clk, in0, in1, out); wire in1_sh; output out; wire out; - MUX2_X1 _0_ ( - .A(in0), - .B(in1_sh), + gf180mcu_fd_sc_mcu7t5v0__mux2_2 _1_ ( + .I0(in0), + .I1(in1_sh), .S(clk), .Z(out) ); - DLL_X1 _1_ ( + gf180mcu_fd_sc_mcu7t5v0__clkinv_2 _2_ ( + .I(clk), + .ZN(_0_) + ); + gf180mcu_fd_sc_mcu7t5v0__latq_1 _3_ ( .D(in1), - .GN(clk), + .E(_0_), .Q(in1_sh) ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v index 869c61c6..bc8d71af 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_drsync.v @@ -27,8 +27,6 @@ /* 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_; - wire _1_; input clk; wire clk; input in; @@ -38,18 +36,16 @@ module la_drsync(clk, in, nreset, out); output out; wire out; wire \shiftreg[0] ; - DFFR_X1 _2_ ( - .CK(clk), + gf180mcu_fd_sc_mcu9t5v0__dffrnq_2 _0_ ( + .CLK(clk), .D(in), .Q(\shiftreg[0] ), - .QN(_1_), .RN(nreset) ); - DFFR_X1 _3_ ( - .CK(clk), + gf180mcu_fd_sc_mcu9t5v0__dffrnq_2 _1_ ( + .CLK(clk), .D(\shiftreg[0] ), .Q(out), - .QN(_0_), .RN(nreset) ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v index ac326191..c2c04f94 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_iddr.v @@ -29,8 +29,6 @@ module la_iddr(clk, in, outrise, outfall); wire _0_; - wire _1_; - wire _2_; input clk; wire clk; input in; @@ -40,25 +38,23 @@ module la_iddr(clk, in, outrise, outfall); wire outfall; output outrise; wire outrise; - INV_X2 _3_ ( - .A(clk), + gf180mcu_fd_sc_mcu9t5v0__clkinv_2 _1_ ( + .I(clk), .ZN(_0_) ); - DLL_X1 _4_ ( + gf180mcu_fd_sc_mcu9t5v0__latq_1 _2_ ( .D(inrise), - .GN(clk), + .E(_0_), .Q(outrise) ); - DFF_X1 _5_ ( - .CK(clk), + gf180mcu_fd_sc_mcu9t5v0__dffq_2 _3_ ( + .CLK(clk), .D(in), - .Q(inrise), - .QN(_2_) + .Q(inrise) ); - DFF_X1 _6_ ( - .CK(_0_), + gf180mcu_fd_sc_mcu9t5v0__dffnq_2 _4_ ( + .CLKN(clk), .D(in), - .Q(outfall), - .QN(_1_) + .Q(outfall) ); endmodule 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 index 26824e49..5aad0fbb 100644 --- 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 @@ -25,9 +25,9 @@ module la_isohi(iso, in, out); wire iso; output out; wire out; - OR2_X4 _0_ ( + gf180mcu_fd_sc_mcu9t5v0__or2_4 _0_ ( .A1(in), .A2(iso), - .ZN(out) + .Z(out) ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v index 9beb24d6..d48b122a 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_isolo.v @@ -26,13 +26,13 @@ module la_isolo(iso, in, out); wire iso; output out; wire out; - INV_X2 _1_ ( - .A(in), + gf180mcu_fd_sc_mcu9t5v0__clkinv_2 _1_ ( + .I(iso), .ZN(_0_) ); - NOR2_X2 _2_ ( - .A1(_0_), - .A2(iso), - .ZN(out) + gf180mcu_fd_sc_mcu9t5v0__and2_2 _2_ ( + .A1(in), + .A2(_0_), + .Z(out) ); endmodule diff --git a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v index bf8af64e..b5ec0fce 100644 --- a/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v +++ b/lambdapdk/gf180/libs/gf180mcu_fd_sc_mcu9t5v0/lambda/auxlib/la_oddr.v @@ -25,6 +25,7 @@ /* 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_; input clk; wire clk; input in0; @@ -34,15 +35,19 @@ module la_oddr(clk, in0, in1, out); wire in1_sh; output out; wire out; - MUX2_X1 _0_ ( - .A(in0), - .B(in1_sh), + gf180mcu_fd_sc_mcu9t5v0__mux2_2 _1_ ( + .I0(in0), + .I1(in1_sh), .S(clk), .Z(out) ); - DLL_X1 _1_ ( + gf180mcu_fd_sc_mcu9t5v0__clkinv_2 _2_ ( + .I(clk), + .ZN(_0_) + ); + gf180mcu_fd_sc_mcu9t5v0__latq_1 _3_ ( .D(in1), - .GN(clk), + .E(_0_), .Q(in1_sh) ); endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v index 60c299a5..32127a13 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_drsync.v @@ -1,25 +1,51 @@ -//############################################################################# -//# Function: Synchronizer with async reset # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# -module la_drsync #( - parameter PROP = "DEFAULT" -) ( - input clk, // clock - input in, // input data - input nreset, // async active low reset - output out // synchronized data -); +// //############################################################################# +// //# Function: Synchronizer with async reset # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// 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; +// +// 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}; +// +// assign out = shiftreg[STAGES-1]; +// +// endmodule - localparam STAGES = 2; - - 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}; - - assign out = shiftreg[STAGES-1]; +/* 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; + wire clk; + input in; + wire in; + input nreset; + wire nreset; + output out; + wire out; + wire \shiftreg[0] ; + sky130_fd_sc_hd__dfrtp_1 _0_ ( + .CLK(clk), + .D(in), + .Q(\shiftreg[0] ), + .RESET_B(nreset) + ); + sky130_fd_sc_hd__dfrtp_1 _1_ ( + .CLK(clk), + .D(\shiftreg[0] ), + .Q(out), + .RESET_B(nreset) + ); endmodule diff --git a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v index 308fc64b..85b9c50b 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_iddr.v @@ -1,26 +1,60 @@ -//############################################################################# -//# Function: Dual data rate input buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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 index bc0142f2..b0392bf9 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isohi.v @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isohi #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = iso | in -); - - assign out = iso | in; +/* 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 index da1af532..484c3b37 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_isolo.v @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isolo #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = ~iso & in -); - - assign out = ~iso & in; +/* 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 index 7f366700..eefbdb82 100644 --- a/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v +++ b/lambdapdk/sky130/libs/sky130hd/lambda/auxlib/la_oddr.v @@ -1,23 +1,48 @@ -//############################################################################# -//# Function: Dual data rate output buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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/sky130hdll/lambda/auxlib/la_drsync.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v index 60c299a5..bebc55bf 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_drsync.v @@ -1,25 +1,51 @@ -//############################################################################# -//# Function: Synchronizer with async reset # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# -module la_drsync #( - parameter PROP = "DEFAULT" -) ( - input clk, // clock - input in, // input data - input nreset, // async active low reset - output out // synchronized data -); +// //############################################################################# +// //# Function: Synchronizer with async reset # +// //# Copyright: Lambda Project Authors. All rights Reserved. # +// //# License: MIT (see LICENSE file in Lambda repository) # +// //############################################################################# +// 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; +// +// 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}; +// +// assign out = shiftreg[STAGES-1]; +// +// endmodule - localparam STAGES = 2; - - 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}; - - assign out = shiftreg[STAGES-1]; +/* 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; + wire clk; + input in; + wire in; + input nreset; + wire nreset; + output out; + wire out; + wire \shiftreg[0] ; + sky130_fd_sc_hdll__dfrtp_1 _0_ ( + .CLK(clk), + .D(in), + .Q(\shiftreg[0] ), + .RESET_B(nreset) + ); + sky130_fd_sc_hdll__dfrtp_1 _1_ ( + .CLK(clk), + .D(\shiftreg[0] ), + .Q(out), + .RESET_B(nreset) + ); endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v index 308fc64b..eef59411 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_iddr.v @@ -1,26 +1,66 @@ -//############################################################################# -//# Function: Dual data rate input buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_; + input clk; + wire clk; + input in; + wire in; + wire inrise; + output outfall; + wire outfall; + output outrise; + wire outrise; + sky130_fd_sc_hdll__inv_2 _2_ ( + .A(clk), + .Y(_0_) + ); + sky130_fd_sc_hdll__dlxtn_1 _3_ ( + .D(inrise), + .GATE_N(clk), + .Q(outrise) + ); + sky130_fd_sc_hdll__dfrtp_1 _4_ ( + .CLK(clk), + .D(in), + .Q(inrise), + .RESET_B(_1_) + ); + sky130_fd_sc_hdll__dfrtp_1 _5_ ( + .CLK(_0_), + .D(in), + .Q(outfall), + .RESET_B(_1_) + ); + sky130_fd_sc_hdll__conb_1 _6_ ( + .HI(_1_) + ); endmodule diff --git a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v index bc0142f2..94d0d377 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isohi.v @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isohi #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = iso | in -); - - assign out = iso | in; +/* 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 index da1af532..ef1a4fea 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_isolo.v @@ -1,17 +1,33 @@ -//############################################################################# -//# Function: Power isolation circuit # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -module la_isolo #( - parameter PROP = "DEFAULT" -) ( - input iso, // isolation signal - input in, // input - output out // out = ~iso & in -); - - assign out = ~iso & in; +/* 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/auxlib/la_oddr.v b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v index 7f366700..dd630e05 100644 --- a/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v +++ b/lambdapdk/sky130/libs/sky130hdll/lambda/auxlib/la_oddr.v @@ -1,23 +1,48 @@ -//############################################################################# -//# Function: Dual data rate output buffer # -//# Copyright: Lambda Project Authors. All rights Reserved. # -//# License: MIT (see LICENSE file in Lambda repository) # -//############################################################################# +// //############################################################################# +// //# 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 -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; +/* 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_hdll__clkmux2_1 _0_ ( + .A0(in0), + .A1(in1_sh), + .S(clk), + .X(out) + ); + sky130_fd_sc_hdll__dlxtn_1 _1_ ( + .D(in1), + .GATE_N(clk), + .Q(in1_sh) + ); endmodule diff --git a/scripts/generate_lamdbalib.py b/scripts/generate_lamdbalib.py index 21c3306f..938846f7 100755 --- a/scripts/generate_lamdbalib.py +++ b/scripts/generate_lamdbalib.py @@ -276,9 +276,6 @@ def auxlib(): for pdk, info in libs.items(): target = info["target"] - if pdk != 'freepdk45': - continue - for lib in info['libs']: exclude = [*always_copy] exclude.extend(generate_libs[pdk][lib]["implemented"]) From 690b19dd9c60a9931c0ae7ff0b757595e5ab6589 Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Fri, 21 Jun 2024 17:38:29 -0400 Subject: [PATCH 12/12] update lambdalib --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 57e18de8..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.5" + "lambdalib == 0.2.6" ] [tool.tclint]