Time cannot be synthesized, so don't use it.
While it's true that time can not be synthesized, it does not imply
that a *good* synthesis tools shouldn't support time at all. As an
example, suppose to control some device you need to generate a 2 us
pulse and the PLD/FPGA/ASIC/whatever has a 25 ns clock. Immediately,
you recognize that you need a counter to count from 0 to some upper
limit and can probably quickly figure out that there are 80 clock
cycles and define your counter signal as...
signal Counter: natural range 0 to 79;
Now years later, somebody picks this wonderful design and wants to use
it someplace else...or maybe you're just wanting to soup it up and run
your whole design at a faster clock frequency so now you need to go
through all the code you want to reuse and unearth the places where the
implicit knowledge of the original 25 ns clock was used.
Now suppose instead you had brought in a generic time input into the
entity (say 'T: time). Now you might go about defining the counter
as...
signal Counter: natural range 0 to (2 us / T);
It's a whole heck of a lot clearer that the Counter is now being used
to generate a 2 us something...and hey, in order to run the new design
at the new clock frequency you simply need to change the generic input
from the 'old' clock period to the 'new' one.
So even though you don't synthesize time, it is certainly useful to be
able to use time types in the manner I've described to write code that
is clearer as to the intent and more maintainable.
Having said all that, it doesn't surprise me at all that Synopsys
doesn't support time in any fashion. Synplicity had some troubles with
it at least a year or so ago when I tried it (submitted a service
request to them on it). Quartus does support time types, at least in
the manner that I'm using them.
Time, it's not just for simulation anymore....
KJ