Jump to content

Recommended Posts


I was having few questions regarding clock usage in tlm.These are as folllows:-

1.I wanted to know whether we can supply clock to initiator and target modules.

2.If it can be used ,then how to do we need need to connect to modules.Like instantiate clock in top module and how should we do port or named mapping ?

   If not,then why its not used ? Because i havent come across any examples in tlm which uses clocks.

3.If we are using blocking interface then using wait statement,just that data doesnot get overidden. And if its a case of nb_interface then we are using  delay statements .

My question here would be,can i create system clock input port and connect them ?

I had tried but i had got a failed port mapping error message.


Thanks & regards,


Link to comment
Share on other sites

  1.  Yes, you can supply clocks to TLM, but this is a very bad idea in general. Clocks will slow down your simulations
  2. There are many ways to insert clocks: ports, local instances, global references.
  3. The best b_transport implementations find ways to avoid calling wait. More precisely, we attempt to reduce context switching to a minimum and its associated overhead.
Link to comment
Share on other sites

Adding to Davids answer:

you can supply clocks to the modules having initiator and/or target sockets. This is can be done using the usual signal/sc_in/sc_out means as David mentioned. There is also the option to have 'tick-less' clock  as David presented many years ago (http://www.nascug.org/events/12th/nascug12_david_black.pdf). This can also be achieved by distributing a signal just carrying the clock period as sc_time and caculating the time points in the modules. This way it is even possible to model timers or PWM (e.g. https://git.minres.com/DBT-RISE/DBT-RISE-RISCV/src/branch/develop/platform/incl/sysc/SiFive/pwm.h). This modelling style avoids the many context switches implied by toggling clocks.

All this holds true for LT and PV modelling, if you think about AT modelling the story becomes different. But this is as usual: you trade speed for accuracy.


Link to comment
Share on other sites

thank you david,eyck.

I will try again to implement a simple example in tlm with the usage of clocks.

But if there is a spec. condition to declare clocks ,then what would be the approach ?

Should i go back to systemc interfaces or continue with the tlm ?





Link to comment
Share on other sites

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.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...