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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gh_fifo_async_rrd_sr_wf.vhd

?? VHDL Library for 8254 timer/counter core
?? VHD
字號(hào):
---------------------------------------------------------------------
--	Filename:	gh_fifo_async_rrd_sr_wf.vhd
--
--			
--	Description:
--		an Asynchronous FIFO, 
--		   using "Style #2" gray code address compare
--		   includes quarter, half, and three quarter full flags
--              
--	Copyright (c) 2007 by George Huber 
--		an OpenCores.org Project
--		free to use, but see documentation for conditions 								 
--
--	Revision	History:
--	Revision	Date      	Author   	Comment
--	--------	----------	---------	-----------
--	1.0     	01/13/07  	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_wf 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;
		qfull   : out STD_LOGIC;
		hfull   : out STD_LOGIC;
		qqqfull : out STD_LOGIC;
		full    : out STD_LOGIC);
end entity;

architecture a of gh_fifo_async_rrd_sr_wf 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;

component gh_gray2binary IS
	GENERIC (size: INTEGER := 8);
	PORT(	
		G   : IN STD_LOGIC_VECTOR(size-1 DOWNTO 0);	-- gray code in
		B   : out STD_LOGIC_VECTOR(size-1 DOWNTO 0) -- binary value out
		);
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;
	signal c_add_RD      : std_logic_vector(add_width downto 0);
	signal c_add_WR      : std_logic_vector(add_width downto 0);
	signal c_add         : std_logic_vector(add_width downto 0);

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';

U3 : gh_gray2binary
	generic map (size => add_width+1)
	port map(
		G => add_RD_WS,
		B => c_add_RD 
		);

U4 : gh_gray2binary
	generic map (size => add_width+1)
	port map(
		G => add_WR_GC,
		B => c_add_WR 
		); 
		
	c_add <= ((not c_add_WR(add_width)) & c_add_WR(add_width-1 downto 0)) - c_add_RD;
	
	qfull <= '0' when (iempty = '1') else
	         '0' when (c_add(add_width downto add_width-2) = "000") else
	         '1';
	
	hfull <= '0' when (iempty = '1') else
	         '0' when (c_add(add_width downto add_width-1) = "00") else
	         '1'; 
	
	qqqfull <= '0' when (iempty = '1') else
	           '0' when (c_add(add_width downto add_width-2) < "011") else
	           '1'; 
		
-----------------------------------------
----- Read address counter --------------
-----------------------------------------


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

U5 : 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);
		
U6 : 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;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看精品一区| eeuss影院一区二区三区| 国产午夜精品理论片a级大结局| av电影天堂一区二区在线观看| 日韩精品福利网| 亚洲视频1区2区| 欧美精品一区二区三区四区 | www.色精品| 久久精品国产亚洲a| 亚洲欧美电影一区二区| 久久综合999| 8v天堂国产在线一区二区| 91亚洲大成网污www| 激情丁香综合五月| 免费观看一级特黄欧美大片| 一区二区三区四区中文字幕| 国产欧美一区二区三区鸳鸯浴 | 一本色道**综合亚洲精品蜜桃冫 | 毛片av中文字幕一区二区| 亚洲视频在线观看一区| 国产婷婷色一区二区三区在线| 欧美一区二区精品在线| 欧美午夜片在线看| 91免费国产在线| www.亚洲精品| 丁香婷婷深情五月亚洲| 国产精品77777竹菊影视小说| 免费在线观看一区| 日韩激情中文字幕| 五月激情丁香一区二区三区| 亚洲综合激情小说| 一区二区三区在线影院| 亚洲欧美日本韩国| 亚洲欧洲成人精品av97| 国产精品青草综合久久久久99| 久久午夜羞羞影院免费观看| 精品少妇一区二区三区免费观看| 欧美精品 国产精品| 欧美精品在线观看播放| 欧美群妇大交群中文字幕| 日本高清不卡一区| 欧美午夜不卡视频| 欧美绝品在线观看成人午夜影视| 欧美日韩日日摸| 337p亚洲精品色噜噜| 欧美高清视频不卡网| 91精品国产综合久久小美女| 欧美一卡二卡在线| 日韩精品一区在线观看| 精品成人在线观看| 国产日韩欧美a| 亚洲欧洲精品一区二区精品久久久| 1区2区3区欧美| 一区二区免费在线播放| 亚洲成国产人片在线观看| 亚洲成av人片www| 美女视频黄免费的久久| 国内精品国产成人国产三级粉色 | 色婷婷精品大在线视频| 欧美亚洲丝袜传媒另类| 在线不卡免费欧美| 精品国产亚洲一区二区三区在线观看 | 波多野结衣精品在线| 色综合久久中文综合久久97| 欧美日韩一区高清| 日韩区在线观看| 国产欧美日韩另类一区| 亚洲乱码中文字幕| 日本不卡一区二区| 99久久精品免费看国产 | av亚洲产国偷v产偷v自拍| 色94色欧美sute亚洲13| 欧美日韩不卡视频| 久久免费午夜影院| 亚洲免费av观看| 免费人成黄页网站在线一区二区| 国产精品一区二区久久不卡| 一本大道久久精品懂色aⅴ| 3751色影院一区二区三区| 国产视频在线观看一区二区三区| 亚洲精品视频在线| 久久精品国产精品亚洲精品| 不卡在线观看av| 69堂亚洲精品首页| 国产精品美女久久久久久| 日韩精品免费专区| 成人污视频在线观看| 欧美日韩成人综合在线一区二区| 久久久三级国产网站| 亚洲综合色网站| 国产成人自拍高清视频在线免费播放| 日本韩国欧美在线| 久久精品综合网| 亚洲福利视频三区| 成人禁用看黄a在线| 91精品国产综合久久精品 | 一片黄亚洲嫩模| 国产成人免费9x9x人网站视频| 欧美日韩第一区日日骚| 亚洲欧洲一区二区三区| 黄色日韩网站视频| 欧美精品一二三四| 亚洲免费观看高清完整| 国产精品夜夜爽| 日韩一级精品视频在线观看| 依依成人综合视频| 成人av影视在线观看| 精品国产伦理网| 男人操女人的视频在线观看欧美| 一本色道久久综合亚洲91| 国产欧美一区二区三区在线老狼| 蜜桃av一区二区三区电影| 欧洲亚洲国产日韩| 亚洲欧美综合色| 国产91丝袜在线播放九色| 日韩欧美一区二区免费| 手机精品视频在线观看| 一本大道久久a久久精二百| 中文字幕在线一区二区三区| 91蜜桃网址入口| 婷婷久久综合九色综合绿巨人| 99国产精品久久久久久久久久久| 久久久久久免费毛片精品| 日本一区二区三区久久久久久久久不 | 欧美日韩精品欧美日韩精品一| 国产精品久久毛片a| 国产曰批免费观看久久久| 日韩一区二区视频在线观看| 天堂va蜜桃一区二区三区漫画版| 色噜噜狠狠色综合中国| 国产精品不卡一区二区三区| 成人午夜短视频| 欧美—级在线免费片| 欧美一级欧美三级在线观看| 一区二区三区不卡在线观看| 色综合久久中文综合久久97| 亚洲人成小说网站色在线| 91蜜桃婷婷狠狠久久综合9色| 亚洲人一二三区| 一本大道久久a久久综合| 一区二区三区在线观看视频| 色综合激情久久| 亚洲一区二区在线免费观看视频| 欧美综合亚洲图片综合区| 亚洲综合在线视频| 欧美理论片在线| 久久国产综合精品| 久久综合九色综合欧美98| 国产很黄免费观看久久| 国产精品久久免费看| 91黄色免费看| 天天影视色香欲综合网老头| 欧美一区二区三区电影| 国产制服丝袜一区| 中文字幕乱码久久午夜不卡 | 久久精品国产一区二区三区免费看| 日韩视频免费观看高清在线视频| 久88久久88久久久| 欧美国产禁国产网站cc| 色悠悠久久综合| 日韩精彩视频在线观看| 久久综合九色综合欧美亚洲| av电影天堂一区二区在线| 亚洲大尺度视频在线观看| 日韩一区二区精品葵司在线 | 欧美久久高跟鞋激| 国模套图日韩精品一区二区| 国产精品二三区| 欧美日韩一区二区三区高清 | 欧美亚洲国产一区在线观看网站| 日韩精品电影在线| 中文字幕电影一区| 欧美日韩一区小说| 国产乱国产乱300精品| 亚洲男人的天堂在线aⅴ视频| 51精品视频一区二区三区| 国产精品主播直播| 亚洲资源中文字幕| 精品国产乱码久久久久久图片 | 亚洲v精品v日韩v欧美v专区| 精品日韩成人av| 91亚洲午夜精品久久久久久| 免费久久精品视频| 亚洲天堂精品在线观看| 日韩欧美亚洲一区二区| 91香蕉视频污| 九九九精品视频| 一区二区三区在线观看网站| 青青草成人在线观看| 国产日韩精品久久久| 欧美精品久久久久久久多人混战| 国产精品18久久久久久久网站| 亚洲一区二区三区美女| 欧美激情一区二区三区四区| 欧美体内she精视频| 成人午夜激情视频| 久久成人久久爱| 亚洲高清不卡在线| 国产精品每日更新| 精品国产凹凸成av人导航|