diff options
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H | 32 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H | 18 |
2 files changed, 50 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H index 2223cf4cf..c99a9cc02 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H @@ -1754,6 +1754,38 @@ class program return fapi2::current_err; } + /// + /// @brief checks if two programs are equal + /// @param[in] i_rhs program to compare + /// @return bool true if equal + /// + inline bool operator==( const program<T>& i_rhs ) const + { + //checks the vector first, to save time if they're not equal (no sense in checking everything else) + if(iv_subtests != i_rhs.iv_subtests) + { + return false; + } + + //checks everything else + bool l_equal = iv_parameters == i_rhs.iv_parameters; + l_equal &= iv_addr_gen == i_rhs.iv_addr_gen; + l_equal &= iv_test_type == i_rhs.iv_test_type; + l_equal &= iv_poll == i_rhs.iv_poll; + l_equal &= iv_addr_map0 == i_rhs.iv_addr_map0; + l_equal &= iv_addr_map1 == i_rhs.iv_addr_map1; + l_equal &= iv_addr_map2 == i_rhs.iv_addr_map2; + l_equal &= iv_addr_map3 == i_rhs.iv_addr_map3; + l_equal &= iv_config == i_rhs.iv_config; + l_equal &= iv_control == i_rhs.iv_control; + l_equal &= iv_async == i_rhs.iv_async; + l_equal &= iv_pattern == i_rhs.iv_pattern; + l_equal &= iv_thresholds == i_rhs.iv_thresholds; + + //returns result + return l_equal; + } + // Vector of subtests. Note the MCBIST subtests are spread across // 8 registers - 4 subtests fit in one 64b register // (16 bits/test, 4 x 16 == 64, 4x8 = 32 subtests) diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H index 68752e4b9..016f7ea33 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H @@ -101,6 +101,24 @@ struct poll_parameters // The count of polls to make uint64_t iv_poll_count; + /// + /// @brief checks if two poll_parameters are equal + /// @param[in] i_rhs poll_parameters to compare + /// @return bool true if equal + /// + inline bool operator==( const poll_parameters& i_rhs ) const + { + //checks equality + bool l_equal = iv_initial_delay == i_rhs.iv_initial_delay; + l_equal &= iv_initial_sim_delay == i_rhs.iv_initial_sim_delay; + l_equal &= iv_delay == i_rhs.iv_delay; + l_equal &= iv_sim_delay == i_rhs.iv_sim_delay; + l_equal &= iv_poll_count == i_rhs.iv_poll_count; + + //returns the result + return l_equal; + } + poll_parameters( const uint64_t i_initial_delay = DELAY_10NS, const uint64_t i_initial_sim_delay = 200, const uint64_t i_delay = DELAY_10NS, |