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

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

?? jh_cpu10.vhd

?? Jh_cpu is a cpu with 12 address,8 data bus, adn give direct address ,indirect address two addressin
?? VHD
字號:
-- clock generation block 
-- single/double byte(s) instruction fetch
-- single byte instruction expanded
-- jsr instruction expanded
-- bra instruction expanded
-- Jmp instruction expanded
-- STA instruction expanded
-- LDA instruction expanded
-- ANL instruction expanded
-- ADC instruction expand
library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_unsigned.all ;
use ieee.std_logic_arith.all ;
use work.cpupack.all ;

entity jh_cpu10 is
  port( clk, intr : in  std_logic ;
        rd, wr    : out std_logic ;
        co, vo    : inout std_logic ;
        ZO, NO    : inout std_logic ;
        pco   : inout TWELVE;
        databus : inout byte := "ZZZZZZZZ" ;
        adbus   : out TWELVE ) ;
end jh_cpu10 ;

architecture behavioral of jh_cpu10  is
   TYPE STATE_TYPE IS (s0, s1, s2, s3, S4, S5, S6, s7, s8, s9, s10, s11, s12, s13, s14);
   SIGNAL state	: STATE_TYPE;
   signal clk1, clk2 : std_logic ;
   signal ring : std_logic_vector(7 downto 0) ;
   SIGNAL SBI, YES_JSR, YES_BR   : STD_LOGIC ;
   SIGNAL  IR1, IR2, TMP, ACCU :BYTE ;
   SIGNAL  pc, PCTMP : TWELVE;

begin

----------------------------------------------------------------------------------------- 
---**************************************
clk_process :  --- clk1 and clk2 gereration block
   process(clk, intr) 
   variable q : std_logic_vector(7 downto 0) := "01100000";
   begin 
    If intr = '1' then 
       q := "01100000" ;
	elsIF (clk'EVENT AND clk= '1') THEN
         q := q(0) & q(7 downto 1)  ;            
		END IF;
     ---**************************************
    ring <= q ;
   end process ;
      
     clk1 <= ring(7) ;
     clk2 <= ring(3) ;
 ---**************************************
-----------------------------------------------------------------------------------------
  PROCESS (clk1, clk2)
   variable  ACC  : byte := ZERO_8;  
   variable  acctmp : STD_LOGIC_VECTOR ( 8 DOWNTO 0)  ;
   variable  c, v, n, z : std_logic := '0' ;
   variable  ext_acc, DTMP : integer range 0 to 511  ;
   variable  ext_c: integer range 0 to 1 ;

    BEGIN
     ---**************************************
	IF (clk1'EVENT AND clk1 = '1') THEN

		  CASE state IS
            when s0=>
                               state <= s1 ;        
			WHEN s1=>
                            if intr='1' then
     	                       state <= s0;
                            elsif SBI ='1' THEN
                               state <= s3 ;
                            ELSE 
                               state <= s2 ;
                            end if ;
			WHEN s2 =>
                            if intr='1' then
			                   state <= s0;
                            elsif YES_JSR ='1' then
                               state <= s4 ;
                            elsif (IR1( 7 downto 4) = BRA)  THEN
                                 IF YES_BR ='1' then
                                    state <= s6 ;
                                  ELSE 
                                    STATE <= S1 ;
                                  END IF ;
                            elsif (IR1( 7 downto 5) = JMP) THEN
                               if  IR1(4) ='1' then
                                state <= s7 ;   
                               ELSE
                                STATE <= s10 ;
                               END IF ; 
                            elsif  IR1(4) ='1' then
                                state <= s7 ;   
                            ELSIF (IR1( 7 downto 5) = STA) THEN
                                 STATE <= s11 ;
                            elsif (IR1( 7 downto 5) = LDA) THEN
                                 STATE <= S12 ; 
                            elsif (IR1( 7 downto 5) = ANL) THEN
                                 STATE <= S13 ; 
                            elsif (IR1( 7 downto 5) = ADC ) THEN
                                 STATE <= S14 ; 
                            end if ;
			WHEN s4=>
                            if intr='1' then
			                   state <= s0;
                            else
                               state <= s5;
                            end if ;
			WHEN s7=>
                            if intr='1' then
			                   state <= s0;
                            elsif (IR1( 7 downto 5) = JMP) THEN
                                state <= s8 ;
                            ELSIF (IR1( 7 downto 5) = STA) THEN
                                 STATE <= s11 ;
                            elsif (IR1( 7 downto 5) = LDA) THEN
                                 STATE <= S12 ; 
                            elsif (IR1( 7 downto 5) = ANL) THEN
                                 STATE <= S13 ; 
                            elsif (IR1( 7 downto 5) = ADC ) THEN
                                 STATE <= S14 ; 
                            end if ;
			WHEN s8=>
                            if intr='1' then
			                   state <= s0;
                            else
                               state <=s9 ;
                            end if ;    
			WHEN OTHERS =>
                            if intr='1' then
			                   state <= s0;
                            else
                               state <= s1 ;
                            end if ;
                  END CASE;
           --^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		IF state = s0 THEN
		   PC <= ZERO_12;
		ELSIF ((state =s1) or (state=s2) or (state =s5) ) THEN
		   PC <= CONV_STD_LOGIC_VECTOR(CONV_INTEGER(PC)+1, 12) ;
        ELSIF STATE = S4 THEN    
		   PC <= CONV_STD_LOGIC_VECTOR(CONV_INTEGER(IR1(3 DOWNTO 0)&IR2)+1, 12) ;
        ELSIF (STATE = S6) THEN
	       PC(7 DOWNTO 0) <= IR2 ;
        ELSIF ( (STATE =s9) OR (STATE =s10))  THEN 
           PC <= IR1( 3 DOWNTO 0) & IR2  ;
		END IF;
			
           --^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		END IF;
     ---**************************************

----===============================================================
     IF (clk2'EVENT AND clk2 = '1') THEN
         --^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          IF STATE = S0 THEN 
                  ACC := "10101100" ; --ZERO_8 ;
             ELSIF STATE = S3 THEN    
                   case IR1(3 downto 0)is
                     when cla => 
                       acc := ZERO_8 ;
                     when cma => 
                       acc := NOT acc ;
                     when cmc => 
                       c := not c  ;
                     when stc =>
                       c:= '1' ;
                     when asl => 
                       if acc(7)/= acc(6) then V := '1' ; end if ;
                       c := acc(7)  ;
                       acc := acc(6 DOWNTO 0) & '0' ;
                     when asr => 
                       C := ACC(0) ; 
                       acc := ACC(7) & ACC(7 DOWNTO 1) ;
                     when others => NULL ;                   
                   end case ;       
  
           ELSIF STATE = s7 THEN          
             PCTMP <= CONV_STD_LOGIC_VECTOR(CONV_INTEGER(IR1(3 DOWNTO 0)& TMP)+1, 12) ;
           ELSIF STATE = S12 THEN  --LDA OPERATION  
                  ACC := DATABUS ;
           ELSIF STATE = S13 THEN  -- ANL OPERATION
                  ACCTMP := acc and DATABUS ;
                  ACC  := ACCTMP ;
           ELSIF (STATE = S14) THEN  -- ADC OPERATION  
                 --#### starting of  add opertion  
                     if c='1'  then 
                        ext_c := 1  ;
                     else 
                        ext_c := 0 ; 
                     end if ;
                     DTMP := conv_integer(DATABUS) ; 
                     ext_acc := conv_integer(acc) ;
                     acctmp := CONV_STD_LOGIC_VECTOR(ext_acc+ DTMP + ext_c, 9) ;                   
                     if (databus(databus'left) = acc(acc'left)) and (acctmp(acc'left)/= acc(acc'left)) then
                        v := '1' ; --- overflow 
                     else 
                        v := '0' ; --- underflow 
                     end if ; 
                     ACC := ACCTMP(7 downto 0)   ;
                       c := acctmp(8) ; 
           END IF ;  
        --^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			IF state = s0 THEN
				IR1 <= ZERO_8;
			ELSIF (state = s1)  THEN
				IR1 <= DATABUS ;
			ELSIF (state =s9)  THEN
				IR1 <= TMP ;
         	END IF;
         --^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			IF state = s0 THEN
				IR2 <= ZERO_8;
				TMP <= ZERO_8;
			ELSIF (state = s2) THEN
				IR2 <= DATABUS ;
                TMP <= DATABUS ;
            ELSIF STATE = S4 THEN    
                TMP <= "0000" & pc(11 downto 8) ;
			ELSIF  (STATE = s7) THEN
				 IR2 <= DATABUS ; 
			ELSIF  (STATE = s8) THEN
				TMP <= DATABUS ;
			END IF;
         --^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       END IF ;
----===============================================================            
    ACCU <= ACC ;
    pco <= pc ;
    co <= c ;
    vo <= v ; 
END PROCESS;

    ZO <=  '1' WHEN  accu= zero_8 ELSE
           '0' ;
    NO <=  ACCU(7) ;

    SBI <= '1' WHEN (IR1( 7 downto 4) = singleBI) ELSE
           '0'  ;
    YES_JSR <= '1' WHEN (IR1( 7 downto 4) = JSR) ELSE
           '0'  ;
    YES_BR  <= '1' WHEN ((IR1(3)= '1' AND VO='1')OR (IR1(2)= '1' AND Co='1')
                       OR(IR1(1)= '1' AND ZO='1')OR (IR1(0)= '1' AND NO='1')) ELSE
               '0'  ;
    AD_BUS:
       WITH STATE SELECT
       	ADBUS <= "ZZZZZZZZZZZZ" WHEN s0 |s3 |S6 | s10 |s9,
       		       pc WHEN s1 |s2 | s5,        
                   IR1(3 DOWNTO 0) & IR2 WHEN  S4 | s11 |s12 |s13 | s14,
                   IR1(3 DOWNTO 0) & TMP WHEN  s7,
                   PCTMP WHEN s8 ;
    DATA_BUS:
       WITH STATE SELECT
       	DATABUS <= pco( 7 DOWNTO 0)  WHEN s4,
       	           TMP when s5,
       	           accu when s11,
                   "ZZZZZZZZ" WHEN OTHERS ;

    READ:
       WITH STATE SELECT
       	RD <= '1' WHEN s1 | S2 |s7 |s8 | s12 |s13 |s14,
              '0' WHEN OTHERS ;
    WRITE:
       WITH STATE SELECT
       	WR <= '1' WHEN s4 | s5 | s11,
              '0' WHEN OTHERS ;
       	         
-----------------------------------------------------------------------------------------
end behavioral  ;        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性极品少妇| 奇米精品一区二区三区四区| 日韩网站在线看片你懂的| 欧美性色黄大片| 一本久久a久久免费精品不卡| 成人美女视频在线观看| 国产91高潮流白浆在线麻豆| 国产成人精品免费| 大美女一区二区三区| 成人18视频在线播放| 色婷婷亚洲综合| 欧日韩精品视频| 欧美精品亚洲二区| 精品国产免费人成在线观看| 久久久高清一区二区三区| 国产精品视频九色porn| 亚洲色欲色欲www在线观看| 亚洲精品美腿丝袜| 午夜精品123| 极品瑜伽女神91| www.爱久久.com| 欧美在线免费观看亚洲| 欧美一区二区三区四区在线观看| 欧美成人艳星乳罩| 国产精品久久久久影视| 亚洲国产精品视频| 精品中文av资源站在线观看| 成人午夜大片免费观看| 91久久精品午夜一区二区| 91麻豆精品国产91久久久更新时间| 欧美成人伊人久久综合网| 国产无人区一区二区三区| 一区二区三区日韩欧美精品| 久久精品国产成人一区二区三区| 国产91在线看| 欧美日韩一区二区在线观看视频| 久久影院午夜论| 一区二区久久久久| 国产精品一区免费在线观看| 日本久久一区二区| 久久女同性恋中文字幕| 亚洲欧美偷拍卡通变态| 久久精品国产精品亚洲综合| 欧美丝袜丝交足nylons| 久久久99精品久久| 亚洲一区国产视频| 国产成人欧美日韩在线电影| 欧美日韩精品一区视频| 国产性色一区二区| 日韩电影免费一区| 色噜噜狠狠色综合欧洲selulu | 欧美一级二级在线观看| 日韩一区欧美一区| 国产精品综合网| 欧美精品第1页| 一区二区成人在线| 国产成人精品免费视频网站| 欧美一级专区免费大片| 亚洲成a人片综合在线| 99久久精品99国产精品| 国产欧美一区二区三区网站| 精品一区二区三区的国产在线播放| 欧洲激情一区二区| 亚洲欧美日韩一区二区三区在线观看| 看电视剧不卡顿的网站| 正在播放亚洲一区| 亚洲电影第三页| 日本韩国一区二区三区视频| 中文字幕一区在线观看| 丁香啪啪综合成人亚洲小说| 久久影视一区二区| 久久精品72免费观看| 欧美一区二区在线视频| 日韩电影在线免费看| 欧美精品久久久久久久久老牛影院| 亚洲免费观看高清完整版在线观看熊| av电影在线观看一区| 中文字幕va一区二区三区| 国产风韵犹存在线视精品| 欧美精品一区二区久久久| 精品制服美女丁香| 国产亚洲一本大道中文在线| 国产盗摄女厕一区二区三区| 欧美激情在线一区二区三区| 国产91露脸合集magnet| 日韩美女视频一区| 欧美主播一区二区三区| 国产综合色在线视频区| 欧美xingq一区二区| 国产精品99久久久久久久vr | 亚洲日本在线a| 欧洲一区二区三区在线| 丝袜美腿亚洲色图| 精品免费日韩av| 成人黄色在线看| 亚洲一区二区精品3399| 911精品国产一区二区在线| 久久66热偷产精品| 中文字幕高清不卡| 欧美日韩一区国产| 韩国精品主播一区二区在线观看| 欧美国产禁国产网站cc| 日本高清视频一区二区| 另类成人小视频在线| 中文字幕第一区第二区| 欧美午夜一区二区| 国模大尺度一区二区三区| 亚洲三级小视频| 欧美xxxxx牲另类人与| youjizz国产精品| 日韩激情视频在线观看| 国产精品网站在线播放| 欧美日韩第一区日日骚| 粗大黑人巨茎大战欧美成人| 亚洲一区二区黄色| 中文字幕巨乱亚洲| 这里只有精品99re| 波多野结衣视频一区| 亚洲成人精品影院| 中文字幕日韩欧美一区二区三区| 欧美丰满少妇xxxbbb| 成人激情动漫在线观看| 奇米综合一区二区三区精品视频| 亚洲图片你懂的| 精品国产精品网麻豆系列| 欧洲一区在线电影| av一区二区三区| 韩国精品主播一区二区在线观看 | 秋霞av亚洲一区二区三| 国产精品久久久久国产精品日日| 欧美成人一级视频| 欧美日韩成人激情| 在线亚洲免费视频| 99精品国产视频| 国产91精品露脸国语对白| 另类成人小视频在线| 日韩经典中文字幕一区| 亚洲狠狠爱一区二区三区| 国产精品成人免费精品自在线观看| 日韩免费视频线观看| 日本道精品一区二区三区| 91免费在线视频观看| 国产美女一区二区| 黄色精品一二区| 麻豆精品精品国产自在97香蕉 | 蜜桃在线一区二区三区| 亚洲一区精品在线| 亚洲高清不卡在线观看| 一区二区高清免费观看影视大全| 亚洲丝袜美腿综合| 中文字幕在线一区免费| 国产精品亲子伦对白| 国产精品对白交换视频 | 自拍偷拍国产精品| 国产精品久久久久久久久免费相片 | 亚洲国产精品av| 国产校园另类小说区| 国产亲近乱来精品视频 | 91蝌蚪国产九色| 色偷偷久久一区二区三区| 色哟哟国产精品| 欧美日韩一区不卡| 欧美日韩一区二区三区不卡 | 精品国产乱码久久久久久浪潮| 日韩美一区二区三区| 精品久久国产字幕高潮| 久久精品夜色噜噜亚洲a∨| 国产肉丝袜一区二区| 亚洲视频每日更新| 亚洲国产日韩精品| 奇米影视在线99精品| 国内久久精品视频| av毛片久久久久**hd| 91久久人澡人人添人人爽欧美 | 亚洲精品一区二区三区影院| 亚洲精品一区二区三区影院| 中文字幕欧美日本乱码一线二线| 国产精品欧美极品| 亚洲mv在线观看| 国产精品综合一区二区| 91免费观看视频| 日韩欧美国产一二三区| 中文字幕第一区二区| 亚洲成人精品一区| 国产精品白丝jk白祙喷水网站| 一本久道中文字幕精品亚洲嫩| 91麻豆精品国产91久久久资源速度| 久久久www成人免费毛片麻豆| 亚洲女人小视频在线观看| 日韩精品每日更新| 国产91精品在线观看| 欧美精品亚洲一区二区在线播放| 国产日韩精品久久久| 亚洲va国产va欧美va观看| 成人性色生活片| 日韩一卡二卡三卡四卡| 亚洲日本在线a| 国产成人夜色高潮福利影视| 欧美三级资源在线| 国产精品超碰97尤物18|