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

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

?? ofdm_kernel_tx.vhd

?? OFDM的fpga實現
?? VHD
字號:
-- ================================================================================
-- (c) 2007 Altera Corporation. All rights reserved.
-- These design examples may only be used within Altera Corporation devices and remain 
-- the property of Altera. They are being provided on "as-is" basis and as an accommodation; 
-- therefore, all warranties, representations, or guarantees of any kind (whether express, 
-- implied, or statutory) including, without limitation, warranties of merchantability, non-infringement, 
-- or fitness for a particular purpose, are specifically disclaimed. Altera expressly does not recommend, 
-- suggest, or require that these examples be used in combination with any other product not provided 
-- by Altera.
-- ================================================================================
-- 
-- Filename    : ofdm_kernel_Tx.vhd
--
-- Description : Performs IFFT and addition of Cyclic Prefix to an OFDM symbol.
--               Support for run time change of FFT sizes of 16, 32, 64, 128,
--               256, 512, 1024 and 2048.  Support for run time change of
--               Cyclic Prefix sizes of arbitrary value.
--
--               Purpose to be used in Base Station downlink transmission (Tx)
--               for OFDM systems.
--
--               Input/Output Interfaces:
--               Avalon Streaming Interface 
--
-- ================================================================================

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
use std.textio.all;

entity ofdm_kernel_Tx is
  generic
    (
      DFFTOUTWIDTH : natural := 31;
      DFFTINWIDTH  : natural := 16;
      DOUTWIDTH    : natural := 32;
      MWIDTH       : natural := 64;
      MADDR_WIDTH  : natural := 12;
      CPWIDTH      : natural := 10;
      MDEPTH       : natural := 4096;
      NWIDTH       : natural := 12
      );

  port
    (
      clk_f   : in std_logic;
      clk_s   : in std_logic;
      rst_f_n : in std_logic;
      rst_s_n : in std_logic;

      -- Control 
      L : in std_logic_vector (CPWIDTH - 1 downto 0);

      Lout : out std_logic_vector (CPWIDTH - 1 downto 0);

      N    : in  std_logic_vector (NWIDTH - 1 downto 0);
      Nout : out std_logic_vector(NWIDTH -1 downto 0);
      inv  : in  std_logic;             -- '1' for IFFT

      -- Avalon Streaming Data Sink Input Interface
      din_valid : in  std_logic;
      din_real  : in  std_logic_vector (DFFTINWIDTH - 1 downto 0);
      din_imag  : in  std_logic_vector (DFFTINWIDTH - 1 downto 0);
      din_sop   : in  std_logic;
      din_eop   : in  std_logic;
      din_error : in  std_logic_vector(1 downto 0);
      din_ready : out std_logic;

      -- Avalon Streaming Source Interface

      dout_ready : in std_logic;

      dout_valid : out std_logic;
      dout_sop   : out std_logic;
      dout_eop   : out std_logic;
      dout_real  : out std_logic_vector (DOUTWIDTH - 1 downto 0);
      dout_imag  : out std_logic_vector (DOUTWIDTH - 1 downto 0)

      );
end ofdm_kernel_Tx;

architecture rtl of ofdm_kernel_Tx is

  -----------------------------------------------------------------------------
  -- COMPONENT DECLARATIONS
  -----------------------------------------------------------------------------
  component fifobuff is
    generic (
      DWIDTH : natural);
    port
      (
        clock : in  std_logic;
        data  : in  std_logic_vector (DWIDTH - 1 downto 0);
        rdreq : in  std_logic;
        wrreq : in  std_logic;
        q     : out std_logic_vector (DWIDTH - 1 downto 0)
        );
  end component fifobuff;

  component fft is
    port (
      clk          : in  std_logic;
      reset_n      : in  std_logic;
      fftpts_in    : in  std_logic_vector (NWIDTH - 1 downto 0);
      inverse      : in  std_logic;
      sink_valid   : in  std_logic;
      sink_sop     : in  std_logic;
      sink_eop     : in  std_logic;
      sink_real    : in  std_logic_vector (DFFTINWIDTH - 1 downto 0);
      sink_imag    : in  std_logic_vector (DFFTINWIDTH - 1 downto 0);
      source_ready : in  std_logic;
      sink_ready   : out std_logic;
      sink_error   : in  std_logic_vector(1 downto 0);
      source_error : out std_logic_vector(1 downto 0);
      source_sop   : out std_logic;
      source_eop   : out std_logic;
      source_valid : out std_logic;
      fftpts_out   : out std_logic_vector(NWIDTH -1 downto 0);
      source_real  : out std_logic_vector (DFFTOUTWIDTH - 1 downto 0);
      source_imag  : out std_logic_vector (DFFTOUTWIDTH - 1 downto 0)
      ); 
  end component fft;


  component add_cyclic_prefix
    generic
      (
        DFFTOUTWIDTH : natural := 31;
        DOUTWIDTH    : natural := 32;
        NWIDTH       : natural := 12;
        MWIDTH       : natural := 64;
        MADDR_WIDTH  : natural := 12;
        MDEPTH       : natural := 4096;
        CPWIDTH      : natural := 10
        );

    port
      (
        clk_in    : in std_logic;
        clk_out   : in std_logic;
        rst_in_n  : in std_logic;
        rst_out_n : in std_logic;

        -- Control 
        L    : in  std_logic_vector (CPWIDTH - 1 downto 0);
        N    : in  std_logic_vector(NWIDTH - 1 downto 0);
        Nout : out std_logic_vector(NWIDTH - 1 downto 0);
        Lout : out std_logic_vector (CPWIDTH - 1 downto 0);

        -- Avalon Streaming Input Interface
        in_real : in std_logic_vector (DFFTOUTWIDTH - 1 downto 0);
        in_imag : in std_logic_vector (DFFTOUTWIDTH - 1 downto 0);

        in_valid : in  std_logic;
        in_sop   : in  std_logic;
        in_eop   : in  std_logic;
        in_ready : out std_logic;

        out_ready : in std_logic;

        out_valid : out std_logic;
        out_sop   : out std_logic;
        out_eop   : out std_logic;
        out_real  : out std_logic_vector (DOUTWIDTH - 1 downto 0);
        out_imag  : out std_logic_vector (DOUTWIDTH - 1 downto 0);

        -- Interface with memory
        mem_dout : in std_logic_vector (MWIDTH - 1 downto 0);

        mem_din    : out    std_logic_vector (MWIDTH - 1 downto 0);
        mem_wren   : out    std_logic := '1';
        mem_wraddr : buffer std_logic_vector (MADDR_WIDTH - 1 downto 0);
        mem_rdaddr : buffer std_logic_vector (MADDR_WIDTH - 1 downto 0)
        );
  end component;

  component cp_mem
    generic
      (
        MWIDTH      : natural := 64;
        MDEPTH      : natural := 4096;
        MADDR_WIDTH : natural := 12
        );
    port
      (
        data      : in  std_logic_vector (MWIDTH - 1 downto 0);
        wren      : in  std_logic := '1';
        wraddress : in  std_logic_vector (MADDR_WIDTH - 1 downto 0);
        rdaddress : in  std_logic_vector (MADDR_WIDTH - 1 downto 0);
        wrclock   : in  std_logic;
        rdclock   : in  std_logic;
        rd_aclr   : in  std_logic := '0';
        q         : out std_logic_vector (MWIDTH - 1 downto 0)
        );
  end component;
  -----------------------------------------------------------------------------
  -- SIGNAL DECLARATIONS
  -----------------------------------------------------------------------------
  signal rst_f : std_logic;
  signal rst_s : std_logic;

  signal fft_source_real  : std_logic_vector (DFFTOUTWIDTH - 1 downto 0);
  signal fft_source_imag  : std_logic_vector (DFFTOUTWIDTH - 1 downto 0);
--  signal fft_source_real_r                    : std_logic_vector (DOUTWIDTH - 1 downto 0);
--  signal fft_source_imag_r                    : std_logic_vector (DOUTWIDTH - 1 downto 0);
  signal fft_source_ready : std_logic;
  signal fft_source_sop   : std_logic;
  signal N_val            : std_logic_vector(NWIDTH - 1 downto 0);
  signal fft_source_eop   : std_logic;
  signal fft_source_error : std_logic_vector (1 downto 0);
  signal fft_source_valid : std_logic;
  signal fft_sink_ready   : std_logic;

  signal Lq, Lcp : std_logic_vector (CPWIDTH -1 downto 0);
--  signal inv_i          : std_logic := '1';

  signal mem_din    : std_logic_vector (MWIDTH - 1 downto 0);
  signal mem_wren   : std_logic := '1';
  signal mem_wraddr : std_logic_vector (MADDR_WIDTH - 1 downto 0);
  signal mem_rdaddr : std_logic_vector (MADDR_WIDTH - 1 downto 0);
  signal mem_dout   : std_logic_vector (MWIDTH - 1 downto 0);

  signal fifo_rreq : std_logic;
  signal fifo_wreq : std_logic;

  signal fifo_start_out : std_logic;

begin
  rst_f <= not(rst_f_n);
  rst_s <= not(rst_f_n);
--  inv_i <= '1';                         -- for Tx FFT Megacore
  -- only performs IFFT
  process (clk_f, rst_f_n)
  begin
    if (rst_f_n = '0') then
      fifo_start_out <= '0';
    elsif rising_edge(clk_f) then
      if fifo_rreq = '1' then
        fifo_start_out <= '1';
      else
        fifo_start_out <= fifo_start_out;
      end if;
    end if;
  end process;

  fifo_rreq <= (fft_source_sop and fft_source_valid and fft_source_ready);
  fifo_wreq <= (din_sop and din_valid and fft_sink_ready);

  -----------------------------------------------------------------------------
  -- Instantiating fifo for L buffer
  -----------------------------------------------------------------------------

  Lbuff_inst : fifobuff
    generic map (
      DWIDTH => CPWIDTH)
    port map (
      clock => clk_f,
      data  => L,
      wrreq => fifo_wreq,
      rdreq => fifo_rreq,
      q     => Lq); 


  Lcp <= Lq when fifo_start_out = '1' else
         (others => '0');

  -----------------------------------------------------------------------------
  -- Instantiating FFT submodule
  --
  -- Performs IFFT for Tx 
  -- Megacore configured for Variable Streaming mode
  -----------------------------------------------------------------------------
  din_ready <= fft_sink_ready;

  fft_inst : fft
    port map
    (
      clk          => clk_f,
      reset_n      => rst_f_n,
      fftpts_in    => N,
      inverse      => inv,
      sink_sop     => din_sop,
      sink_eop     => din_eop,
      sink_valid   => din_valid,
      sink_real    => din_real,
      sink_imag    => din_imag,
      sink_ready   => fft_sink_ready,
      sink_error   => din_error,
      source_real  => fft_source_real,
      source_imag  => fft_source_imag,
      source_sop   => fft_source_sop,
      source_eop   => fft_source_eop,
      source_ready => fft_source_ready,
      source_error => fft_source_error,
      fftpts_out   => N_val,
      source_valid => fft_source_valid
      );

  -----------------------------------------------------------------------------
  -- Instantiating Add Cyclic Prefix submodule
  --
  -- For Tx ONLY, adds cyclic prefix to IFFT output. Outputs continous 
  -- stream of valid data.
  -----------------------------------------------------------------------------
  
  add_cyclic_prefix_u : add_cyclic_prefix
    generic map
    (
      DFFTOUTWIDTH => DFFTOUTWIDTH,
      DOUTWIDTH    => DOUTWIDTH,
      NWIDTH       => NWIDTH,
      MWIDTH       => MWIDTH,
      CPWIDTH      => CPWIDTH,
      MDEPTH       => MDEPTH,
      MADDR_WIDTH  => MADDR_WIDTH
      )

    port map
    (
      clk_in     => clk_f,
      clk_out    => clk_s,
      rst_in_n   => rst_f_n,
      rst_out_n  => rst_s_n,
      -- Control 
      L          => Lcp,
      N          => N_val,
      Nout       => Nout,
      Lout       => Lout,
      -- input interface
      in_real    => fft_source_real,
      in_imag    => fft_source_imag,
      in_valid   => fft_source_valid,
      in_sop     => fft_source_sop,
      in_eop     => fft_source_eop,
      in_ready   => fft_source_ready,
      -- Output Interface 
      out_ready  => dout_ready,
      out_valid  => dout_valid,
      out_sop    => dout_sop,
      out_eop    => dout_eop,
      out_real   => dout_real,
      out_imag   => dout_imag,
      -- Interface with memory
      mem_dout   => mem_dout,
      mem_din    => mem_din,
      mem_wren   => mem_wren,
      mem_wraddr => mem_wraddr,
      mem_rdaddr => mem_rdaddr
      );
  -----------------------------------------------------------------------------
  -- Instantiating Dual Port RAM to store data to be fed into FFT Megacore.
  -- 
  -- Input data is fed from IFFT Megacore output using fast clk.
  -- Read from memory with slow clk to have cyclic prefix added.
  -----------------------------------------------------------------------------
  cp_mem_u : cp_mem
    generic map
    (
      MWIDTH      => MWIDTH,
      MDEPTH      => MDEPTH,
      MADDR_WIDTH => MADDR_WIDTH
      )
    port map
    (
      data      => mem_din,
      wren      => mem_wren,
      wraddress => mem_wraddr,
      rdaddress => mem_rdaddr,
      wrclock   => clk_f,
      rdclock   => clk_s,
      rd_aclr   => rst_s,
      q         => mem_dout
      );

-----------------------------------------------------------------------------
end rtl;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文一区二区三区| 亚洲第一会所有码转帖| 欧美国产综合一区二区| 一区二区在线看| 精品在线一区二区| 99免费精品在线| 精品处破学生在线二十三| 亚洲免费av高清| 国产一区二区免费看| 欧美蜜桃一区二区三区| 中文字幕一区二区三区不卡| 国内久久精品视频| 69精品人人人人| 一区二区三区日韩欧美| av在线播放不卡| 日韩美女一区二区三区| 婷婷国产v国产偷v亚洲高清| 日本韩国一区二区三区| 国产精品视频一二| 国产一区二区三区在线观看免费 | 日韩一区二区精品| 夜色激情一区二区| 97se亚洲国产综合自在线| 日韩美女一区二区三区| 日本不卡免费在线视频| 91官网在线免费观看| 亚洲欧美偷拍卡通变态| 99久久国产综合精品女不卡| 久久人人爽爽爽人久久久| 久久99国产精品久久99果冻传媒| 欧美日韩亚洲综合一区 | 午夜精品一区二区三区免费视频| 91在线云播放| 亚洲丝袜制服诱惑| 色综合久久综合| 一级日本不卡的影视| 91福利小视频| 亚洲1区2区3区4区| 91麻豆精品国产| 美女在线视频一区| 日韩一区二区三区免费观看| 麻豆免费看一区二区三区| 欧美一级高清大全免费观看| 久久99热狠狠色一区二区| 欧美成人一区二区三区| 麻豆精品在线视频| 欧美精彩视频一区二区三区| 99视频精品免费视频| 一级做a爱片久久| 日韩欧美一卡二卡| 国产精选一区二区三区| 日韩伦理av电影| 欧美日韩视频在线一区二区| 麻豆精品国产91久久久久久| 精品国产亚洲在线| 99久久精品免费| 日日夜夜精品视频天天综合网| 日韩欧美一区二区视频| 成人免费看视频| 亚洲午夜电影网| 日韩欧美一二区| 99在线精品视频| 日韩国产高清影视| 国产精品嫩草久久久久| 欧美色成人综合| 欧美日韩精品二区第二页| 精品国产乱码久久久久久图片| 奇米影视在线99精品| 久久久久久99久久久精品网站| www.日韩大片| 免费看欧美女人艹b| 国产欧美日韩不卡免费| 欧美日韩五月天| 国产成人自拍网| 日本视频一区二区三区| 2017欧美狠狠色| 欧洲精品一区二区三区在线观看| 精品在线观看免费| 一区二区三区免费网站| 久久亚洲综合av| 欧美亚洲国产一卡| 成人性生交大合| 美女精品一区二区| 一区二区视频免费在线观看| 精品国精品国产| 欧美日韩一区视频| www.欧美日韩国产在线| 精品一区二区三区在线观看国产| 一区二区在线观看免费| 国产精品网站在线播放| 51精品视频一区二区三区| 一区二区三区在线观看网站| 久久久青草青青国产亚洲免观| 欧美手机在线视频| 91视频观看免费| 丁香激情综合五月| 国内精品国产成人| 精品欧美一区二区久久| 久久免费午夜影院| 不卡av在线免费观看| 国产真实乱对白精彩久久| 亚洲gay无套男同| 亚洲精品国产成人久久av盗摄| 国产亚洲欧美日韩在线一区| 欧美一区二区在线看| 欧美日韩欧美一区二区| 日本韩国精品在线| 色婷婷综合激情| 91麻豆国产福利精品| 成人动漫一区二区三区| 高清av一区二区| 国产电影精品久久禁18| 国产裸体歌舞团一区二区| 韩国理伦片一区二区三区在线播放 | 欧美zozo另类异族| 91 com成人网| 日韩一区二区三区高清免费看看| 在线播放中文字幕一区| 欧美老人xxxx18| 欧美精品自拍偷拍| 欧美一区二区在线播放| 欧美成人精品高清在线播放| 日韩精品最新网址| 久久亚洲精精品中文字幕早川悠里| 精品久久久久久久久久久久久久久久久| 欧美人伦禁忌dvd放荡欲情| 欧美日韩国产大片| 国产精品拍天天在线| 懂色av一区二区三区免费观看| 国产成人av福利| 成人avav影音| 欧美在线一区二区| 91精品国产91久久久久久一区二区 | 久久疯狂做爰流白浆xx| 精品一区二区三区蜜桃| 国产精品久久看| 亚洲青青青在线视频| 性久久久久久久久| 青草av.久久免费一区| 国产综合色精品一区二区三区| 国产99久久久久久免费看农村| 99久久综合色| 欧美日本视频在线| 午夜欧美大尺度福利影院在线看 | 国产精品护士白丝一区av| 日韩美女视频一区二区 | 欧美丰满少妇xxxbbb| 日韩小视频在线观看专区| 久久综合狠狠综合久久激情| 国产精品高潮呻吟久久| 亚洲电影第三页| 国产一区二区免费看| 在线免费不卡视频| 欧美tickling挠脚心丨vk| ●精品国产综合乱码久久久久| 亚洲综合在线电影| 国产精一品亚洲二区在线视频| 日韩影院精彩在线| 欧美色老头old∨ideo| 激情文学综合插| 在线观看免费成人| 久久婷婷国产综合国色天香| 1024成人网| 激情五月激情综合网| 免费美女久久99| 一本色道久久综合精品竹菊 | eeuss鲁片一区二区三区 | 国产精品乱码一区二三区小蝌蚪| 午夜久久久影院| 91在线视频免费观看| 精品少妇一区二区三区免费观看 | 久久伊人蜜桃av一区二区| 亚洲乱码国产乱码精品精98午夜 | 中文字幕一区二区在线观看 | 亚洲电影中文字幕在线观看| 国产乱码精品一区二区三| 欧美日韩国产不卡| 亚洲人成网站精品片在线观看| 国内成人免费视频| 制服丝袜一区二区三区| 亚洲精品一二三四区| bt欧美亚洲午夜电影天堂| 久久久天堂av| 久久精品国产亚洲高清剧情介绍| 欧日韩精品视频| 综合色中文字幕| 不卡av电影在线播放| 国产片一区二区三区| 欧美大片在线观看一区二区| 亚洲制服丝袜av| 色欧美乱欧美15图片| 国产精品看片你懂得| 国产成人综合视频| 久久精品欧美日韩精品| 国产综合久久久久影院| 精品久久久久香蕉网| 久久成人久久鬼色| 精品国产1区2区3区| 奇米777欧美一区二区| 制服丝袜成人动漫|