Block diagrams are often used in embedded system design for modeling both plant and controller, typically with continuous and discrete modeling, respectively. Though easy to use, advanced users and implementers of these languages often run afoul of subtle semantic problems these seemingly simple languages can have. Based on the stream-and state-based approaches, this paper discusses how the specialized state-based semantics of continuous-time block diagrams can interoperate hierarchichally with discrete-time block diagrams. The languages presented may serve as a reference of sorts, helping to clarify some of the underlying choices in block diagram language design, and in the process shedding light on the differences between, and limitations of, existing block diagram languages.