If a module calls a function/task inside a package. Does that function get synthesized within the module. Do I need to declare the function/task within the package as automatic? What happens if I don’t?
A synthesis tool will in-line or copy the contents of a function/task for each call. As long as the procedure does not refer to anything outside its body, then it will be synthesizable. It does not matter if the function/task as an automatic lifetime unless it is recursive (which is synthesizable in some cases).