Hi Yaman,
thank you very much for the suggestion. I took a look at your code and it is great! However, I had some issues in integrating it with all the rest of the code that was written in Chisel3 (I am not so skilled with chisel).
I ended up using your methodology and I have created a black box, and then I have manually inserted BRAM FIFO Macro available within Vivado. It instantiates BRAM correcly during synthesis and now I am generating the bitstream for checking its functionality.
It is a pity that Chisel does not provides such functionality!
Thanks