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

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

?? alu8.vhd

?? 用vhdl語用實現(xiàn)簡單的16位cpu功能
?? VHD
字號:
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;--  Uncomment the following lines to use the declarations that are--  provided for instantiating Xilinx primitive components.--library UNISIM;--use UNISIM.VComponents.all;use work.cpu_pack.ALL;entity alu8 is	PORT(	CLK_I : in   std_logic;			T2    : in   std_logic;			CLR   : in   std_logic;			CE    : in   std_logic;			ALU_OP : in  std_logic_vector( 4 downto 0);			XX     : in  std_logic_vector(15 downto 0);			YY     : in  std_logic_vector(15 downto 0);			ZZ     : out std_logic_vector(15 downto 0)		);end alu8;architecture Behavioral of alu8 is	function sh_mask(Y    : unsigned(3 downto 0);					 YMAX : unsigned(3 downto 0);	                 LR   : std_logic;	                 FILL : std_logic;					 X    : std_logic) return std_logic is	begin		if (YMAX >= Y) then									-- Y small			if (LR = '1') then		return	X;			-- LSL			else					return	FILL;		-- LSR			end if;		else												-- Y big			if (LR = '1') then		return	FILL;		-- LSL			else					return	X;			-- ASR/LSR			end if;		end if;	end;	function b8(A : std_logic) return std_logic_vector is	begin		return A & A & A & A & A & A & A & A;	end;	function b16(A : std_logic) return std_logic_vector is	begin		return b8(A) & b8(A);	end;	function aoxn(A : std_logic_vector(3 downto 0)) return std_logic is	begin		case A is			-- and			when "0000" =>	return '0';			when "0001" =>	return '0';			when "0010" =>	return '0';			when "0011" =>	return '1';			-- or			when "0100" =>	return '0';			when "0101" =>	return '1';			when "0110" =>	return '1';			when "0111" =>	return '1';			-- xor			when "1000" =>	return '0';			when "1001" =>	return '1';			when "1010" =>	return '1';			when "1011" =>	return '0';			-- not Y			when "1100" =>	return '1';			when "1101" =>	return '0';			when "1110" =>	return '1';			when others =>	return '0';		end case;	end;	signal MD_OR     : std_logic_vector(15 downto 0);		-- Multiplicator/Divisor	signal PROD_REM  : std_logic_vector(31 downto 0);	signal MD_OP     : std_logic;						-- operation D/M, S/U	signal QP_NEG    : std_logic;						-- product / quotient negative	signal RM_NEG    : std_logic;						-- remainder negativebegin	alumux: process(ALU_OP, MD_OP, XX, YY, QP_NEG, RM_NEG, PROD_REM)		variable MASKED_X : std_logic_vector(15 downto 0);		variable SCNT     : unsigned(3 downto 0);		variable SFILL    : std_logic;		variable ROL1     : std_logic_vector(15 downto 0);		variable ROL2     : std_logic_vector(15 downto 0);		variable ROL4     : std_logic_vector(15 downto 0);		variable ROL8     : std_logic_vector(15 downto 0);		variable X_GE_Y	  : std_logic;	-- signed   X >=  Y		variable X_HS_Y	  : std_logic;	-- unsigned X >=  Y		variable X_HSGE_Y : std_logic;	-- any      X >=  Y		variable X_EQ_Y	  : std_logic;	-- signed   X ==  Y		variable X_CMP_Y  : std_logic;	begin		MASKED_X := XX and b16(ALU_OP(0));		SFILL    := ALU_OP(0) and XX(15);		if (ALU_OP(1) = '1') then	-- LSL			SCNT := UNSIGNED(YY(3 downto 0));		else						-- LSR / ASR			SCNT := "0000" - UNSIGNED(YY(3 downto 0));		end if;		if (SCNT(0) = '0') then	ROL1 := XX;		else					ROL1 := XX(14 downto 0) & XX(15);		end if;		if (SCNT(1) = '0') then	ROL2 := ROL1;		else					ROL2 := ROL1(13 downto 0) & ROL1(15 downto 14);		end if;		if (SCNT(2) = '0') then	ROL4 := ROL2;		else					ROL4 := ROL2(11 downto 0) & ROL2(15 downto 12);		end if;		if (SCNT(3) = '0') then	ROL8 := ROL4;		else					ROL8 := ROL4(7 downto 0) & ROL4(15 downto 8);		end if;		if (XX = YY) then		X_EQ_Y := '1';		else					X_EQ_Y := '0';		end if;		if (UNSIGNED(XX) >= UNSIGNED(YY)) then		X_HSGE_Y := '1';		else										X_HSGE_Y := '0';		end if;		if (XX(15) /= YY(15)) then		-- different sign/high bit			X_HS_Y := XX(15);		-- X ia bigger iff high bit set			X_GE_Y := YY(15);		-- X is bigger iff Y negative		else							-- same sign/high bit: GE == HS			X_HS_Y := X_HSGE_Y;			X_GE_Y := X_HSGE_Y;		end if;		case ALU_OP is			when	ALU_X_HS_Y	=>	X_CMP_Y :=      X_HS_Y;			when	ALU_X_LO_Y	=>	X_CMP_Y := not  X_HS_Y;			when	ALU_X_HI_Y	=>	X_CMP_Y :=      X_HS_Y and not X_EQ_Y;			when	ALU_X_LS_Y	=>	X_CMP_Y := not (X_HS_Y and not X_EQ_Y);			when	ALU_X_GE_Y	=>	X_CMP_Y :=      X_GE_Y;			when	ALU_X_LT_Y	=>	X_CMP_Y := not  X_GE_Y;			when	ALU_X_GT_Y	=>	X_CMP_Y :=      X_GE_Y and not X_EQ_Y;			when	ALU_X_LE_Y	=>	X_CMP_Y := not (X_GE_Y and not X_EQ_Y);			when	ALU_X_EQ_Y	=>	X_CMP_Y :=      X_EQ_Y;			when	others		=>	X_CMP_Y := not  X_EQ_Y;		end case;		ZZ <= X"0000";		case ALU_OP is			when	ALU_X_HS_Y | ALU_X_LO_Y | ALU_X_HI_Y | ALU_X_LS_Y |					ALU_X_GE_Y | ALU_X_LT_Y | ALU_X_GT_Y | ALU_X_LE_Y |					ALU_X_EQ_Y | ALU_X_NE_Y =>				ZZ  <= b16(X_CMP_Y);			when 	ALU_NEG_Y |	ALU_X_SUB_Y =>				ZZ  <= MASKED_X - YY;			when	ALU_MOVE_Y | ALU_X_ADD_Y =>				ZZ  <= MASKED_X + YY;			when 	ALU_X_AND_Y | ALU_X_OR_Y  | ALU_X_XOR_Y | ALU_NOT_Y =>				for i in 0 to 15 loop					ZZ(i) <= aoxn(ALU_OP(1 downto 0) & XX(i) & YY(i));				end loop;			when	ALU_X_LSR_Y | ALU_X_ASR_Y | ALU_X_LSL_Y =>				for i in 0 to 15 loop					ZZ(i) <= sh_mask(SCNT, CONV_UNSIGNED(i, 4),									 ALU_OP(1), SFILL, ROL8(i));				end loop;			when	ALU_X_MIX_Y =>					ZZ(15 downto 8) <= YY(7 downto 0);					ZZ( 7 downto 0) <= XX(7 downto 0);			when	ALU_MUL_IU | ALU_MUL_IS |					ALU_DIV_IU | ALU_DIV_IS | ALU_MD_STP =>	-- mult/div ini/step					ZZ <= PROD_REM(15 downto 0);			when	ALU_MD_FIN =>	-- mult/div				if (QP_NEG = '0') then	ZZ <= PROD_REM(15 downto 0);				else					ZZ <= X"0000" - PROD_REM(15 downto 0);				end if;			when	others =>	-- modulo				if (RM_NEG = '0') then	ZZ <= PROD_REM(31 downto 16);				else					ZZ <= X"0000" - PROD_REM(31 downto 16);				end if;		end case;	end process;	muldiv: process(CLK_I)		variable POS_YY : std_logic_vector(15 downto 0);		variable POS_XX : std_logic_vector(15 downto 0);		variable DIFF   : std_logic_vector(16 downto 0);		variable SUM    : std_logic_vector(16 downto 0);	begin		if (rising_edge(CLK_I)) then			if (T2 = '1') then				if (CLR = '1') then					PROD_REM <= X"00000000";	-- product/remainder					MD_OR    <= X"0000";		-- multiplicator/divisor					MD_OP    <= '0';			-- mult(0)/div(1)					QP_NEG   <= '0';			-- quotient/product negative					RM_NEG   <= '0';			-- remainder negative				elsif (CE = '1') then					SUM  := ('0' & PROD_REM(31 downto 16)) + ('0' & MD_OR);					DIFF := ('0' & PROD_REM(30 downto 15)) - ('0' & MD_OR);					if (XX(15) = '0') then	POS_XX := XX;					else					POS_XX := X"0000" - XX;					end if;					if (YY(15) = '0') then	POS_YY := YY;					else					POS_YY := X"0000" - YY;					end if;					case  ALU_OP is						when	ALU_MUL_IU | ALU_MUL_IS | ALU_DIV_IU | ALU_DIV_IS =>							MD_OP    <= ALU_OP(1);		-- div / mult							MD_OR    <= POS_YY;		-- multiplicator/divisor							QP_NEG   <= ALU_OP(0) and (XX(15) xor YY(15));							RM_NEG   <= ALU_OP(0) and  XX(15);							PROD_REM <= X"0000" & POS_XX;						when	ALU_MD_STP =>							if (MD_OP = '0') then		-- multiplication step								PROD_REM(15 downto 0) <= PROD_REM(16 downto 1);								if (PROD_REM(0) = '0') then										PROD_REM(31 downto 15) <=										'0' & PROD_REM(31 downto 16);								else									PROD_REM(31 downto 15) <= SUM;								end if;							else						-- division step								if (DIFF(16) = '1') then	-- carry: small remainder									PROD_REM(31 downto 16) <= PROD_REM(30 downto 15);								else									PROD_REM(31 downto 16) <= DIFF(15 downto 0);								end if;								PROD_REM(15 downto 1) <= PROD_REM(14 downto 0);								PROD_REM(0) <= not DIFF(16);							end if;						when	others =>					end case;				end if;			end if;		end if;	end process;end Behavioral;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费相片 | 蜜桃av一区二区三区| 亚洲精品视频自拍| 最新日韩在线视频| 亚洲天堂中文字幕| 中文字幕综合网| 亚洲欧美区自拍先锋| 亚洲免费观看高清完整版在线观看熊 | 色又黄又爽网站www久久| a美女胸又www黄视频久久| 精品嫩草影院久久| 欧美一二三四区在线| 欧美成人高清电影在线| 久久亚洲综合色一区二区三区 | 中文字幕中文字幕一区二区| 国内精品第一页| 亚洲综合一区二区精品导航| 亚洲精品国产一区二区精华液 | 91天堂素人约啪| 在线精品视频一区二区| 欧美三级视频在线播放| 欧美老年两性高潮| 91精品欧美一区二区三区综合在| 欧美一级日韩一级| 久久夜色精品国产噜噜av| 国产精品天天看| 亚洲精品视频自拍| 奇米影视在线99精品| 国产一区二区成人久久免费影院| 成人免费黄色在线| 一本大道久久a久久综合| 欧美日韩精品一区二区三区四区| 亚洲黄色免费网站| 青草av.久久免费一区| 国产成人精品一区二| 91同城在线观看| 欧美一卡二卡三卡四卡| 国产欧美综合在线观看第十页| 亚洲三级电影网站| 免费欧美在线视频| 不卡电影一区二区三区| 欧美美女网站色| 国产亚洲精品久| 亚洲午夜一区二区| 国产一区二区导航在线播放| 色综合 综合色| 日韩女优av电影| ...xxx性欧美| 久久99久久99| 色欧美日韩亚洲| 精品久久久久av影院| 亚洲精品一二三| 国产一区二区三区久久悠悠色av| 一本大道久久a久久精二百| 欧美一级国产精品| 亚洲三级在线免费| 国产美女视频91| 欧美日韩国产乱码电影| 欧美激情一区二区三区不卡 | 亚洲地区一二三色| 国产福利不卡视频| 欧美三级欧美一级| 国产精品久久久久aaaa| 免费成人美女在线观看.| 99久久精品费精品国产一区二区| 91精品国产综合久久久蜜臀图片 | 亚洲欧洲精品一区二区三区不卡| 日日噜噜夜夜狠狠视频欧美人| 成人黄色a**站在线观看| 日韩一区二区三区电影在线观看| 一区二区三区资源| 国产a精品视频| 日韩一区二区三区高清免费看看| 一区二区三区av电影| 波多野结衣精品在线| 26uuu久久天堂性欧美| 午夜免费久久看| 日本韩国精品一区二区在线观看| 久久久99久久精品欧美| 另类小说欧美激情| 欧美人xxxx| 亚洲午夜久久久久久久久久久| jvid福利写真一区二区三区| 久久久99久久| 国产伦精品一区二区三区视频青涩 | 国产麻豆一精品一av一免费| 日韩丝袜美女视频| 色菇凉天天综合网| 国产精品福利av| 懂色av中文字幕一区二区三区| 日韩视频在线一区二区| 亚洲国产精品一区二区久久恐怖片| av男人天堂一区| 欧美激情一区在线| 国产成人夜色高潮福利影视| 精品国产不卡一区二区三区| 免播放器亚洲一区| 欧美一区二区女人| 蜜桃久久久久久久| 日韩精品一区二区三区视频播放 | 久久久www免费人成精品| 狠狠网亚洲精品| 精品少妇一区二区三区 | 欧美调教femdomvk| 夜夜亚洲天天久久| 欧美亚洲另类激情小说| 亚洲永久免费av| 欧美日韩一区久久| 日韩av一区二区三区四区| 精品视频全国免费看| 亚洲sss视频在线视频| 欧美三级三级三级爽爽爽| 污片在线观看一区二区| 91精选在线观看| 黄页网站大全一区二区| 久久精品亚洲精品国产欧美 | 777久久久精品| 日本三级亚洲精品| 精品国产一二三| 国产经典欧美精品| 欧美国产日韩精品免费观看| 99精品久久久久久| 香蕉成人伊视频在线观看| 日韩精品资源二区在线| 国产精品一品二品| 国产精品成人免费精品自在线观看 | 国产一区久久久| 国产精品久久午夜夜伦鲁鲁| 91久久香蕉国产日韩欧美9色| 午夜欧美在线一二页| 日韩视频在线一区二区| 成人免费观看男女羞羞视频| 亚洲一区在线看| 丝瓜av网站精品一区二区| 日韩欧美一级特黄在线播放| 国产精品白丝jk白祙喷水网站| 国产精品国产三级国产aⅴ入口| 日本精品一区二区三区高清| 日本伊人精品一区二区三区观看方式| 精品国产乱码久久久久久夜甘婷婷| 国产69精品久久久久毛片| 亚洲免费观看高清完整版在线观看| 这里只有精品视频在线观看| 国产精品亚洲第一区在线暖暖韩国 | 国产清纯白嫩初高生在线观看91 | 综合欧美一区二区三区| 欧美日韩免费电影| 国产精品中文有码| 亚洲自拍另类综合| 久久嫩草精品久久久精品| 色综合一区二区| 美女视频网站久久| 亚洲欧美另类小说视频| 日韩视频免费直播| 99r精品视频| 麻豆成人91精品二区三区| 亚洲色图视频网| 精品国产免费人成在线观看| 色呦呦国产精品| 国产精品中文欧美| 日韩精品色哟哟| 亚洲私人黄色宅男| 精品久久久网站| 欧洲生活片亚洲生活在线观看| 国产一区在线看| 亚洲a一区二区| 亚洲天堂2014| 久久精品欧美一区二区三区麻豆| 欧美日韩免费高清一区色橹橹| 成人免费三级在线| 精品一区二区久久| 亚洲成人先锋电影| 亚洲男人的天堂av| 国产视频亚洲色图| 精品美女一区二区| 欧美日韩大陆在线| 色综合久久天天| 国产成人精品免费看| 蜜桃一区二区三区四区| 午夜久久电影网| 亚洲激情五月婷婷| 国产精品短视频| 国产欧美日韩一区二区三区在线观看| 欧美日本一区二区在线观看| 色天使色偷偷av一区二区 | 久久久久成人黄色影片| 欧美一二三四区在线| 欧美日韩精品福利| 欧美中文字幕久久| 一本大道久久a久久综合| www.亚洲免费av| 国产精品乡下勾搭老头1| 精品亚洲国内自在自线福利| 免费观看久久久4p| 日韩av网站免费在线| 天天操天天色综合| 亚洲chinese男男1069| 亚洲不卡av一区二区三区| 亚洲国产精品一区二区久久| 亚洲在线成人精品|