We're looking into modeling and checking a simple mesh fabric coherency protocol for checking RTL simulation. In the past, we've completely rolled our own solution for listening to packets in the RTL and then generating an expected response or multiple possible expected responses.

e.g. for a flow like this:

 Core                  Memory Controller
   |                          |
   | Request $Line in E-state |
   |                          |
   |              Data        |
   |                          | 

The checker on the Memory Controller needs to predict that the Data packet will be returned to the Core and what the payload of that packet would be.

What are the available frameworks for modeling these flows? I'm aware of TLM and am looking into it. Are there any others? I'm open to any language. Are there any formal verification protocol tools that can also generate checkers or assertions?


1 Answer 1


I would use a higher-level programming language like Python to build the verification environment you are describing. You can build "transactors" that translate for a simple queue put/get to driving the actual signals to the RTL interfaces. You can build your complete verification environment around a model. Then insert the RTL.

  • 1
    \$\begingroup\$ I am known inside my company as being a python fiend... :-) "myhdl" (myhdl.org/doku.php/start) looks interesting for adding HDL stuff into python. I'm looking for a higher-level framework/library, I suppose. \$\endgroup\$ Sep 19, 2011 at 18:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.