These notes analyze the disable states we can be in upon returning from an export subchain to its import subchain parent. As before, the terminology is as follows: given a mixed-language call chain sv0i..sv0j -> ct0i..ct0j -> sv1i..sv1j . a 'subchain' consists of consecutive task enables within the same language . sv0i...sv0j is the inital SystemVerilog subchain in the simulator, . ct0i..ct0j is a C subchain reached via a call to DPI C import task, ct0i. . sv1i..sv1j is an SV subchain reached via a call to exported SV task, sv1i. If we accept the stmts below as true, we unambiguously know possible & impossible states: 1. An import subchain is indirectly disabled when a child export subchain disables one of the import subchain's predecessor subchains (whether it is an SV or C subchain). 2. An import subchain is directly disabled only by a child export subchain disabling the import C task at the import subchain's head. (since the enable stmt for that C task necessarily appears within SV source code space). 3. Disabling an import subchain by either of these means (1 or 2 above) puts the import subchain in a 'disabled state' as soon as control returns to that import subchain from a child subchain (34.9). 4. If the import chain is disabled, its child export subchains are disabled (before control returns to the import) by the general SV rule for propagating disables: "disabling a task within the chain shall disable all tasks downward in the chain." (9.6.2). When control returns to an import subchain the following states may occur: SV parent subchain import C subchain export SV subchain was is disabled is disabled disabled before return 0. NO NO NO 1. NO NO YES 2. NO YES YES 3. YES YES YES Analysis 1. For example, a task in the export subchain sv1i..sv1j could disable sv1i. 2. A task in the export subchain sv1i..sv1j could disable import subcahin head ct0i. 3. A task in the export subchain could disable a task in the subchain sv0i..sv0j. When we return to an import subchain, the following states cannot occur: SV parent subchain import C subchain export SV subchain was is disabled is disabled disabled before return 4. YES YES NO 5. YES NO NO 6. NO YES NO 7. YES NO YES 4-7. When a subchain's predecessor subchain is disabled, the subchain is, too (9.6.2). -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue Dec 18 13:55:19 2007
This archive was generated by hypermail 2.1.8 : Tue Dec 18 2007 - 13:55:30 PST