Hi @aesq ,
Upon closer inspection of your original question, I now see that the byte enable aspect of your question is actually just a red herring.
I believe that the fundamental limitation you're running into is that the Stratix 10 M20K block RAM does not physically support true dual port ("TDP") operation with independent clocks. That's even without byte enables.
The Stratix 10 M20K block RAM does support simple dual port ("SDP") operation, i.e. one read-only port and one write-only port, with independent clocks. But not true dual port, i.e. two independent read+write ports.
So, bottom line, you should consider taking a different approach to handling the clock domain crossing.
You could potentially emulate TDP behavior using logic around the physical block RAM. And in fact I think Intel may have canned IP available to do just that, although I can't attest to its quality or applicability, I've not used it.
There are also many other (arguably better) ways you can implement the exchange of data between your two clock domains, using a different approach at the design level, not requiring TDP RAM. For example, using separate paths for each of the two directions of data flow, which could be implemented using SDP RAM. But that's design architecture, a separate broader topic.
-Roee