[Team Specman welcomes guest blogger Michael Avery, from our Services Group in the UK]Messaging is important for two main reasons:
This is why Specman has a messaging infrastructure built-in to provide an easy to use, scalable and efficient mechanism. Furthermore, Specman’s messaging capabilities allow you to do almost anything which you can conceive with messaging: colouring, formatting, rejection, modification, redirection, etc.
The infrastructure uses a predefined unit called a message_logger to deal with message requests. Message requests are made using the message() action. By default, the “sys.logger” message logger is available, where sys.logger will deal with all message actions if you do not specify your own. However, you can and should instance your own message_loggers, where at a minimum I’d recommend each UVC in a testbench should have its own message_logger. In practice, it is very likely that major units like agents and monitors will also have their own message_loggers.
Given this background, here are some message_logger first principals:
What about the amount of messages and the level of detail required from them? In general, two factors come into play:
In the next installment of this series, I’ll share some tips on how to programmatically control message display to help speed your debug process.
Michael AveryCadence Services Organization, UK