From 3dbb3755af1b4cbd94c595740bf3c2293db3f2ec Mon Sep 17 00:00:00 2001 From: aolofsson Date: Tue, 27 Jul 2021 22:24:40 -0400 Subject: [PATCH] Adding asiclib -Represent set of cells that need hard coded cells or hard coded gate level designs. --- asiclib/hdl/asic_and2.v | 16 +++++++++++++++ asiclib/hdl/asic_and3.v | 17 ++++++++++++++++ asiclib/hdl/asic_and4.v | 18 +++++++++++++++++ asiclib/hdl/asic_antenna.v | 13 ++++++++++++ asiclib/hdl/asic_ao21.v | 17 ++++++++++++++++ asiclib/hdl/asic_ao211.v | 18 +++++++++++++++++ asiclib/hdl/asic_ao22.v | 18 +++++++++++++++++ asiclib/hdl/asic_ao221.v | 19 ++++++++++++++++++ asiclib/hdl/asic_ao222.v | 20 ++++++++++++++++++ asiclib/hdl/asic_ao31.v | 18 +++++++++++++++++ asiclib/hdl/asic_ao311.v | 19 ++++++++++++++++++ asiclib/hdl/asic_ao32.v | 19 ++++++++++++++++++ asiclib/hdl/asic_ao33.v | 20 ++++++++++++++++++ asiclib/hdl/asic_aoi21.v | 17 ++++++++++++++++ asiclib/hdl/asic_aoi211.v | 18 +++++++++++++++++ asiclib/hdl/asic_aoi22.v | 18 +++++++++++++++++ asiclib/hdl/asic_aoi221.v | 19 ++++++++++++++++++ asiclib/hdl/asic_aoi222.v | 20 ++++++++++++++++++ asiclib/hdl/asic_aoi31.v | 18 +++++++++++++++++ asiclib/hdl/asic_aoi311.v | 19 ++++++++++++++++++ asiclib/hdl/asic_aoi32.v | 19 ++++++++++++++++++ asiclib/hdl/asic_aoi33.v | 20 ++++++++++++++++++ asiclib/hdl/asic_buf.v | 15 ++++++++++++++ asiclib/hdl/asic_clkand2.v | 16 +++++++++++++++ asiclib/hdl/asic_clkbuf.v | 15 ++++++++++++++ asiclib/hdl/asic_clkicgand.v | 23 +++++++++++++++++++++ asiclib/hdl/asic_clkicgor.v | 23 +++++++++++++++++++++ asiclib/hdl/asic_clkinv.v | 15 ++++++++++++++ asiclib/hdl/asic_clkmux2.v | 18 +++++++++++++++++ asiclib/hdl/asic_clknand2.v | 16 +++++++++++++++ asiclib/hdl/asic_clknor2.v | 16 +++++++++++++++ asiclib/hdl/asic_clkor2.v | 16 +++++++++++++++ asiclib/hdl/asic_clkxor2.v | 16 +++++++++++++++ asiclib/hdl/asic_csa32.v | 39 ++++++++++++++++++++++++++++++++++++ asiclib/hdl/asic_csa42.v | 23 +++++++++++++++++++++ asiclib/hdl/asic_decap.v | 13 ++++++++++++ asiclib/hdl/asic_delay.v | 15 ++++++++++++++ asiclib/hdl/asic_dffnq.v | 17 ++++++++++++++++ asiclib/hdl/asic_dffq.v | 17 ++++++++++++++++ asiclib/hdl/asic_dffqn.v | 17 ++++++++++++++++ asiclib/hdl/asic_dffrq.v | 22 ++++++++++++++++++++ asiclib/hdl/asic_dffrqn.v | 22 ++++++++++++++++++++ asiclib/hdl/asic_dffsq.v | 22 ++++++++++++++++++++ asiclib/hdl/asic_dffsqn.v | 22 ++++++++++++++++++++ asiclib/hdl/asic_dmux2.v | 20 ++++++++++++++++++ asiclib/hdl/asic_dmux3.v | 23 +++++++++++++++++++++ asiclib/hdl/asic_dmux4.v | 26 ++++++++++++++++++++++++ asiclib/hdl/asic_dmux5.v | 29 +++++++++++++++++++++++++++ asiclib/hdl/asic_dmux6.v | 32 +++++++++++++++++++++++++++++ asiclib/hdl/asic_dmux7.v | 35 ++++++++++++++++++++++++++++++++ asiclib/hdl/asic_dmux8.v | 38 +++++++++++++++++++++++++++++++++++ asiclib/hdl/asic_dsync.v | 27 +++++++++++++++++++++++++ asiclib/hdl/asic_footer.v | 18 +++++++++++++++++ asiclib/hdl/asic_header.v | 18 +++++++++++++++++ asiclib/hdl/asic_iddr.v | 28 ++++++++++++++++++++++++++ asiclib/hdl/asic_inv.v | 15 ++++++++++++++ asiclib/hdl/asic_keeper.v | 12 +++++++++++ asiclib/hdl/asic_latnq.v | 18 +++++++++++++++++ asiclib/hdl/asic_latq.v | 18 +++++++++++++++++ asiclib/hdl/asic_mux2.v | 17 ++++++++++++++++ asiclib/hdl/asic_mux3.v | 22 ++++++++++++++++++++ asiclib/hdl/asic_mux4.v | 23 +++++++++++++++++++++ asiclib/hdl/asic_muxi2.v | 18 +++++++++++++++++ asiclib/hdl/asic_muxi3.v | 21 +++++++++++++++++++ asiclib/hdl/asic_muxi4.v | 24 ++++++++++++++++++++++ asiclib/hdl/asic_nand2.v | 16 +++++++++++++++ asiclib/hdl/asic_nand3.v | 17 ++++++++++++++++ asiclib/hdl/asic_nand4.v | 18 +++++++++++++++++ asiclib/hdl/asic_nor2.v | 16 +++++++++++++++ asiclib/hdl/asic_nor3.v | 17 ++++++++++++++++ asiclib/hdl/asic_nor4.v | 18 +++++++++++++++++ asiclib/hdl/asic_oa21.v | 17 ++++++++++++++++ asiclib/hdl/asic_oa211.v | 18 +++++++++++++++++ asiclib/hdl/asic_oa22.v | 18 +++++++++++++++++ asiclib/hdl/asic_oa221.v | 19 ++++++++++++++++++ asiclib/hdl/asic_oa222.v | 20 ++++++++++++++++++ asiclib/hdl/asic_oa31.v | 18 +++++++++++++++++ asiclib/hdl/asic_oa311.v | 19 ++++++++++++++++++ asiclib/hdl/asic_oa32.v | 19 ++++++++++++++++++ asiclib/hdl/asic_oa33.v | 20 ++++++++++++++++++ asiclib/hdl/asic_oai21.v | 17 ++++++++++++++++ asiclib/hdl/asic_oai22.v | 18 +++++++++++++++++ asiclib/hdl/asic_oai221.v | 19 ++++++++++++++++++ asiclib/hdl/asic_oai222.v | 20 ++++++++++++++++++ asiclib/hdl/asic_oai31.v | 18 +++++++++++++++++ asiclib/hdl/asic_oai311.v | 19 ++++++++++++++++++ asiclib/hdl/asic_oai32.v | 19 ++++++++++++++++++ asiclib/hdl/asic_oai33.v | 20 ++++++++++++++++++ asiclib/hdl/asic_oddr.v | 24 ++++++++++++++++++++++ asiclib/hdl/asic_or2.v | 16 +++++++++++++++ asiclib/hdl/asic_or3.v | 17 ++++++++++++++++ asiclib/hdl/asic_or4.v | 18 +++++++++++++++++ asiclib/hdl/asic_rsync.v | 25 +++++++++++++++++++++++ asiclib/hdl/asic_sdffq.v | 20 ++++++++++++++++++ asiclib/hdl/asic_sdffqn.v | 20 ++++++++++++++++++ asiclib/hdl/asic_sdffrq.v | 25 +++++++++++++++++++++++ asiclib/hdl/asic_sdffrqn.v | 24 ++++++++++++++++++++++ asiclib/hdl/asic_sdffsq.v | 24 ++++++++++++++++++++++ asiclib/hdl/asic_sdffsqn.v | 24 ++++++++++++++++++++++ asiclib/hdl/asic_tbuf.v | 16 +++++++++++++++ asiclib/hdl/asic_tiehi.v | 14 +++++++++++++ asiclib/hdl/asic_tielo.v | 14 +++++++++++++ asiclib/hdl/asic_xnor2.v | 16 +++++++++++++++ asiclib/hdl/asic_xnor3.v | 17 ++++++++++++++++ asiclib/hdl/asic_xnor4.v | 18 +++++++++++++++++ asiclib/hdl/asic_xor2.v | 16 +++++++++++++++ asiclib/hdl/asic_xor3.v | 17 ++++++++++++++++ asiclib/hdl/asic_xor4.v | 18 +++++++++++++++++ asiclib/rename.py | 8 ++++++++ 109 files changed, 2111 insertions(+) create mode 100644 asiclib/hdl/asic_and2.v create mode 100644 asiclib/hdl/asic_and3.v create mode 100644 asiclib/hdl/asic_and4.v create mode 100644 asiclib/hdl/asic_antenna.v create mode 100644 asiclib/hdl/asic_ao21.v create mode 100644 asiclib/hdl/asic_ao211.v create mode 100644 asiclib/hdl/asic_ao22.v create mode 100644 asiclib/hdl/asic_ao221.v create mode 100644 asiclib/hdl/asic_ao222.v create mode 100644 asiclib/hdl/asic_ao31.v create mode 100644 asiclib/hdl/asic_ao311.v create mode 100644 asiclib/hdl/asic_ao32.v create mode 100644 asiclib/hdl/asic_ao33.v create mode 100644 asiclib/hdl/asic_aoi21.v create mode 100644 asiclib/hdl/asic_aoi211.v create mode 100644 asiclib/hdl/asic_aoi22.v create mode 100644 asiclib/hdl/asic_aoi221.v create mode 100644 asiclib/hdl/asic_aoi222.v create mode 100644 asiclib/hdl/asic_aoi31.v create mode 100644 asiclib/hdl/asic_aoi311.v create mode 100644 asiclib/hdl/asic_aoi32.v create mode 100644 asiclib/hdl/asic_aoi33.v create mode 100644 asiclib/hdl/asic_buf.v create mode 100644 asiclib/hdl/asic_clkand2.v create mode 100644 asiclib/hdl/asic_clkbuf.v create mode 100644 asiclib/hdl/asic_clkicgand.v create mode 100644 asiclib/hdl/asic_clkicgor.v create mode 100644 asiclib/hdl/asic_clkinv.v create mode 100644 asiclib/hdl/asic_clkmux2.v create mode 100644 asiclib/hdl/asic_clknand2.v create mode 100644 asiclib/hdl/asic_clknor2.v create mode 100644 asiclib/hdl/asic_clkor2.v create mode 100644 asiclib/hdl/asic_clkxor2.v create mode 100644 asiclib/hdl/asic_csa32.v create mode 100644 asiclib/hdl/asic_csa42.v create mode 100644 asiclib/hdl/asic_decap.v create mode 100644 asiclib/hdl/asic_delay.v create mode 100644 asiclib/hdl/asic_dffnq.v create mode 100644 asiclib/hdl/asic_dffq.v create mode 100644 asiclib/hdl/asic_dffqn.v create mode 100644 asiclib/hdl/asic_dffrq.v create mode 100644 asiclib/hdl/asic_dffrqn.v create mode 100644 asiclib/hdl/asic_dffsq.v create mode 100644 asiclib/hdl/asic_dffsqn.v create mode 100644 asiclib/hdl/asic_dmux2.v create mode 100644 asiclib/hdl/asic_dmux3.v create mode 100644 asiclib/hdl/asic_dmux4.v create mode 100644 asiclib/hdl/asic_dmux5.v create mode 100644 asiclib/hdl/asic_dmux6.v create mode 100644 asiclib/hdl/asic_dmux7.v create mode 100644 asiclib/hdl/asic_dmux8.v create mode 100644 asiclib/hdl/asic_dsync.v create mode 100644 asiclib/hdl/asic_footer.v create mode 100644 asiclib/hdl/asic_header.v create mode 100644 asiclib/hdl/asic_iddr.v create mode 100644 asiclib/hdl/asic_inv.v create mode 100644 asiclib/hdl/asic_keeper.v create mode 100644 asiclib/hdl/asic_latnq.v create mode 100644 asiclib/hdl/asic_latq.v create mode 100644 asiclib/hdl/asic_mux2.v create mode 100644 asiclib/hdl/asic_mux3.v create mode 100644 asiclib/hdl/asic_mux4.v create mode 100644 asiclib/hdl/asic_muxi2.v create mode 100644 asiclib/hdl/asic_muxi3.v create mode 100644 asiclib/hdl/asic_muxi4.v create mode 100644 asiclib/hdl/asic_nand2.v create mode 100644 asiclib/hdl/asic_nand3.v create mode 100644 asiclib/hdl/asic_nand4.v create mode 100644 asiclib/hdl/asic_nor2.v create mode 100644 asiclib/hdl/asic_nor3.v create mode 100644 asiclib/hdl/asic_nor4.v create mode 100644 asiclib/hdl/asic_oa21.v create mode 100644 asiclib/hdl/asic_oa211.v create mode 100644 asiclib/hdl/asic_oa22.v create mode 100644 asiclib/hdl/asic_oa221.v create mode 100644 asiclib/hdl/asic_oa222.v create mode 100644 asiclib/hdl/asic_oa31.v create mode 100644 asiclib/hdl/asic_oa311.v create mode 100644 asiclib/hdl/asic_oa32.v create mode 100644 asiclib/hdl/asic_oa33.v create mode 100644 asiclib/hdl/asic_oai21.v create mode 100644 asiclib/hdl/asic_oai22.v create mode 100644 asiclib/hdl/asic_oai221.v create mode 100644 asiclib/hdl/asic_oai222.v create mode 100644 asiclib/hdl/asic_oai31.v create mode 100644 asiclib/hdl/asic_oai311.v create mode 100644 asiclib/hdl/asic_oai32.v create mode 100644 asiclib/hdl/asic_oai33.v create mode 100644 asiclib/hdl/asic_oddr.v create mode 100644 asiclib/hdl/asic_or2.v create mode 100644 asiclib/hdl/asic_or3.v create mode 100644 asiclib/hdl/asic_or4.v create mode 100644 asiclib/hdl/asic_rsync.v create mode 100644 asiclib/hdl/asic_sdffq.v create mode 100644 asiclib/hdl/asic_sdffqn.v create mode 100644 asiclib/hdl/asic_sdffrq.v create mode 100644 asiclib/hdl/asic_sdffrqn.v create mode 100644 asiclib/hdl/asic_sdffsq.v create mode 100644 asiclib/hdl/asic_sdffsqn.v create mode 100644 asiclib/hdl/asic_tbuf.v create mode 100644 asiclib/hdl/asic_tiehi.v create mode 100644 asiclib/hdl/asic_tielo.v create mode 100644 asiclib/hdl/asic_xnor2.v create mode 100644 asiclib/hdl/asic_xnor3.v create mode 100644 asiclib/hdl/asic_xnor4.v create mode 100644 asiclib/hdl/asic_xor2.v create mode 100644 asiclib/hdl/asic_xor3.v create mode 100644 asiclib/hdl/asic_xor4.v create mode 100644 asiclib/rename.py diff --git a/asiclib/hdl/asic_and2.v b/asiclib/hdl/asic_and2.v new file mode 100644 index 0000000..6b5f541 --- /dev/null +++ b/asiclib/hdl/asic_and2.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: 2-Input And Gate # +//# Copyright: OH Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_and2 + ( + input a, + input b, + output z + ); + + assign z = a & b; + +endmodule diff --git a/asiclib/hdl/asic_and3.v b/asiclib/hdl/asic_and3.v new file mode 100644 index 0000000..848aa8f --- /dev/null +++ b/asiclib/hdl/asic_and3.v @@ -0,0 +1,17 @@ +//############################################################################# +//# Function: 3-Input And Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_and3 + ( + input a, + input b, + input c, + output z + ); + + assign z = a & b & c; + +endmodule diff --git a/asiclib/hdl/asic_and4.v b/asiclib/hdl/asic_and4.v new file mode 100644 index 0000000..ab73c91 --- /dev/null +++ b/asiclib/hdl/asic_and4.v @@ -0,0 +1,18 @@ +//############################################################################# +//# Function: 4-Input And Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_and4 + ( + input a, + input b, + input c, + input d, + output z + ); + + assign z = a & b & c & d; + +endmodule diff --git a/asiclib/hdl/asic_antenna.v b/asiclib/hdl/asic_antenna.v new file mode 100644 index 0000000..4ceb48e --- /dev/null +++ b/asiclib/hdl/asic_antenna.v @@ -0,0 +1,13 @@ +//############################################################################# +//# Function: Antenna Diode # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_antenna + ( + input vss, + output z + ); + +endmodule diff --git a/asiclib/hdl/asic_ao21.v b/asiclib/hdl/asic_ao21.v new file mode 100644 index 0000000..606b866 --- /dev/null +++ b/asiclib/hdl/asic_ao21.v @@ -0,0 +1,17 @@ +//############################################################################# +//# Function: And-Or (ao21) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao21 + ( + input a0, + input a1, + input b0, + output z + ); + + assign z = (a0 & a1) | b0; + +endmodule diff --git a/asiclib/hdl/asic_ao211.v b/asiclib/hdl/asic_ao211.v new file mode 100644 index 0000000..62570ff --- /dev/null +++ b/asiclib/hdl/asic_ao211.v @@ -0,0 +1,18 @@ +//############################################################################# +//# Function: And-Or (ao211) Gate # +//# Copyright: OH Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao211 + ( + input a0, + input a1, + input b0, + input c0, + output z + ); + + assign z = (a0 & a1) | b0 | c0; + +endmodule diff --git a/asiclib/hdl/asic_ao22.v b/asiclib/hdl/asic_ao22.v new file mode 100644 index 0000000..3ef9dda --- /dev/null +++ b/asiclib/hdl/asic_ao22.v @@ -0,0 +1,18 @@ +//############################################################################# +//# Function: And-Or (ao22) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao22 + ( + input a0, + input a1, + input b0, + input b1, + output z + ); + + assign z = (a0 & a1) | (b0 & b1); + +endmodule diff --git a/asiclib/hdl/asic_ao221.v b/asiclib/hdl/asic_ao221.v new file mode 100644 index 0000000..9d7c9c6 --- /dev/null +++ b/asiclib/hdl/asic_ao221.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: And-Or (ao221) Gate # +//# Copyright: OH Project Authors. All rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao221 + ( + input a0, + input a1, + input b0, + input b1, + input c0, + output z + ); + + assign z = (a0 & a1) | (b0 & b1) | (c0); + +endmodule diff --git a/asiclib/hdl/asic_ao222.v b/asiclib/hdl/asic_ao222.v new file mode 100644 index 0000000..0e33234 --- /dev/null +++ b/asiclib/hdl/asic_ao222.v @@ -0,0 +1,20 @@ +//############################################################################# +//# Function: And-Or (ao222) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao222 + ( + input a0, + input a1, + input b0, + input b1, + input c0, + input c1, + output z + ); + + assign z = (a0 & a1) | (b0 & b1) | (c0 & c1); + +endmodule diff --git a/asiclib/hdl/asic_ao31.v b/asiclib/hdl/asic_ao31.v new file mode 100644 index 0000000..40b8ce5 --- /dev/null +++ b/asiclib/hdl/asic_ao31.v @@ -0,0 +1,18 @@ +//############################################################################# +//# Function: And-Or (ao31) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao31 + ( + input a0, + input a1, + input a2, + input b0, + output z + ); + + assign z = (a0 & a1 & a2) | b0; + +endmodule diff --git a/asiclib/hdl/asic_ao311.v b/asiclib/hdl/asic_ao311.v new file mode 100644 index 0000000..8d578d0 --- /dev/null +++ b/asiclib/hdl/asic_ao311.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: And-Or (ao311) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao311 + ( + input a0, + input a1, + input a2, + input b0, + input c0, + output z + ); + + assign z = (a0 & a1 & a2) | b0 | c0; + +endmodule diff --git a/asiclib/hdl/asic_ao32.v b/asiclib/hdl/asic_ao32.v new file mode 100644 index 0000000..ccb469d --- /dev/null +++ b/asiclib/hdl/asic_ao32.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: And-Or (ao32) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao32 + ( + input a0, + input a1, + input a2, + input b0, + input b1, + output z + ); + + assign z = (a0 & a1 & a2) | (b0 & b1); + +endmodule diff --git a/asiclib/hdl/asic_ao33.v b/asiclib/hdl/asic_ao33.v new file mode 100644 index 0000000..331c8bd --- /dev/null +++ b/asiclib/hdl/asic_ao33.v @@ -0,0 +1,20 @@ +//############################################################################# +//# Function: And-Or (ao33) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_ao33 + ( + input a0, + input a1, + input a2, + input b0, + input b1, + input b2, + output z + ); + + assign z = (a0 & a1 & a2) | (b0 & b1 & b2); + +endmodule diff --git a/asiclib/hdl/asic_aoi21.v b/asiclib/hdl/asic_aoi21.v new file mode 100644 index 0000000..39752dc --- /dev/null +++ b/asiclib/hdl/asic_aoi21.v @@ -0,0 +1,17 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi21) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi21 + ( + input a0, + input a1, + input b0, + output z + ); + + assign z = ~((a0 & a1) | b0); + +endmodule diff --git a/asiclib/hdl/asic_aoi211.v b/asiclib/hdl/asic_aoi211.v new file mode 100644 index 0000000..5a7d680 --- /dev/null +++ b/asiclib/hdl/asic_aoi211.v @@ -0,0 +1,18 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi211) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi211 + ( + input a0, + input a1, + input b0, + input c0, + output z + ); + + assign z = ~((a0 & a1) | b0 | c0); + +endmodule diff --git a/asiclib/hdl/asic_aoi22.v b/asiclib/hdl/asic_aoi22.v new file mode 100644 index 0000000..00fe591 --- /dev/null +++ b/asiclib/hdl/asic_aoi22.v @@ -0,0 +1,18 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi22) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi22 + ( + input a0, + input a1, + input b0, + input b1, + output z + ); + + assign z = ~((a0 & a1) | (b0 & b1)); + +endmodule diff --git a/asiclib/hdl/asic_aoi221.v b/asiclib/hdl/asic_aoi221.v new file mode 100644 index 0000000..ec83019 --- /dev/null +++ b/asiclib/hdl/asic_aoi221.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi221) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi221 + ( + input a0, + input a1, + input b0, + input b1, + input c0, + output z + ); + + assign z = ~((a0 & a1) | (b0 & b1) | c0); + +endmodule diff --git a/asiclib/hdl/asic_aoi222.v b/asiclib/hdl/asic_aoi222.v new file mode 100644 index 0000000..090dc7d --- /dev/null +++ b/asiclib/hdl/asic_aoi222.v @@ -0,0 +1,20 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi222) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi222 + ( + input a0, + input a1, + input b0, + input b1, + input c0, + input c1, + output z + ); + + assign z = ~((a0 & a1) | (b0 & b1) | (c0 & c1)); + +endmodule diff --git a/asiclib/hdl/asic_aoi31.v b/asiclib/hdl/asic_aoi31.v new file mode 100644 index 0000000..590c0c0 --- /dev/null +++ b/asiclib/hdl/asic_aoi31.v @@ -0,0 +1,18 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi31) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi31 + ( + input a0, + input a1, + input a2, + input b0, + output z + ); + + assign z = ~((a0 & a1 & a2) | b0); + +endmodule diff --git a/asiclib/hdl/asic_aoi311.v b/asiclib/hdl/asic_aoi311.v new file mode 100644 index 0000000..c83ff49 --- /dev/null +++ b/asiclib/hdl/asic_aoi311.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi311) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi311 + ( + input a0, + input a1, + input a2, + input b0, + input c0, + output z + ); + + assign z = ~((a0 & a1 & a2) | b0 | c0); + +endmodule diff --git a/asiclib/hdl/asic_aoi32.v b/asiclib/hdl/asic_aoi32.v new file mode 100644 index 0000000..5082950 --- /dev/null +++ b/asiclib/hdl/asic_aoi32.v @@ -0,0 +1,19 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi32) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi32 + ( + input a0, + input a1, + input a2, + input b0, + input b1, + output z + ); + + assign z = ~((a0 & a1 & a2) | (b0 & b1)); + +endmodule diff --git a/asiclib/hdl/asic_aoi33.v b/asiclib/hdl/asic_aoi33.v new file mode 100644 index 0000000..64d5356 --- /dev/null +++ b/asiclib/hdl/asic_aoi33.v @@ -0,0 +1,20 @@ +//############################################################################# +//# Function: And-Or-Inverter (aoi33) Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_aoi33 + ( + input a0, + input a1, + input a2, + input b0, + input b1, + input b2, + output z + ); + + assign z = ~((a0 & a1 & a2) | (b0 & b1 & b2)); + +endmodule diff --git a/asiclib/hdl/asic_buf.v b/asiclib/hdl/asic_buf.v new file mode 100644 index 0000000..795fe8f --- /dev/null +++ b/asiclib/hdl/asic_buf.v @@ -0,0 +1,15 @@ +//############################################################################# +//# Function: Non-inverting Buffer # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_buf + ( + input a, + output z + ); + + assign z = a; + +endmodule diff --git a/asiclib/hdl/asic_clkand2.v b/asiclib/hdl/asic_clkand2.v new file mode 100644 index 0000000..730949f --- /dev/null +++ b/asiclib/hdl/asic_clkand2.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: 2 Input Clock And Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clkand2 + ( + input a, + input b, + output z + ); + + assign z = a & b; + +endmodule diff --git a/asiclib/hdl/asic_clkbuf.v b/asiclib/hdl/asic_clkbuf.v new file mode 100644 index 0000000..c0e32cc --- /dev/null +++ b/asiclib/hdl/asic_clkbuf.v @@ -0,0 +1,15 @@ +//############################################################################# +//# Function: Non-inverting Clock Buffer # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clkbuf + ( + input a, + output z + ); + + assign z = a; + +endmodule diff --git a/asiclib/hdl/asic_clkicgand.v b/asiclib/hdl/asic_clkicgand.v new file mode 100644 index 0000000..4cf207d --- /dev/null +++ b/asiclib/hdl/asic_clkicgand.v @@ -0,0 +1,23 @@ +//############################################################################# +//# Function: Integrated "And" Clock Gating Cell (And) # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clkicgand + ( + 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 diff --git a/asiclib/hdl/asic_clkicgor.v b/asiclib/hdl/asic_clkicgor.v new file mode 100644 index 0000000..520b5d4 --- /dev/null +++ b/asiclib/hdl/asic_clkicgor.v @@ -0,0 +1,23 @@ +//############################################################################# +//# Function: Integrated "Or" Clock Gating Cell # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clkicgor + ( + 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 diff --git a/asiclib/hdl/asic_clkinv.v b/asiclib/hdl/asic_clkinv.v new file mode 100644 index 0000000..ba121bb --- /dev/null +++ b/asiclib/hdl/asic_clkinv.v @@ -0,0 +1,15 @@ +//############################################################################# +//# Function: Clock Inverter # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clkinv + ( + input a, + output z + ); + + assign z = ~a; + +endmodule diff --git a/asiclib/hdl/asic_clkmux2.v b/asiclib/hdl/asic_clkmux2.v new file mode 100644 index 0000000..24a3fde --- /dev/null +++ b/asiclib/hdl/asic_clkmux2.v @@ -0,0 +1,18 @@ +//############################################################################# +//# Function: 2:1 Clock Mux # +//############################################################################# +//# Author: Andreas Olofsson # +//# License: MIT (see LICENSE file in OH! repository) # +//############################################################################# + +module asic_clkmux2 + ( + input clk0, + input clk1, + input sel, + output z + ); + + assign z = sel ? clk0 : clk1; + +endmodule diff --git a/asiclib/hdl/asic_clknand2.v b/asiclib/hdl/asic_clknand2.v new file mode 100644 index 0000000..85d83c1 --- /dev/null +++ b/asiclib/hdl/asic_clknand2.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: 2 Input Clock Nand Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clknand2 + ( + input a, + input b, + output z + ); + + assign z = ~(a & b); + +endmodule diff --git a/asiclib/hdl/asic_clknor2.v b/asiclib/hdl/asic_clknor2.v new file mode 100644 index 0000000..bba37ad --- /dev/null +++ b/asiclib/hdl/asic_clknor2.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: 2-Input Clock NOr Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clknor2 + ( + input a, + input b, + output z + ); + + assign z = ~(a | b); + +endmodule diff --git a/asiclib/hdl/asic_clkor2.v b/asiclib/hdl/asic_clkor2.v new file mode 100644 index 0000000..61067a5 --- /dev/null +++ b/asiclib/hdl/asic_clkor2.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: 2-Input Clock Or Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clkor2 + ( + input a, + input b, + output z + ); + + assign z = a | b; + +endmodule diff --git a/asiclib/hdl/asic_clkxor2.v b/asiclib/hdl/asic_clkxor2.v new file mode 100644 index 0000000..350e062 --- /dev/null +++ b/asiclib/hdl/asic_clkxor2.v @@ -0,0 +1,16 @@ +//############################################################################# +//# Function: 2-Input Clock Xor Gate # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_clkxor2 + ( + input a, + input b, + output z + ); + + assign z = a ^ b; + +endmodule diff --git a/asiclib/hdl/asic_csa32.v b/asiclib/hdl/asic_csa32.v new file mode 100644 index 0000000..13fc8f9 --- /dev/null +++ b/asiclib/hdl/asic_csa32.v @@ -0,0 +1,39 @@ +//############################################################################# +//# Function: Carry Save Adder (3:2) # +//# Copyright: OH Project Authors. ALl rights Reserved. # +//# License: MIT (see LICENSE file in OH repository) # +//############################################################################# + +module asic_csa32 + #(parameter N = 1, // vector width + parameter SYN = "TRUE", // synthesizable (or not) + parameter TYPE = "DEFAULT" // scell type/size + ) + ( input [N-1:0] in0, // input + input [N-1:0] in1, // input + input [N-1:0] in2, // input + output [N-1:0] s, // sum + output [N-1:0] c // carry + ); + + generate + if(SYN == "TRUE") begin + assign s[N-1:0] = in0[N-1:0] ^ in1[N-1:0] ^ in2[N-1:0]; + + assign c[N-1:0] = (in0[N-1:0] & in1[N-1:0]) | + (in1[N-1:0] & in2[N-1:0]) | + (in2[N-1:0] & in0[N-1:0] ); + end + else begin + genvar i; + for (i=0;i