Can't Search for specific value at RAM - verilog
A physical memory has a fixed number of read (and write) ports. If you want to search for a value inside the RAM, you would need to read every entry. So either you have enough ports to read them all in parallel, or you need to iterate using the read ports you have over multiple cycles.

Really, you need to google CAM (content-addressable memory), that's what you are trying to build, and they are not built from standard memory blocks.

Among other issues in your code: your memory doesn't seem to actually respond to read requests (nothing is driving read_data), so no wonder you get don't care results.