Adding static delay across diplomacy nodes

4 views
Skip to first unread message

Varun Gandhi

unread,
Nov 14, 2022, 5:10:05 PM11/14/22
to chisel...@googlegroups.com, Varun Gandhi
Hi,

I’m trying to understand the underlying behavior of various connectors available in Diplomacy. I’m currently trying to modify the TLArbiter object in TileLink, and I want to add a static delay between the source and sink, and trying the following code snippet:

def applyCancel[T <: Data](policy: Policy)(sink: ReadyValidCancel[T], sources: (UInt, ReadyValidCancel[T])*): Unit = {
    if (sources.isEmpty) {
      // boilerplate code
    } else if (sources.size == 1) {
      
sink :<> sources.head._2
   
 } else {
      // multi-source arbitration

When I modify the above line (in bold) to add static delay using ShiftRegister: sink :<> ShiftRegister(sources.head._2, 1)

I get several errors of the following type: Register r_1 cannot be a bundle type with flips.

What could be a potential way to add a static delay between a source and a sink node? 

Thanks,
Varun


Jerry Zhao

unread,
Nov 14, 2022, 5:23:00 PM11/14/22
to chisel...@googlegroups.com, Varun Gandhi
Could you clarify what the "source" and "sink" nodes you are referring to are?

--
You received this message because you are subscribed to the Google Groups "chisel-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chisel-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/chisel-users/88C60D5D-F06B-4A61-852D-A91455BA7803%40g.harvard.edu.


--
Jerry Zhao

Varun Gandhi

unread,
Nov 14, 2022, 8:20:46 PM11/14/22
to chisel...@googlegroups.com, Jerry Zhao
Hi Jerry,

I’m trying to modify the following TLAbirter code in Arbiter.scala: https://github.com/chipsalliance/rocket-chip/blob/44b0b8249279d25bd75ea693b725d9ff1b96e2ab/src/main/scala/tilelink/Arbiter.scala#L80

If I’m understanding the chisel code correctly, the applyCancel function is not limited to any particular type of node but applies to any source/sink node with a ReadyValidCancel interface. Am I missing something here?

Best,
Varun

Gandhi, Varun

unread,
Nov 17, 2022, 5:59:10 PM11/17/22
to chisel...@googlegroups.com
Hi,

I'd appreciate some pointers on how to add a static delay between interconnected diplomacy nodes at the arbiter level. Are there any tutorials anyone can point me to?

Thanks,
Varun
Reply all
Reply to author
Forward
0 new messages