NIC-400 Clock Relations questions in Socrates


I am trying to configure a NIC-400 r1p2 using Socrates V1.5.2 and I have the following questions:

  1. I have two completely asynchronous clock domains, clk_a and clk_b.  What is the difference between marking clk_a as "Programmable" vs saying clk_a has an "asynchronous" relationship with clk_b?  Checking "Programmable" automatically sets the Relationship to "asynchronous," but what if I leave "Programmable" unchecked but still select the Relationship as "asynchronous?"
  2. Do I need to specify the relationships both ways, meaning I need to configure two Clock Relations entries: clk_a is asynchronous to clk_b, and clk_b is asynchronous to clk_a?



  • 1. Programmable means you can change the clock relationship at runtime from the default "asynchronous" using GPV accesses, whereas a fixed configuration of "asynchronous" cannot be changed. If you know the clock relationship will definitely always be "async", don't select programmable.

    2. I've never tried setting the clock relationships in the Socrates tool, but using the older AMBA Designer tool you just needed to define the clock relationship in one direction, and the tool then knew what the relationship must be in the opposite direction.

More questions in this forum