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

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

?? cpremoveimag.vhd

?? OFDM 的 VHDL 實現 分塊實現. 功能強大
?? VHD
字號:
-- ================================================================================
-- File: CPRemove.vhd
-- Version: v1.0
-- Author: olivercamel
-- Date: May.26.2006
-- Description:
-- This CP remove module locates at OFDM Receiver of my design and suppose to
-- remove the Cyclic Prefix (16 words length) which is added by transmitter. Since
-- we assume that both two clocks of transmitter and receiver is strictly
-- accordant so that we did not do anything for synchronization which is usually
-- completed by a PLL. In my Receiver of OFDM procject, datas is sent by
-- transmitter and directly received by CPRemove part. CPRemove is composed by a
-- large FIFO which is used to buffer received datas and RAM which is used to
-- discard CP. The output data length is 64 words long, as well as the following
-- FFT parts. Two CP Remove is needed for Real and Imag parts respectively.
-- ================================================================================

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

-- ================================================================================

entity CPRemoveImag is
	port
	(
		-- clock input
		clk: in std_logic;
		-- asynchroism clear input
		aclr: in std_logic;
		-- 10 bit width input and output data ports
		inputData: in std_logic_vector (9 downto 0);
		outputData: out std_logic_vector (9 downto 0);
		-- simple ALTERA Atlantic interface ports
		sink_val: in std_logic;
		source_val: out std_logic;
		source_sop: out std_logic;
		source_eop: out std_logic;
		source_ena: in std_logic
	);
end CPRemoveImag;

-- ================================================================================

architecture structure of CPRemoveImag is

-- --------------------------------------------------------------------------------

-- declarations

-- fifo declaration
-- 256 words * 10 bits
component fifo_CPRemoveImag
	PORT
	(
		aclr		: IN STD_LOGIC ;
		clock		: IN STD_LOGIC ;
		data		: IN STD_LOGIC_VECTOR (9 DOWNTO 0);
		rdreq		: IN STD_LOGIC ;
		wrreq		: IN STD_LOGIC ;
		q		: OUT STD_LOGIC_VECTOR (9 DOWNTO 0);
		usedw		: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)
	);
end component;
-- connection signals
signal outputFIFO: std_logic_vector (9 downto 0);
signal readEnaFIFO: std_logic;
signal usedwFIFO: std_logic_vector (7 downto 0);
signal usedwIntFIFO: natural range 0 to 255;
-- delay signal
signal readEnaFIFO_d: std_logic;

-- RAM declaration
-- 10 bits * 80 words
component ram_CPRemoveImag
	PORT
	(
		aclr		: IN STD_LOGIC  := '0';
		clock		: IN STD_LOGIC ;
		data		: IN STD_LOGIC_VECTOR (9 DOWNTO 0);
		rdaddress		: IN STD_LOGIC_VECTOR (6 DOWNTO 0);
		rden		: IN STD_LOGIC  := '1';
		wraddress		: IN STD_LOGIC_VECTOR (6 DOWNTO 0);
		wren		: IN STD_LOGIC  := '1';
		q		: OUT STD_LOGIC_VECTOR (9 DOWNTO 0)
	);
end component;
-- connection signals
signal outputRAM: std_logic_vector (9 downto 0);
signal writeEnaRAM: std_logic;
signal readEnaRAM: std_logic;
signal writeAddRAM: std_logic_vector (6 downto 0);
signal readAddRAM: std_logic_vector (6 downto 0);
signal writeAddIntRAM: natural range 0 to 79;
signal readAddIntRAM: natural range 0 to 79;

-- FSM state declaration
type FSM_state is
	(
		Reset, CountFIFO, ReadFIFO, ReadRAM
	);
-- state signal
signal state: FSM_state;

-- interval interface signals
signal interval_source_val: std_logic;
signal interval_source_sop: std_logic;
signal interval_source_eop: std_logic;

-- delayed interface signals
signal interval_source_val_d: std_logic;
signal interval_source_sop_d: std_logic;
signal interval_source_eop_d: std_logic;

-- --------------------------------------------------------------------------------

begin

-- --------------------------------------------------------------------------------

-- fifo connection
u1: fifo_CPRemoveImag port map
	(
		aclr => aclr, clock => clk,
		data => inputData, wrreq => sink_val,
		q => outputFIFO, rdreq => readEnaFIFO,
		usedw => usedwFIFO
	);
	
-- convert to integer
usedwIntFIFO <= to_integer(unsigned(usedwFIFO));

-- delay readEnaFIFO
process(clk,readEnaFIFO)
begin
	if rising_edge(clk) then
		readEnaFIFO_d <= readEnaFIFO;
	end if;
end process;

-- RAM connection
u2: ram_CPRemoveImag port map
	(
		aclr => aclr, clock => clk,
		data => outputFIFO, q => outputRAM,
		rdaddress => readAddRAM, rden => readEnaRAM,
		wraddress => writeAddRAM, wren => readEnaFIFO_d
	);

-- convert to std_logic_vector
readAddRAM <= std_logic_vector(to_unsigned(readAddIntRAM,7));
writeAddRAM <= std_logic_vector(to_unsigned(writeAddIntRAM,7));

-- FSM state transfer process
process(aclr,clk,usedwIntFIFO,writeAddIntRAM,readAddIntRAM)
begin
	if aclr = '1' then
		state <= reset;
	else
		if rising_edge(clk) then
			case state is
				when Reset =>
					state <= CountFIFO;
				when CountFIFO =>
					if usedwIntFIFO >= 80 then
						state <= ReadFIFO;
					end if;
				when ReadFIFO =>
					if writeAddIntRAM = 78 then -- shut down earlier
						state <= ReadRAM;
					end if;
				when ReadRAM =>
					if readAddIntRAM = 79 then
						state <= CountFIFO;
					end if;
			end case;
		end if;
	end if;
end process;

-- state functional controlling read FIFO/RAM enable
process(state,source_ena)
begin
	case state is
		when Reset =>
			readEnaFIFO <= '0';
			readEnaRAM <= '0';
		when CountFIFO =>
			readEnaFIFO <= '0';
			readEnaRAM <= '0';
		when ReadFIFO =>
			readEnaFIFO <= '1';
			readEnaRAM <= '0';
		when ReadRAM =>
			readEnaFIFO <= '0';
			if source_ena = '1' then
				readEnaRAM <= '1';
			else
				readEnaRAM <= '0';
			end if;
	end case;
end process;

-- reading from FIFO process
process(aclr,clk,readEnaFIFO_d)
begin
	if aclr = '1' then
		writeAddIntRAM <= 0;
	else
		if rising_edge(clk) then
			if readEnaFIFO_d = '1' then
				if writeAddIntRAM = 79 then
					writeAddIntRAM <= 0;
				else
					writeAddIntRAM <= writeAddIntRAM + 1;
				end if;
			else
				writeAddIntRAM <= 0;
			end if;
		end if;
	end if;
end process;

-- RAM reading process
process(aclr,clk,readEnaRAM)
begin
	if aclr = '1' then
		readAddIntRAM <= 16;
	else
		if rising_edge(clk) then
			if readEnaRAM = '1' then
				if readAddIntRAM = 79 then
					readAddIntRAM <= 16;
				else
					readAddIntRAM <= readAddIntRAM + 1;
				end if;
			else
				readAddIntRAM <= 16;
			end if;
		end if;
	end if;
end process;

-- generate interface signals
process(clk,readEnaRAM,readAddIntRAM)
begin
	if rising_edge(clk) then
		if readEnaRAM = '1' then
			interval_source_val <= '1';
			if readAddIntRAM = 16 then
				interval_source_sop <= '1';
				interval_source_eop <= '0';
			elsif readAddIntRAM = 79 then
				interval_source_sop <= '0';
				interval_source_eop <= '1';
			else
				interval_source_sop <= '0';
				interval_source_eop <= '0';
			end if;
		else
			interval_source_val <= '0';
			interval_source_sop <= '0';
			interval_source_eop <= '0';
		end if;
	end if;
end process;

-- delay
process(clk,interval_source_val,interval_source_sop,interval_source_eop)
begin
	if rising_edge(clk) then
		interval_source_val_d <= interval_source_val;
		interval_source_sop_d <= interval_source_sop;
		interval_source_eop_d <= interval_source_eop;
	end if;
end process;

-- synchronize output using falling edge
process(clk,outputRAM,interval_source_val_d,
		interval_source_sop_d,interval_source_eop_d)
begin
	if falling_edge(clk) then -- using falling edge
		outputData <= outputRAM;
		source_val <= interval_source_val_d;
		source_sop <= interval_source_sop_d;
		source_eop <= interval_source_eop_d;
	end if;
end process;

-- --------------------------------------------------------------------------------

end structure;

-- ================================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1区2区3区国产精品| 激情五月播播久久久精品| 美腿丝袜亚洲综合| fc2成人免费人成在线观看播放| 欧美日韩一区二区三区在线 | 久久精品国产精品青草| jvid福利写真一区二区三区| wwwwxxxxx欧美| 视频一区视频二区中文字幕| 色婷婷av一区二区三区大白胸| 精品久久久久久无| 性欧美疯狂xxxxbbbb| 日本道在线观看一区二区| 久久这里只有精品首页| 天天操天天干天天综合网| 色婷婷综合久久久中文一区二区| 久久精品亚洲国产奇米99| 蜜臀a∨国产成人精品| 欧美日韩午夜精品| 一区二区三区四区五区视频在线观看| 国产999精品久久久久久绿帽| 精品剧情在线观看| 琪琪久久久久日韩精品| 91精品国产免费| 亚洲bt欧美bt精品777| 欧美在线免费观看亚洲| 亚洲美女视频在线观看| 91视频.com| 一区二区三区精品久久久| 在线日韩国产精品| 亚洲一二三四在线| 欧美久久高跟鞋激| 日韩av成人高清| 日韩欧美亚洲另类制服综合在线| 日本成人在线不卡视频| 日韩一区二区三区视频在线 | 精品国产免费一区二区三区四区| 蜜桃av一区二区在线观看| 欧美一区午夜视频在线观看| 日韩av一区二区三区四区| 欧美mv日韩mv国产| 国内外成人在线视频| 国产视频在线观看一区二区三区 | 国产精品日韩成人| 91麻豆123| 日韩国产精品91| 2020国产精品| 91在线播放网址| 亚洲一级不卡视频| 日韩欧美国产电影| 粉嫩在线一区二区三区视频| 中文字幕亚洲欧美在线不卡| 欧美在线免费观看视频| 蜜桃av一区二区| 国产日产亚洲精品系列| 色婷婷一区二区| 免费观看一级特黄欧美大片| 久久理论电影网| 91搞黄在线观看| 精品无人码麻豆乱码1区2区| 欧美激情在线看| 欧美婷婷六月丁香综合色| 激情综合色播激情啊| 国产精品久久久久影视| 欧美美女一区二区在线观看| 国产成人免费视频一区| 一区二区三区产品免费精品久久75| 日韩一区二区三区av| 成人精品小蝌蚪| 免费xxxx性欧美18vr| 亚洲欧洲精品天堂一级| 91麻豆精品久久久久蜜臀 | 亚洲三级电影网站| 日韩三级在线观看| 色婷婷亚洲综合| 国内精品视频666| 亚洲午夜免费福利视频| 国产香蕉久久精品综合网| 欧美亚洲一区三区| 成人国产精品免费| 久久99精品国产麻豆不卡| 一区二区三区在线视频观看| 2欧美一区二区三区在线观看视频| 色综合咪咪久久| 精品无人区卡一卡二卡三乱码免费卡| 一区二区欧美视频| 国产精品欧美久久久久无广告 | 性欧美大战久久久久久久久| 中文字幕一区二区三区四区不卡 | 欧美日韩国产天堂| 成年人网站91| 国产伦理精品不卡| 精品综合免费视频观看| 亚洲第一在线综合网站| 一区二区三区四区高清精品免费观看| 日本一区二区三区四区| 欧美精品一区二区精品网| 欧美精选午夜久久久乱码6080| 日本大香伊一区二区三区| 粉嫩蜜臀av国产精品网站| 久久丁香综合五月国产三级网站| 亚洲大片免费看| 亚洲综合免费观看高清完整版在线 | 韩国精品主播一区二区在线观看 | 久久国产精品99久久久久久老狼| 亚洲一区免费视频| 亚洲人成精品久久久久久| 国产精品另类一区| 中文一区在线播放| 国产亚洲欧美色| 久久久av毛片精品| 久久一区二区三区四区| 久久精品网站免费观看| 亚洲国产成人一区二区三区| 国产亚洲福利社区一区| 国产精品久久久久影院色老大 | 欧美日韩高清在线| 欧美日韩小视频| 7777精品伊人久久久大香线蕉的| 欧美日韩夫妻久久| 欧美一区二区三区免费| 日韩精品在线一区| 精品美女在线播放| 国产女人aaa级久久久级 | 色狠狠一区二区| 色久优优欧美色久优优| 欧美午夜一区二区三区免费大片| 欧美日韩国产精品自在自线| 91精品国产综合久久精品性色| 欧美一区二区三区在线视频 | 国产+成+人+亚洲欧洲自线| 国产精品一区在线观看乱码 | 成人综合激情网| 97se亚洲国产综合在线| 91激情在线视频| 欧美一级精品大片| 精品国产91乱码一区二区三区| 中文字幕不卡三区| 亚洲一二三四区| 精品一区二区三区在线观看| 成人性色生活片| 在线观看国产日韩| 日韩午夜激情av| 国产精品欧美一区喷水| 亚洲成人中文在线| 国产精品69久久久久水密桃| 色8久久精品久久久久久蜜| 欧美老女人在线| 国产精品色眯眯| 日本亚洲欧美天堂免费| 丰满亚洲少妇av| 日韩一区二区电影| 国产精品久久夜| 日韩国产欧美三级| 一本大道久久a久久精二百| 欧美不卡123| 亚洲国产欧美在线人成| 国产成人精品免费视频网站| 欧美三级蜜桃2在线观看| 久久久亚洲精品一区二区三区| 夜色激情一区二区| 国产成人免费网站| 日韩一区二区电影在线| 亚洲一区二区三区四区在线观看| 黑人巨大精品欧美黑白配亚洲| 欧美手机在线视频| 欧美国产精品专区| 麻豆91精品91久久久的内涵| 色婷婷av一区二区| 国产女人水真多18毛片18精品视频 | 久久综合九色欧美综合狠狠| 亚洲精品久久嫩草网站秘色| 国产精品乡下勾搭老头1| 911精品国产一区二区在线| 亚洲人被黑人高潮完整版| 国产呦精品一区二区三区网站| 欧美日韩国产综合一区二区 | 免费在线观看一区| 色老汉一区二区三区| 国产精品污污网站在线观看| 激情深爱一区二区| 日韩欧美中文字幕一区| 亚洲国产日韩一级| 欧美三级在线看| 亚洲制服欧美中文字幕中文字幕| 91丨porny丨首页| 欧美极品aⅴ影院| 国产成人激情av| 久久久不卡网国产精品一区| 精品一区二区三区免费毛片爱| 日韩手机在线导航| 日韩国产欧美在线观看| 91精品欧美福利在线观看| 无码av中文一区二区三区桃花岛| 欧美色窝79yyyycom| 亚洲一区影音先锋| 欧美日韩国产在线观看| 天天操天天色综合| 日韩欧美国产一区二区三区 | 久久精品国产第一区二区三区|