112853Sgabeblack@google.com/*****************************************************************************
212853Sgabeblack@google.com
312853Sgabeblack@google.com  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
412853Sgabeblack@google.com  more contributor license agreements.  See the NOTICE file distributed
512853Sgabeblack@google.com  with this work for additional information regarding copyright ownership.
612853Sgabeblack@google.com  Accellera licenses this file to you under the Apache License, Version 2.0
712853Sgabeblack@google.com  (the "License"); you may not use this file except in compliance with the
812853Sgabeblack@google.com  License.  You may obtain a copy of the License at
912853Sgabeblack@google.com
1012853Sgabeblack@google.com    http://www.apache.org/licenses/LICENSE-2.0
1112853Sgabeblack@google.com
1212853Sgabeblack@google.com  Unless required by applicable law or agreed to in writing, software
1312853Sgabeblack@google.com  distributed under the License is distributed on an "AS IS" BASIS,
1412853Sgabeblack@google.com  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1512853Sgabeblack@google.com  implied.  See the License for the specific language governing
1612853Sgabeblack@google.com  permissions and limitations under the License.
1712853Sgabeblack@google.com
1812853Sgabeblack@google.com *****************************************************************************/
1912853Sgabeblack@google.com
2012853Sgabeblack@google.com/*****************************************************************************
2112853Sgabeblack@google.com
2212853Sgabeblack@google.com  sc_nbexterns.h -- External functions for both sc_signed and sc_unsigned
2312853Sgabeblack@google.com                    classes. These functions work on two parameters u and
2412853Sgabeblack@google.com                    v, and copy the result to the first parameter u. This
2512853Sgabeblack@google.com                    is also the reason that they are suffixed with _on_help.
2612853Sgabeblack@google.com
2712853Sgabeblack@google.com                    The vec_* functions are called through either these
2812853Sgabeblack@google.com                    functions or those in sc_nbfriends.cpp. The functions in
2912853Sgabeblack@google.com                    sc_nbfriends.cpp perform their work on two inputs u and v,
3012853Sgabeblack@google.com                    and return the result object.
3112853Sgabeblack@google.com
3212853Sgabeblack@google.com  Original Author: Ali Dasdan, Synopsys, Inc.
3312853Sgabeblack@google.com
3412853Sgabeblack@google.com *****************************************************************************/
3512853Sgabeblack@google.com
3612853Sgabeblack@google.com/*****************************************************************************
3712853Sgabeblack@google.com
3812853Sgabeblack@google.com  MODIFICATION LOG - modifiers, enter your name, affiliation, date and
3912853Sgabeblack@google.com  changes you are making here.
4012853Sgabeblack@google.com
4112853Sgabeblack@google.com      Name, Affiliation, Date:
4212853Sgabeblack@google.com  Description of Modification:
4312853Sgabeblack@google.com
4412853Sgabeblack@google.com *****************************************************************************/
4512853Sgabeblack@google.com
4612853Sgabeblack@google.com// $Log: sc_nbexterns.h,v $
4712853Sgabeblack@google.com// Revision 1.2  2011/02/18 20:19:15  acg
4812853Sgabeblack@google.com//  Andy Goodrich: updating Copyright notice.
4912853Sgabeblack@google.com//
5012853Sgabeblack@google.com// Revision 1.1.1.1  2006/12/15 20:20:05  acg
5112853Sgabeblack@google.com// SystemC 2.3
5212853Sgabeblack@google.com//
5312853Sgabeblack@google.com// Revision 1.3  2006/01/13 18:49:32  acg
5412853Sgabeblack@google.com// Added $Log command so that CVS check in comments are reproduced in the
5512853Sgabeblack@google.com// source.
5612853Sgabeblack@google.com//
5712853Sgabeblack@google.com
5812853Sgabeblack@google.com#ifndef __SYSTEMC_EXT_DT_INT_SC_NBEXTERNS_HH__
5912853Sgabeblack@google.com#define __SYSTEMC_EXT_DT_INT_SC_NBEXTERNS_HH__
6012853Sgabeblack@google.com
6112853Sgabeblack@google.com#include "sc_nbutils.hh"
6212853Sgabeblack@google.com
6312853Sgabeblack@google.comnamespace sc_dt
6412853Sgabeblack@google.com{
6512853Sgabeblack@google.com
6612853Sgabeblack@google.comextern void add_on_help(
6712853Sgabeblack@google.com        small_type &us, int unb, int und, sc_digit *ud,
6812853Sgabeblack@google.com        small_type vs, int vnb, int vnd, const sc_digit *vd);
6912853Sgabeblack@google.com
7012853Sgabeblack@google.comextern void mul_on_help_signed(
7112853Sgabeblack@google.com        small_type &us, int unb, int und, sc_digit *ud,
7212853Sgabeblack@google.com        int vnb, int vnd, const sc_digit *vd);
7312853Sgabeblack@google.com
7412853Sgabeblack@google.comvoid div_on_help_signed(
7512853Sgabeblack@google.com        small_type &us, int unb, int und, sc_digit *ud,
7612853Sgabeblack@google.com        int vnb, int vnd, const sc_digit *vd);
7712853Sgabeblack@google.com
7812853Sgabeblack@google.comextern void mod_on_help_signed(
7912853Sgabeblack@google.com        small_type &us, int unb, int und, sc_digit *ud,
8012853Sgabeblack@google.com        int vnb, int vnd, const sc_digit *vd);
8112853Sgabeblack@google.com
8212853Sgabeblack@google.comextern void mul_on_help_unsigned(
8312853Sgabeblack@google.com        small_type &us, int unb, int und, sc_digit *ud,
8412853Sgabeblack@google.com        int vnb, int vnd, const sc_digit *vd);
8512853Sgabeblack@google.com
8612853Sgabeblack@google.comvoid div_on_help_unsigned(
8712853Sgabeblack@google.com        small_type &us, int unb, int und, sc_digit *ud,
8812853Sgabeblack@google.com        int vnb, int vnd, const sc_digit *vd);
8912853Sgabeblack@google.com
9012853Sgabeblack@google.comextern void mod_on_help_unsigned(
9112853Sgabeblack@google.com        small_type &us, int unb, int und, sc_digit *ud,
9212853Sgabeblack@google.com        int vnb, int vnd, const sc_digit *vd);
9312853Sgabeblack@google.com
9412853Sgabeblack@google.comextern void and_on_help(
9512853Sgabeblack@google.com        small_type us, int unb, int und, sc_digit *ud,
9612853Sgabeblack@google.com        small_type vs, int vnb, int vnd, const sc_digit *vd);
9712853Sgabeblack@google.com
9812853Sgabeblack@google.comextern void or_on_help(
9912853Sgabeblack@google.com        small_type us, int unb, int und, sc_digit *ud,
10012853Sgabeblack@google.com        small_type vs, int vnb, int vnd, const sc_digit *vd);
10112853Sgabeblack@google.com
10212853Sgabeblack@google.comextern void xor_on_help(
10312853Sgabeblack@google.com        small_type us, int unb, int und, sc_digit *ud,
10412853Sgabeblack@google.com        small_type vs, int vnb, int vnd, const sc_digit *vd);
10512853Sgabeblack@google.com
10612853Sgabeblack@google.com} // namespace sc_dt
10712853Sgabeblack@google.com
10812853Sgabeblack@google.com#endif // __SYSTEMC_EXT_DT_INT_SC_NBEXTERNS_HH__
109