User Book
Model Section
5.Decentralized Control

Decentralized Control

  • Kathryn relaxes the logic component update declaration. To manage the priority and condition of the update value, traditional Hardware description languages (HDLs) and even other frameworks have to route/reference the source signals and control signals from various source modules and centrally build dedicated update logic.
Photo
  • Kathryn proposes a hint function to indicate the assignment's priority, so designers do not have to duplicate or route the control signal to the target module.

  • For instance, theFigure below exemplifies the decentralization usage in Kathryn. At lines 4-6 in Figure below, the assignment “<<=”, covered by “SET_ASM_PRI_TO_MANUAL(11)”, and “ SET_ASM_PRI_TO_AUTO();” will be prioritized.

  • The assignment at line 5 to value 11, if other modules try to drive the signal with a lower priority than 11 at the same cycle that this module tries to drive, Kathryn will skip that source signal.

  • Importantly, the target register will be driven when the “zync” block is eligible to execute; it means that designers do not have to route the control activation signal to the unified control logic for each hardware component. Designers can then focus only on the flow and functional logic.

  •   pip(decode){
          zync(dispatch){
     
      SET_ASM_PRI_TO_MANUAL(11);
              targetReg <= srcData1;
      SET_ASM_PRI_TO_AUTO();
          
          }
      }
  • In Kathryn, there are five standard priority values in the system, as shown in table below.

  • TypeValueDescription
    DEFAULT_UE_PRI_USER10Standard User priority
    DEFAULT_UE_PRI_INTERNAL_MAX100Used by internal node, automatically generated by Kathryn
    DEFAULT_UE_PRI_INTERNAL_MIN50Used by internal node, automatically generated by Kathryn
    DEFAULT_UE_PRI_RSTINT32_MAXUsed Kathryn global reset event
    DEFAULT_UE_PRI_MIN0Minimum for default logic component in idle state