亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lab_mc_monitor.e

?? 關于一個Motor Controller示例的E語言驗證程序!
?? E
字號:
File: lab_mc_monitor.e-- monitor and checker are in this file<'unit lab_mc_monitor_u {//======================= Below are variable and event definition ===========// Define the events for methods and checkers// Define the fields to record the input and pwme//===========================================================================     ///    /// input and output   ///   -- record the first cycle speed now   mc_speed_now_ori: uint(bits: 13);   keep soft mc_speed_now_ori == 0;      -- record the real speed now signal from the dut at the second cycle   mc_speed_now_dut: uint(bits: 13);   keep soft mc_speed_now_dut == 0;      -- record the first cycle target speed   mc_target_speed_ori: uint(bits: 13);   keep soft mc_target_speed_ori == 0;      -- record the real target speed signal from the dut at the second cycle   mc_target_speed_dut: uint(bits: 13);   keep soft mc_target_speed_dut == 0;      -- record the first cycle min speed   mc_min_speed_ori: uint(bits: 13);   keep soft mc_min_speed_ori == 0;      -- record the real min speed signal from the dut at the second cycle   mc_min_speed_dut: uint(bits: 13);   keep soft mc_min_speed_dut == 0;      -- record the first cycle power enable signal   mc_pwme_ori: uint(bits: 1);   keep soft mc_pwme_ori == 0;      -- the real power enable signal from the dut at the second cycle   mc_pwme_dut: uint(bits: 1);   keep soft mc_pwme_dut == 0;          ///    /// cycles of pwme   ///      -- record change of pwme   mc_pwme_change: uint(bits: 1);   keep soft mc_pwme_change == 0;         -- record the cycles that pwme has lasted in high or low level   mc_pwme_count: uint(bits: 9);   keep soft mc_pwme_count == 0;        -- record the real max cycles that pwme can last in high level   mc_pwme_count_h: uint(bits: 9);   keep soft mc_pwme_count_h == 0;      -- record the real max cycles that pwme can last in low level   mc_pwme_count_l: uint(bits: 9);   keep soft mc_pwme_count_l == 0;         -- record the max cycles that pwme can last in high level   mc_pwme_count_h_max: uint(bits: 9);   keep soft mc_pwme_count_h_max == 0;        -- record the max cycles that pwme can last in low level   mc_pwme_count_l_max: uint(bits: 9);   keep soft mc_pwme_count_l_max == 0;      ///    /// state   ///         -- record the First cycle state   mc_state_tmp: uint(bits: 2);   keep soft mc_state_tmp == 0;        -- record the second cycle state   mc_state_ori: uint(bits: 2);   keep soft mc_state_ori == 0;      -- record the third cycle state   mc_state_dut: uint(bits: 2);   keep soft mc_state_dut == 0;         -- record the expected state   mc_state_exp: uint(bits: 2);   keep soft mc_state_exp == 0;            ///    /// event   ///      -- default clock   event mc_clkr is rise('mc_clk_i')@sim;      -- event clock fall   event mc_clkf is fall('mc_clk_i')@sim;         -- when reset signal toggles, mc_reset_e occurs   event mc_reset_e is change('mc_reset_i')@sim;   -- when reset signal toggles from 0 to 1, mc_reset_r_e occurs   event mc_reset_r_e is rise('mc_reset_i')@sim;                          //============== Below are getinput(), getpwme() and getcount()method =======// use these methods to get the input , pwme signal and cycle of pwme signl//===========================================================================    -- this metod is used to get the speed now from the dut  getspeednow() : uint(bits:13) is {     result[12:0] = 'mc_speed_now_i';  };    -- this metod is used to get the target speed from the dut  gettargetspeed() : uint(bits:13) is {     result[12:0] = 'mc_target_speed_i';  };    -- this metod is used to get the min speed from the dut  getminspeed() : uint(bits:13) is {     result[12:0] = 'mc_min_speed_i';  };  -- this method is used to get the pwme signal from the dut  getpwme() : uint(bits:1) is {     result[0:0] = 'mc_pwme_o';  };//======================= Below are mc_check_reset() method =================// actions when mc_reset_r_e//===========================================================================        -- This event is used for checker   event mc_check_reset_e;      -- check pwme when reset   mc_check_reset() @mc_clkf is {            mc_pwme_dut = getpwme();      -- This item is used for cover the reset checker      mc_reset_checker_c = FALSE;      emit mc_check_reset_e; -- to active checker   };   on mc_reset_r_e { start mc_check_reset(); };   //======================= Below are mc_check() method =======================// actions when mc_change_e//===========================================================================      -- This event is used for checker   event mc_check_e;         -- check cycle of pwme when input change    mc_check() @mc_clkf is {         //=========== Below are origin/real input and output signal ==================      // Below statements are used to record the origin/real signals      //============================================================================      --if 'mc_reset_i' == 0 then {               -- record the last cycle data          mc_speed_now_ori = mc_speed_now_dut;         mc_target_speed_ori = mc_target_speed_dut;         mc_min_speed_ori = mc_min_speed_dut;          mc_pwme_ori = mc_pwme_dut;                  -- record the change of state         mc_state_tmp = mc_state_ori;         mc_state_ori = mc_state_dut;         mc_state_dut = mc_state_exp;                                  -- record the current cycle data         mc_speed_now_dut = getspeednow();         mc_target_speed_dut = gettargetspeed();         mc_min_speed_dut = getminspeed();         mc_pwme_dut = getpwme();      -- };                 //=========== Below are real cycle of pwme signals =========================      // Below statements are used to record the real cycle of pwme signal      //==========================================================================       if 'mc_reset_i' == 0 then {                -- count the cycle of pwme          -- pwme delay one cycle so judge by the changing of state temp and original         if mc_state_ori != 0 then {                    if mc_state_tmp == mc_state_ori and mc_pwme_ori == mc_pwme_dut then {                             mc_pwme_count += 1;            }            else{                                        mc_pwme_count = 1;                          };          }         else{            mc_pwme_count = 0;         };                           -- record the cycle of pwme          if mc_pwme_dut == 1 then {            mc_pwme_count_h = mc_pwme_count;           }         else{            mc_pwme_count_l = mc_pwme_count;         };                  -- record the change of pwme         if mc_pwme_ori != mc_pwme_dut then {              mc_pwme_change = 1;                               }         else{            mc_pwme_change = 0;           };               }      else{         mc_pwme_count = 0;         mc_pwme_count_h = 0;         mc_pwme_count_l = 0;      };       //=========== Below are expect state and cycle of pwme signal ===============      // Below statements are used to figure out what the expected pwme cycle       // according to the original input      //===========================================================================            if 'mc_reset_i' == 0 then {                if mc_speed_now_dut < mc_min_speed_dut then { -- in UPA mode                                  --outf("\nsmaller than min speed -- mc_state_exp = %d", mc_state_exp);            mc_state_exp = 0;         }         else if mc_speed_now_dut >= mc_min_speed_dut and                  mc_speed_now_dut < mc_target_speed_dut then { -- in UPB mode                            --outf("\nsmaller than target speed -- mc_state_exp = %d", mc_state_exp);              mc_state_exp = 1;         }               else if mc_speed_now_dut == mc_target_speed_dut then { -- in FINAL mode                         --outf("\nequal to target speed -- mc_state_exp = %d", mc_state_exp);               mc_state_exp = 2;                            }               else if mc_speed_now_dut > mc_target_speed_dut then { -- in DN mode                        --outf("\nlarger than target speed -- mc_state_exp = %d", mc_state_exp);            mc_state_exp = 3;                           }               else {            dut_error("\nThe wrong mode has occured!");          };               }      else {         mc_state_exp = 0;        };            if 'mc_reset_i' == 0 then {                if mc_state_ori == 0 then { -- in UPA mode                     mc_pwme_count_h_max = 0;            mc_pwme_count_l_max = 0;                    }         else if mc_state_ori == 1 then { -- in UPB mode                       mc_pwme_count_h_max = 375;            mc_pwme_count_l_max = 125;         }               else if mc_state_ori == 2 then { -- in FINAL mode                          mc_pwme_count_h_max = 500;            mc_pwme_count_l_max = 500;                            }               else if mc_state_ori == 3 { -- in DN mode                       mc_pwme_count_h_max = 125;            mc_pwme_count_l_max = 375;                     }               else {            dut_error("\nThe wrong mode has occured!");          };                  outf("\nOriginal input is: speed now %d,  target speed %d,  min speed %d.", mc_speed_now_ori, mc_target_speed_ori, mc_min_speed_ori);          outf("\nReal input is:    speed now %d,  target speed %d,  min speed %d.", mc_speed_now_dut, mc_target_speed_dut, mc_min_speed_dut);          outf("\nOriginal pwme is: %d.   Real pwme is: %d.", mc_pwme_ori, mc_pwme_dut);         outf("\nPre state is: %d.  Original state is: %d.", mc_state_tmp, mc_state_ori);         outf("\nReal state is: %d.  Expected state is: %d.", mc_state_dut, mc_state_exp);         outf("\npwme change is %d.     pwme count is %d.", mc_pwme_change, mc_pwme_count);         outf("\nReal pwme cycle is: %d. -- high,  %d. -- low   ", mc_pwme_count_h, mc_pwme_count_l);          outf("\nExpect pwme cycle is: %d. -- high,  %d. -- low,   at %d.\n", mc_pwme_count_h_max, mc_pwme_count_l_max, sys.time);                    mc_check_checker_c = FALSE;         emit mc_check_e;      };   };           on mc_clkr {       start mc_check(); };//===================== Below are checkers ======================// respectively on reset, idle, and input change event//===============================================================   -- Define some items to cover the checkers   mc_reset_checker_c: bool;   keep soft mc_reset_checker_c == FALSE;      mc_check_checker_c: bool;   keep soft mc_check_checker_c == FALSE;    -- When reset, check the pwme   on mc_check_reset_e {           check that (mc_pwme_dut == 1) else      dut_error("\nWhen reset, the pwme is not high, but ", mc_pwme_dut);           mc_reset_checker_c = TRUE;   };      -- when input change, check the pwme   on mc_check_e {      check that  ((mc_state_ori == 0 and mc_pwme_dut == 1)                    or                     (mc_state_ori != 0 and mc_pwme_change == 1 and mc_state_tmp == mc_state_ori and                      ((mc_pwme_count_h == mc_pwme_count_h_max and mc_pwme_ori == 1) or                       (mc_pwme_count_l == mc_pwme_count_l_max and mc_pwme_ori == 0)))                     or                                    (mc_state_ori != 0 and (mc_pwme_change == 0 or (mc_pwme_change == 1 and mc_state_tmp != mc_state_ori)) and                      ((mc_pwme_count_h <= mc_pwme_count_h_max and mc_pwme_dut == 1) or                       (mc_pwme_count_l <= mc_pwme_count_l_max and mc_pwme_dut == 0)))) else      dut_error("\nOriginal input is: speed now ", mc_speed_now_ori, "  target speed ", mc_target_speed_ori, "  min speed ", mc_min_speed_ori, ". Original pwme is: ", mc_pwme_ori, "\nReal input is:     speed now ", mc_speed_now_dut, "  target speed ", mc_target_speed_dut, "  min speed ", mc_min_speed_dut, ". Real pwme is:     ", mc_pwme_dut, "\nTemp state is: ", mc_state_tmp,  "  Original state is: ", mc_state_ori,  "\nReal state is: ", mc_state_dut, ",  Expected state is: ", mc_state_exp,"\npwme change is  ", mc_pwme_change, "\nReal pwme cycle is: ", mc_pwme_count_h, " -- high,  ", mc_pwme_count_l, " -- low   ", "\nExpected pwme cycle is: ", mc_pwme_count_h_max, " -- high,  ", mc_pwme_count_l_max, " -- low,   at ", sys.time);            if mc_pwme_change == 1 then {         if mc_pwme_ori == 1 then {            mc_pwme_count_h = 0;         }         else{            mc_pwme_count_l = 0;         };         };                mc_check_checker_c = TRUE;   };};'>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲亚洲人成综合网络| 欧美一卡二卡在线| 国产一区二区女| 美女一区二区久久| 久久99精品久久久久婷婷| 日本亚洲欧美天堂免费| 日韩中文字幕一区二区三区| 视频一区在线视频| 蜜桃视频在线一区| 国产福利电影一区二区三区| proumb性欧美在线观看| 日本精品一区二区三区四区的功能| 91色九色蝌蚪| 欧美一区二区三区四区五区| 日韩精品一区二区三区视频播放| 精品国产麻豆免费人成网站| 欧美激情一区二区在线| 亚洲品质自拍视频| 亚洲福利电影网| 激情综合色播激情啊| av中文字幕亚洲| 欧美视频日韩视频在线观看| 日韩网站在线看片你懂的| 久久精子c满五个校花| 中文字幕精品在线不卡| 午夜精品一区在线观看| 国产精品夜夜嗨| 在线精品视频小说1| 精品成a人在线观看| 亚洲欧洲精品一区二区三区不卡| 亚洲成国产人片在线观看| 九一久久久久久| 欧美在线小视频| 久久蜜桃av一区二区天堂| 一区二区久久久久久| 久久69国产一区二区蜜臀 | 欧美日韩大陆一区二区| 日韩精品最新网址| 亚洲日本成人在线观看| 国产麻豆视频精品| 欧美色图免费看| 欧美激情一区二区三区全黄| 日韩国产在线一| 91无套直看片红桃| 精品久久久久久久久久久久包黑料| 亚洲视频你懂的| 国产原创一区二区三区| 4438x成人网最大色成网站| 国产精品免费视频观看| 国内精品伊人久久久久影院对白| 欧美视频三区在线播放| 亚洲色图在线播放| 国产一区三区三区| 91精品国产综合久久精品app| 中文字幕一区三区| 国产成人在线视频播放| 欧美tk丨vk视频| 亚洲成在线观看| 色琪琪一区二区三区亚洲区| 国产欧美一区二区精品仙草咪| 日韩国产高清影视| 欧美三级中文字幕在线观看| 国产精品成人免费在线| 国产a久久麻豆| 2021久久国产精品不只是精品| 午夜激情一区二区| 欧美日韩在线精品一区二区三区激情 | 中文字幕中文字幕在线一区| 韩国视频一区二区| 精品日韩在线观看| 免费高清在线一区| 日韩视频一区二区三区在线播放| 亚洲超碰97人人做人人爱| 91国模大尺度私拍在线视频| 亚洲人成网站影音先锋播放| 91免费精品国自产拍在线不卡| 国产精品色婷婷久久58| av一二三不卡影片| 国产精品久久久久久久岛一牛影视| 国产91精品免费| 18成人在线观看| 在线亚洲人成电影网站色www| 亚洲免费观看高清完整版在线观看| 91色婷婷久久久久合中文| 亚洲日本va在线观看| 欧美午夜电影网| 日本欧美在线观看| 久久综合99re88久久爱| 国产精品综合在线视频| 国产精品色噜噜| 在线观看一区不卡| 精品一二三四区| 国产免费久久精品| 一本色道综合亚洲| 日韩av成人高清| 欧美激情一区在线观看| 在线一区二区视频| 秋霞午夜av一区二区三区| 久久久精品欧美丰满| 91免费看`日韩一区二区| 视频一区视频二区中文字幕| 久久精品人人做| 色噜噜狠狠成人中文综合 | 久久亚洲一区二区三区四区| 99视频一区二区| 天堂成人国产精品一区| 国产亚洲欧美一级| 欧美在线free| 国产资源在线一区| 一区二区三区日韩精品视频| 日韩一区二区三区视频在线| 成人国产精品免费观看动漫| 日韩成人一区二区| 中文字幕av一区二区三区| 欧美精品123区| 99精品欧美一区| 国产资源在线一区| 午夜国产精品一区| 综合av第一页| 久久精品夜夜夜夜久久| 欧美日韩美女一区二区| 99在线精品一区二区三区| 久久国产精品99久久久久久老狼| 一区二区三区在线不卡| 欧美激情一区二区三区在线| 日韩精品一区二区三区中文精品 | 六月婷婷色综合| 亚洲精品成人悠悠色影视| 欧美精品一区二区三区高清aⅴ| 色一区在线观看| 床上的激情91.| 国内精品写真在线观看| 免费的成人av| 免费欧美高清视频| 偷拍日韩校园综合在线| ㊣最新国产の精品bt伙计久久| 久久久高清一区二区三区| 精品欧美一区二区在线观看| 欧美日韩在线播| 欧美日韩专区在线| 欧美综合在线视频| 91在线视频在线| 93久久精品日日躁夜夜躁欧美| 国产精品资源在线| 国产一区二区剧情av在线| 免费观看30秒视频久久| 青青国产91久久久久久| 视频一区中文字幕| 亚洲国产中文字幕| 亚洲国产成人porn| 亚洲综合av网| 亚洲成人福利片| 天天爽夜夜爽夜夜爽精品视频| 一区二区国产视频| 亚洲一级在线观看| 天堂精品中文字幕在线| 麻豆精品视频在线观看免费| 捆绑变态av一区二区三区| 裸体健美xxxx欧美裸体表演| 免播放器亚洲一区| 韩国成人福利片在线播放| 理论片日本一区| 国产精品69毛片高清亚洲| 国产一区二区不卡| 成人性生交大片免费看中文网站| 国产v日产∨综合v精品视频| 成人视屏免费看| 91小视频在线| 欧美乱妇23p| 国产三级久久久| 亚洲精品乱码久久久久久| 亚洲福中文字幕伊人影院| 蜜臀国产一区二区三区在线播放 | 国产精品久久久久一区| 亚洲六月丁香色婷婷综合久久 | 欧美日韩亚洲综合在线| 欧美电影免费观看高清完整版在线观看 | 亚洲成人一区二区| 韩国毛片一区二区三区| 91小视频免费观看| 日韩三级.com| 国产精品久久看| 丝袜美腿成人在线| 丁香激情综合五月| 欧美欧美欧美欧美首页| 国产日韩v精品一区二区| 一区二区三区四区高清精品免费观看| 爽好多水快深点欧美视频| 国产成人免费视频网站高清观看视频| 色偷偷成人一区二区三区91| 日韩精品综合一本久道在线视频| 中文字幕欧美国产| 蜜桃视频在线观看一区| 一本到三区不卡视频| 久久久精品黄色| 天使萌一区二区三区免费观看| 成人av在线看| 精品国产免费久久| 天天影视涩香欲综合网| 色综合久久久网|