Dave,
first thing I did this morning was to set up the projects and compile/test all three. Made a small change to example three and 'played' it. It works great and I will certainly use this approach in my project. The only thing to change is that we have different sensors on one side and different interfaces at the other side. In the past we just kept the list of general IO pins, like s[7..0], id[11..0], ld[27..0], and declared most of them all bidirectional and the connected them to their respective pins from the sub-module. This off course provokes a considerable amount of warnings. Apart from the fact that now we also may have to cope with different But I can add different sections in the share\scripts\constraint.tcl file, set a variable before sourcing the constraint.tcl script and ready we are!
May I suggest you create a page on the Altera Wiki, what you made up here surpasses the examples in the Altera documentation by far.
Thanks again and best regards,
Josy
BTW. You can avoid that 'unschöne' (unbeautiful?) 'assertion is false' in the Message window by encapsulating a report statement in a process:
process( all )
begin
report "an informational message" ;
end process ;
It took me a while to find that out.