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

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

?? 88_arms_counter_stim.vhd

?? vhdl源程序,可在quartus中編輯測試
?? 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一区二区三区免费野_久草精品视频
亚洲欧美色一区| 成人蜜臀av电影| 中文字幕欧美一| 国产精品久久久久久久久免费桃花| 26uuu精品一区二区三区四区在线| 欧美一区二区视频在线观看2022| 中文字幕国产一区二区| 成年人国产精品| 中文一区二区完整视频在线观看| 中文乱码免费一区二区| 日韩精品乱码免费| 91超碰这里只有精品国产| 亚洲午夜精品一区二区三区他趣| 亚洲免费观看高清完整| 日本不卡的三区四区五区| 国产激情91久久精品导航| 欧美性xxxxxx少妇| 欧美不卡在线视频| 亚洲国产视频在线| 国产一区二区福利视频| 欧美在线免费观看亚洲| 精品国产一区二区三区av性色| 国产精品久久久久久久午夜片| 午夜亚洲福利老司机| 成人一道本在线| 亚洲精品一区二区三区福利| 亚洲品质自拍视频| 成人午夜大片免费观看| 欧美日韩高清影院| 一片黄亚洲嫩模| 91首页免费视频| 国产欧美一区视频| 国产不卡视频一区二区三区| 精品久久久久香蕉网| 一区二区三区高清| 狠狠狠色丁香婷婷综合激情 | 日韩成人午夜精品| 日本精品一级二级| 亚洲乱码国产乱码精品精的特点| 成人一区二区三区视频在线观看| 精品欧美一区二区三区精品久久| 午夜不卡av免费| 日韩写真欧美这视频| 久久不见久久见免费视频1| 91麻豆精品91久久久久久清纯| 亚洲国产成人精品视频| 色婷婷综合激情| 亚洲一区二区三区免费视频| 欧美喷潮久久久xxxxx| 天堂久久久久va久久久久| 91精品国产综合久久久蜜臀图片| 亚洲va国产天堂va久久en| 日韩一区二区三区在线观看| 美女一区二区三区| 国产喂奶挤奶一区二区三区| 国产一区 二区 三区一级| 日韩美一区二区三区| 丁香六月久久综合狠狠色| 亚洲自拍另类综合| 日韩欧美国产系列| a级高清视频欧美日韩| 香蕉成人伊视频在线观看| 久久久久久久久蜜桃| 91久久精品网| 岛国精品在线播放| 亚洲电影视频在线| 欧美激情一区不卡| 欧美一级免费观看| 99视频热这里只有精品免费| 另类调教123区| 一个色综合网站| 国产精品色噜噜| 欧美不卡激情三级在线观看| 欧美在线看片a免费观看| 国产成人综合网站| 国产在线麻豆精品观看| 日韩精品久久久久久| 亚州成人在线电影| 一区二区欧美国产| 2020国产成人综合网| 97精品国产露脸对白| 国产成人免费在线视频| 久久www免费人成看片高清| 亚洲大片一区二区三区| 亚洲综合色区另类av| 亚洲精品国产精品乱码不99| 国产欧美视频一区二区| 国产清纯在线一区二区www| 欧美精品一区二区三区在线 | 日韩高清不卡在线| 亚洲丶国产丶欧美一区二区三区| 亚洲精品综合在线| 亚洲一区二区不卡免费| 亚洲成人三级小说| 日韩电影免费在线| 国产一区二区三区观看| av不卡在线播放| 欧美军同video69gay| 精品国产免费视频| 亚洲精品中文在线影院| 亚洲欧美日韩系列| 日韩伦理免费电影| 日韩一区有码在线| 午夜影视日本亚洲欧洲精品| 免费成人深夜小野草| 成人午夜视频在线| 日韩精品一区二区三区视频| 中文字幕成人在线观看| 亚洲高清免费视频| 国产成人av一区二区| 欧美在线高清视频| 国产偷国产偷亚洲高清人白洁 | 盗摄精品av一区二区三区| 欧美亚一区二区| 国产精品情趣视频| 日本女优在线视频一区二区| 不卡av免费在线观看| 欧美tickling网站挠脚心| 亚洲欧美日韩精品久久久久| 国产一区二区0| 日韩一区二区电影网| 洋洋av久久久久久久一区| 国产一区二区调教| 日韩免费视频一区二区| 偷窥国产亚洲免费视频| 在线观看日韩毛片| 日韩精品一区二区三区蜜臀| 一区二区三区欧美| 色成人在线视频| 亚洲视频精选在线| 在线观看日韩国产| 亚洲国产美女搞黄色| 在线观看中文字幕不卡| 亚洲1区2区3区视频| 日韩视频免费观看高清在线视频| 天天综合网 天天综合色| 欧美一卡二卡在线观看| 蜜臀精品一区二区三区在线观看 | 精品一区二区三区免费视频| 日韩一级在线观看| 国产在线看一区| 国产精品你懂的| 久久国产精品第一页| 久久精品人人做人人爽97| heyzo一本久久综合| 亚洲午夜影视影院在线观看| 717成人午夜免费福利电影| 国内精品视频一区二区三区八戒| 久久久久久久久久久99999| 高清不卡一区二区| 一区二区三区丝袜| 欧美电影一区二区三区| 国产99久久久精品| 日本不卡中文字幕| 国产精品久久三区| 欧美精品日韩一本| 99热在这里有精品免费| 蜜桃视频第一区免费观看| 亚洲国产成人在线| 日韩三区在线观看| 日本韩国精品一区二区在线观看| 黑人巨大精品欧美一区| 亚洲第一搞黄网站| 亚洲欧美成aⅴ人在线观看| 国产欧美一区二区在线| 欧美成人精品福利| 91精品国产欧美一区二区18| 色综合一个色综合亚洲| hitomi一区二区三区精品| 国产成人在线视频网址| 精品一区二区免费视频| 国产揄拍国内精品对白| 日本va欧美va精品| 午夜精品福利一区二区蜜股av| 亚洲日本在线看| 亚洲视频一区二区免费在线观看| 中文字幕亚洲欧美在线不卡| 国产人久久人人人人爽| 国产精品青草久久| 18涩涩午夜精品.www| 亚洲精品高清在线| 国产亚洲制服色| 中文字幕 久热精品 视频在线| 国产三级精品三级| 国产精品久久久久aaaa| 亚洲色欲色欲www在线观看| 亚洲视频免费在线观看| 亚洲成人高清在线| 国产精品自拍毛片| 色女孩综合影院| 日韩精品一区二区在线| 国产精品卡一卡二卡三| 婷婷六月综合网| 国产成人av在线影院| 欧美网站一区二区| 亚洲国产精品二十页| 夜夜嗨av一区二区三区网页| 日韩精品一区第一页| 99久久综合99久久综合网站| 欧美日韩精品电影|