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

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

?? gh_fifo_async_rrd_sr.vhd

?? VHDL Library for 8254 timer/counter core
?? VHD
字號:
---------------------------------------------------------------------
--	Filename:	gh_fifo_async_rrd_sr.vhd
--
--			
--	Description:
--		an Asynchronous FIFO, 
--		   using "Style #2" gray code address compare
--              
--	Copyright (c) 2006 by George Huber 
--		an OpenCores.org Project
--		free to use, but see documentation for conditions 								 
--
--	Revision	History:
--	Revision	Date      	Author   	Comment
--	--------	----------	---------	-----------
--	1.0     	12/26/06  	h lefevre	Initial revision
--	
--------------------------------------------------------

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
USE ieee.std_logic_arith.all;

entity gh_fifo_async_rrd_sr is
	GENERIC (add_width: INTEGER :=8; -- min value is 2 (4 memory locations)
	         data_width: INTEGER :=8 ); -- size of data bus
	port (					
		clk_WR : in STD_LOGIC; -- write clock
		clk_RD : in STD_LOGIC; -- read clock
		rst    : in STD_LOGIC; -- resets counters
		srst   : in STD_LOGIC:='0'; -- resets counters (sync with clk_WR)
		WR     : in STD_LOGIC; -- write control 
		RD     : in STD_LOGIC; -- read control
		D      : in STD_LOGIC_VECTOR (data_width-1 downto 0);
		Q      : out STD_LOGIC_VECTOR (data_width-1 downto 0);
		empty  : out STD_LOGIC; 
		full   : out STD_LOGIC);
end entity;

architecture a of gh_fifo_async_rrd_sr is

component gh_sram_1wp_2rp_sc is
	GENERIC (size_add: INTEGER :=8 ;
	         size_data: INTEGER :=8 );
	port (					
		A_clk  : in STD_LOGIC;
		B_clk  : in STD_LOGIC;
		WE     : in STD_LOGIC;
		A_add  : in STD_LOGIC_VECTOR(size_add-1 downto 0);
		B_add  : in STD_LOGIC_VECTOR(size_add-1 downto 0);
		D      : in STD_LOGIC_VECTOR (size_data-1 downto 0);
		A_Q    : out STD_LOGIC_VECTOR (size_data-1 downto 0);
		B_Q    : out STD_LOGIC_VECTOR (size_data-1 downto 0));
end component;

component gh_binary2gray IS
	GENERIC (size: INTEGER := 8);
	PORT(	
		B   : IN STD_LOGIC_VECTOR(size-1 DOWNTO 0);
		G   : out STD_LOGIC_VECTOR(size-1 DOWNTO 0)
		);
end component;

	signal iempty        : STD_LOGIC;
	signal diempty       : STD_LOGIC;
	signal ifull         : STD_LOGIC;
	signal add_WR_CE     : std_logic;
	signal add_WR        : std_logic_vector(add_width downto 0); -- add_width -1 bits are used to address MEM
	signal add_WR_GC     : std_logic_vector(add_width downto 0); -- add_width bits are used to compare
	signal iadd_WR_GC    : std_logic_vector(add_width downto 0);
	signal n_add_WR      : std_logic_vector(add_width downto 0); --   for empty, full flags
	signal add_WR_RS     : std_logic_vector(add_width downto 0); -- synced to read clk
	signal add_RD_CE     : std_logic;
	signal add_RD        : std_logic_vector(add_width downto 0);
	signal add_RD_GC     : std_logic_vector(add_width downto 0);
	signal iadd_RD_GC    : std_logic_vector(add_width downto 0);
	signal add_RD_GCwc   : std_logic_vector(add_width downto 0);
	signal iadd_RD_GCwc  : std_logic_vector(add_width downto 0);
	signal iiadd_RD_GCwc : std_logic_vector(add_width downto 0);
	signal n_add_RD      : std_logic_vector(add_width downto 0);
	signal add_RD_WS     : std_logic_vector(add_width downto 0); -- synced to write clk
	signal srst_w        : STD_LOGIC;
	signal isrst_w       : STD_LOGIC;
	signal srst_r        : STD_LOGIC;
	signal isrst_r       : STD_LOGIC;

begin

--------------------------------------------
------- memory -----------------------------
--------------------------------------------

U1 : gh_sram_1wp_2rp_sc
	generic map (
		size_add => add_width,
		size_data => data_width
		)
	port map(
		A_clk => clk_WR,
		B_clk => clk_RD,
		WE => add_WR_CE,
		D =>  D,
		A_add => add_WR(add_width-1 downto 0),
		B_add => add_RD(add_width-1 downto 0),
		B_Q =>  Q
		);

-----------------------------------------
----- Write address counter -------------
-----------------------------------------

	add_WR_CE <= '0' when (ifull = '1') else
	             '0' when (WR = '0') else
	             '1';

	n_add_WR <= add_WR + "01";

U2 : gh_binary2gray
	generic map (size => add_width+1)
	port map(
		B => n_add_WR,
		G => iadd_WR_GC
		);
	
process (clk_WR,rst)
begin 
	if (rst = '1') then
		add_WR <= (others => '0');
		add_RD_WS(add_width downto add_width-1) <= "11"; 
		add_RD_WS(add_width-2 downto 0) <= (others => '0');
		add_WR_GC <= (others => '0');
	elsif (rising_edge(clk_WR)) then
		add_RD_WS <= add_RD_GCwc;
		if (srst_w = '1') then
			add_WR <= (others => '0');
			add_WR_GC <= (others => '0');
		elsif (add_WR_CE = '1') then
			add_WR <= n_add_WR;
			add_WR_GC <= iadd_WR_GC;
		else
			add_WR <= add_WR;
			add_WR_GC <= add_WR_GC;
		end if;
	end if;
end process;
				 
	full <= ifull;

	ifull <= '0' when (iempty = '1') else -- just in case add_RD_WS is reset to all zero's
	         '0' when (add_RD_WS /= add_WR_GC) else ---- instend of "11 zero's" 
	         '1';
			 
-----------------------------------------
----- Read address counter --------------
-----------------------------------------


	add_RD_CE <= '0' when (iempty = '1') else
	             '0' when (RD = '0') else
	             '1';
				 
	n_add_RD <= add_RD + "01";

U3 : gh_binary2gray
	generic map (size => add_width+1)
	port map(
		B => n_add_RD,
		G => iadd_RD_GC -- to be used for empty flag
		);

	iiadd_RD_GCwc <= (not n_add_RD(add_width)) & n_add_RD(add_width-1 downto 0);
		
U4 : gh_binary2gray
	generic map (size => add_width+1)
	port map(
		B => iiadd_RD_GCwc,
		G => iadd_RD_GCwc -- to be used for full flag
		);
		
process (clk_RD,rst)
begin 
	if (rst = '1') then
		add_RD <= (others => '0');	
		add_WR_RS <= (others => '0');
		add_RD_GC <= (others => '0');
		add_RD_GCwc(add_width downto add_width-1) <= "11";
		add_RD_GCwc(add_width-2 downto 0) <= (others => '0');
		diempty <= '1';
	elsif (rising_edge(clk_RD)) then
		add_WR_RS <= add_WR_GC;
		diempty <= iempty;
		if (srst_r = '1') then
			add_RD <= (others => '0');
			add_RD_GC <= (others => '0');
			add_RD_GCwc(add_width downto add_width-1) <= "11";
			add_RD_GCwc(add_width-2 downto 0) <= (others => '0');
		elsif (add_RD_CE = '1') then
			add_RD <= n_add_RD;
			add_RD_GC <= iadd_RD_GC;
			add_RD_GCwc <= iadd_RD_GCwc;
		else
			add_RD <= add_RD; 
			add_RD_GC <= add_RD_GC;
			add_RD_GCwc <= add_RD_GCwc;
		end if;
	end if;
end process;

	empty <= diempty;
 
	iempty <= '1' when (add_WR_RS = add_RD_GC) else
	          '0';
 
----------------------------------
--- sync rest stuff --------------
--- srst is sync with clk_WR -----
--- srst_r is sync with clk_RD ---
----------------------------------

process (clk_WR,rst)
begin 
	if (rst = '1') then
		srst_w <= '0';	
		isrst_r <= '0';	
	elsif (rising_edge(clk_WR)) then
		isrst_r <= srst_r;
		if (srst = '1') then
			srst_w <= '1';
		elsif (isrst_r = '1') then
			srst_w <= '0';
		end if;
	end if;
end process;

process (clk_RD,rst)
begin 
	if (rst = '1') then
		srst_r <= '0';	
		isrst_w <= '0';	
	elsif (rising_edge(clk_RD)) then
		isrst_w <= srst_w;
		if (isrst_w = '1') then
			srst_r <= '1';
		else
			srst_r <= '0';
		end if;
	end if;
end process;

end architecture;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费精品视频| 国产精品色在线观看| 午夜影院久久久| 亚洲色图欧洲色图婷婷| 99久久精品免费看国产| 日韩码欧中文字| 色综合 综合色| 亚洲五月六月丁香激情| 69堂精品视频| 激情小说亚洲一区| 国产婷婷一区二区| 一本大道久久a久久综合| 亚洲午夜免费电影| 欧美一区二区三区的| 国产精品一区二区无线| 国产精品传媒入口麻豆| 欧美亚洲另类激情小说| 奇米精品一区二区三区四区| 欧美sm美女调教| 成人免费av资源| 亚洲一区二区三区国产| 欧美一区二视频| 国产精品 欧美精品| 综合在线观看色| 91精品啪在线观看国产60岁| 久久电影网电视剧免费观看| 国产精品美女久久久久久久久| 欧美日韩视频专区在线播放| 久久国产欧美日韩精品| 国产精品不卡在线| 日韩亚洲欧美高清| 91在线观看下载| 日本亚洲视频在线| 中国av一区二区三区| 欧美三级午夜理伦三级中视频| 国内不卡的二区三区中文字幕| 中文字幕成人网| 欧美一区二区三区四区久久| av一区二区久久| 老司机精品视频导航| 一区二区三区中文字幕精品精品| 精品国产污网站| 日韩一区在线播放| 日韩一级大片在线观看| 91视频免费看| 国产一区二区三区av电影| 亚洲综合无码一区二区| 国产欧美日韩另类视频免费观看| 欧美日韩精品一区二区三区| 国产69精品久久777的优势| 午夜国产精品影院在线观看| 国产精品久久久久三级| 久久夜色精品国产噜噜av| 欧美日韩日日摸| 97久久精品人人做人人爽 | 欧美系列一区二区| 高潮精品一区videoshd| 五月天激情综合| 亚洲免费毛片网站| 国产精品久久久久毛片软件| 久久综合五月天婷婷伊人| 6080午夜不卡| 欧美日精品一区视频| 色哟哟国产精品免费观看| 成人午夜激情影院| 国产精品亚洲专一区二区三区 | 亚洲男人的天堂av| 日本一区二区久久| 久久久久久99久久久精品网站| 91精品久久久久久久久99蜜臂| 美女一区二区在线观看| 日本午夜一本久久久综合| 日韩欧美在线不卡| 91看片淫黄大片一级在线观看| 日韩中文字幕av电影| 日韩免费观看2025年上映的电影 | 欧美一区二区在线播放| 中文字幕成人av| 久久综合九色欧美综合狠狠| 91天堂素人约啪| 国产福利不卡视频| 精品制服美女丁香| 日韩一区精品视频| 国产天堂亚洲国产碰碰| 91丨九色丨蝌蚪富婆spa| 中文字幕免费在线观看视频一区| 懂色av一区二区三区蜜臀| 日韩高清一区在线| 亚洲精品国产高清久久伦理二区| 蜜臀国产一区二区三区在线播放| 欧美日韩另类国产亚洲欧美一级| 91久久免费观看| 91视频精品在这里| 国产成人免费视频网站| 麻豆精品视频在线观看免费| 一区二区三区在线观看欧美| 国产精品美女久久久久久久网站| 欧美精品电影在线播放| 色8久久精品久久久久久蜜| 国产成人精品免费一区二区| 国产福利一区二区三区视频| 国产精品亚洲成人| 久久成人免费网| 久久不见久久见免费视频7| 日韩成人精品在线| 日韩精品一二三四| 免费高清在线一区| 国产另类ts人妖一区二区| 国产精品1区二区.| 成人美女视频在线看| 91色视频在线| 欧美体内she精高潮| 久久影院午夜论| 欧美极品美女视频| 韩国女主播成人在线| 亚洲图片欧美色图| 蜜桃精品视频在线观看| 欧美亚洲一区二区在线| 99久久国产综合精品麻豆| 久久精品久久久精品美女| 韩国v欧美v日本v亚洲v| 高清免费成人av| 国产拍欧美日韩视频二区| 色综合天天视频在线观看| 久久综合九色综合欧美98| 国产成都精品91一区二区三| 色综合激情久久| 久久综合久久综合久久综合| 亚洲黄色小视频| 国产精品一区二区在线看| 欧美日韩国产一二三| 中文字幕av资源一区| 免费人成网站在线观看欧美高清| 北条麻妃国产九九精品视频| 日韩美女天天操| 北条麻妃国产九九精品视频| 日韩一本二本av| 亚洲国产aⅴ天堂久久| 国产成人欧美日韩在线电影| 国产精品色婷婷| 日韩高清一区在线| 欧美日韩一区二区在线观看| 中文字幕在线一区二区三区| 国产成人av电影在线| 午夜影院在线观看欧美| 亚洲区小说区图片区qvod| 国产精品无圣光一区二区| 国产日韩亚洲欧美综合| 精品国产凹凸成av人导航| 精品日产卡一卡二卡麻豆| 日韩亚洲欧美中文三级| wwww国产精品欧美| 久久久久久久免费视频了| 久久免费电影网| 波多野结衣中文一区| 欧洲国产伦久久久久久久| 日韩一区二区三区在线视频| 国产专区欧美精品| 久久超级碰视频| 激情六月婷婷久久| 国产精品一卡二| 丁香亚洲综合激情啪啪综合| 成人免费福利片| 一本色道久久综合亚洲aⅴ蜜桃| 91丨九色porny丨蝌蚪| 欧美高清你懂得| 欧美一区二区在线免费观看| 欧美精品一区在线观看| 国产视频亚洲色图| 亚洲人成小说网站色在线| 视频一区二区国产| 国产精品一区一区三区| 色偷偷一区二区三区| 欧美一区二区三区啪啪| 国产网站一区二区三区| 亚洲卡通动漫在线| 蜜臀久久久99精品久久久久久| 国产精品88av| 欧美一区三区二区| 中文字幕在线不卡一区| 免费国产亚洲视频| 一本一本大道香蕉久在线精品 | 国产欧美精品一区二区三区四区| 国产精品女主播av| 蜜臀91精品一区二区三区| 99精品国产99久久久久久白柏 | 成人高清视频在线观看| 欧美一区二区私人影院日本| 中文字幕日本不卡| 国产乱码字幕精品高清av| 欧美精品123区| 亚洲尤物视频在线| 99精品热视频| 国产精品第四页| 亚洲成人午夜影院| 亚洲蜜臀av乱码久久精品| 国产日产亚洲精品系列| 国产精品蜜臀在线观看| 国产亚洲女人久久久久毛片| 欧美大片一区二区|