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

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

?? cpu_engine.vhd

?? 用vhdl語用實現簡單的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 cpu_engine is	PORT(	-- WISHBONE interface			CLK_I   : in  std_logic;			DAT_I   : in  std_logic_vector( 7 downto 0);			DAT_O   : out std_logic_vector( 7 downto 0);			RST_I   : in  std_logic;			ACK_I   : in  std_logic;			ADR_O   : out std_logic_vector(15 downto 0);			CYC_O   : out std_logic;			STB_O   : out std_logic;			TGA_O   : out std_logic_vector( 0 downto 0);		-- '1' if I/O			WE_O    : out std_logic;			INT     : in  std_logic;			HALT    : out std_logic;			-- debug signals			--			Q_PC    : out std_logic_vector(15 downto 0);			Q_OPC   : out std_logic_vector( 7 downto 0);			Q_CAT   : out op_category;			Q_IMM   : out std_logic_vector(15 downto 0);			Q_CYC   : out cycle;			-- select signals			Q_SX    : out std_logic_vector(1 downto 0);			Q_SY    : out std_logic_vector(3 downto 0);			Q_OP    : out std_logic_vector(4 downto 0);			Q_SA    : out std_logic_vector(4 downto 0);			Q_SMQ   : out std_logic;			-- write enable/select signal			Q_WE_RR : out std_logic;			Q_WE_LL : out std_logic;			Q_WE_SP : out SP_OP;			Q_RR    : out std_logic_vector(15 downto 0);			Q_LL    : out std_logic_vector(15 downto 0);			Q_SP    : out std_logic_vector(15 downto 0)		);end cpu_engine;architecture Behavioral of cpu_engine is	-- Unfortunately, the on-chip memory needs a clock to read data.	-- Therefore we cannot make it wishbone compliant without a speed penalty.	-- We avoid this problem by making the on-chip memory part of the CPU.	-- However, as a consequence, you cannot DMA to the on-chip memory.	--	-- The on-chip memory is 8K, so that you can run a test SoC without external	-- memory. For bigger applications, you should use external ROM and RAM and	-- remove the internal memory entirely (setting EXTERN accordingly).	--	COMPONENT memory	PORT(	CLK_I : IN  std_logic;			T2    : IN  std_logic;			CE    : IN  std_logic;			PC    : IN  std_logic_vector(15 downto 0);			ADR   : IN  std_logic_vector(15 downto 0);			WR    : IN  std_logic;			WDAT  : IN  std_logic_vector(7 downto 0);			OPC   : OUT std_logic_vector(7 downto 0);			RDAT  : OUT std_logic_vector(7 downto 0)		);	END COMPONENT;	COMPONENT opcode_fetch	PORT(	CLK_I  : IN  std_logic;			T2     : IN  std_logic;			CLR    : IN  std_logic;			CE     : IN  std_logic;			PC_OP  : IN  std_logic_vector(2 downto 0);			JDATA  : IN  std_logic_vector(15 downto 0);			RR     : IN  std_logic_vector(15 downto 0);			RDATA  : IN  std_logic_vector(7 downto 0);			PC     : OUT std_logic_vector(15 downto 0)		);	END COMPONENT;	COMPONENT opcode_decoder	PORT(	CLK_I  : IN  std_logic;			T2     : IN  std_logic;			CLR    : IN  std_logic;			CE     : IN  std_logic;			OPCODE : in std_logic_vector(7 downto 0);			OP_CYC : in cycle;			INT    : in std_logic;			RRZ    : in std_logic;			OP_CAT : out op_category;			-- select signals			D_SX    : out std_logic_vector(1 downto 0);		-- ALU select X			D_SY    : out std_logic_vector(3 downto 0);		-- ALU select Y			D_OP    : out std_logic_vector(4 downto 0);		-- ALU operation			D_SA    : out std_logic_vector(4 downto 0);		-- select address			D_SMQ   : out std_logic;			-- write enable/select signal			D_WE_RR  : out std_logic;			D_WE_LL  : out std_logic;			D_WE_SP  : out SP_OP;			D_RD_O   : out std_logic;			D_WE_O   : out std_logic;			D_LOCK   : out std_logic;			-- input/output			D_IO     : out std_logic;			PC_OP  : out std_logic_vector(2 downto 0);			LAST_M : out std_logic;			HLT    : out std_logic		);	END COMPONENT;	COMPONENT data_core	PORT(	CLK_I : in  std_logic;			T2    : in  std_logic;			CLR   : in  std_logic;			CE    : in  std_logic;			-- select signals			SX    : in  std_logic_vector( 1 downto 0);			SY    : in  std_logic_vector( 3 downto 0);			OP    : in  std_logic_vector( 4 downto 0);		-- alu op			PC    : in  std_logic_vector(15 downto 0);		-- PC			QU    : in  std_logic_vector( 3 downto 0);		-- quick operand			SA    : in  std_logic_vector(4 downto 0);			-- select address			SMQ   : in  std_logic;							-- select MQ (H/L)			-- write enable/select signal			WE_RR  : in  std_logic;			WE_LL  : in  std_logic;			WE_SP  : in  SP_OP;			IMM : in  std_logic_vector(15 downto 0);		-- immediate data			RDAT : in  std_logic_vector( 7 downto 0);		-- data from memory/IO			ADR   : out std_logic_vector(15 downto 0);		-- memory/IO address			MQ    : out std_logic_vector( 7 downto 0);		-- data to memory/IO			Q_RR  : out std_logic_vector(15 downto 0);			Q_LL  : out std_logic_vector(15 downto 0);			Q_SP  : out std_logic_vector(15 downto 0)		);	END COMPONENT;	-- global signals	signal CE      : std_logic;	signal T2      : std_logic;	-- memory signals	signal	WDAT     : std_logic_vector(7 downto 0);	signal	RDAT     : std_logic_vector(7 downto 0);	signal	M_PC     : std_logic_vector(15 downto 0);	signal	M_OPC    : std_logic_vector(7 downto 0);	-- decoder signals	--	signal	D_CAT    : op_category;	signal	D_OPC    : std_logic_vector(7 downto 0);	signal	D_CYC    : cycle;          	signal	D_PC     : std_logic_vector(15 downto 0);	-- debug signal	signal	D_PC_OP  : std_logic_vector( 2 downto 0);	signal	D_LAST_M : std_logic;	signal	D_IO     : std_logic;	-- select signals	signal	D_SX    : std_logic_vector(1 downto 0);	signal	D_SY    : std_logic_vector(3 downto 0);	signal	D_OP    : std_logic_vector(4 downto 0);	signal	D_SA    : std_logic_vector(4 downto 0);	signal	D_SMQ   : std_logic;	-- write enable/select signals	signal	D_WE_RR  : std_logic;	signal	D_WE_LL  : std_logic;	signal	D_WE_SP  : SP_OP;	signal	D_RD_O   : std_logic;	signal	D_WE_O   : std_logic;	signal	D_LOCK   : std_logic;	-- first cycle	signal	LM_WE    : std_logic;	-- core signals	--	signal	C_IMM  : std_logic_vector(15 downto 0);	signal	ADR    : std_logic_vector(15 downto 0);	signal	C_CYC    : cycle;								-- debug signal	signal	C_PC     : std_logic_vector(15 downto 0);		-- debug signal	signal	C_OPC    : std_logic_vector( 7 downto 0);		-- debug signal	signal	C_RR     : std_logic_vector(15 downto 0);												 	signal	RRZ      : std_logic;	signal	OC_JD    : std_logic_vector(15 downto 0);	-- select signals	signal	C_SX     : std_logic_vector(1 downto 0);	signal	C_SY     : std_logic_vector(3 downto 0);	signal	C_OP     : std_logic_vector(4 downto 0);	signal	C_SA     : std_logic_vector(4 downto 0);	signal	C_SMQ    : std_logic;	signal	C_WE_RR  : std_logic;	signal	C_WE_LL  : std_logic;	signal	C_WE_SP  : SP_OP;	signal XM_OPC    : std_logic_vector(7 downto 0);	signal LM_OPC    : std_logic_vector(7 downto 0);	signal LM_RDAT   : std_logic_vector(7 downto 0);	signal XM_RDAT   : std_logic_vector(7 downto 0);	signal	C_IO     : std_logic;	signal	C_RD_O   : std_logic;	signal	C_WE_O   : std_logic;	-- signals to remember, whether the previous read cycle	-- addressed internal memory or external memory	--	signal OPCS      : std_logic;	-- '1' if opcode from external memory	signal RDATS     : std_logic;	-- '1' if data   from external memory	signal EXTERN    : std_logic;	-- '1' if opcode or data from external memorybegin	memo: memory	PORT MAP(	CLK_I => CLK_I,				T2    => T2,				CE    => CE,				-- read in T1				PC    => M_PC,				OPC   => LM_OPC,				-- read or written in T2				ADR   => ADR,				WR    => LM_WE,				WDAT  => WDAT,				RDAT  => LM_RDAT			);	ocf: opcode_fetch	 PORT MAP(	CLK_I    => CLK_I,				T2       => T2,				CLR      => RST_I,				CE       => CE,				PC_OP    => D_PC_OP,				JDATA    => OC_JD,				RR       => C_RR,				RDATA    => RDAT,				PC       => M_PC			);	opdec: opcode_decoder	PORT MAP(	CLK_I    => CLK_I,				T2       => T2,				CLR      => RST_I,				CE       => CE,				OPCODE  => D_OPC,				OP_CYC  => D_CYC,				INT     => INT,				RRZ     => RRZ,				OP_CAT  => D_CAT,				-- select signals				D_SX    => D_SX,				D_SY    => D_SY,				D_OP    => D_OP,				D_SA    => D_SA,				D_SMQ   => D_SMQ,				-- write enable/select signal				D_WE_RR => D_WE_RR,				D_WE_LL => D_WE_LL,				D_WE_SP => D_WE_SP,				D_RD_O  => D_RD_O,				D_WE_O  => D_WE_O,				D_LOCK  => D_LOCK,				D_IO    => D_IO,				PC_OP   => D_PC_OP,				LAST_M  => D_LAST_M,				HLT     => HALT	);	dcore: data_core	PORT MAP(	CLK_I  => CLK_I,				T2     => T2,				CLR    => RST_I,				CE     => CE,				-- select signals				SX     => C_SX,				SY     => C_SY,				OP     => C_OP,				PC     => C_PC,				QU     => C_OPC(3 downto 0),				SA     => C_SA,				SMQ    => C_SMQ,				-- write enable/select signal				WE_RR  => C_WE_RR,				WE_LL  => C_WE_LL,				WE_SP  => C_WE_SP,				IMM    => C_IMM,				RDAT   => RDAT,				ADR    => ADR,				MQ     => WDAT,				Q_RR   => C_RR,				Q_LL   => Q_LL,				Q_SP   => Q_SP			);	CE       <= ACK_I or not EXTERN;	TGA_O(0) <= T2 and C_IO;	WE_O     <= T2 and C_WE_O;	STB_O    <= EXTERN;	CYC_O    <= EXTERN;	Q_RR   <= C_RR;	RRZ    <= '1' when (C_RR = X"0000") else '0';	OC_JD  <= M_OPC & C_IMM(7 downto 0);	Q_PC   <= C_PC;	Q_OPC  <= C_OPC;	Q_CYC  <= C_CYC;	Q_IMM  <= C_IMM;	-- select signals	Q_SX    <= C_SX;	Q_SY    <= C_SY;	Q_OP    <= C_OP;	Q_SA    <= C_SA;	Q_SMQ   <= C_SMQ;	-- write enable/select signal (debug)	Q_WE_RR <= C_WE_RR;	Q_WE_LL <= C_WE_LL;	Q_WE_SP <= C_WE_SP;	DAT_O   <= WDAT;	process(CLK_I)	begin		if (rising_edge(CLK_I)) then			if (RST_I = '1') then	T2 <= '0';			elsif (CE = '1') then	T2 <= not T2;			end if;		end if;	end process;	process(T2, M_PC, ADR, C_IO, C_RD_O, C_WE_O)	begin		if (T2 = '0') then									-- opcode fetch			EXTERN <= M_PC(15) or M_PC(14) or M_PC(13);		-- 8Kx8  internal memory-- A		EXTERN <= M_PC(15) or M_PC(14) or M_PC(13) or	-- 512x8 internal memory-- A				  M_PC(12) or M_PC(11) or M_PC(10) or M_PC(9)-- B		EXTERN <= '1';									-- no    internal memory		else												-- data or I/O			EXTERN <= (ADR(15) or ADR(14) or ADR(13) or		-- 8Kx8  internal memory-- A		EXTERN <= (ADR(15) or ADR(14) or ADR(13) or		-- 512x8  internal memory-- A				   ADR(12) or ADR(11) or ADR(10) or ADR(9) or-- B		EXTERN <= ('1' or								-- no    internal memory					  C_IO) and (C_RD_O or C_WE_O);		end if;	end process;	-- remember whether access is to internal or to external (incl I/O) memory.	-- clock read data to XM_OPCODE in T1 or to XM_RDAT in T2	--	process(CLK_I)	begin		if (rising_edge(CLK_I)) then			if (CE = '1') then				if (T2 = '0') then					OPCS   <= EXTERN;					XM_OPC <= DAT_I;				else					RDATS   <= EXTERN;					XM_RDAT <= DAT_I;				end if;			end if;		end if;	end process;	M_OPC <= LM_OPC  when (OPCS = '0')  else XM_OPC;	ADR_O <= M_PC    when (T2 = '0')    else ADR;	RDAT  <= LM_RDAT when (RDATS = '0') else XM_RDAT;	process(CLK_I, RST_I)	-- nuovo (thanks to Riccardo Cerulli-Irelli)	begin		if (RST_I = '1') then			C_PC    <= X"0000";			C_OPC   <= X"01";			C_CYC   <= M1;			C_SX    <= "00";			C_SY    <= "0000";			C_OP    <= "00000";			C_SA    <= "00000";			C_SMQ   <= '0';			C_WE_RR <= '0';			C_WE_LL <= '0';			C_WE_SP <= SP_NOP;			C_IO    <= '0';			C_RD_O  <= '0';			C_WE_O  <= '0';			LM_WE   <= '0';		elsif ((rising_edge(CLK_I) and T2 = '1') and CE = '1' ) then			C_CYC   <= D_CYC;			Q_CAT   <= D_CAT;			C_PC    <= D_PC;			C_OPC   <= D_OPC;			C_SX    <= D_SX;			C_SY    <= D_SY;			C_OP    <= D_OP;			C_SA    <= D_SA;			C_SMQ   <= D_SMQ;			C_WE_RR <= D_WE_RR;			C_WE_LL <= D_WE_LL;			C_WE_SP <= D_WE_SP;			C_IO    <= D_IO;			C_RD_O  <= D_RD_O;			C_WE_O  <= D_WE_O;			LM_WE   <= D_WE_O and not D_IO;		end if;	end process;	process(CLK_I, RST_I)	-- nuovo (thanks to Riccardo Cerulli-Irelli)	begin		if (RST_I = '1') then			D_PC    <= X"0000";			D_OPC   <= X"01";			D_CYC   <= M1;			C_IMM   <= X"FFFF";		elsif ((rising_edge(CLK_I) and T2 = '1') and CE = '1' ) then			if (D_LAST_M = '1') then	-- D goes to M1				-- signals valid for entire opcode...     PORTATO FUORI				D_OPC <= M_OPC;				D_PC  <= M_PC;				D_CYC <= M1;			else				case D_CYC is					when M1 =>	D_CYC <= M2;	-- C goes to M1								C_IMM <= X"00" & M_OPC;					when M2 =>	D_CYC <= M3;								C_IMM(15 downto 8) <= M_OPC;					when M3 =>	D_CYC <= M4;					when M4 =>	D_CYC <= M5;					when M5 =>	D_CYC <= M1;				end case;			end if;		end if;	end process;end Behavioral;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美福利电影网| 亚洲777理论| 日韩视频免费观看高清完整版在线观看| 国产成人一级电影| 麻豆久久久久久| 久久激情五月激情| 久久超碰97中文字幕| 老司机精品视频在线| 麻豆免费精品视频| 国产精品一色哟哟哟| 丁香激情综合国产| 99精品欧美一区二区蜜桃免费| 91免费看片在线观看| 91黄色在线观看| 欧美影片第一页| 在线不卡一区二区| 亚洲精品在线网站| 亚洲三级电影网站| 亚洲综合一区二区| 日本欧美一区二区三区乱码| 国产一区二区三区四区五区美女 | 国产性做久久久久久| 久久久国产精品午夜一区ai换脸| 久久久久99精品国产片| 国产精品嫩草影院com| 亚洲男同性恋视频| 日日摸夜夜添夜夜添精品视频 | 国产精品一区二区久激情瑜伽| 国产剧情一区二区三区| 99久久99久久久精品齐齐| 欧美日韩一卡二卡| 久久久国际精品| 亚洲一区精品在线| 国产一区二区久久| 91污片在线观看| 日韩一级大片在线| 中文字幕亚洲视频| 午夜国产不卡在线观看视频| 国产精品一卡二| 欧美亚洲愉拍一区二区| 国产日韩在线不卡| 天天影视色香欲综合网老头| 成人丝袜视频网| 欧美一区二区成人| 亚洲欧美区自拍先锋| 另类欧美日韩国产在线| 欧洲精品中文字幕| 欧美韩日一区二区三区四区| 麻豆成人久久精品二区三区小说| av在线不卡免费看| 久久嫩草精品久久久精品一| 亚洲综合在线电影| 不卡av电影在线播放| 欧美电影免费观看高清完整版在线 | 久久久午夜精品理论片中文字幕| 一区二区三区在线免费视频| 顶级嫩模精品视频在线看| 日韩亚洲欧美高清| 亚洲.国产.中文慕字在线| av福利精品导航| 国产日韩欧美电影| 国产露脸91国语对白| 91精品国产91久久久久久一区二区| 亚洲摸摸操操av| 波多野结衣的一区二区三区| 国产肉丝袜一区二区| 国产一区91精品张津瑜| 日韩一级大片在线观看| 热久久免费视频| 欧美久久一二区| 亚洲成人先锋电影| 欧美三级在线视频| 亚洲va国产va欧美va观看| 91黄色免费版| 亚洲一区二区三区在线看| 91毛片在线观看| 亚洲欧美激情一区二区| 91免费看视频| 亚洲一区二区影院| 欧美肥妇bbw| 免费精品视频最新在线| 日韩午夜av一区| 国内精品视频666| 国产日韩三级在线| 不卡视频一二三| 一区二区三区在线不卡| 欧美日韩一区二区三区在线| 青青青伊人色综合久久| 日韩欧美二区三区| 国产精品一区二区三区网站| 国产精品美女www爽爽爽| 一本久道中文字幕精品亚洲嫩| 亚洲精品免费电影| 精品久久久久久久一区二区蜜臀| 亚洲欧美日韩精品久久久久| 国产一区二区三区精品视频| 制服丝袜成人动漫| 亚洲一区二区在线免费观看视频| 91黄色在线观看| 精品国产伦一区二区三区免费| 国产欧美一区二区精品性色超碰| 成人在线一区二区三区| 亚洲男同1069视频| 3d动漫精品啪啪| 国产成人精品www牛牛影视| 亚洲精品视频一区二区| 日韩一区二区三区免费看| 国产精品2024| 亚洲电影中文字幕在线观看| 亚洲精品一区二区在线观看| 91香蕉视频黄| 国内精品视频666| 免费观看日韩电影| 国产1区2区3区精品美女| 久久久综合精品| 在线观看av不卡| 久久99国产精品免费| 亚洲激情图片小说视频| 日韩你懂的电影在线观看| www.av精品| 韩国成人在线视频| 午夜精品国产更新| 国产精品久久久久久久久果冻传媒| 884aa四虎影成人精品一区| 成人性生交大片| 捆绑调教美女网站视频一区| 亚洲欧美电影院| 国产亚洲欧洲997久久综合| 91精品国产丝袜白色高跟鞋| 一本色道久久综合亚洲aⅴ蜜桃| 久久精品国产精品青草| 亚洲mv在线观看| 亚洲摸摸操操av| 国产精品系列在线| 久久久精品黄色| 日韩一区二区在线观看视频| 91电影在线观看| 不卡的看片网站| 国产精品资源站在线| 老司机免费视频一区二区| 日韩电影在线观看网站| 亚洲成精国产精品女| 亚洲精品乱码久久久久久| 国产精品少妇自拍| 国产精品私房写真福利视频| 欧美精品一区二区精品网| 91精品在线观看入口| 欧美高清hd18日本| 欧美精品视频www在线观看 | 国产成人亚洲综合a∨婷婷| 另类专区欧美蜜桃臀第一页| 日本视频一区二区| 秋霞午夜鲁丝一区二区老狼| 丝袜诱惑制服诱惑色一区在线观看 | 国产婷婷色一区二区三区四区| 欧美伦理电影网| 欧美欧美欧美欧美| 欧美男人的天堂一二区| 欧美日韩电影在线| 欧美丰满一区二区免费视频| 7777精品伊人久久久大香线蕉| 在线播放中文字幕一区| 精品日韩在线观看| 精品欧美一区二区在线观看| 久久综合精品国产一区二区三区| 久久综合999| 1000部国产精品成人观看| 亚洲黄色小视频| 婷婷激情综合网| 国内久久婷婷综合| 高清在线不卡av| 色老汉av一区二区三区| 欧美另类久久久品| 久久美女艺术照精彩视频福利播放| 国产亚洲精品7777| 亚洲乱码日产精品bd| 奇米精品一区二区三区在线观看| 精品亚洲成a人| 色先锋aa成人| 日韩欧美在线综合网| 国产精品电影一区二区| 亚洲综合免费观看高清完整版| 男男gaygay亚洲| 成人免费高清在线| 777午夜精品免费视频| 久久免费视频色| 夜夜操天天操亚洲| 紧缚奴在线一区二区三区| 99久久精品免费观看| 欧美成人乱码一区二区三区| 国产精品―色哟哟| 蜜桃av噜噜一区| 91免费小视频| 久久九九影视网| 日韩精品亚洲一区二区三区免费| 国产精品12区| 日韩一级欧美一级| 一区二区高清免费观看影视大全| 久久er精品视频| 欧美精品在线观看播放|