Простого решения не существует.
Большинство данных с двумя портами относятся к типу производитель-потребитель, поэтому указатель считываемых данных всегда находится за указателем записи данных. FIFO, являющийся ярким примером этого.
Если у вас действительно есть несколько процессов, которые могут записывать в одно и то же место, у вас есть проблема. Я сильно подозреваю, что вы спроектировали свою систему неправильно.
В Verilog вы можете проверить, совпадают ли адреса записи, и если они одинаковы, используйте арбитр, чтобы пропустить только один раз за раз. После этого у вас будут «определенные данные». Однако у вас все еще будет состояние гонки, поскольку чтение процессора может происходить между любой записью и сбором «старых» данных.