sc_ufix.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 1,448 行 · 第 1/5 页

H
1,448
字号
#define DEFN_ASN_OP_T(op,op2,tp)                                              \inline                                                                        \sc_ufix&                                                                      \sc_ufix::operator op ( const tp& b )                                          \{                                                                             \    SC_FXNUM_OBSERVER_READ_( *this )                                          \    b.observer_read();                                                        \    int iwl_c = iwl();                                                        \    for( int i = iwl_c - wl(); i < iwl_c; ++ i )                              \	set_bit( i, get_bit( i ) op2 b.get_bit( i ) );                        \    cast();                                                                   \    SC_FXNUM_OBSERVER_WRITE_( *this )                                         \    return *this;                                                             \}DEFN_ASN_OP_T(&=,&&,sc_ufix)DEFN_ASN_OP_T(&=,&&,sc_ufix_fast)DEFN_ASN_OP_T(|=,||,sc_ufix)DEFN_ASN_OP_T(|=,||,sc_ufix_fast)DEFN_ASN_OP_T(^=,!=,sc_ufix)DEFN_ASN_OP_T(^=,!=,sc_ufix_fast)#undef DEFN_ASN_OP_T// auto-increment and auto-decrementinlineconst sc_fxvalsc_ufix::operator ++ ( int ){    return sc_fxval( sc_fxnum::operator ++ ( 0 ) );}inlineconst sc_fxvalsc_ufix::operator -- ( int ){    return sc_fxval( sc_fxnum::operator -- ( 0 ) );}inlinesc_ufix&sc_ufix::operator ++ (){    sc_fxnum::operator ++ ();    return *this;}inlinesc_ufix&sc_ufix::operator -- (){    sc_fxnum::operator -- ();    return *this;}// ----------------------------------------------------------------------------//  CLASS : sc_ufix_fast////  "Unconstrained" unsigned fixed-point class; limited precision.// ----------------------------------------------------------------------------// constructorsinlinesc_ufix_fast::sc_ufix_fast( sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params(),		 SC_US_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( int wl_, int iwl_,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_ ),		 SC_US_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( sc_q_mode qm, sc_o_mode om,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( qm, om ),		 SC_US_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( sc_q_mode qm, sc_o_mode om, int nb,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( qm, om, nb ),		 SC_US_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( int wl_, int iwl_, sc_q_mode qm, sc_o_mode om,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_, qm, om ),		 SC_US_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( int wl_, int iwl_,			    sc_q_mode qm, sc_o_mode om, int nb,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_, qm, om, nb ),		 SC_US_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( const sc_fxcast_switch& cast_sw,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params(),		 SC_US_,		 cast_sw,		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( int wl_, int iwl_,			    const sc_fxcast_switch& cast_sw,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_ ),		 SC_US_,		 cast_sw,		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( sc_q_mode qm, sc_o_mode om,			    const sc_fxcast_switch& cast_sw,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( qm, om ),		 SC_US_,		 cast_sw,		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( sc_q_mode qm, sc_o_mode om, int nb,			    const sc_fxcast_switch& cast_sw,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( qm, om, nb ),		 SC_US_,		 cast_sw,		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( int wl_, int iwl_, sc_q_mode qm, sc_o_mode om,			    const sc_fxcast_switch& cast_sw,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_, qm, om ),		 SC_US_,		 cast_sw,		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( int wl_, int iwl_,			    sc_q_mode qm, sc_o_mode om, int nb,			    const sc_fxcast_switch& cast_sw,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( sc_fxtype_params( wl_, iwl_, qm, om, nb ),		 SC_US_,		 cast_sw,		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( const sc_fxtype_params& type_params,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( type_params,		 SC_US_,		 sc_fxcast_switch(),		 observer_ ){}inlinesc_ufix_fast::sc_ufix_fast( const sc_fxtype_params& type_params,			    const sc_fxcast_switch& cast_sw,			    sc_fxnum_fast_observer* observer_ ): sc_fxnum_fast( type_params,		 SC_US_,		 cast_sw,		 observer_ ){}#define DEFN_CTORS_T_A(tp)                                                    \inline                                                                        \sc_ufix_fast::sc_ufix_fast( tp a,                                             \			    sc_fxnum_fast_observer* observer_ )               \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params(),                                          \		 SC_US_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_ufix_fast::sc_ufix_fast( tp a,                                             \			    int wl_, int iwl_,                                \			    sc_fxnum_fast_observer* observer_ )               \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( wl_, iwl_ ),                               \		 SC_US_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_ufix_fast::sc_ufix_fast( tp a,                                             \			    sc_q_mode qm, sc_o_mode om,                       \			    sc_fxnum_fast_observer* observer_ )               \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( qm, om ),                                  \		 SC_US_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_ufix_fast::sc_ufix_fast( tp a,                                             \			    sc_q_mode qm, sc_o_mode om, int nb,               \			    sc_fxnum_fast_observer* observer_ )               \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( qm, om, nb ),                              \		 SC_US_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_ufix_fast::sc_ufix_fast( tp a,                                             \			    int wl_, int iwl_, sc_q_mode qm, sc_o_mode om,    \			    sc_fxnum_fast_observer* observer_ )               \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( wl_, iwl_, qm, om ),                       \		 SC_US_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_ufix_fast::sc_ufix_fast( tp a,                                             \			    int wl_, int iwl_,                                \			    sc_q_mode qm, sc_o_mode om, int nb,               \			    sc_fxnum_fast_observer* observer_ )               \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( wl_, iwl_, qm, om, nb ),                   \		 SC_US_,                                                      \		 sc_fxcast_switch(),                                          \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_ufix_fast::sc_ufix_fast( tp a,                                             \			    const sc_fxcast_switch& cast_sw,                  \			    sc_fxnum_fast_observer* observer_ )               \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params(),                                          \		 SC_US_,                                                      \		 cast_sw,                                                     \		 observer_ )                                                  \{}                                                                            \                                                                              \inline                                                                        \sc_ufix_fast::sc_ufix_fast( tp a,                                             \			    int wl_, int iwl_,                                \			    const sc_fxcast_switch& cast_sw,                  \			    sc_fxnum_fast_observer* observer_ )               \: sc_fxnum_fast( a,                                                           \		 sc_fxtype_params( wl_, iwl_ ),                               \		 SC_US_,                                                      \		 cast_sw,                                                     \		 observer_ )                                                  \{}                       

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?