mohitnegi Posted April 9, 2013 Report Share Posted April 9, 2013 hello all, How should one decide whether there model is loosely timed or accurately timed ?? With regards Mohit Negi Quote Link to comment Share on other sites More sharing options...
apfitch Posted April 10, 2013 Report Share Posted April 10, 2013 The two coding styles trade off speed vs timing accuracy. The main limitation of the loosely timed coding style is that you cannot model pipelined transactions. So you need to decide how much timing accuracy you need, and if you need to model pipelined transactions, regards Alan Quote Link to comment Share on other sites More sharing options...
mohitnegi Posted April 11, 2013 Author Report Share Posted April 11, 2013 could you elaborate or give an example for pipelined transactions ???? Quote Link to comment Share on other sites More sharing options...
apfitch Posted April 11, 2013 Report Share Posted April 11, 2013 Imagine you are modelling a bus-based system. You send a request to a slave on the bus. That request takes keeps the bus busy for 50 ns, and then the peripheral takes 25 ns to process the data. That means you can send a new request on the bus every 50 ns, before you have received the response from the slave. Req1 Req2 ---------|---------|--------- |---------|---------|--------- Resp1 Resp2 If you need to model at that level of detail, then you would use approximately timed modeling, with non-blocking transport. If you don't need that level of detail (perhaps you don't even know what bus you're using yet?) then loosely-timed might be appropriate (and faster) regards Alan Amol Nikade and TommyWu 2 Quote Link to comment Share on other sites More sharing options...
mohitnegi Posted April 15, 2013 Author Report Share Posted April 15, 2013 Hello Alan, If i have a LT model whose response i will get after 50 ns ....and i have a AT which i am running in multiple phases and response of those multiple phases also add up to 50 ns ...so how does one becomes more timing accurate .../???? Regards Mohit Negi Quote Link to comment Share on other sites More sharing options...
apfitch Posted April 15, 2013 Report Share Posted April 15, 2013 In a loosely timed model you only have two timing points - start of transaction, end of transaction. In an approximately timed model using the base protocol, you have four timing points - start request, end request, start response, end response - hence you can model overlapped (pipelined) transactions, because you can start a new request before you have the response to the previous request. In my example above, you would only be able to send a new transaction every 75 ns using loosely timed, so the model of the timing of the transaction is less accurate - in the loosely timed model I can send a new transaction every 75 ns, in approximately timed every 50 ns using that example. If you do not use overlapped transactions, then you could just use begin request and end response, so as you say the non-blocking (approximately timed) and blocking (loosely timed) models would give the same results, regards Alan shubham_v and TommyWu 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.