You can also use it to drive existing HDL and get input driven from Matlab
I havent used it for some years, but we used it in a closed loop control system. Having Matlab drive all the interfaces made the simulation hiddeously slow (it has probably improved in that time). To speed it up it was much easer to have matlab dump an entire array into an HDL wrapper and have the wrapper drive the interfaces when it detected data being input (using the 'transaction attribute in VHDL, as well as a control enable signal). It worked quite well as I could output tons of debug info directly from the VHDL, or view the waveform during the simulink run.