build_fsm_ap.m
来自「CheckMate is a MATLAB-based tool for mod」· M 代码 · 共 63 行
M
63 行
function ap = build_fsm_ap(fsmname,statename)global GLOBAL_PIHA GLOBAL_TRANSITION GLOBAL_XSYS2AUTO_MAPfound = 0;for k = 1:length(GLOBAL_PIHA.FSMBlocks) if strcmp(fsmname,GLOBAL_PIHA.FSMBlocks{k}.name) fsmidx = k; found = 1; break; endendif ~found error(['Invalid FSM block name ''' fsmname '''.'])endfound = 0;for k = 1:length(GLOBAL_PIHA.FSMBlocks{fsmidx}.states) if strcmp(statename,GLOBAL_PIHA.FSMBlocks{fsmidx}.states{k}) stateidx = k; found = 1; break; endendif ~found error(['Invalid state name ''' statename ''' for FSM block ''' fsmname '''.'])endN = length(GLOBAL_TRANSITION);ap = region(N,'false');for k = 1:N if isa(GLOBAL_XSYS2AUTO_MAP{k},'double') loc = GLOBAL_XSYS2AUTO_MAP{k}(1); q = GLOBAL_PIHA.Locations{loc}.q; else % must be special states if strcmp(GLOBAL_XSYS2AUTO_MAP{k}{1},'terminal') q = GLOBAL_XSYS2AUTO_MAP{k}{2}; if (q(fsmidx) == stateidx) ap = set_state(ap,k,1); end else loc = GLOBAL_XSYS2AUTO_MAP{k}{2}; q = GLOBAL_PIHA.Locations{loc}.q; end end if (q(fsmidx) == stateidx) ap = set_state(ap,k,1); endendreturn
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?