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

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

?? lab_mc_monitor_2.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//===========================================================================     -- 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;         -- record No. of the cycle of pwme    mc_pwme_cycle_count: uint(bits: 3);   keep soft mc_pwme_cycle_count == 0;      -- record whether to start counter   mc_pwme_upa: uint(bits: 1);   keep soft mc_pwme_upa == 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 origin max cycles that pwme can last in high level   mc_pwme_count_h_ori: uint(bits: 9);   keep soft mc_pwme_count_h_ori == 0;      -- record the origin max cycles that pwme can last in low level   mc_pwme_count_l_ori: uint(bits: 9);   keep soft mc_pwme_count_l_ori == 0;      -- record the real max cycles that pwme can last in high level   mc_pwme_count_h_dut: uint(bits: 9);   keep soft mc_pwme_count_h_dut == 0;      -- record the real max cycles that pwme can last in low level   mc_pwme_count_l_dut: uint(bits: 9);   keep soft mc_pwme_count_l_dut == 0;      -- record the expected max cycles that pwme can last in high level   mc_pwme_count_h_exp: uint(bits: 9);   keep soft mc_pwme_count_h_exp == 0;      -- record the expected max cycles that pwme can last in low level   mc_pwme_count_l_exp: uint(bits: 9);   keep soft mc_pwme_count_l_exp == 0;      -- record the first cycle state   mc_state_ori: uint(bits: 2);   keep soft mc_state_ori == 0;      -- record the second 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;         -- 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;      -- when speed now signal toggles, mc_speed_now_e occurs   event mc_speed_now_e is change('mc_speed_now_i')@sim;      -- when target speed signal toggles, this event occurs   event mc_target_speed_e is change('mc_target_speed_i')@sim;      -- when min speed signal toggles, this event occurs   event mc_min_speed_e is change('mc_min_speed_i')@sim;       -- When the power enable signal has lasted enough time, this event occurs      -- It makes the pwme changed at the next cycle      event mc_pwme_e is change('mc_pwme_o')@sim;   -- when any input toggles, this event occurs   event mc_change_e is (@mc_reset_e or @mc_speed_now_e or @mc_target_speed_e or @mc_min_speed_e or @mc_pwme_e) @mc_clkr;   -- when no input changes, this event occurs   event mc_idle_e is not(@mc_change_e) @mc_clkf;                          //============== 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[7:0] = 'mc_speed_now_i';  };    -- this metod is used to get the target speed from the dut  gettargetspeed() : uint(bits:13) is {     result[7:0] = 'mc_target_speed_i';  };    -- this metod is used to get the min speed from the dut  getminspeed() : uint(bits:13) is {     result[7: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';  };    -- this method is used to get the state  getstate() : uint(bits:2) is {     result[1:0] = mc_state_exp;  };      -- this method is used to get the cycle of pwme signal from the dut  getcount() : uint(bits:9) @mc_pwme_e is {     result[8:0] = mc_pwme_count;  }; //======================= 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_idle() method ==================// actions when mc_idle_e//===========================================================================   -- This event is used for checker   event mc_check_idle_e;         -- check pwme when idle    mc_check_idle() @mc_clkf is {             -- record the current input data      --var var_speednow_ori : uint(bits:13);      --var var_targetspeed_ori : uint(bits:13);      --var var_minspeed_ori : uint(bits:13);            --var var_pwme_ori : uint(bits:1);            --var_speednow_ori = getspeednow();      --var_targetspeed_ori = gettargetspeed();      --var_minspeed_ori = getminspeed();     -- var_pwme_ori = getpwme();           -- mc_speed_now_ori = getspeednow();     -- mc_target_speed_ori = gettargetspeed();     -- mc_min_speed_ori = getminspeed();     -- mc_pwme_ori = getpwme();            -- if the state has changed      if mc_state_ori != mc_state_dut then {              mc_pwme_cycle_count = 0;      };      outf("\nthe last state is %d, current state is %d .",mc_state_ori, mc_state_dut);            -- record the cycle of pwme      if mc_pwme_ori != mc_pwme_dut then{            if mc_pwme_cycle_count == 0 then {               }      else if mc_pwme_cycle_count == 1 or mc_pwme_cycle_count == 2 then {         if mc_pwme_ori == 1 then {            mc_pwme_count_l_ori = getcount();         }         else{            mc_pwme_count_h_ori = getcount();         };       }      else if mc_pwme_cycle_count == 3 or mc_pwme_cycle_count == 4 then {         if mc_pwme_ori == 1 then {            mc_pwme_count_l_dut = getcount();         }         else{            mc_pwme_count_h_dut = getcount();         };      };            };      -- change the No. of cycle      mc_pwme_cycle_count += 1;            if mc_pwme_cycle_count == 5 then{         mc_pwme_cycle_count = 0;       };                 -- record the origin and real input and pwme data      if mc_pwme_cycle_count == 0 then{        -- mc_speed_now_ori = var_speednow_ori;        -- mc_target_speed_ori = var_targetspeed_ori;        -- mc_min_speed_ori = var_minspeed_ori;        -- mc_pwme_ori = var_pwme_ori;       };            wait [1];            --if mc_pwme_cycle_count == 3 then{      --   mc_speed_now_dut = getspeednow();      --   mc_target_speed_dut = gettargetspeed();      --   mc_min_speed_dut = getminspeed();       --  mc_pwme_dut = getpwme();      --};            if 'mc_reset_i' == 0 then { -- if reset is not asserted in the second cycle      -- This item is used for cover the idle checker         mc_idle_checker_c = FALSE;         emit mc_check_idle_e; -- to active checker      };   };      on mc_idle_e {        start mc_check_idle(); };   //======================= 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 {         -- record the first cycle data    --  var var_speednow_ori : uint(bits:13);    --  var var_targetspeed_ori : uint(bits:13);   --   var var_minspeed_ori : uint(bits:13);         --   var var_pwme_ori : uint(bits:1);   --   var var_state_ori : uint(bits:2);         --   var_speednow_ori = getspeednow();   --   var_targetspeed_ori = gettargetspeed();   --   var_minspeed_ori = getminspeed();    --  var_pwme_ori = getpwme();    --  var_state_ori = getstate();            mc_speed_now_ori = getspeednow();      mc_target_speed_ori = gettargetspeed();      mc_min_speed_ori = getminspeed();      mc_pwme_ori = getpwme();       mc_state_ori = getstate();          if 'mc_reset_i' == 0 then {                if mc_pwme_upa == 0 then {                   if (mc_pwme_ori == 1 and mc_pwme_count <= mc_pwme_count_h_exp)               or (mc_pwme_ori == 0 and mc_pwme_count <= mc_pwme_count_l_exp) then {                            mc_pwme_count += 1;                         }           else{                         mc_pwme_count = 0;                         };         };                -- if var_pwme_ori == 1 then {      --     mc_pwme_count_h_dut = getcount();      --  }      --  else{      --     mc_pwme_count_l_dut = getcount();       -- };                    };           wait [1];             -- record the second cycle pwme      mc_speed_now_dut = getspeednow();      mc_target_speed_dut = gettargetspeed();      mc_min_speed_dut = getminspeed();      mc_pwme_dut = getpwme();      mc_state_dut = getstate();      //======== Below are mc_pwme_count_h_exp and mc_pwme_count_l_exp ============      // 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                  mc_pwme_upa = 1;            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                          mc_pwme_upa = 0;            mc_pwme_count_h_exp = 375;            mc_pwme_count_l_exp = 125;            mc_state_exp = 1;         }               else if mc_speed_now_dut == mc_target_speed_dut then { -- in FINAL mode                           mc_pwme_upa = 0;            mc_pwme_count_h_exp = 500;            mc_pwme_count_l_exp = 500;            mc_state_exp = 2;                  }               else if mc_speed_now_dut >= mc_target_speed_dut then { -- in DN mode                     mc_pwme_upa = 0;            mc_pwme_count_h_exp = 125;            mc_pwme_count_l_exp = 375;            mc_state_exp = 3;         }               else {            dut_error("\nThe wrong mode has occured!");          };              mc_check_checker_c = FALSE;         emit mc_check_e;      };   };     on mc_change_e {       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_timeout_checker_c: bool;   keep soft mc_timeout_checker_c == FALSE;   mc_idle_checker_c: bool;   keep soft mc_idle_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 idle, check the pwme      on mc_check_idle_e {            check that (mc_pwme_count_h_ori == mc_pwme_count_h_dut and                   mc_pwme_count_l_ori == mc_pwme_count_l_dut) else      dut_error("\nWhen the state does not change, the cycle of pwme changes!\nOriginal input is: speed now ",mc_speed_now_ori,"  target speed ",mc_target_speed_ori,"  min speed ",mc_min_speed_ori,"\nOriginal cycle of pwme is: ",mc_pwme_count_h_ori," -- high  ",mc_pwme_count_l_ori," -- low","\nReal pwme is: ",mc_pwme_count_h_dut," -- high  ",mc_pwme_count_l_dut," -- low");      mc_idle_checker_c = TRUE;   };      -- when input change, check the pwme   on mc_check_e {      --outf("\ncheck state change at %d", sys.time);      check that (mc_pwme_upa == 1 or (mc_pwme_upa == 0 and                  mc_pwme_count_h_dut <= mc_pwme_count_h_exp and                  mc_pwme_count_l_dut <= mc_pwme_count_l_exp)) else      dut_error("\nOriginal pwme is: ",mc_pwme_ori,"\nOriginal input is: speed now ",mc_speed_now_ori,"  target speed ",mc_target_speed_ori,"  min speed ",mc_min_speed_ori,"\nExpected pwme is: ",mc_pwme_count_h_exp," -- high  ",mc_pwme_count_l_exp," -- low","\nReal pwme is: ",mc_pwme_count_h_dut," -- high  ",mc_pwme_count_l_dut," -- low");      mc_check_checker_c = TRUE;   };      };'>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久六月婷婷中文字幕| 91精品国产手机| 在线国产电影不卡| 精品美女一区二区| 亚洲精品成人悠悠色影视| 久久黄色级2电影| 色综合久久久久久久久| 久久久久国产精品麻豆| 亚洲第一搞黄网站| 一本大道久久a久久综合| 久久久www成人免费毛片麻豆| 亚瑟在线精品视频| 91免费视频网| 国产精品天美传媒| 精品一区二区三区在线观看国产| 欧美色精品在线视频| 亚洲激情图片小说视频| 成人精品视频一区二区三区| 欧美va亚洲va国产综合| 午夜电影久久久| 欧美体内she精高潮| 中文字幕一区二区在线观看| 国产一区二区三区四区五区入口 | 亚洲福利视频导航| 99视频在线精品| 国产精品免费网站在线观看| 国产精品911| 精品动漫一区二区三区在线观看| 日本少妇一区二区| 欧美丰满高潮xxxx喷水动漫| 亚洲bt欧美bt精品777| 欧美日韩亚洲综合在线| 亚洲电影激情视频网站| 欧美日韩在线电影| 亚洲一级电影视频| 精品视频一区二区不卡| 亚洲国产欧美一区二区三区丁香婷| eeuss国产一区二区三区| 国产欧美1区2区3区| 成人免费视频视频| 国产精品高清亚洲| jlzzjlzz亚洲女人18| 中文字幕日韩av资源站| 97久久精品人人澡人人爽| 国产精品女同互慰在线看 | 日韩精品欧美成人高清一区二区| 在线日韩国产精品| 午夜精品影院在线观看| 91精品国产综合久久福利软件| 日日夜夜免费精品视频| 欧美成人性福生活免费看| 国产精品一区免费视频| 亚洲视频在线一区观看| 欧美亚洲动漫精品| 强制捆绑调教一区二区| 国产亚洲综合性久久久影院| av毛片久久久久**hd| 亚洲综合偷拍欧美一区色| 日韩美女在线视频 | av不卡在线观看| 亚洲一区视频在线观看视频| 日韩一区二区影院| 99re热这里只有精品视频| 亚洲一区二区三区四区五区中文| 精品久久久久久最新网址| 成人黄色综合网站| 性做久久久久久久久| 久久精品亚洲精品国产欧美 | 国产一区二区在线看| 国产精品久久毛片| 在线播放中文一区| 国产成a人亚洲| 婷婷开心久久网| 日本一区二区三区在线观看| 欧美丝袜丝nylons| 国产盗摄视频一区二区三区| 亚洲夂夂婷婷色拍ww47| 久久蜜桃香蕉精品一区二区三区| 色哟哟一区二区在线观看| 九九热在线视频观看这里只有精品| 国产精品九色蝌蚪自拍| 欧美不卡一区二区三区| 欧美色成人综合| 国产69精品久久777的优势| 亚洲成年人网站在线观看| 国产日韩精品久久久| 91精品国产综合久久久蜜臀图片 | 午夜电影一区二区| 国产精品美女一区二区| xf在线a精品一区二区视频网站| 色屁屁一区二区| 国产精品一区在线观看乱码| 青青草一区二区三区| 一区二区三区资源| 2022国产精品视频| 欧美一级片免费看| 欧美色综合久久| a亚洲天堂av| 粉嫩高潮美女一区二区三区| 精品在线免费视频| 日本中文一区二区三区| 性久久久久久久| 亚洲福中文字幕伊人影院| 亚洲人吸女人奶水| 18欧美乱大交hd1984| 国产婷婷精品av在线| 精品av综合导航| 欧美一区二区三区爱爱| 欧美精品视频www在线观看| 91国产福利在线| 色婷婷狠狠综合| 91免费看`日韩一区二区| 成人三级在线视频| eeuss鲁片一区二区三区在线观看| 国产99精品视频| 福利一区福利二区| 成人精品高清在线| 成人av在线一区二区| 99综合影院在线| 91一区二区三区在线播放| 99v久久综合狠狠综合久久| 99久久精品久久久久久清纯| 91女神在线视频| 欧美日韩一级二级| 日韩亚洲欧美综合| 精品国产sm最大网站免费看| 26uuu欧美| 国产欧美日韩精品在线| 国产精品理论在线观看| 亚洲色图欧美偷拍| 亚洲福利视频导航| 久久激情五月婷婷| 高清不卡在线观看| 91麻豆免费视频| 欧美日韩黄色影视| 精品日韩一区二区三区免费视频| 久久久影视传媒| 国产精品久久久一本精品| 亚洲精品水蜜桃| 视频一区免费在线观看| 麻豆91免费看| 国产成人在线视频网站| 99re这里只有精品6| 欧美日韩黄色一区二区| 精品黑人一区二区三区久久| 国产欧美精品一区二区色综合 | 欧美一区二区网站| 久久综合色综合88| 国产精品的网站| 青青国产91久久久久久| 国产精品456| 色综合久久中文字幕综合网| 日韩一区二区三区在线视频| 中文在线一区二区| 日本美女一区二区三区视频| 成人18视频日本| 欧美日韩成人综合| 久久久青草青青国产亚洲免观| 亚洲欧美另类久久久精品| 免费看日韩精品| 91丨九色丨蝌蚪丨老版| 欧美成人bangbros| 亚洲一区二区三区视频在线播放| 国产在线播放一区二区三区| 欧洲一区二区三区在线| 久久综合色鬼综合色| 亚洲综合在线免费观看| 国产在线精品一区在线观看麻豆| 色综合 综合色| 久久中文字幕电影| 日韩国产精品久久| 色av成人天堂桃色av| 日本一区二区在线不卡| 久久精品国产99国产| 色拍拍在线精品视频8848| 欧美激情中文字幕一区二区| 秋霞电影网一区二区| 欧美日韩一区二区三区四区五区| 国产精品污网站| 国产精品亚洲成人| 精品国产乱码久久久久久蜜臀| 亚洲亚洲人成综合网络| 国产91精品精华液一区二区三区 | 99v久久综合狠狠综合久久| 精品国精品自拍自在线| 日韩国产欧美在线播放| 欧美性色黄大片| 一区二区三区鲁丝不卡| 成人动漫av在线| 中文字幕av免费专区久久| 国产一区二区电影| 26uuu亚洲| 国产伦精品一区二区三区免费 | 精品免费视频.| 天堂成人免费av电影一区| 欧美日韩综合色| 亚洲一二三四久久| 欧美视频中文字幕| 亚洲成a人片综合在线| 欧美日韩在线精品一区二区三区激情|