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

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

?? al8051.vhd

?? 使用VHDL語言編寫的8051IP核
?? VHD
?? 第 1 頁 / 共 5 頁
字號:
			SCONs <= RAM(152);	
			wait for 1 ns;
			if pr3(7) = '1' then
				pr5(4):= pr1(1);
				pr5(3):= pr1(5);
				pr5(2):= pr1(3);
				pr5(1):= pr1(7);
				pr5(0):= pr2(0) or pr2(1);
			else 
				pr5  := "00000";
			end if; 
			pr50 := "00000";
			pr51 := "00000";
			 			
			for i1 in 0 to 4 loop
				if pr3(i1) = '1' then
					if pr0(i1) = '1' then 
						pr51(4 - i1):=pr5(4 - i1);
					else 
						pr50(4 - i1):=pr5(4 - i1);
					end if;               
				end if;
			end loop;
			
			if fl1 = '0' then i1 := 4;
							else i1 := -1;
			end if;             
			while i1 /= -1 loop
				if pr51(i1) = '1' then
					obrab(V,i1);
					fl1 := '1'; 
					i1 := -1; 
				else i1:= i1 -1;
				end if; 
				
			end loop;
			
			if fl1 = '0' then
				if fl0 = '0' then i1 := 4;
								else i1 := -1;
				end if;             
			else i1 := -1;
			end if;             
			while i1 /= -1  loop
				if pr50(i1) = '1' then 
						obrab(V,i1);						--interrupt control
						fl0 := '1';
						i1 := -1; 
				else i1:= i1 -1;
				end if;
			end loop;
		end procedure interrup;
		
		--######################################################
		-- Beginning of the I8051 kernel simulation process
		--######################################################
begin 
	start <= '1'; 			
	 fli:='0';						  --enable raboty s i
		wait for 0.01 ns;
		while u1 = '1' loop
			prnach; 
		end loop;
		psws <=RAM(208);
		wait for 0.1 ns;
		if psws(4) = '0' then 
			if  psws(3) = '0' then
					bank := 0; 
			else bank := 8; 
			end if;                  
		else 
			if  psws(3) = '0' then
					bank := 16; 
			else bank := 24;
			end if;
		end if;
		x <= bank;
		wait for 0.1 ns;
					-- ## PRP03 i PRT1 form interrupt signal  T1  after transmit  ## --
					-- after transmit PRT1 <= '1';
		PRP03 <= '0';
		if PRT1 = '1' then 
			RAM(152):= RAM(152) or "00000010"; 
			PRP03 <= '1';
		end if; 
					-- ## PRP04 i PRR1 form interrupt signal  R1 after receive  ## --
					-- after receive PRR1 <= '1';
		PRP04 <= '0';
		if PRR1 = '1' then 
			RAM(152):= RAM(152) or "00000001"; 
			SCONs <= ram(152);
			wait for 0.05 ns;
			PRP04 <= '1';
		end if; 
		-- ##                            ##-- 
		
		CYCLE <= not CYCLE;
		sti := i;                                      
		if i=65535 then	 i:=0;  else 	i:=i+1;  end if;
		y <= i;       
		wait for 0.5ns;
		tajm;
		Proc1;
		com1 := com;   -- First instruction byte  is OPCODE
		
--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-- decoder of 1 byte instructions
--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		case com1 is
			when "00000000" =>  ff1b:='1';
			when "00000011" =>  ff1b:='1';
			when "00010011" =>  ff1b:='1';
			when "00000100" =>  ff1b:='1';
			when "00010100" =>  ff1b:='1';
			when "00100010" =>  ff1b:='1';
			when "00110010" =>  ff1b:='1';
			when "00100011" =>  ff1b:='1';
			when "00110011" =>  ff1b:='1';
			when "01110011" =>  ff1b:='1';
			when "10010011" =>  ff1b:='1';
			when "10000011" =>  ff1b:='1';
			when "10100011" =>  ff1b:='1';
			when "10000100" =>  ff1b:='1';
			when "10100100" =>  ff1b:='1';
			when "10100101" =>  ff1b:='1';
			when "10110011" =>  ff1b:='1';
			when "11000011" =>  ff1b:='1';
			when "11000100" =>  ff1b:='1';
			when "11010011" =>  ff1b:='1';
			when "11010100" =>  ff1b:='1';
			when "11100000" =>  ff1b:='1';
			when "11100100" =>  ff1b:='1';
			when "11110000" =>  ff1b:='1';
			when "11110100" =>  ff1b:='1';
			when "11110010" =>  ff1b:='1';
			when "11110011" =>  ff1b:='1';
			when "11100010" =>  ff1b:='1';
			when "11100011" =>  ff1b:='1';
			when "00000110" =>  ff1b:='1';
			when "00000111" =>  ff1b:='1';
			when "00010110" =>  ff1b:='1';
			when "00010111" =>  ff1b:='1';
			when "00100110" =>  ff1b:='1';
			when "00100111" =>  ff1b:='1';
			when "00110110" =>  ff1b:='1';
			when "00110111" =>  ff1b:='1';
			when "01000110" =>  ff1b:='1';
			when "01000111" =>  ff1b:='1';
			when "01010110" =>  ff1b:='1';
			when "01010111" =>  ff1b:='1';
			when "01100110" =>  ff1b:='1';
			when "01100111" =>  ff1b:='1';
			when "10010110" =>  ff1b:='1';
			when "10010111" =>  ff1b:='1';
			when "11000110" =>  ff1b:='1';
			when "11000111" =>  ff1b:='1';
			when "11010110" =>  ff1b:='1';
			when "11010111" =>  ff1b:='1';
			when "11100110" =>  ff1b:='1';
			when "11100111" =>  ff1b:='1';
			when "11110110" =>  ff1b:='1';
			when "11110111" =>  ff1b:='1';
			when "11001000" =>  ff1b:='1';
			when "11001001" =>  ff1b:='1';
			when "11001010" =>  ff1b:='1';
			when "11001011" =>  ff1b:='1';
			when "11001100" =>  ff1b:='1';
			when "11001101" =>  ff1b:='1';
			when "11001110" =>  ff1b:='1';
			when "11001111" =>  ff1b:='1';
			when "10011000" =>  ff1b:='1';
			when "10011001" =>  ff1b:='1';
			when "10011010" =>  ff1b:='1';
			when "10011011" =>  ff1b:='1';
			when "10011100" =>  ff1b:='1';
			when "10011101" =>  ff1b:='1';
			when "10011110" =>  ff1b:='1';
			when "10011111" =>  ff1b:='1';
			when "01101000" =>  ff1b:='1';
			when "01101001" =>  ff1b:='1';
			when "01101010" =>  ff1b:='1';
			when "01101011" =>  ff1b:='1';
			when "01101100" =>  ff1b:='1';
			when "01101101" =>  ff1b:='1';
			when "01101110" =>  ff1b:='1';
			when "01101111" =>  ff1b:='1';
			when "00001000" =>  ff1b:='1';
			when "00001001" =>  ff1b:='1';
			when "00001010" =>  ff1b:='1';
			when "00001011" =>  ff1b:='1';
			when "00001100" =>  ff1b:='1';
			when "00001101" =>  ff1b:='1';
			when "00001110" =>  ff1b:='1';
			when "00001111" =>  ff1b:='1';
			when "00011000" =>  ff1b:='1';
			when "00011001" =>  ff1b:='1';
			when "00011010" =>  ff1b:='1';
			when "00011011" =>  ff1b:='1';
			when "00011100" =>  ff1b:='1';
			when "00011101" =>  ff1b:='1';
			when "00011110" =>  ff1b:='1';
			when "00011111" =>  ff1b:='1';
			when "01001000" =>  ff1b:='1';
			when "01001001" =>  ff1b:='1';
			when "01001010" =>  ff1b:='1';
			when "01001011" =>  ff1b:='1';
			when "01001100" =>  ff1b:='1';
			when "01001101" =>  ff1b:='1';
			when "01001110" =>  ff1b:='1';
			when "01001111" =>  ff1b:='1';
			when "01011000" =>  ff1b:='1';
			when "01011001" =>  ff1b:='1';
			when "01011010" =>  ff1b:='1';
			when "01011011" =>  ff1b:='1';
			when "01011100" =>  ff1b:='1';
			when "01011101" =>  ff1b:='1';
			when "01011110" =>  ff1b:='1';
			when "01011111" =>  ff1b:='1';
			when "00101000" =>  ff1b:='1';
			when "00101001" =>  ff1b:='1';
			when "00101010" =>  ff1b:='1';
			when "00101011" =>  ff1b:='1';
			when "00101100" =>  ff1b:='1';
			when "00101101" =>  ff1b:='1';
			when "00101110" =>  ff1b:='1';
			when "00101111" =>  ff1b:='1';
			when "00111000" =>  ff1b:='1';
			when "00111001" =>  ff1b:='1';
			when "00111010" =>  ff1b:='1';
			when "00111011" =>  ff1b:='1';
			when "00111100" =>  ff1b:='1';
			when "00111101" =>  ff1b:='1';
			when "00111110" =>  ff1b:='1';
			when "00111111" =>  ff1b:='1';
			when "11101000" =>  ff1b:='1';
			when "11101001" =>  ff1b:='1';
			when "11101010" =>  ff1b:='1';
			when "11101011" =>  ff1b:='1';
			when "11101100" =>  ff1b:='1';
			when "11101101" =>  ff1b:='1';
			when "11101110" =>  ff1b:='1';
			when "11101111" =>  ff1b:='1';
			when "11111000" =>  ff1b:='1';
			when "11111001" =>  ff1b:='1';
			when "11111010" =>  ff1b:='1';
			when "11111011" =>  ff1b:='1';
			when "11111100" =>  ff1b:='1';
			when "11111101" =>  ff1b:='1';
			when "11111110" =>  ff1b:='1';
			when "11111111" =>  ff1b:='1';
		when others     => if i=65535 then	i:=0;    else 	i:=i+1; end if;
			ff1b:= '0';
		end case;
		
		case com1 is
			when "11100010" => 
			when "11100011" =>  
			when "11110010" =>  
			when "11110011" =>  
			when "11100000" => 
			when "11110000" =>  
			when others     =>   
			y <= i;
			wait for 0.5ns;
			tajm;
			Proc1;
		end case;
		
		flint := '0';
		--## forj RETI ##
		if com1 = "00110010" then flint := '1'; end if;
		
		--## for  Bit instructions ##
		pr3(3 downto 1):= com(7 downto 5);
		pr3(0):= com(3);    
		case com1 is
			when "11000010" => if pr3 = "1011" then flint := '1'; end if;
			when "11010010" => if pr3 = "1011" then flint := '1'; end if;
			when "10110010" => if pr3 = "1011" then flint := '1'; end if;
			when "10010010" => if pr3 = "1011" then flint := '1'; end if;
			when others =>
		end case;
		
		--## for byte processing instructions ##
		pr6(6 downto 4):= com(7 downto 5);
		pr6(3 downto 0):= com(3 downto 0);
		pr5:= com(7 downto 3); 
		if pr5 = "10001" then 
			if pr6 = "1011000" then 
				flint := '1';
			end if;
		end if; 
		dcom <= com1;
		wait for 0.05 ns;  
		case com1 is
			when "11110101" => if pr6 = "1011000" then flint := '1'; end if;
			when "01110101" => if pr6 = "1011000" then flint := '1'; end if;
			when "10000101" => if pr6 = "1011000" then flint := '1'; end if;
			when "10000110" => if pr6 = "1011000" then flint := '1'; end if;
			when "10000111" => if pr6 = "1011000" then flint := '1'; end if;
			when "11000101" => if pr6 = "1011000" then flint := '1'; end if;
			when "11000110" => if pr6 = "1011000" then flint := '1'; end if;
			when "11000111" => if pr6 = "1011000" then flint := '1'; end if;
			when "11010110" => if pr6 = "1011000" then flint := '1'; end if;
			when "11010111" => if pr6 = "1011000" then flint := '1'; end if;
			when others =>
		end case;
		
		if flint1 = '1' then flint := '1'; flint1 := '0'; end if;
		if flint = '0' then 
			if ff = '1' then 
				ff:='0'; 
				si := sti;
			else 
				si := sti;    
			end if;
			interrup; 										  --interrupt control
		end if;
		-- ## loading SCON into RAM ##
		RAM(153):= SBUF1;
		if flpp = '1' then   
			SCONs(2) <= sc2;
			if sc2 = '0' then 
					RAM(152):= RAM(152) and "11111011";
			else RAM(152):= RAM(152) or  "00000100";
			end if; 
			flpp1 <= not flpp1;
		end if;
		
		--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		-- Main instruction decoder
		--
		--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		case com1 is    
			when "00000000" => j:=j;            				       -- NOP   
			when "00000001" => ajmp("00000000000");    -- AJMP 000+ad 8  
			when "00000010" => ljmp;               				    -- LJMP ad 16
			when "00000011" =>                 					        -- RR A         1 b.
								pr := RAM(224);
								pr1(6 downto 0):=pr(7 downto 1);
								pr1(7):=pr(0);
								RAM(224):=pr1;
			when "00000100" =>  inc_r(224);            -- INC A        1 b.                    
			when "00000101" =>                         			-- INC ad       2 b.
								proc2 (j,com);
								if j = 128 then RAM(128):= BUFP0; end if;
								if j = 144 then RAM(144):= BUFP1; end if;
								if j = 160 then RAM(160):= BUFP2; end if;
								if j = 176 then RAM(176):= BUFP3; end if;                    
								inc_r(j);
								k := j;
								flag;
			when "00000110" =>                         -- INC @R0      1 b.
								proc2(j,RAM(bank+0));
								if j = 128 then RAM(128):= BUFP0; end if;
								if j = 144 then RAM(144):= BUFP1; end if;
								if j = 160 then RAM(160):= BUFP2; end if;
								if j = 176 then RAM(176):= BUFP3; end if;                    
								inc_r(j);
								k := j;
								flag;
			when "00000111" =>                         -- INC @R1      1 b.
								proc2(j,RAM(bank+1));
								if j = 128 then RAM(128):= BUFP0; end if;
								if j = 144 then RAM(144):= BUFP1; end if;
								if j = 160 then RAM(160):= BUFP2; end if;
								if j = 176 then RAM(176):= BUFP3; end if;                    
								inc_r(j);
								k := j;
								flag;
								                   
			when "00010000" =>                   		   -- JBC Bit,rel  3 b.
								proc2 (k,com);
								case com(7 downto 3) is
									when "10000" => ADBit(135 downto 128) := BUFP0; flp0 <= '1';
									when "10010" => ADBit(151 downto 144) := BUFP1; flp1 <= '1';
									when "10100" => ADBit(167 downto 160) := BUFP2; flp2 <= '1';
									when "10110" => ADBit(183 downto 176) := BUFP3; flp3 <= '1';
									when others => flp0 <= '0'; flp1 <= '0'; flp2 <= '0'; flp3 <= '0';
								end case;                  
								Proc11;
								if ADBit(k) = '1' then rel;
									ADBit(k) := '0';
									fBit := '1';
									ff:='0';
								end if;
			when "00010001" =>  acall("00000000000");    -- ACALL 000+ad8  2 b.
			when "00010010" =>  lcall;              			     -- LCALL ad 16  3 b.
			when "00010011" =>                         				  -- RRC A        1 b.
								pr := RAM(224);
								pr0:= RAM(208);
								pr1(6 downto 0):=pr(7 downto 1);
								pr1(7):=pr0(7);
								pr0(7):= pr(0);
								RAM(224):=pr1;
								RAM(208):=pr0;
			when "00010100" =>  dec_r(224);            -- DEC A        1 b.                    
			when "00010101" =>       			                  -- DEC ad       2 b.
								proc2 (j,com);
								if j = 128 then RAM(128):= BUFP0; end if;
								if j = 144 then RAM(144):= BUFP1; end if;
								if j = 160 then RAM(160):= BUFP2; end if;
								if j = 176 then RAM(176):= BUFP3; end if;
								dec_r(j);
								k := j;
								flag;
			when "00010110" =>                          -- DEC @R0      1 b.
								proc2(j,RAM(bank+0));
								if j = 128 then RAM(128):= BUFP0; end if;
								if j = 144 then RAM(144):= BUFP1; end if;
								if j = 160 then RAM(160):= BUFP2; end if;
								if j = 176 then RAM(176):= BUFP3; end if;
								dec_r(j);
								k := j;
								flag;
								
			when "00010111" =>                           -- DEC @R1      1 b.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久综合狠狠综合久久| 国产一区二区三区在线观看精品| 欧美videofree性高清杂交| 成人精品一区二区三区四区 | 久久久蜜臀国产一区二区| 在线日韩av片| 成人精品免费视频| 蓝色福利精品导航| 亚洲一区二区三区四区在线免费观看| 国产欧美一区二区三区沐欲| 欧美一二三四区在线| 欧美天堂亚洲电影院在线播放| 国产凹凸在线观看一区二区| 麻豆精品一二三| 香港成人在线视频| 亚洲午夜成aⅴ人片| 亚洲免费色视频| 中文字幕巨乱亚洲| 久久久99久久| 久久蜜桃一区二区| 日韩女同互慰一区二区| 制服丝袜亚洲网站| 在线成人高清不卡| 99久久精品国产毛片| 成人激情动漫在线观看| 国产激情偷乱视频一区二区三区| 秋霞av亚洲一区二区三| 婷婷夜色潮精品综合在线| 亚洲在线观看免费| 亚洲综合免费观看高清完整版在线| 国产精品护士白丝一区av| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品午夜电影| 久久精品亚洲一区二区三区浴池| 亚洲精品一区在线观看| 欧美videos中文字幕| 精品人在线二区三区| 精品播放一区二区| 精品88久久久久88久久久| 精品久久人人做人人爱| 久久香蕉国产线看观看99| 国产亚洲精品久| 日本一区二区不卡视频| 国产精品久久久久久亚洲毛片| 国产精品伦一区二区三级视频| 中文字幕巨乱亚洲| 亚洲男人都懂的| 一级做a爱片久久| 午夜精品久久久久久久| 日韩—二三区免费观看av| 美女网站在线免费欧美精品| 极品少妇xxxx精品少妇| 国产成人aaa| 91丝袜高跟美女视频| 欧美制服丝袜第一页| 日韩欧美一区二区久久婷婷| 精品日韩成人av| 国产精品传媒在线| 亚洲国产精品一区二区久久| 青椒成人免费视频| 国产成人精品一区二区三区四区 | 欧美三区在线观看| 91精品国产欧美一区二区18 | 色狠狠桃花综合| 7777精品久久久大香线蕉| 久久综合视频网| 综合婷婷亚洲小说| 奇米影视一区二区三区| 国产精品18久久久久久久网站| 成人ar影院免费观看视频| 欧美日韩不卡一区二区| 26uuu久久综合| 亚洲青青青在线视频| 亚洲成a人v欧美综合天堂下载 | 日韩精品最新网址| |精品福利一区二区三区| 亚洲mv在线观看| 国产精品系列在线播放| 日本精品一区二区三区高清| 精品剧情在线观看| 亚洲图片你懂的| 蜜桃视频免费观看一区| 波多野洁衣一区| 日韩三级视频中文字幕| 中文字幕一区二区三区蜜月| 日本不卡一区二区| 99国产精品久久久久| 欧美大片日本大片免费观看| 中文字幕一区二区三区蜜月| 麻豆精品视频在线观看视频| a4yy欧美一区二区三区| 日韩精品中文字幕在线一区| 亚洲免费高清视频在线| 国产一区999| 在线播放91灌醉迷j高跟美女| 欧美激情综合网| 日本成人在线看| 色综合夜色一区| 国产精品―色哟哟| 精品制服美女久久| 欧美日韩午夜精品| 亚洲视频一区二区免费在线观看 | 成人免费视频播放| 日韩欧美国产一区在线观看| 亚洲猫色日本管| 国产在线一区观看| 欧美一区二区三区不卡| 亚洲永久精品大片| av网站一区二区三区| 欧美激情一区在线| 国内精品在线播放| 欧美精品1区2区| 夜夜嗨av一区二区三区中文字幕| 成人伦理片在线| 国产亚洲污的网站| 国产最新精品精品你懂的| 欧美区一区二区三区| 一区二区欧美精品| 99精品视频在线免费观看| 中文字幕欧美三区| 成人妖精视频yjsp地址| 国产亚洲精品精华液| 国产一区二区三区av电影| 欧美成人精品二区三区99精品| 日韩国产成人精品| 欧美美女一区二区在线观看| 成人午夜免费电影| 久久久久国产一区二区三区四区| 九九视频精品免费| 久久无码av三级| 国产精品一区二区在线观看不卡 | √…a在线天堂一区| 成熟亚洲日本毛茸茸凸凹| 久久九九久精品国产免费直播| 国产一级精品在线| 久久久精品国产99久久精品芒果| 精品在线你懂的| 国产视频一区二区三区在线观看| 韩日av一区二区| 久久久99精品久久| 成人av免费观看| 亚洲最快最全在线视频| 欧美三级资源在线| 日产欧产美韩系列久久99| 日韩午夜三级在线| 国产在线视频不卡二| 国产亚洲精品bt天堂精选| 不卡区在线中文字幕| 亚洲视频 欧洲视频| 欧洲国内综合视频| 日韩电影一区二区三区四区| 精品国产一二三区| 岛国av在线一区| 一区二区三区小说| 91精品国产美女浴室洗澡无遮挡| 久久国产欧美日韩精品| 久久精品水蜜桃av综合天堂| 成av人片一区二区| 亚洲一区二区三区四区中文字幕 | 亚洲日本在线a| 欧美三级韩国三级日本一级| 麻豆91小视频| 亚洲国产精品成人久久综合一区| 99国产一区二区三精品乱码| 午夜激情久久久| 久久婷婷成人综合色| 色综合一个色综合| 秋霞午夜鲁丝一区二区老狼| 国产日本一区二区| 欧美日韩国产电影| 国产激情偷乱视频一区二区三区| 亚洲精品免费一二三区| 制服丝袜国产精品| 成人免费观看av| 天天综合天天做天天综合| 2020国产精品自拍| 色婷婷综合久色| 国内精品免费在线观看| 亚洲天堂av一区| 精品福利在线导航| 日本韩国一区二区| 国产一区二区导航在线播放| 亚洲一区在线看| 国产精品视频一区二区三区不卡| 欧美日韩亚洲综合在线| 成人黄色片在线观看| 青草av.久久免费一区| 日韩理论片中文av| 久久综合久久综合九色| 欧美系列在线观看| 粉嫩嫩av羞羞动漫久久久| 日韩av在线免费观看不卡| 中文字幕佐山爱一区二区免费| 欧美成人猛片aaaaaaa| 欧美三级电影网站| 99这里只有久久精品视频| 国内精品伊人久久久久av一坑| 视频一区视频二区在线观看| 国产精品情趣视频| 久久综合九色综合97婷婷|