#ifndef __DO_RMAHDR_ #define __DO_RMAHDR_ #ifdef __cplusplus extern "C" { #endif #define VCS_RTLIB_TLS_MODEL __attribute__((tls_model("initial-exec"))) typedef unsigned long UP; typedef unsigned U; typedef unsigned char UB; typedef unsigned char scalar; typedef struct vec32 vec32; typedef unsigned short US; typedef unsigned char SVAL; typedef unsigned char TYPEB; typedef struct qird QIRD; typedef unsigned char UST_e; typedef unsigned uscope_t; typedef U NumLibs_t; struct vec32 { U I1; U I2; }; typedef unsigned long RP; typedef unsigned long RO; typedef unsigned long long ULL; typedef U GateCount; typedef U NodeCount; typedef unsigned short HsimEdge; typedef unsigned char HsimExprChar; typedef struct { U I706; RP I707; } RmaReceiveClock1; typedef NodeCount FlatNodeNum; typedef U InstNum; typedef unsigned ProcessNum; typedef unsigned long long TimeStamp64; typedef unsigned long long TimeStamp; typedef enum { PD_SING = 0, PD_RF = 1, PD_PLSE = 2, PD_PLSE_RF = 3, PD_NULL = 4 } PD_e; typedef TimeStamp RmaTimeStamp; typedef TimeStamp64 RmaTimeStamp64; typedef struct { int * I708; int * I709; int I710; union { long long enumDesc; long long classId; } I711; } TypeData; struct etype { U I586 :8; U I587; U I588; U I589 :1; U I590 :1; U I591 :1; U I592 :1; U I593 :1; U I594 :1; U I595 :1; U I596 :1; U I597 :1; U I598 :4; U I599 :1; U I600 :1; U I601 :1; U I602 :1; U I603 :1; U I604 :1; U I605 :1; U I606 :1; U I607 :2; U I608 :1; U I609 :2; U I610 :1; U I611 :1; U I612 :1; U I613 :1; U I614 :1; U I615 :1; TypeData * I616; U I617; U I618; U I619 :1; U I620 :1; U I621 :1; U I622 :1; U I623 :2; U I624 :2; U I625 :1; U I626 :1; U I627 :1; U I628 :1; U I629 :1; U I630 :1; U I631 :1; U I632 :1; U I633 :1; U I634 :1; U I635 :1; U I636 :13; }; typedef union { double I718; unsigned long long I719; unsigned I720[2]; } rma_clock_struct; typedef struct eblk EBLK; typedef int (* E_fn)(void); typedef struct eblk { struct eblk * I727; E_fn I728; struct iptmpl * I729; unsigned I731; unsigned I732; struct eblk * I733; } eblk_struct; typedef struct { RP I727; RP I728; RP I729; unsigned I731; unsigned I732; RP I733; } RmaEblk; typedef struct { RP I727; RP I728; RP I729; unsigned I731; unsigned I732; RP I733; unsigned val; } RmaEblklq; typedef union { double I718; unsigned long long I719; unsigned I720[2]; } clock_struct; typedef clock_struct RmaClockStruct; typedef struct RmaRetain_t RmaRetain; struct RmaRetain_t { RP I769; RmaEblk I726; U I771; US I772 :1; US I773 :4; US I181 :2; US state :2; US I775 :1; US I776 :2; US I777 :2; US fHsim :1; US I569 :1; scalar newval; scalar I780; RP I781; }; struct retain_t { struct retain_t * I769; EBLK I726; U I771; US I772 :1; US I773 :4; US I181 :2; US state :2; US I775 :1; US I776 :2; US I777 :2; US fHsim :1; US I778 :1; scalar newval; scalar I780; void * I781; }; typedef struct MPSched MPS; typedef struct RmaMPSched RmaMps; struct MPSched { MPS * I760; scalar I761; scalar I762; scalar I763; scalar fHsim :1; scalar I181 :6; U I765; EBLK I766; void * I767; UP I768[1]; }; struct RmaMPSched { RP I760; scalar I761; scalar I762; scalar I763; scalar fHsim :1; scalar I181 :6; U I765; RmaEblk I766; RP I767; RP I768[1]; }; typedef struct RmaMPSchedPulse RmaMpsp; struct RmaMPSchedPulse { RP I760; scalar I761; scalar I762; scalar I763; scalar I181; U I765; RmaEblk I766; scalar I777; scalar I786; scalar I787; scalar I788; U I789; RmaClockStruct I790; RmaClockStruct I791; U state; U I792; RP I729; RP I793; RP I794; RP I768[1]; }; typedef struct MPItem MPI; struct MPItem { U * I796; void * I797; }; typedef struct { RmaEblk I726; RP I798; scalar I799; scalar I777; scalar I800; } RmaTransEventHdr; typedef struct RmaMPSchedPulseNewCsdf RmaMpspNewCsdf; struct RmaMPSchedPulseNewCsdf { RP I760; scalar I761; scalar I762; scalar I763; scalar fHsim :1; scalar I181 :6; U I765; RmaEblk I766; scalar I777; scalar I786; scalar I787; scalar I788; U state :4; U I802 :28; RmaClockStruct I790; RmaClockStruct I791; RP I803; RP I729; RP I804; RP I768[1]; }; typedef struct red_t { U I805; U I806; U I685; } RED; typedef struct predd { PD_e I181; RED I807[0]; } PREDD; union rhs_value { vec32 I808; scalar I799; vec32 * I777; double I809; U I810; }; typedef struct nbs_t { struct nbs_t * I811; struct nbs_t * I813; void (* I814)(struct nbs_t * I781); U I815 :1; U I816 :1; U I817 :1; U I818 :1; U I819 :1; U I820 :1; U I821 :26; U I822; void * I823; union rhs_value I824; vec32 I718; union { struct nbs_t * first; struct nbs_t * last; } I826; } NBS; typedef struct { RP I827; RP I793; RP I729; RP I794; RmaEblk I726; RmaEblk I828; RP I829; scalar I799; scalar I777; char state; uscope_t I830; U I831; RP I832; scalar I786; scalar I787; scalar I788; RmaClockStruct I790; RmaClockStruct I791; RP I767; } RmaPulse; typedef enum { QIRDModuleC = 1, QIRDSVPackageC = 2, QIRDSpiceModuleC = 3 } QIRDModuleType; typedef struct { U I836 :1; U I837 :1; U I838 :1; U I839 :1; U I840 :1; U I841 :1; U I842 :1; U I843 :1; U I844 :1; U I845 :1; U I846 :1; U I847 :1; U I848 :1; U I849 :1; U I850 :1; U I851 :1; U I852 :1; U I853 :1; QIRDModuleType I854 :2; U I855 :1; U I856 :1; U I857 :1; U I858 :1; U I859 :1; U I860 :1; U I861 :1; U I862 :1; U I863 :1; U I864 :1; U I865 :1; U I866 :1; U I867 :1; U I868 :1; U I869 :1; U I870 :1; U I871 :1; U I872 :1; U I873 :1; U I874 :1; } BitFlags; struct qird { US I4; US I5; U I6; U I7; char * I8; char * I9; U * I10; char * I11; char * I12; U I13; U I14; struct vcd_rt * I15; U I17; struct _vcdOffset_rt * I18; U I20; U I21; U * I22; U * I23; void * I24; void * I25; U I26; int I27; UP I28; U I29; U I30; U I31; UP I32; U * I33; UP I34; U I35; BitFlags I36; U I37; U I38; U I39; U I40; U I41; U * I42; U I43; U * I44; U I45; U I46; U I47; U I48; U I49; U I50; U I51; U * I52; U * I53; U I54; U I55; U * I56; U I57; U * I58; U I59; U I60; U I61; U I62; U * I63; U I64; U * I65; U I66; U I67; U I68; U I69; U I70; U I71; U * I72; char * I73; U I74; U I75; U I76; U I77; U I78; U * I79; U I80; U I81; U I82; UP * I83; U I84; U I85; U I86; U I87; U I88; U I89; U * I90; U I91; U I92; U * I93; U * I94; U * I95; U * I96; U * I97; U I98; U I99; struct taskInfo * I100; U I102; U I103; U I104; int * I105; U * I106; UP * I107; U * I108; U I109; U I110; U I111; U I112; U I113; struct qrefer * I114; U * I116; unsigned * I117; void * I118; U I119; U I120; struct classStaticReferData * I121; U I123; U * I124; U I125; U * I126; U I127; struct wakeupInfoStruct * I128; U I130; U I131; U I132; U * I133; U I134; U * I135; U I136; U I137; U I138; U * I139; U I140; U * I141; U I142; U I143; U * I144; U I145; U I146; U * I147; U * I148; U * I149; U I150; U I151; U I152; U I153; U I154; struct qrefee * I155; U * I157; U I158; struct qdefrefee * I159; U * I161; int (* I162)(void); char * I163; U I164; U I165; void * I166; void * I167; NumLibs_t I168; char * I169; U * I170; U I171; U I172; U I173; U I174; U I175; U * I176; U * I177; int I178; struct clock_load * I179; int I194; struct clock_data * I195; int I211; struct clock_hiconn * I212; U I216; U I217; U I218; U I219; U * I220; U * I221; U I222; void * I223; U I224; U I225; UP * I226; void * I227; U I228; UP * I229; U * I230; int (* I231)(void); U * I232; UP * I233; U * I234; U I235 :1; U I236 :31; U I237; U I238; UP * I239; U * I240; U I241 :1; U I242 :1; U I243 :1; U I244 :1; U I245 :28; U I246; U I247; U I248; U I249 :31; U I250 :1; UP * I251; UP * I252; U * I253; U * I254; U * I255; U * I256; UP * I257; UP * I258; UP * I259; U * I260; UP * I261; UP * I262; UP * I263; UP * I264; char * I265; U I266; U I267; U I268; UP * I269; U I270; UP * I271; UP * I272; UP * I273; UP * I274; UP * I275; UP * I276; UP * I277; UP * I278; UP * I279; UP * I280; UP * I281; UP * I282; UP * I283; UP * I284; U * I285; U * I286; UP * I287; U I288; U I289; U I290; U I291; U I292; U I293; U I294; U I295; char * I296; U * I297; U I298; U I299; U I300; U I301; U I302; UP * I303; UP * I304; UP * I305; UP * I306; struct daidirInfo * I307; struct vcs_tftable * I309; U I311; UP * I312; UP * I313; U I314; U I315; U I316; UP * I317; U * I318; UP * I319; UP * I320; struct qird_hil_data * I321; UP (* I323)(void); UP (* I324)(void); UP (* I325)(void); UP (* I326)(void); UP (* I327)(void); int * I328; int (* I329)(void); char * I330; UP * I331; UP * I332; UP (* I333)(void); int (* I334)(void); int * I335; int (* I336)(void); int * I337; char * I338; U * I339; U * I340; U * I341; U * I342; void * I343; U I344; void * I345; U I346; U I347; U I348; U I349; U I350; U I351; char * I352; UP * I353; U * I354; U * I355; U I356 :15; U I357 :14; U I358 :1; U I359 :1; U I360 :1; U I361 :3; U I362 :1; U I363 :1; U I364 :17; U I365 :3; U I366 :5; U I367 :1; U I368 :1; U I369; U I370; struct scope * I371; U I373; U I374; U I375; U * I376; U * I377; U * I378; U I379; U I380; U I381; struct pcbt * I382; U I392; U I393; U I394; U I395; void * I396; void * I397; void * I398; int I399; U * I400; U I401; U I402; U I403; U I404; U I405; U I406; U I407; void * I408; UP * I409; U I410; U I411; void * I412; U I413; void * I414; U I415; void * I416; U I417; int (* I418)(void); int (* I419)(void); void * I420; void * I421; void * I422; U I423; U I424; U I425; U I426; U I427; U I428; char * I429; U I430; U * I431; U I432; U * I433; U I434; U I435; U I436; U I437; U I438; U I439; U * I440; U I441; U I442; U * I443; U I444; U I445; U I446; U * I447; char * I448; U I449; U I450; U I451; U I452; U * I453; U * I454; U I455; U * I456; U * I457; U I458; U I459; U I460; UP * I461; U I462; U I463; U I464; struct cosim_info * I465; U I467; U * I468; U I469; void * I470; U I471; U * I472; U I473; struct hybridSimReferrerData * I474; U I476; U * I477; U I478; U I479; U * I480; U I481; U * I482; U I483; U * I484; U I485; U I486; U I487; U I488; U I489; U I490; U I491; U I492; U I493; U * I494; U * I495; void (* I496)(void); U * I497; UP * I498; struct mhdl_outInfo * I499; UP * I501; U I502; UP * I503; U I504; void * I505; U * I506; void * I507; char * I508; int (* I509)(void); U * I510; char * I511; char * I512; U I513; U * I514; char * I515; U I516; struct regInitInfo * I517; UP * I519; U * I520; char * I521; U I522; U I523; U I524; U I525; U I526; U I527; U I528; U I529; UP * I530; U I531; U I532; U I533; U I534; UP * I535; U I536; UP * I537; U I538; U I539; U I540; U * I541; U I542; U I543; U I544; U * I545; U * I546; UP * I547; UP * I548; void * I549; UP I550; void * I551; void * I552; void * I553; void * I554; void * I555; UP I556; U * I557; U * I558; void * I559; U I560 :1; U I561 :31; U I562; U I563; U I564; int I565; U I566 :1; U I567 :1; U I568 :1; U I569 :29; void * I570; void * I571; void * I572; void * I573; void * I574; UP * I575; U * I576; U I577; char * I578; U * I579; U * I580; char * I581; int * I582; UP * I583; struct etype * I584; U I637; U I638; U * I639; struct etype * I640; U I641; U I642; U I643; U * I644; void * I645; U I646; U I647; void * I648; U I649; U I650; U * I651; U * I652; char * I653; U I654; struct covreg_rt * I655; U I657; U I658; U * I659; U I660; U * I661; U I662; U I663; U * I664; }; typedef struct pcbt { U * I384; UP I385; U I386; U I387; U I388; U I389; U I390; U I391; } PCBT; struct iptmpl { QIRD * I734; struct vcs_globals_t * I735; void * I737; UP I738; UP I739; struct iptmpl * I729[2]; }; typedef unsigned long long FileOffset; typedef struct _RmaMultiInputTable { U I881 :1; U I882 :1; U I672 :2; U I673 :4; U I674 :5; U I883 :1; U I884 :1; U I885 :1; U I886 :1; U I887 :1; U I888 :1; U I889; U I890; U I203; U I891; U I892 :1; U I893 :31; union { U utable; U edgeInputNum; } I699; U I894 :4; U I895 :4; U I896 :4; U I897 :4; U I898 :4; U I899 :4; U I900 :1; U I901 :1; U I902 :1; U I903 :1; U I904 :5; HsimExprChar * I905; UB * I906; UB * I907; struct _RmaMultiInputTable * I880; struct _RmaMultiInputTable * I909; } RmaMultiInputTable; typedef struct _HsCgPeriod { U I955; U I956; } HsCgPeriod; typedef struct { U I957[2]; U I958 :1; U I959 :1; U I960 :8; U I961 :8; U I962 :8; U I963 :4; U I964 :1; U I965 :1; unsigned long long I966; unsigned long long I967; unsigned long long I968; unsigned long long I969; unsigned long long I956; U I955; U I970; U I971; U I972; U I973; U I974; HsCgPeriod * I975[10]; } HsimSignalMonitor; typedef struct { FlatNodeNum I976; InstNum I977; U I915; scalar I978; UB I979; UB I980; UB I981; UB I982; UB I983; UB I984; U I985; U I986; U I987; U I988; U I989; U I990; U I991; U I992; U I993; HsimSignalMonitor * I994; RP I995; RmaTimeStamp64 I996; U I997; RmaTimeStamp64 I998; U I999; UB I1000; } HsimNodeRecord; typedef RP RCICODE; typedef struct { RP I1005; RP I729; } RmaIbfIp; typedef struct { RP I1005; RP pcode; } RmaIbfPcode; typedef struct { RmaEblk I726; } RmaEvTriggeredOrSyncLoadCg; typedef struct { RO I877; RP pcode; } SchedGateFanout; typedef struct { RO I877; RP pcode; U I936[4]; } SchedSelectGateFanout; typedef struct { RP pcode; RmaEblklq I726; } SchedGateEblk; typedef struct { RP pcode; RmaEblklq I726; UB * I1006; } SchedSelectGateEblk; typedef struct { RP I1007; RP pfn; RP pcode; } RmaSeqPrimOutputEblkData; typedef struct { RmaEblk I726; RP I1008; } RmaAnySchedSampleSCg; typedef struct { RmaEblk I726; RP I1006; RP I1008; vec32 I1009; } RmaAnySchedVCg; typedef struct { RmaEblk I726; RP I1006; RP I1008; vec32 I776[1]; } RmaAnySchedWCg; typedef struct { RmaEblk I726; RP I1006; RP I1008; scalar I1010[1]; } RmaAnySchedECg; typedef struct { U I1011; U I714; U I915; U I1012; RmaIbfIp * I1013; EBLK I726; void * val; } RmaThreadSchedCompiledLoads; typedef struct { U I714; U I722; RmaThreadSchedCompiledLoads * I1014; } RmaSchedCompileLoadsCg; typedef struct { RP I1015; } RmaRootCbkCg; typedef struct { RP I1016; } RmaRootForceCbkCg; typedef struct { RmaEblk I726; RP I1017; } RmaForceCbkJmpCg; typedef struct { U I5; U I722 :31; U I1018 :1; vec32 I808; U I1019; RP I1020; RP I1021; } RmaForceSelectorV; typedef struct { U I5; RmaIbfPcode I1027; } RmaNetTypeDriverGate; typedef struct { U I5; U I668; RmaIbfPcode I1027[1]; } RmaNetTypeScatterGate; typedef struct { U I5; RmaIbfPcode I1027; } RmaNetTypeGatherGate; typedef struct { RmaIbfPcode I1028; U I1029 :3; U I1030 :1; U I1031 :1; U I890 :16; } RmaNbaGateOfn; typedef struct { U I5; NBS I1032; RmaIbfPcode I1028; } RmaNbaGate1; typedef struct { RP ptable; RP pfn; RP pcode; } Rma1InputGateFaninCgS; typedef struct RmaSeqPrimOutputS_ RmaSeqPrimOutputOnClkS; struct RmaSeqPrimOutputS_ { RP pfn; RP I1035; U state; U I1036; RP I1037; U I706; scalar val; }; typedef struct { U I5; U iinput; UB I1039; RP I1040; } RmaCondOptLoad; typedef struct { U I5; U iinput; UB I1039; RP I1040; } RmaMacroStateUpdate; typedef struct { U I5; U state; U I1041; UB I1039; U * I1042; } RmaMacroState; typedef struct { U iinput; RP I1043; } RmaMultiInputLogicGateCg; typedef struct { U iinput; RP ptable; RP I1043; } RmaSeqPrimEdgeInputCg; typedef struct { RmaEblk I726; RP pcode; } RmaSched0GateCg; typedef struct { RmaEblk I726; RP pcode; RP pfn; } RmaUdpDeltaGateCg; typedef struct { RmaEblk I726; RP pcode; RP pfn; scalar I1044; } RmaSchedDeltaGateCg; typedef struct { UB I1045; RP I1046; RP I1047; } RmaPropNodeSeqLhsSCg; typedef struct { RmaEblk I726; RP pcode; U I915; U I715[1]; } RmaBitEdgeEblk; typedef struct { U I5; RP I807; RmaEblk I726; RmaIbfPcode I1028; } RmaGateDelay; typedef struct { U I5; RP I807; RmaEblk I726; RmaIbfPcode I1028; } RmaGateBehavioralDelay; typedef struct { U I5; union { RP I1290; RP I1578; RP I1592; } I781; RmaIbfPcode I1028; } RmaMPDelay; typedef struct { U I5; RmaPulse I1048; RmaIbfPcode I1028; } RmaMPPulseHybridDelay; typedef struct { U I5; RmaIbfPcode I1028; RmaMps I1049; } RmaMPHybridDelay; typedef struct { U I5; U I1050; RmaIbfPcode I1028; RmaEblk I766; } RmaMPHybridDelayPacked; typedef struct { U I5; RmaIbfPcode I1028; RmaMpspNewCsdf I1051; } RmaMPPulseDelay; typedef struct { U I5; RmaMpsp I1051; RmaIbfPcode I1028; } RmaMPPulseOptHybridDelay; typedef struct _RmaBehavioralTransportDelay { U I5; RP I685; RmaTransEventHdr I921; RP I804; RmaIbfPcode I1028; } RmaBehavioralTransportDelayS; typedef struct { U I5; U I685; RmaTransEventHdr I921; RP I804; RmaIbfPcode I1028; } RmaNtcTransDelay; typedef struct { U I5; U I685; RmaEblk I726; RmaIbfPcode I1028; } RmaNtcTransMpwOptDelay; typedef struct { U I5; RmaEblk I726; RmaIbfPcode I1028; } RmaNtcTransZeroDelay; typedef struct { U I5; U I1052; U I1053; RmaTransEventHdr I921; RP I804; RmaIbfPcode I1028; } RmaNtcTransDelayRF; typedef struct { U I5; U I1052; U I1053; RmaEblk I726; RmaIbfPcode I1028; } RmaNtcTransMpwOptDelayRF; typedef struct { U I5; RP I1054; RmaTransEventHdr I921; RP I804; RmaIbfPcode I1028; } RmaICTransDelay; typedef struct { U I5; RP I1054; RmaEblk I726; RmaIbfPcode I1028; } RmaICTransMpwOptDelay; typedef struct { U I5; RmaEblk I726; RmaIbfPcode I1028; } RmaICTransZeroDelay; typedef struct { U I5; RP I807; RmaEblk I726; RmaIbfPcode I1028; } RmaICSimpleDelay; typedef struct { U I5; union { RP psimple; RP I1578; RP I1592; } I781; RmaIbfPcode I1028; } RmaICDelay; typedef struct { U I5; RP I807; RmaEblk I726; RmaIbfPcode I1028; } RmaPortDelay; typedef struct { U I890; RP I1058; } RmaRtlXEdgesLoad; typedef struct { U I5; RmaRtlXEdgesLoad I1058[(5)]; } RmaRtlXEdgesHdr; typedef struct { U I5; US I1059; US I1060 :1; US I904 :15; RP I1061; RP I1062; RP I1063; } RmaRtlEdgeBlockHdr; typedef struct { RP I1064; RP I1065; } RemoteDbsedLoad; typedef struct { RmaEblk I726; RP I1066; RP I1067; U I1068 :16; U I1069 :2; U I1070 :2; U I1071 :1; U I1072 :8; U I904 :3; U I471; RP I1073; RP I811[(5)]; RP I813[(5)]; US I1074; US I1075; RemoteDbsedLoad I1076[1]; } RmaRtlEdgeBlock; typedef struct TableAssign_ { struct TableAssign_ * I880; struct TableAssign_ * I798; U I5; U I1078 :1; U I1079 :1; U I1080 :2; U I1081 :1; U I706 :8; U I1082 :1; U I1083 :1; U I1084 :1; U I1085 :1; U I1086 :1; U I1087 :1; U I904 :13; RP ptable; RP I1043; } TableAssign; typedef struct TableAssignLayoutOnClk_ { struct TableAssignLayoutOnClk_ * I880; struct TableAssignLayoutOnClk_ * I798; U I5; U I1078 :1; U I1079 :1; U I1080 :2; U I1081 :1; U I706 :8; U I1082 :1; U I1083 :1; U I1084 :1; U I1085 :1; U I1086 :1; U I1087 :1; U I904 :13; RP ptable; RmaSeqPrimOutputOnClkS I1089; RmaEblk I726; } TableAssignLayoutOnClk; typedef struct { U state; U I1090; } RmaSeqPrimOutputOnClkOpt; typedef struct TableAssignLayoutOnClkOpt_ { struct TableAssignLayoutOnClkOpt_ * I880; struct TableAssignLayoutOnClkOpt_ * I798; U I1092; U I1078 :1; U I1079 :1; U I1080 :2; U I1081 :1; U I706 :8; U I1082 :1; U I1083 :1; U I1084 :1; U I1085 :1; U I1086 :1; U I1087 :1; U I904 :13; RmaSeqPrimOutputOnClkOpt I1089; RmaSeqPrimOutputEblkData I1093; } TableAssignLayoutOnClkOpt; typedef struct { U I5; RP I798; RP I1094; } RmaTableAssignList; typedef struct { U I5; RP I798; RP I1094; RP I1095; RP I1037; US I706; UB I978; UB I1096; UB I1097; UB I772; RP I1098[0]; } RmaThreadTableAssignList; typedef struct { RP I1095; RP I1037; US I706; UB I978; UB I1096; UB I1097; UB I772; } RmaThreadTableHeader; typedef struct { RP I1064; } RmaWakeupListCg; typedef struct { RP I1064; } RmaWakeupArrayCg; typedef struct { RP I1064; RP I1099; } RmaPreCheckWakeupListCg; typedef struct { RP I1064; RP I1099; } RmaPreCheckWakeupArrayCg; typedef struct { U I1100; U I706; RmaTimeStamp I1101[1]; } RmaTsArray; typedef struct { U iinput; RP I1102; } RmaConditionsMdb; typedef struct { RP I1103; RP I1104; U I1105; } RmaTcListHeader; typedef struct { RP I880; RP I1106; RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; } RmaTcCoreSimple; typedef struct { RP I880; RP I1106; RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1117; } RmaTcCoreConditional; typedef struct { RP I880; RP I1106; RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1117; RP I1118; } RmaTcCoreConditionalOpt; typedef struct { RP I880; RP I1106; RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1118; RP I1119; U I1120; RmaConditionsMdb arr[1]; } RmaTcCoreConditionalMtc; typedef struct { RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; } RmaTcCoreSimpleNoList; typedef struct { RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1035; } RmaTcCoreSimpleNoListMdb; typedef struct { RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1117; } RmaTcCoreConditionalNoList; typedef struct { RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1117; RP I1118; } RmaTcCoreConditionalOptNoList; typedef struct { RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1118; RP I1119; U I1120; RmaConditionsMdb arr[1]; } RmaTcCoreConditionalMtcNoList; typedef struct { RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1118; RP I1119; RP I1035; U I1120; RmaConditionsMdb arr[1]; } RmaTcCoreConditionalMtcNoListMdb; typedef struct { RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; RP I1117; RP I1035; } RmaTcCoreConditionalNoListMdb; typedef struct { RP I1107; RP I721; U I1108; scalar I890; scalar I1109; US I1110 :1; US I1111 :1; US I1112 :1; US I1113 :1; US I1114 :1; US I1115 :1; US I1116 :5; U I1122; RP I1123; RP I1124; RP I1117; RP I1125; RP I1126; RmaTimeStamp I1127; } RmaTcCoreNochange; typedef struct { RP I1128; RP I880; } RmaTcCoreNochangeList; typedef struct { RP I1102; RmaTimeStamp I1129; scalar I1130; } RmaConditionalTSLoadNoList; typedef struct { RP I880; RP I1102; RmaTimeStamp I1129; scalar I1130; } RmaConditionalTSLoad; typedef struct { RmaTimeStamp I1129; scalar I1130; US I890; RP I1118; } RmaConditionalTSLoadOptNoList; typedef struct { RP I880; RmaTimeStamp I1129; scalar I1130; US I890; RP I1118; } RmaConditionalTSLoadOpt; typedef struct { RP I1118; RP I1131; U I1120; RmaConditionsMdb arr[1]; } RmaConditionalTSLoadMtcNoList; typedef struct { RP I1035; RP I1118; RP I1131; U I1120; RmaConditionsMdb arr[1]; } RmaConditionalTSLoadMtcNoListMdb; typedef struct { RP I880; RP I1118; RP I1131; U I1120; RmaConditionsMdb arr[1]; } RmaConditionalTSLoadMtc; typedef struct { U I1132; U I1133; FlatNodeNum I1004; U I915; U I1134; U I1135; RmaIbfPcode I1028; union { scalar I1136; vec32 I1137; scalar * I1138; vec32 * I1139; } val; } RmaScanSwitchData; typedef struct { RP I880; RP I798; RP I1140; } RmaDoublyLinkedListElem; typedef struct { RP I1141; U I1142 :1; U I1143 :1; U I1144 :1; U I1145 :4; U I904 :25; U I1146; } RmaSwitchGateInCbkListInfo; typedef struct { union { RmaDoublyLinkedListElem I1640; RmaSwitchGateInCbkListInfo I2; } I699; RmaIbfPcode I1028; } RmaSwitchGate; typedef struct RmaNonEdgeLoadData1_ { US I1147; scalar val; scalar I1148 :1; scalar I1149 :1; scalar I1150 :1; scalar I1151 :1; scalar I1152 :1; U I1153; RP I811; RP I1154; RP I1004; RP I1155; RP I1156; } RmaNonEdgeLoadData1; typedef struct RmaNonEdgeLoadHdr1_ { UB I1148; UB I1157; UB I978; RmaNonEdgeLoadData1 * I1058; RmaNonEdgeLoadData1 * I798; void * I1158; } RmaNonEdgeLoadHdr1; typedef struct RmaNonEdgeLoadHdrPrl1_ { U I1159; RP I721; } RmaNonEdgeLoadHdrPrl1; typedef struct RmaChildClockProp_ { RP I811; RP I1160; RP I1004; RP pcode; scalar val; } RmaChildClockProp; typedef struct RmaChildClockPropList1_ { RmaChildClockProp * I1058; RmaChildClockProp * I798; } RmaChildClockPropList1; typedef struct { U I5; U I1161; } RmaHDLCosimDUTGate; typedef struct { UB I1162; UB I1163 :1; UB I1164 :1; UB I1165 :1; UB I1166 :1; UB I904 :4; US cedges; } RmaMasterXpropLoadHdr; typedef struct { UB I1167; UB I1168; UB I1169; UB I1170; U cedges :30; U I1164 :1; U I1171 :1; U I1172; U I1173; RP I1174; RP I1175; RmaRtlEdgeBlockHdr * I1176; } RmaChildXpropLoadHdr; struct clock_load { U I181 :5; U I182 :12; U I183 :1; U I184 :2; U I185 :1; U I186 :1; U I187 :1; U I188 :9; U I189; U I190; void (* pfn)(void * I192, char val); }; typedef struct clock_data { U I197 :1; U I198 :1; U I199 :1; U I200 :1; U I181 :5; U I182 :12; U I201 :6; U I202 :1; U I184 :2; U I185 :1; U I188 :1; U I203; U I204; U I205; U I189; U I206; U I207; U I208; U I209; U I210; } HdbsClockData; struct clock_hiconn { U I214; U I215; U I189; U I184; }; typedef struct _RmaDaiCg { RP I1177; RP I1178; U I1179; } RmaDaiCg; typedef union _RmaCbkMemOptUnion { RP I1177; RP I1180; RP I1181; } RmaCbkMemOptUnion; typedef struct _RmaDaiOptCg { RmaCbkMemOptUnion I1182; } RmaDaiOptCg; struct futq_slot2 { U I758; U I759[32]; }; struct futq_slot1 { U I755; struct futq_slot2 I756[32]; }; struct futq_info { scalar * I750; U I751; U I752; struct futq_slot1 I753[32]; }; struct futq { struct futq * I740; struct futq * I742; RmaEblk * I743; RmaEblk * I744; U I731; U I1; }; struct sched_table { struct futq * I745; struct futq I746; struct hash_bucket * I747; struct hash_bucket * I749; }; struct dummyq_struct { clock_struct I1183; EBLK * I1184; EBLK * I1185; EBLK * I1186; struct futq * I1187; struct futq * I1188; struct futq * I1189; struct sched_table * I1190; struct futq_info * I1192; struct futq_info * I1194; U I1195; U I1196; U I1197; U I1198; U I1199; U I1200; U I1201; struct millenium * I1202; EBLK * I1204; EBLK * I1205; EBLK * I1206; EBLK * I1207; EBLK * I1208; EBLK * I1209; EBLK * I1210; EBLK * I1211; EBLK * I1212; EBLK * I1213; EBLK * I1214; EBLK * I1215; EBLK * I1216; EBLK * I1217; EBLK * I1218; EBLK * I1219; EBLK * I1220; EBLK * I1221; MPS * I1222; struct retain_t * I1223; EBLK * I1224; EBLK * I1225; EBLK * I1226; EBLK * I1227; EBLK * I1228; EBLK * I1229; EBLK * I1230; EBLK * I1231; EBLK * I1232; EBLK * I1233; EBLK * I1234; EBLK * I1235; EBLK * I1236; EBLK * I1237; EBLK * I1238; EBLK * I1239; EBLK * I1240; EBLK * I1241; EBLK * I1242; EBLK * I1243; EBLK * I1244; EBLK * I1245; EBLK * I1246; EBLK * I1247; EBLK * I1248; EBLK * I1249; EBLK I1250; EBLK * I1251; EBLK * I1252; EBLK * I1253; EBLK * I1254; int I1255; int I1256; struct vcs_globals_t * I1257; clock_struct I1258; unsigned long long I1259; EBLK * I1260; EBLK * I1261; void * I1262; }; typedef void (* FP)(void * , scalar ); typedef void (* FP1)(void * ); typedef void (* FPRAP)(void * , vec32 * , U ); typedef U (* FPU1)(void * ); typedef void (* FPV)(void * , UB * ); typedef void (* FPVU)(void * , UB * , U ); typedef void (* FPLSEL)(void * , scalar , U ); typedef void (* FPLSELV)(void * , vec32 * , U , U ); typedef void (* FPFPV)(UB * , UB * , U , U , U , U , U , UB * , U ); typedef void (* FPFA)(UB * , UB * , U , U , U , U , U , U , UB * , U ); typedef void (* FPRPV)(UB * , U , U , U ); typedef void (* FPEVCDLSEL)(void * , scalar , U , UB * ); typedef void (* FPEVCDLSELV)(void * , vec32 * , U , U , UB * ); typedef void (* FPNTYPE_L)(void * , void * , U , U , UB * , UB * , UB * , UB * , UB * , UB * , UB * , U ); typedef void (* FPNTYPE_H)(void * , void * , U , U , UB * , UB * , UB * , UB * , U ); typedef void (* FPNTYPE_LPAP)(void * , void * , void * , U , U , UB * , UB * , U ); typedef void (* FPNTYPE_HPAP)(void * , void * , void * , U , U , UB * , UB * , UB * , UB * , U ); typedef struct _lqueue { EBLK * I727; EBLK * I1263; int I1264; struct _lqueue * I769; } Queue; typedef struct { void * I1266; void * I1267; void * I1268[2]; void * I1269; } ClkLevel; typedef struct { unsigned long long I1270; EBLK I1171; U I1271; U I1272; union { void * pHeap; Queue * pList; } I699; unsigned long long I1273; ClkLevel I1274; Queue I1275[1]; } Qhdr; extern UB Xvalchg[]; extern UB X4val[]; extern UB X3val[]; extern UB X2val[]; extern UB XcvtstrTR[]; extern UB Xcvtstr[]; extern UB Xbuf[]; extern UB Xbitnot[]; extern UB Xwor[]; extern UB Xwand[]; extern U Xbitnot4val[]; extern UB globalTable1Input[]; extern __thread unsigned long long vcs_clocks; extern UB Xunion[]; extern U fRTFrcRelCbk; extern FP txpFnPtr; extern FP rmaFunctionArray[]; extern UP rmaFunctionRtlArray[]; extern FP rmaFunctionLRArray[]; extern U rmaFunctionCount; extern U rmaFunctionLRCount; extern U rmaFunctionLRDummyCount; extern UP rmaFunctionDummyEndPtr; extern FP rmaFunctionFanoutArray[]; extern __thread UB dummyScalar; extern __thread UB fScalarIsForced; extern __thread UB fScalarIsReleased; extern U fNotimingchecks; extern U fFsdbDumpOn; extern RP * iparr; extern FP1 * rmaPostAnySchedFnPtr; extern FP1 * rmaPostAnySchedFnSamplePtr; extern FP1 * rmaPostAnySchedVFnPtr; extern FP1 * rmaPostAnySchedWFnPtr; extern FP1 * rmaPostAnySchedEFnPtr; extern FP1 * rmaPostSchedUpdateClockStatusFnPtr; extern FP1 * rmaPostSchedUpdateClockStatusNonCongruentFnPtr; extern FP1 * rmaPostSchedUpdateEvTrigFnPtr; extern FP1 * rmaSched0UpdateEvTrigFnPtr; extern FP1 * rmaPostSchedRecoveryResetDbsFnPtr; extern U fGblDataOrTime0Prop; extern UB rmaEdgeStatusValArr[]; extern FP1 * propForceCbkSPostSchedCgFnPtr; extern FP1 * propForceCbkMemoptSPostSchedCgFnPtr; extern UB * ptableGbl; extern U * vcs_ptableOffsetsGbl; extern UB * expandedClkValues; extern __thread Qhdr * lvlQueue; extern __thread unsigned threadIndex; extern int cPeblkThreads; extern US xedges[]; extern U mhdl_delta_count; extern U ignoreSchedForScanOpt; extern U fignoreSchedForDeadComboCloud; extern int fZeroUser; extern U fEveBusPullVal; extern U fEveBusPullFlag; extern U fFutEventPRL; extern U fParallelEBLK; extern U fBufferingEvent; extern __thread UB fNettypeIsForced; extern __thread UB fNettypeIsReleased; extern EBLK * peblkFutQ1Head; extern EBLK * peblkFutQ1Tail; extern US * edgeActionT; extern unsigned long long * derivedClk; extern U fHashTableSize; extern U fSkipStrChangeOnDelay; extern U fHsimTcheckOpt; extern scalar edgeChangeLookUp[4][4]; extern U fDoingTime0Prop; extern U fLoopDetectMode; extern int gFLoopDectCodeEna; extern U fLoopReportRT; extern void *mempcpy(void* s1, void* s2, unsigned n); extern UB* rmaEvalDelays(UB* pcode, scalar val); extern UB* rmaEvalDelaysV(UB* pcode, vec32* pval); extern void rmaPopTransEvent(UB* pcode); extern void rmaSetupFuncArray(UP* ra, U c, U w); extern void rmaSetupRTLoopReportPtrs(UP* funcs, UP* rtlFuncs, U cnt, U cntDummy, UP end); extern void SinitHsimPats(void); extern void VVrpDaicb(void* ip, U nIndex); extern int SDaicb(void *ip, U nIndex); extern void SDaicbForHsimNoFlagScalar(void* pDaiCb, unsigned char value); extern void SDaicbForHsimNoFlagStrengthScalar(void* pDaiCb, unsigned char value); extern void SDaicbForHsimNoFlag(void* pRmaDaiCg, unsigned char value); extern void SDaicbForHsimNoFlag2(void* pRmaDaiCg, unsigned char value); extern void SDaicbForHsimWithFlag(void* pRmaDaiCg, unsigned char value); extern void SDaicbForHsimNoFlagFrcRel(void* pRmaDaiCg, unsigned char reason, int msb, int lsb, int ndx); extern void SDaicbForHsimNoFlagFrcRel2(void* pRmaDaiCg, unsigned char reason, int msb, int lsb, int ndx); extern void VcsHsimValueChangeCB(void* pRmaDaiCg, void* pValue, unsigned int valueFormat); extern U isNonDesignNodeCallbackList(void* pRmaDaiCg); extern void SDaicbForHsimCbkMemOptNoFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength); extern void SDaicbForHsimCbkMemOptWithFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength); extern void SDaicbForHsimCbkMemOptNoFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength); extern void SDaicbForHsimCbkMemOptWithFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength); extern void VVrpNonEventNonRegdScalarForHsimOptCbkMemopt(void* ip, U nIndex); extern void SDaicbForHsimCbkMemOptNoFlagDynElabScalar(U* mem, unsigned char value, unsigned char isStrength); extern void SDaicbForHsimCbkMemOptWithFlagDynElabScalar(U* mem, unsigned char value, unsigned char isStrength); extern void SDaicbForHsimCbkMemOptNoFlagDynElabFrcRel(U* mem, unsigned char reason, int msb, int lsb, int ndx); extern void SDaicbForHsimCbkMemOptNoFlagFrcRel(void* pDaiCb, unsigned char reason, int msb, int lsb, int ndx); extern void hsimDispatchCbkMemOptForVcd(RP p, U val); extern void* hsimGetCbkMemOptCallback(RP p); extern void hsimDispatchCbkMemOptNoDynElabS(RP* p, U val, U isStrength); extern void* hsimGetCbkPtrNoDynElab(RP p); extern void hsimDispatchCbkMemOptDynElabS(U** pvcdarr, U** pcbkarr, U val, U isScalForced, U isScalReleased, U isStrength); extern void hsimDispatchCbkMemOptNoDynElabVector(RP* /*RmaDaiOptCg* */p, void* pval, U /*RmaValueType*/ vt, U cbits); extern void copyAndPropRootCbkCgS(RmaRootCbkCg* pRootCbk, scalar val); extern void copyAndPropRootCbkCgV(RmaRootCbkCg* rootCbk, vec32* pval); extern void copyAndPropRootCbkCgW(RmaRootCbkCg* rootCbk, vec32* pval); extern void copyAndPropRootCbkCgE(RmaRootCbkCg* rootCbk, scalar* pval); extern void Wsvvar_callback_non_dynamic1(RP* ptr, int); extern void rmaExecEvSyncList(RP plist); extern void Wsvvar_callback_virt_intf(RP* ptr); extern void Wsvvar_callback_hsim_var(RP* ptr); extern void checkAndConvertVec32To2State(vec32* value, vec32* svalue, U cbits, U* pforcedBits); extern unsigned int fGblDataOrTime0Prop; extern void SchedSemiLerMP1(UB* pmps, U partId); extern void SchedSemiLerMPO(UB* pmpso, U partId); extern void rmaDummyPropagate(void); extern RP rmaTestCg(RP pcode, U vt, UB* value); extern void hsUpdateModpathTimeStamp(UB* pmps); extern void doMpd32One(UB* pmps); extern void doMpdCommon(MPS* pmps); extern TimeStamp GET_DIFF_DELAY_FUNC(TimeStamp ts); extern void SchedSemiLerMP(UB* ppulse, U partId); extern EBLK *peblkFutQ1Head; extern EBLK *peblkFutQ1Tail; extern void scheduleuna(UB *e, U t); extern void scheduleuna_mp(EBLK *e, unsigned t); extern void schedule(UB *e, U t); extern void sched_hsopt(struct dummyq_struct * pQ, EBLK *e, U t); extern void sched_millenium(struct dummyq_struct * pQ, void *e, U thigh, U t); extern void schedule_1(EBLK *e); extern void sched0(UB *e); extern void sched0Raptor(UB *e); extern void sched0lq(EBLK *e); extern void sched0lqnc(EBLK *e); extern void sched0una(UB *e); extern void sched0una_th(struct dummyq_struct *pq, UB *e); extern void hsopt_sched0u_th(struct dummyq_struct *pq, UB *e); extern void scheduleuna_mp_th(struct dummyq_struct *pq, EBLK *e, unsigned t); extern void schedal(UB *e); extern void sched0_th(struct dummyq_struct * pQ, EBLK *e); extern void sched0u(UB *e); extern void sched0u_th(struct dummyq_struct *pq, UB *e); extern void sched0_hsim_front_th(struct dummyq_struct * pQ, UB *e); extern void sched0_hsim_frontlq_th(struct dummyq_struct * pQ, UB *e); extern void sched0lq_th(struct dummyq_struct * pQ, UB *e); extern void schedal_th(struct dummyq_struct * pQ, UB *e); extern void scheduleuna_th(struct dummyq_struct * pQ, void *e, U t); extern void schedule_th(struct dummyq_struct * pQ, UB *e, U t); extern void schedule_1_th(struct dummyq_struct * pQ, EBLK *peblk); extern void SetupLER_th(struct dummyq_struct * pQ, EBLK *e); extern void FsdbReportClkGlitch(UB*,U); extern void AddToClkGLitchArray(EBLK*); extern void SchedSemiLer_th(struct dummyq_struct * pQ, EBLK *e); extern void SchedSemiLerTXP_th(struct dummyq_struct * pQ, EBLK *e); extern void SchedSemiLerTXPFreeVar_th(struct dummyq_struct * pQ, EBLK *e); extern U getVcdFlags(UB *ip); extern void VVrpNonEventNonRegdScalarForHsimOpt(void* ip, U nIndex); extern void VVrpNonEventNonRegdScalarForHsimOpt2(void* ip, U nIndex); extern void SchedSemiLerTBReactiveRegion(struct eblk* peblk); extern void SchedSemiLerTBReactiveRegion_th(struct eblk* peblk, U partId); extern void SchedSemiLerTr(UB* peblk, U partId); extern void SchedSemiLerNBA(UB* peblk, U partId); extern void NBA_Semiler(void *ip, void *pNBS); extern void sched0sd_hsim(UB* peblk); extern void vcs_sched0sd_hsim_udpclk(UB* peblk); extern void vcs_sched0sd_hsim_udpclkopt(UB* peblk); extern void sched0sd_hsim_PRL(UB* peblk); extern void sched0lq_parallel_clk(EBLK* peblk); extern U isRtlClockScheduled(EBLK* peblk); extern void doFgpRaceCheck(UB* pcode, UB* p, U flag); extern void doSanityLvlCheck(); extern void sched0lq_parallel_ova(EBLK* peblk); extern void sched0lq_parallel_ova_precheck(EBLK* peblk); extern void rmaDlpEvalSeqPrim(UB* peblk, UB val, UB preval); extern void appendNtcEvent(UB* phdr, scalar s, U schedDelta); extern void appendTransEventS(RmaTransEventHdr* phdr, scalar s, U schedDelta); extern void schedRetainHsim(MPS* pMPS, scalar sv, scalar pv); extern void updateRetainHsim(MPS* pMPS,scalar sv, scalar pv); extern void hsimCountXEdges(void* record, scalar s); extern void hsimRegisterEdge(void* sm, scalar s); extern U pvcsGetPartId(); extern void HsimPVCSPartIdCheck(U instNo); extern void debug_func(U partId, struct dummyq_struct* pQ, EBLK* EblkLastEventx); extern struct dummyq_struct* pvcsGetQ(U thid); extern EBLK* pvcsGetLastEventEblk(U thid); extern void insertTransEvent(RmaTransEventHdr* phdr, scalar s, scalar pv, scalar resval, U schedDelta, int re, UB* predd, U fpdd); extern void insertNtcEventRF(RmaTransEventHdr* phdr, scalar s, scalar pv, scalar resval, U schedDelta, U* delays); extern U doTimingViolation(RmaTimeStamp ts,RP* pdata, U fskew, U limit, U floaded, U fcondopt, RmaTimeStamp tsNochange); extern void sched_gate_hsim(EBLK* peblk, unsigned t, RP* offset, U gd_info, U encodeInPcode, void* propValue); extern int getCurSchedRegion(); extern FP getRoutPtr(RP, U); extern U rmaChangeCheckAndUpdateE(scalar* pvalDst, scalar* pvalSrc, U cbits); extern void rmaUpdateE(scalar* pvalDst, scalar* pvalSrc, U cbits); extern U rmaChangeCheckAndUpdateEFromW(scalar* pvalDst, vec32* pvalSrc, U cbits); extern void rmaLhsPartSelUpdateE(scalar* pvalDst, scalar* pvalSrc, U index, U width); extern void rmaUpdateWithForceSelectorE(scalar* pvalDst, scalar* pvalSrc, U cbits, U* pforceSelector); extern void rmaUpdateWFromE(vec32* pvalDst, scalar* pvalSrc, U cbits); extern U rmaLhsPartSelWithChangeCheckE(scalar* pvalDst, scalar* pvalSrc, U index, U width); extern void rmaLhsPartSelWFromE(vec32* pvalDst, scalar* pvalSrc, U index,U width); extern U rmaChangeCheckAndUpdateW(vec32* pvalDst, vec32* pvalSrc, U cbits); extern void rmaUpdateW(vec32* pvalDst, vec32* pvalSrc, U cbits); extern void rmaUpdateEFromW(scalar* pvalDst, vec32* pvalSrc, U cbits); extern void *VCSCalloc(size_t size, size_t count); extern void *VCSMalloc(size_t size); extern void VCSFree(void *ptr); extern U rmaLhsPartSelWithChangeCheckW(vec32* pvalDst, vec32* pvalSrc, U index,U width); extern void rmaLhsPartSelEFromW(scalar* pvalDst, vec32* pvalSrc, U index,U width); extern U rmaLhsPartSelWithChangeCheckEFromW(scalar* pvalDst, vec32* pvalSrc, U index,U width); extern void rmaLhsPartSelUpdateW(vec32* pvalDst, vec32* pvalSrc, U index, U width); extern void rmaEvalWunionW(vec32* dst, vec32* src, U cbits, U count); extern void rmaEvalWorW(vec32* dst, vec32* src, U cbits, U count); extern void rmaEvalWandW(vec32* dst, vec32* src, U cbits, U count); extern void rmaEvalUnionE(scalar* dst, scalar* src, U cbits, U count, RP ptable); typedef U RmaCgFunctionType; extern RmaIbfPcode* rmaEvalPartSelectsW(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce, UB* pevcdStatus); extern RmaIbfPcode* rmaEvalPartSelectsWLe32(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce, UB* pevcdStatus); extern RmaIbfPcode* rmaEvalPartSelectsWToE(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce); extern RmaIbfPcode* rmaEvalPartSelectsEToE(scalar* pv, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce, UB* pevcdStatus); extern RmaIbfPcode* rmaEvalPartSelectsEToW(scalar* pv, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce); extern U rmaEvalBitPosEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitNegEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitChangeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U VcsForceVecVCg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U/*RmaValueConvType*/ convtype, U/*RmaForceType*/ frcType, UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot); extern U VcsReleaseVecVCg(UB* pcode, UB* pvDst, U fullcbits, U ibeginDst, U width, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot); extern U VcsForceVecWCg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U/*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType, UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot); extern U VcsReleaseVecWCg(UB* pcode, UB* pvDst, U fullcbits, U ibeginDst, U width, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot); extern U VcsForceVecECg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U /*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType,UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot); extern U VcsForceVecACg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U /*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType,UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot); extern U VcsReleaseVecCg(UB* pcode, UB* pvDst, U ibeginDst, U width, U /*RmaValueType*/ type,U fisRoot, UB* prhsDst, U frhs, U* pforcedbits); extern U VcsDriveBitsAndDoChangeCheckV(vec32* pvSel, vec32* pvCur, U fullcbits, U* pforcedbits, U isRoot); extern U VcsDriveBitsAndDoChangeCheckW(vec32* pvSel, vec32* pvCur, U fullcbits, U* pforcedbits, U isRoot); extern U VcsDriveBitsAndDoChangeCheckE(scalar* pvSel, scalar* pvCur, U fullcbits, U* pforcedbits, U isRoot); extern void cgvecDebug_Eblk(UB* pcode); extern U rmaCmpW(vec32* pvalDst, vec32* pvalSrc, U index, U width); extern void copyVec32ArrMask(vec32* pv1, vec32* pv2, U len, U* mask); extern void* memcpy(void*, const void*, size_t); extern int memcmp(const void*, const void*, size_t); extern void propagateScanOptPathVal(EBLK *peblk); extern UB* rmaProcessScanSwitches(UB* pcode, scalar val); extern UB* rmaProcessScanSwitchesV(UB* pcode, vec32 *pval); extern UB* rmaProcessScanoptDump(UB* pcode, scalar val); extern UB* rmaProcessScanoptDumpV(UB* pcode, vec32 *pval); extern UB* rmaProcessScanChainOptSeqPrims(UB* pcode, scalar val); extern void rmaProcessPvcsCcn(UB* pcode, scalar val); extern void rmaProcessPvcsCcnE(UB* pcode, scalar* val); extern void rmaProcessPvcsCcnW(UB* pcode, vec32* val); extern void rmaProcessPvcsCcnV(UB* pcode, vec32* val); extern void rmaProcessPvcsCcnCompiledS(UB* pcode, U offset, scalar ibnval); extern void rmaProcessPvcsCcnCompiledV(UB* pcode, U offset, vec32* pval); extern void schedResetRecoveryDbs(U cedges, EBLK* peblkFirst); extern UB* rmaEvalUnaryOpV(UB* pcode, vec32* pval); extern UB* rmaEvalBinaryOpV(UB* pcode, vec32* pval); extern UB* rmaEvalBinaryOpVOneFanoutCount(UB* pcode, vec32* pval); extern UB* rmaEvalBinaryOpVLargeFanoutCount(UB* pcode, vec32* pval); extern UB* rmaEvalAndOpVOneFanoutCount(UB* pcode, vec32* value); extern UB* rmaEvalAndOpVLargeFanoutCount(UB* pcode, vec32* value); extern UB* rmaEvalAndOpV(UB* pcode, vec32* value); extern UB* rmaEvalOrOpVOneFanoutCount(UB* pcode, vec32* value); extern UB* rmaEvalOrOpVLargeFanoutCount(UB* pcode, vec32* value); extern UB* rmaEvalOrOpV(UB* pcode, vec32* value); extern UB* rmaEvalTernaryOpV(UB* pcode, vec32* pval); extern UB* rmaEvalUnaryOpW(UB* pcode, vec32* pval); extern UB* rmaEvalBinaryOpW(UB* pcode, vec32* pval); extern UB* rmaEvalTernaryOpW(UB* pcode, vec32* pval); extern UB* rmaEvalUnaryOpE(UB* pcode, scalar* pv); extern UB* rmaEvalBinaryOpE(UB* pcode, scalar* pv); extern UB* rmaEvalTernaryOpE(UB* pcode, scalar* pv); extern UB* rmaEvalTernaryOpS(UB* pcode, scalar val); extern scalar rmaGetScalarFromWCg(vec32* pval, U index); extern void rmaSetScalarInWCg(vec32* pval, U index, scalar s); extern void rmaSetWInW(vec32* dst, vec32* src, U index, U indexSrc, U width); extern void rmaCountRaptorBits(void* pval, void* pvalPrev, U cbits, U vt); extern void setHsimFunc(void* ip); extern void unsetHsimFunc(void* ip); extern UB* getEvcdStatusByFlagsE(scalar* pscalar, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits); extern UB* getEvcdStatusByFlagsV(vec32* pvec32, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits); extern UB* getEvcdStatusByFlagsW(vec32* pvec32, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits); extern UB* getEvcdStatusByFlagsS(scalar* pscalar, UB* pevcdTBDriverFlags, U cdrivers, UB* table); extern UB* getSingleDrvEvcdStatusS(UB value, U fTBDriver); extern UB* getSingleDrvEvcdStatusE(scalar* pscalars, U fTBDriver, U cbits); extern UB* getSingleDrvEvcdStatusV(scalar* pscalars, U fTBDriver, U cbits); extern UB* getSingleDrvEvcdStatusW(scalar* pscalars, U fTBDriver, U cbits); extern UB* getEvcdStatusByDrvEvcdStatus(UB* pdrvevcdStatus, U cdrivers, UB* table, U cbits); extern void evcdCallback(UP pcode, U cbits); extern UB* getSavedEvcdStatus(void); extern void saveEvcdStatus(UB*); extern void mhdlMarkExport(void*, U); extern void levelInsertQueue(int); extern void VcsRciRtl(RP pcode); extern U fLoopDetectMode; extern int gFLoopDectCodeEna; extern U fLoopReportRT; extern void rtSched0LoopDectDumpProcess(void* e, void* rtn, void* PQ); extern void pushHsimRtnCtxt(void* pcode); extern void popHsimRtnCtxt(); extern EBLK* loopReportInlinedSched0Wrapper(EBLK *peblk); extern void loopReportSched0Wrapper(EBLK *peblk, unsigned int sfType, unsigned int fTH, struct dummyq_struct* pq); extern void loopReportSchedSemiLerWrapper(EBLK *peblk, int sfType); extern void CallGraphPushNodeAndAddToGraph(UP flatNode, UP instNum, U dummy); extern void CallGraphPopNode(void); extern RP elabGetIpTpl(U in); extern U rmaEvalBitBothEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitEdgeQ1W(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitEdgeQXW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitEdgeQ0W(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEval01EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEval0XEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEval10EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEval1XEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEvalX1EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEvalX0EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitPosEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitNegEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitBothEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitEdgeQ1E(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitEdgeQ0E(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges); extern U rmaEvalBitChangeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges); extern void rmaScheduleNbaGate(RP pcode, scalar val); extern void rmaEvalRtlEdgeLoads(RmaRtlEdgeBlockHdr *phdr, US clkEdge, scalar clkVal, scalar prevClkVal, scalar val4, scalar prevval4, scalar master4val); extern void rmaEvaluateDynamicGateLoadsCg(RP p, scalar s); extern void rmaEvaluateFusedWithDynamicGateLoadsCg(RP p, scalar s); extern void rmaScheduleGatedClockEdgeLoadNew(UB* p, US* ea, U flags, UB* plist, UB* pprevlist, scalar v); extern void rmaScheduleGatedClockEdgeLoad(UB* p, US* ea, U flags, UB* plist, UB* pprevlist, scalar v); extern void rmaRemoveNonEdgeLoads(UB* pcode); extern void rmaRecordEvents(HsimNodeRecord *pnr); extern void handlePCBs(UB* p, U i); extern void markMasterClkOvaLists(U fdbs, RP p); extern void rmaChildClockPropAfterWrite(UB* p); extern void rmaSchedChildClockPropAfterWrite(UB* p, UB* pmasterList, UB val); extern void HDLCosimProcessDUTInputChange(U inputId, void* val); extern void rmaChangeListForMovedGates(UB clkVal, UB f10Edge, UB* subMasterVal, UB* plist, RP* p, U count); extern void rmaEvalSeqPrimLoadsByteArray(UB* pcode, UB val, UB prevval4); extern void rmaEvalSeqPrimLoadsByteArrayX(UB* pcode, UB val, UB prevval4); extern void vcsRmaEvalSeqPrimLoadsByteArraySCT(UB* pcode, UB val, UB prevval4, U c); extern void vcsAbortForBadEBlk(void); extern scalar edgeChangeLookUp[4][4]; extern void Wsvvar_sched_virt_intf_eval(RP* ptr); extern void vcs_hwcosim_drive_dut_scalar(uint id, char val); extern void vcs_hwcosim_drive_dut_vector_4state(uint id, vec32* val); extern U vcs_rmaGetClkValForSeqUdpLayoutOnClkOpt(UB* poutput); extern U rmaIsS2State(scalar s); extern U rmaIsV2State(vec32* pval, U cbits); extern U rmaIsW2State(vec32* pval, U cbits); extern U rmaIsE2State(scalar* pval, U cbits); extern void rmaUpdateRecordFor2State(HsimNodeRecord* record, U f2state); typedef void (*FuncPtr)(); static inline U asm_bsf (U in) { #if defined(linux) U out; #if !defined(__aarch64__) asm ("movl %1, %%eax; bsf %%eax, %%eax; movl %%eax, %0;" :"=r"(out) :"r"(in) :"%eax" ); #else out = ffs(in) - 1; #endif return out; #else return 0; #endif } #ifdef __cplusplus extern "C" { #endif void hs_0_M_0_21__simv_daidir (UB * pcode, scalar val); void hs_0_M_0_21__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_0_0__simv_daidir (UB * pcode, scalar val); void hs_0_M_0_0__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_0_1__simv_daidir (UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_0_1__simv_daidir_core(UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_0_2__simv_daidir (UB * pcode); void hs_0_M_0_2__simv_daidir_core(UB * pcode); void hs_0_M_0_5__simv_daidir (UB * pcode, UB val); void hs_0_M_0_5__simv_daidir_core(UB * pcode, UB val); void hs_0_M_0_11__simv_daidir (UB * pcode, scalar val); void hs_0_M_0_11__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_1_21__simv_daidir (UB * pcode, scalar val); void hs_0_M_1_21__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_1_0__simv_daidir (UB * pcode, scalar val); void hs_0_M_1_0__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_1_1__simv_daidir (UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_1_1__simv_daidir_core(UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_1_2__simv_daidir (UB * pcode); void hs_0_M_1_2__simv_daidir_core(UB * pcode); void hs_0_M_1_5__simv_daidir (UB * pcode, UB val); void hs_0_M_1_5__simv_daidir_core(UB * pcode, UB val); void hs_0_M_1_11__simv_daidir (UB * pcode, scalar val); void hs_0_M_1_11__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_2_21__simv_daidir (UB * pcode, scalar val); void hs_0_M_2_21__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_2_0__simv_daidir (UB * pcode, scalar val); void hs_0_M_2_0__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_2_1__simv_daidir (UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_2_1__simv_daidir_core(UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_2_2__simv_daidir (UB * pcode); void hs_0_M_2_2__simv_daidir_core(UB * pcode); void hs_0_M_2_5__simv_daidir (UB * pcode, UB val); void hs_0_M_2_5__simv_daidir_core(UB * pcode, UB val); void hs_0_M_2_11__simv_daidir (UB * pcode, scalar val); void hs_0_M_2_11__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_3_21__simv_daidir (UB * pcode, scalar val); void hs_0_M_3_21__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_3_0__simv_daidir (UB * pcode, scalar val); void hs_0_M_3_0__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_3_1__simv_daidir (UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_3_1__simv_daidir_core(UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_3_2__simv_daidir (UB * pcode); void hs_0_M_3_2__simv_daidir_core(UB * pcode); void hs_0_M_3_5__simv_daidir (UB * pcode, UB val); void hs_0_M_3_5__simv_daidir_core(UB * pcode, UB val); void hs_0_M_3_11__simv_daidir (UB * pcode, scalar val); void hs_0_M_3_11__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_4_21__simv_daidir (UB * pcode, scalar val); void hs_0_M_4_21__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_4_0__simv_daidir (UB * pcode, scalar val); void hs_0_M_4_0__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_4_1__simv_daidir (UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_4_1__simv_daidir_core(UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_4_2__simv_daidir (UB * pcode); void hs_0_M_4_2__simv_daidir_core(UB * pcode); void hs_0_M_4_5__simv_daidir (UB * pcode, UB val); void hs_0_M_4_5__simv_daidir_core(UB * pcode, UB val); void hs_0_M_4_11__simv_daidir (UB * pcode, scalar val); void hs_0_M_4_11__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_5_21__simv_daidir (UB * pcode, scalar val); void hs_0_M_5_21__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_5_0__simv_daidir (UB * pcode, scalar val); void hs_0_M_5_0__simv_daidir_core(UB * pcode, scalar val); void hs_0_M_5_1__simv_daidir (UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_5_1__simv_daidir_core(UB * pcode, scalar val, U I677, scalar * I1303, U did); void hs_0_M_5_2__simv_daidir (UB * pcode); void hs_0_M_5_2__simv_daidir_core(UB * pcode); void hs_0_M_5_5__simv_daidir (UB * pcode, UB val); void hs_0_M_5_5__simv_daidir_core(UB * pcode, UB val); void hs_0_M_5_11__simv_daidir (UB * pcode, scalar val); void hs_0_M_5_11__simv_daidir_core(UB * pcode, scalar val); void hsG_0__0 (struct dummyq_struct * I1289, EBLK * I1283, U I685); void hsG_0__0_core(struct dummyq_struct * I1289, EBLK * I1283, U I685); #ifdef __cplusplus } #endif #ifdef __cplusplus } #endif #endif /*__DO_RMAHDR_*/