Both of these methods should be able to be stored as blocks in a library model. The difference between the two lies largely in the Simulink simulation behavior.
The Black Box subsystem approach will provide you with a block that uses your HDL code verbatim for HDL code generation. The Simulink simulation behavior will be whatever the configured Simulink behavior of your subsystem is. The HDL code plays no part in the Simulink simulation; it only becomes part of the HDL code output. With this approach there is the possibility that the Simulink model and the black boxed HDL have different behaviors. It is up to the user to synchronize behavior between the two domains.
If you use EDA Simulator Link, your HDL code is used to provide the Simulink simulation behavior as well as HDL Code generation content. A third-party HDL simulator is used to co-simulate your HDL directly during Simulink simulation. Since this same HDL is used along with the output from HDL Coder for HDL-only simulation and/or synthesis, its behavior will implicitly match Simulink.
Best Answer