I'm designing a series of circuits in LTspice and wanted to get some feedback on the accepted way to use subcircuits and hierarchical blocks. The LTspice manual is somewhat vague on these topics. In the screenshot below, I've copied one section of my circuit to help illustrate the point.
The highest-level circuit contains a "V/F Converter" block which references a schematic with an LM331 chip. The "LM331" block in turn references the functional circuit for this IC. (LTspice doesn't include this component, so I found it elsewhere online.) I'm also using parameters that are passed down from the top-level block to the bottom-level LM331 circuit which set the logic and source voltage levels (note the "Vcc=12" and "Vlogic=5" parameters in the "V/F Converter" block). The entire circuit works fine and simulates the way I expect.
From a layout/organizational standpoint, are hierarchical blocks the right way to set this up in LTspice? Since the LM331 is an actual component, I'm thinking it might be better to convert it into a subcircuit using a netlist file instead of a schematic. As a subcircuit, I'd have access to the Components Attribute Editor and a few more fields for setting up parameters as opposed to the single PARAMS line that the hierarchical block uses. However, with the component as a subcircuit, I think the underlying schematic would go away since it'd be driven by a netlist. This would make the component a bit harder to debug since it would no longer be laid out visually.
At the end of the day, I suppose the functionality is the same regardless if I'm using hierarchical blocks or subcircuits (at least in this example), but I'm curious what the best practices are. Are there any advantages one way or the other?
Here are some screenshots of the two approaches. Note the difference in the editor dialog boxes and the Open Symbol/Schematic buttons.