Design Assistant Rule Driven FD



Rule Conditions for Custom Design Assistant Rules

The following conditions are required in the Rule definition section of a custom Design Assistant rule. These conditions can be used in BASIC, REQUIRED, REQUIRED_EXCEPTION, FORBID and FORBID_EXCEPTION subsections.

| |Rule Condition |Description |

| |NODE_RELATIONSHIP |Required |

| | |A rule condition to check node relationships. Can be used in |

| | |section BASIC/REQUIRED/FORBID/ REQUIRED_EXCEPTION and |

| | |FORBID_EXCEPTION. |

| | |Example: |

| | | |

| |FROM_NAME |Required |

| | |A user defined node name string for source node. |

| |TO_NAME |Required |

| | |A user defined node name string for destination node. |

| |FROM_TYPE |Optional |

| | |Source node type. Refer to the List of Node Types table for |

| | |specific node types. The node type specified here has higher |

| | |priority than the node type defined during node declaration. |

| |TO_TYPE |Optional |

| | |Destination node type. Refer to the List of Node Types table for |

| | |specific node types. The node type here has higher priority than |

| | |the node type defined by a HAS_LOOP node declaration. |

| |FROM_PORT |Optional |

| | |Source node output port type. Refer to the List of Port Types table|

| | |for specific port types. |

| |TO_PORT |Optional |

| | |Destination node input port type. Refer to the List of Port Types |

| | |table for specific port types. |

| |TO_ALL_PORT |Optional |

| | |This value is YES or NO. Default value is NO. Setting this value to|

| | |YES indicates that ALL input ports of destination/to node are fed |

| | |by the specified source node or type. |

| |THROUGH_TYPE |Optional |

| | |Node type that allows continued traversing. When traversing from |

| | |source node to destination node, if this node type is reached, the |

| | |traversing continues. Refer to the List of Node Types table for |

| | |specific node types. |

| | |When traversing from source to destination node, it is not |

| | |necessary have to traverse through this specified through node |

| | |unless REQUIRED_THROUGH is set to YES. |

| |THROUGH_NODE_COUNT |Optional |

| | |Indicate the total number of nodes with the type specified in |

| | |THROUGH_COUNT_TYPE or THROUGH_TYPE  that have been traversed. |

| | |THROUGH_COUNT_TYPE has higher priority than THROUGH_TYPE. |

| | |The value must in one of the following formats, and followed by an |

| | |integer number such as EQ2, LT5. |

| | |EQ: equal to |

| | |NEQ: not equal to |

| | |LT: less than |

| | |GT: greater than |

| | |ELT: equal or less than |

| | |EGT: equal or greater than |

| | |Example1: THROUGH_NODE_COUNT =”EQ2” |

| | |If you only want to count the through node of a specific node type,|

| | |the node type can be added after the integer value separated by a |

| | |comma. |

| | |Example2: THROUGH_NODE_COUNT =”EQ2, BUF” |

| | |Refer to the List of Node Types table for specific node types. |

| |REQUIRED_THROUGH |Optional |

| | |This value is YES or NO. Default value is NO. Setting this value to|

| | |YES indicates that the source node MUST traverse the specified node|

| | |before reaching the destination node. |

| |TRAVERSE_DEPTH |Optional |

| | |Indicates the maximum allowed traversing depth from source to |

| | |destination if a through node is allowed (THROUGH_TYPE is |

| | |specified). Default value is 5. |

| | |The value must in one of the following formats, and followed by an |

| | |integer number such as EQ2, LT5. |

| | |EQ: equal to |

| | |NEQ: not equal to |

| | |LT: less than |

| | |GT: greater than |

| | |ELT: equal or less than |

| | |EGT: equal or greater than |

| | |Example1: TRAVERSE_DEPTH=”EQ5” |

| |THROUGH_COUNT_TYPE |Optional |

| | |Node type that is counted in the option THROUGH_NODE_COUNT. Refer |

| | |to the List of Node Types table for specific node types. |

| |FROM_NODE_CLOCK_RELATIONSHIP |Optional |

| | |Indicate the clock relationship among all the inputs of the current|

| | |destination/to node. This value is SYN, SYNC, or SEQ_EDGE |

| |FROM_NODE_SAME_CLOCK_SOURCE |Optional |

| | |Indicate whether all inputs to the current destination/to node have|

| | |the same clock source. This value is YES or NO. |

| |FROM_SINGLE_NODE |Optional |

| | |Indicate whether all inputs of the current destination/to node are |

| | |fed by ONE SINGLE node. This value is YES or NO. |

| |TO_SINGLE_NODE |Optional |

| | |Indicate whether all outputs of the current source or from node are|

| | |feeding to ONE SINGLE node. This value is YES or NO. |

| |TOTAL_FROM_BUS_MEMBER |Optional |

| | |Indicate the total number of source nodes the bus member has in the|

| | |specified node relationship in the current rule condition. |

| |TOTAL_TO_BUS_MEMBER |Indicate total number of destination nodes the bus member has in |

| | |the specified node relationship in the current rule condition |

| |TOTAL_TO_NODE |Optional |

| | |Indicate total amount of fan-out of the current source/from node. |

| |STRICT |Optional |

| | |This value is YES or NO. Default is NO. If the value set to YES, it|

| | |indicates the specified source node must only feed the specified |

| | |destination node. Other kinds of node are strictly prohibited. |

| |CLOCK_RELATIONSHIP |Required |

| | |Check that the node specified in NODE_LIST has the clock |

| | |relationship specified in NAME. |

| | |Example: |

| | | |

| |NAME |Required |

| | |Indicate the clock relationship. This value is ASYN, SYNC, |

| | |SEQ_EDGE, or COIN_EDGE. |

| | |ASYN – asynchronous |

| | |SYNC – synchronous |

| | |SEQ_EDGE – sequential edge |

| | |COIN_EDGE – coincident edge |

| |NODE_LIST |Required |

| | |Comma delimited list of node name strings. |

| | |Example: |

| | |NODE_LIST=”NODE_1, NODE_2” |

| |HAS_NODE |Required |

| | |Indicate the design must have the specified node. |

| | |Example: |

| | | |

| |NODE_LIST |Required |

| | |Comma delimited list of node name strings. |

| | |Example: |

| | |NAME=”NODE_1, NODE2” |

| |HAS_LOOP |Required |

| | |Indicate the given node(s) specified in the NAME option have the |

| | |loop which consists of the node type mentioned in the TYPE option. |

| | |Example: |

| | | |

| |NAME |Required |

| | |Node name string. Comma delimited if more than one node names is |

| | |specified. |

| |TYPE |Required |

| | |Indicate the specified node type exists in the loop. Refer to the |

| | |List of Node Types table for specific node types. |

| |SAME_CLOCK_SOURCE |Required |

| | |Indicate the given nodes have the same clock source. If the STATUS |

| | |option is not set, the default is to check for the same clock |

| | |source. If STATUS is set to NO, this rule condition checks for a |

| | |different clock source. |

| | |Example: |

| | | |

| |NODE_LIST |Required |

| | |Indicate the specified nodes have the same clock source. |

| |STATUS |Optional |

| | |This value is YES or NO. Default is YES. If the STATUS option is |

| | |not set, the default is to check for the same clock source. If |

| | |STATUS is set to NO, this rule condition checks for a different |

| | |clock source. |

| |NODE |Required |

| | |This condition is used to define node attributes. All node |

| | |attributes are defined as an attribute of . |

| | |Example below declares a node with its name and node type. |

| | |Example: |

| | | |

| |NAME |Required to |

| | |User defined node name string. It is unique within a rule. But it |

| | |is not necessarily unique across different rules. |

| |TYPE |Optional |

| | |Node type. Refer to the List of Node Types table for specific node |

| | |types. |

| |TOTAL_FANIN |Optional |

| | |Total fan-in for a specified node. Example below shows a node must |

| | |have total fan-in equal to 2. |

| | |The value must in one of the following formats, and followed by an |

| | |integer number, such as EQ2, LT5. |

| | |EQ: equal to |

| | |NEQ: not equal to |

| | |LT: less than |

| | |GT: greater than |

| | |ELT: equal or less than |

| | |EGT: equal or greater than |

| | |Example: TOTAL_FANIN=”EQ2” |

| |TOTAL_FANOUT |Optional |

| | |Total fan-out a node has. Example below shows a node must have |

| | |total fan-out less than 30. |

| | |The value must in one of the following formats, and followed by an |

| | |integer number, such as EQ2, LT5. |

| | |EQ: equal to |

| | |NEQ: not equal to |

| | |LT: less than |

| | |GT: greater than |

| | |ELT: equal or less than |

| | |EGT: equal or greater than |

| | |Example: TOTAL_FANOUT=”LT30” |

| |HAS_PORT |Optional |

| | |The port type of a node. Refer to the List of Port Type table for |

| | |specific port types. |

| |GLOBAL_SIGNAL |Optional |

| | |This value is YES or NO. Default value is NO. Indicate if a node is|

| | |a global signal. |

| |IS_BUS |Optional |

| | |This value is YES or NO. Default value is NO. Indicate if a node is|

| | |a bus. |

| |DATA_IN_VCC |Optional |

| | |This value is YES or NO. Default value is NO. Indicate if a node |

| | |input data port is set to VCC. |

| |DATA_IN_GND |Optional |

| | |This value is YES or NO. Default value is NO. Indicate if a node |

| | |input data port is set to GND. |

| |AND |Optional |

| | |Indicate the relationship between the rule conditions defined |

| | |within and is AND. Which means all rule conditions |

| | |within and must be fulfilled. If neither AND or OR is |

| | |specified, default is . |

| |OR |Optional |

| | |Indicate the relationship between the rule conditions defined |

| | |within and is OR. Which means as long as at least one of|

| | |the rule conditions within and is fulfilled, the whole |

| | |block of rule conditions within and is fulfilled. If |

| | |neither AND or OR is specified, default is . |

List of Node Types

|Node Type |Description |

|COMB |Combinational Logic |

|REG |Register or DFF |

|CLK |Clock Source |

|PIN |Primary IO |

|BUF |Buffer gate |

|INV |Inverter gate |

|OR |OR gate |

|NOR |NOR gate |

|AND |AND gate |

|NAND |NAND gate |

|LATCH |LATCH Primitive |

|INPUT |Primary Input pin |

|OUTPUT |Primary Output pin |

|TRI_STATE |Tri-state buffer |

|CASCADE_CHAIN |Cascade buffer |

|CARRY_CHAIN |Carry buffer |

List of Port Types

|Port Type |Description |

|INV_CLK_PORT |Inverted clock input port |

|CLK_PORT |Clock input  port type |

|PRE_PORT |Asynchronous preset input port |

|CLR_PORT |Asynchronous clear input port |

|RESET_PORT |Consist of CLR_PORT or PRE_PORT |

|D_PORT |Synchronous D input port |

|SYNCH_PORT |Synchronous data input port |

|INV_CLR_PORT |Inverted asynchronous clear input port |

|INV_PRE_PORT |Inverted asynchronous preset input port |

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download