I am having doubt that suppose you wants to verify IP of any RAM (or any other memory) than how you willl verify ?? you will go for randomization method or you will check all location of that memory ?
above mentioned trick is MBIST!! .....
mbist controller does same thing... writes and reads same value with different squence.. better go thru MBIST concept n implement in ur code !!
MARCH is good enough. It is trade off between fault coverage and testing time (10*N).
Write0 from address 0...00 to F...FF (N)
(Read0 -> Write1) from address 0...00 to F...FF (2N)
(Read1 -> Write0) from address 0...00 to F...FF (2N)
(Read0 -> Write1) from address F...FF to 0...00 (2N)
(Read1 -> Write0) from address F...FF to 0...00 (2N)
Read 0 from address 0...00 to F...FF (N)
Totally 10N.