The purpose of this paper is to facilitate hardware design. One of the first design decisions is the partitioning of the system in smaller subsystems, which can be implemented on separate hardware and/or software components. Internal communication within components and external communication between different components can be distinguished. Especially external communication is cumbersome, because it determines the requirements for the communication channels in the system. Distinction between internal and external communication is defined by the functional partitioning step which thus has a major impact on the quality of the final design. By estimating communication between functions in advance, we enable a better functional partitioning and therefore improve the communication requirements in the system.