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

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

?? 88_arms_counter_stim.vhd

?? VHDL的實例加解說,對初學習者用處很大的!
?? VHD
字號:
--------------------------------------------------------------------------------
--
--   Controller Counter Benchmark -- Simulation Vectors
--
-- Model Source: Chip Level modelling with VHDL by Jim Armstrong
--
--------------------------------------------------------------------------------

entity E is
end;

architecture A of E is
   component ARMS_COUNTER
      port (
            CLK       : in bit; 
            STRB      : in bit; 
            CON       : in bit_vector(1 downto 0);  
            DATA      : in bit_vector(3 downto 0);
            COUT   : out bit_vector(3 downto 0)
	   );
   end component;

   signal CLK       : bit;
   signal STRB      : bit;
   signal CON       : bit_vector (1 downto 0);
   signal DATA      : bit_vector (3 downto 0);
   signal COUT   : bit_vector ( 3 downto 0);

   for all : ARMS_COUNTER use entity work.ARMS_COUNTER(ARMS_COUNTER) ;

begin

   ARMS_COUNTER1 : ARMS_COUNTER port map (CLK, STRB, CON, DATA, COUT);


------- The Clock Process --------------

   process
   begin
      wait for 1 ns;
      CLK <= transport '0';
      wait for 49 ns; 
      CLK <= transport '1';
   end process;

------- The Counter Process --------------

   process 
   begin

      wait for 30 ns;

-- TEST 1 start off with simple test of reset, count up, and count down, and limit

      -- reset the counter
      CON <= "00";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0000") report "ERROR1: COUT not reset to 0"; 
      
      -- load the LIMIT to 2
      DATA <= "0010";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;

      -- count up
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0001") report "ERROR2: COUT not incremented to 1"; 
      
      -- count up again
      wait for 50 ns;
      assert (COUT="0010") report "ERROR3: COUT not incremented to 2"; 

      -- count up, should not increment since hit limit
      wait for 50 ns;
      assert (COUT="0010") report "ERROR4: COUT should have hit limit at 2"; 
      
      -- count up, should not increment since limit is hit eventhough countup signal is enabled
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0010") report "ERROR5: COUT should have hit limit at 2"; 
      
      -- count down, cannot decrement since limit is hit and we do not know from which
      -- direction the limit is hit
      CON <= "11";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0010") report "ERROR6: COUT not decremented to 2"; 
      
      -- load the LIMIT to 0
      DATA <= "0000";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      
      -- count down
      CON <= "11";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0001") report "ERROR7: COUT not decremented to 0"; 

-- TEST2 Perform some extensive testing of the counter's limit handling

      -- set limit to 13
      DATA <= "1101";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;

      -- reset the counter
      CON <= "00";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0000") report "ERROR8: COUT not reset to 0"; 
      
      -- count up to 13
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      for i in 1 to 13 loop
         wait for 50 ns;
      end loop;
      assert (COUT="1101") report "ERROR9: COUT not up to 13";
 
      -- count up, should not increment since hit limit
      wait for 50 ns;
      assert (COUT="1101") report "ERROR10: COUT should have hit limit at 13"; 
      
      -- count up, should not increment since hit limit
      CON <= "10";
      wait for 50 ns;
      assert (COUT="1101") report "ERROR11: COUT should have hit limit at 13";
      
      -- change limit to 15
      DATA <= "1111";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;

      -- count up
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="1110") report "ERROR12: COUT didn't increment to 14"; 

      -- count up
      wait for 50 ns;
      assert (COUT="1111") report "ERROR13: COUT didn't increment to 15"; 

      -- count up, should not increment since hit limit
      wait for 50 ns;
      assert (COUT="1111") report "ERROR14:COUT should have hit limit at 15"; 
      
      -- change limit to 7 
      DATA <= "0111";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;

      -- count down, try counting below 7
      CON <= "11";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      for i in 1 to 10 loop
         wait for 50 ns;
      end loop;
      assert (COUT="0111") report "ERROR15: COUT not equal to 7";
         
      -- change limit to 0 
      DATA <= "0000";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
 
      -- count down, try counting below 8
      CON <= "11";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      for i in 1 to 8 loop
         wait for 50 ns;
      end loop;
      assert (COUT="0000") report "ERROR16: COUT not equal to 0";
         
      -- count up, should not increment since hit limit
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0000") report "ERROR17: did not increment to 0"; 
      
-- TEST3 Try counting beyond the range, i.e. above 15 and below 0

      -- reset the counter
      CON <= "00";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0000") report "ERROR18: COUT not reset to 0"; 

      -- change limit to 7 
      DATA <= "0111";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;

      -- count up 1 
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0001") report "ERROR19: COUT not incremented to 1"; 
      
      -- count down  
      CON <= "11";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0000") report "ERROR20:COUT not decremented to 0"; 
    
      -- count down  
      wait for 50 ns;
      assert (COUT="1111") report "ERROR21: COUT not decremented to 15"; 
      
      -- count down  
      wait for 50 ns;
      assert (COUT="1110") report "ERROR22: COUT not decremented to 14"; 
      
      -- count up 
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="1111") report "ERROR23: COUT not incremented to 15"; 
      
      -- count up 
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0000") report "ERROR24: COUT not incremented to 0"; 

-- TEST4 Checking for counting sequence from 0 to 15 and from 15 to 0

      -- reset the counter
      CON <= "00";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;
      assert (COUT="0000") report "ERROR25: COUT not reset to 0"; 

      -- change limit to 15
      DATA <= "1111";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;

      -- count up 15 times
      CON <= "10";
      STRB <= '1' after 10 ns, '0' after 20 ns;

      wait for 50 ns;
      assert (COUT="0001") report "ERROR26: COUT not incremented to 1"; 

      wait for 50 ns;
      assert (COUT="0010") report "ERROR27: COUT not incremented to 2"; 

      wait for 50 ns;
      assert (COUT="0011") report "ERROR28: COUT not incremented to 3"; 

      wait for 50 ns;
      assert (COUT="0100") report "ERROR29: COUT not incremented to 4"; 

      wait for 50 ns;
      assert (COUT="0101") report "ERROR30: COUT not incremented to 5"; 

      wait for 50 ns;
      assert (COUT="0110") report "ERROR31: COUT not incremented to 6"; 

      wait for 50 ns;
      assert (COUT="0111") report "ERROR32: COUT not incremented to 7"; 

      wait for 50 ns;
      assert (COUT="1000") report "ERROR33: COUT not incremented to 8"; 

      wait for 50 ns;
      assert (COUT="1001") report "ERROR34: COUT not incremented to 9"; 

      wait for 50 ns;
      assert (COUT="1010") report "ERROR35: COUT not incremented to 10"; 

      wait for 50 ns;
      assert (COUT="1011") report "ERROR36: COUT not incremented to 11"; 

      wait for 50 ns;
      assert (COUT="1100") report "ERROR37: COUT not incremented to 12"; 

      wait for 50 ns;
      assert (COUT="1101") report "ERROR38: COUT not incremented to 13"; 

      wait for 50 ns;
      assert (COUT="1110") report "ERROR39: COUT not incremented to 14"; 

      wait for 50 ns;
      assert (COUT="1111") report "ERROR40: COUT not incremented to 15"; 
      
      -- change limit to 0
      DATA <= "0000";
      CON <= "01";
      STRB <= '1' after 10 ns, '0' after 20 ns;
      wait for 50 ns;

      -- count down 15 times 
      CON <= "11";
      STRB <= '1' after 10 ns, '0' after 20 ns;

      wait for 50 ns;
      assert (COUT="1110") report "ERROR41: COUT not decremented to 14"; 

      wait for 50 ns;
      assert (COUT="1101") report "ERROR42: COUT not decremented to 13"; 

      wait for 50 ns;
      assert (COUT="1100") report "ERROR43: COUT not decremented to 12"; 

      wait for 50 ns;
      assert (COUT="1011") report "ERROR44: COUT not decremented to 11"; 

      wait for 50 ns;
      assert (COUT="1010") report "ERROR45: COUT not decremented to 10"; 

      wait for 50 ns;
      assert (COUT="1001") report "ERROR46: COUT not decremented to 9"; 

      wait for 50 ns;
      assert (COUT="1000") report "ERROR47: COUT not decremented to 8"; 

      wait for 50 ns;
      assert (COUT="0111") report "ERROR48: COUT not decremented to 7"; 

      wait for 50 ns;
      assert (COUT="0110") report "ERROR49: COUT not decremented to 6"; 

      wait for 50 ns;
      assert (COUT="0101") report "ERROR50: COUT not decremented to 5"; 

      wait for 50 ns;
      assert (COUT="0100") report "ERROR51: COUT not decremented to 4"; 

      wait for 50 ns;
      assert (COUT="0011") report "ERROR52: COUT not decremented to 3"; 

      wait for 50 ns;
      assert (COUT="0010") report "ERROR53: COUT not decremented to 2"; 

      wait for 50 ns;
      assert (COUT="0001") report "ERROR54: COUT not decremented to 1"; 

      wait for 50 ns;
      assert (COUT="0000") report "ERROR55: COUT not decremented to 0"; 
    
	  assert false
	  report "---End of Simulation---"
	  severity error;

   wait;
   end process;
end A;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女人****多毛耸耸8| 欧美成人精品二区三区99精品| 裸体一区二区三区| 午夜精品久久久久影视| 亚洲午夜国产一区99re久久| 亚洲自拍与偷拍| 亚洲国产人成综合网站| 婷婷久久综合九色综合伊人色| 亚洲综合在线五月| 偷拍一区二区三区四区| 日韩电影网1区2区| 韩日欧美一区二区三区| 丰满少妇久久久久久久| 99精品视频在线观看免费| 91浏览器在线视频| 欧美日韩在线免费视频| 欧美一区二区三区四区五区 | 黄页网站大全一区二区| 狠狠狠色丁香婷婷综合激情| 国产酒店精品激情| 不卡的av电影| 91麻豆精品国产91久久久使用方法 | 日日夜夜精品视频免费| 捆绑调教美女网站视频一区| 成人一道本在线| 欧美网站一区二区| 精品少妇一区二区三区在线视频| 国产清纯在线一区二区www| 伊人一区二区三区| 九九视频精品免费| 色综合久久中文综合久久97| 制服丝袜在线91| 欧美经典一区二区三区| 亚洲午夜久久久久久久久电影院| 蜜桃一区二区三区四区| 91丨porny丨户外露出| 日韩欧美国产麻豆| 亚洲激情网站免费观看| 国产精一品亚洲二区在线视频| 色偷偷一区二区三区| 精品成人佐山爱一区二区| 亚洲激情一二三区| 成人性生交大片免费看视频在线| 欧美日韩你懂得| 国产精品理论片在线观看| 美脚の诱脚舐め脚责91| 在线观看免费一区| 欧美高清在线一区| 极品少妇xxxx精品少妇| 欧美精品乱码久久久久久按摩| 国产精品情趣视频| 国产美女在线观看一区| 91精品国产综合久久久久久| 亚洲综合免费观看高清完整版 | 日本在线播放一区二区三区| av电影在线观看完整版一区二区| 日韩欧美一级精品久久| 亚洲一区二区三区三| 91欧美激情一区二区三区成人| 国产亚洲精品久| 国产一区二区三区黄视频 | 91视频观看视频| 欧美激情一区二区三区在线| 韩国视频一区二区| 欧美精品一区二区在线观看| 日本不卡一区二区三区| 91精品免费在线观看| 日韩精品一级二级 | 国产蜜臀97一区二区三区| 激情偷乱视频一区二区三区| 日韩午夜小视频| 美女视频黄频大全不卡视频在线播放| 欧美午夜精品久久久| 亚洲国产成人91porn| 欧美日韩在线播放| 亚洲综合久久av| 欧美高清你懂得| 久久国产免费看| 久久久久久久综合狠狠综合| 国产在线精品一区二区不卡了| 精品奇米国产一区二区三区| 六月丁香综合在线视频| 欧美精品一区二区三区蜜臀| 国内精品伊人久久久久av一坑 | 精品日韩成人av| 国产精品一区二区不卡| 国产精品久久综合| 色噜噜狠狠成人网p站| 一区二区三区 在线观看视频| 欧美剧在线免费观看网站| 日韩一区精品字幕| 久久天堂av综合合色蜜桃网| 丁香婷婷综合色啪| 亚洲成av人片在线| 精品国产乱码久久久久久久久| 国产成人午夜精品5599| 亚洲乱码日产精品bd| 欧美顶级少妇做爰| 国产91露脸合集magnet| 一区二区三区在线播放| 91精品欧美一区二区三区综合在| 国产精品亚洲午夜一区二区三区| 国产精品国模大尺度视频| 欧美日韩国产天堂| 国产成人免费视频一区| 亚洲精品视频在线| 日韩精品一区二区三区在线| 成人免费视频一区| 性欧美疯狂xxxxbbbb| 日本一区二区综合亚洲| 欧美精品精品一区| 不卡高清视频专区| 免费在线视频一区| 亚洲激情六月丁香| 欧美大胆人体bbbb| 欧洲一区在线电影| 国产99一区视频免费| 天堂蜜桃91精品| 国产精品黄色在线观看| 精品日韩99亚洲| 91 com成人网| 一本色道久久加勒比精品| 国产一区二区三区香蕉| 性感美女极品91精品| 国产精品不卡在线观看| 欧美va亚洲va国产综合| 欧美视频一区二区三区| 97久久精品人人爽人人爽蜜臀| 韩国v欧美v日本v亚洲v| 日韩不卡一区二区三区 | 久久成人久久鬼色| 亚洲一区二区欧美| 亚洲青青青在线视频| 中文字幕中文字幕在线一区| www国产亚洲精品久久麻豆| 日韩一区二区麻豆国产| 欧美日韩不卡一区二区| 99re免费视频精品全部| 成人免费毛片高清视频| 国产一区在线视频| 久久精品99国产精品日本| 午夜av电影一区| 亚洲成av人影院| 亚洲va中文字幕| 亚洲va国产天堂va久久en| 亚洲一区二区三区四区五区中文| 亚洲激情图片小说视频| 一区二区三区久久| 亚洲尤物在线视频观看| 亚洲免费观看高清在线观看| 自拍偷在线精品自拍偷无码专区| 国产精品免费丝袜| 一区精品在线播放| 亚洲免费在线电影| 亚洲va天堂va国产va久| 日韩电影在线免费看| 精品综合免费视频观看| 久草在线在线精品观看| 国产精品一区二区x88av| 成人一区二区三区| 日本高清不卡在线观看| 欧美视频日韩视频| 日韩欧美一级二级三级久久久| 精品久久久久久久人人人人传媒 | 亚洲卡通动漫在线| 亚洲一区二区三区三| 日本一不卡视频| 精久久久久久久久久久| 成人一级视频在线观看| 日本精品视频一区二区三区| 欧美精品tushy高清| 国产色91在线| 亚洲女与黑人做爰| 日韩电影在线一区| 国产成人鲁色资源国产91色综| 99久久婷婷国产综合精品电影 | 在线一区二区三区四区五区| 欧美日韩亚洲国产综合| 精品国产三级电影在线观看| 日本一区二区电影| 麻豆成人综合网| 成人av片在线观看| 欧美丝袜丝nylons| 国产欧美精品区一区二区三区| 一区二区三区.www| 国产精品一区二区久激情瑜伽| 91看片淫黄大片一级在线观看| 7777精品伊人久久久大香线蕉| 久久婷婷色综合| 天天亚洲美女在线视频| 国产成人av电影在线播放| 欧美性欧美巨大黑白大战| 国产片一区二区| 免费在线观看精品| 91在线观看污| 久久久久久夜精品精品免费| 亚洲不卡在线观看| 97久久精品人人澡人人爽| 亚洲精品在线免费播放| 日韩福利电影在线观看|