⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rx_spdif.vhd

📁 为提高8051系列单片机I2C总线的工作效率
💻 VHD
📖 第 1 页 / 共 2 页
字号:
   end generate CG32;   CG16 : if DATA_WIDTH = 16 generate      CONF : gen_control_reg         generic map (            DATA_WIDTH      => 16,            ACTIVE_BIT_MASK => "1111110000000000")         port map (            clk       => wb_clk_i,            rst       => wb_rst_i,            ctrl_wr   => config_wr,            ctrl_rd   => config_rd,            ctrl_din  => wb_dat_i,            ctrl_dout => conf_dout,            ctrl_bits => conf_bits);      conf_mode(3 downto 0) <= "0000";      conf_paren            <= '0';      conf_staten           <= '0';      conf_useren           <= '0';      conf_valen            <= '0';   end generate CG16;   conf_blken  <= conf_bits(5);   conf_valid  <= conf_bits(4);   conf_chas   <= conf_bits(3);   evt_en      <= conf_bits(2);   conf_sample <= conf_bits(1);   conf_rxen   <= conf_bits(0);-- status register   STAT : rx_status_reg      generic map (         DATA_WIDTH => DATA_WIDTH)      port map (         wb_clk_i       => wb_clk_i,         status_rd      => status_rd,         lock           => lock,         chas           => conf_chas,         rx_block_start => rx_block_start,         ch_data        => rx_data,         cs_a_en        => cs_a_en,         cs_b_en        => cs_b_en,         status_dout    => stat_dout); -- interrupt mask register   IM32 : if DATA_WIDTH = 32 generate      IMASK : gen_control_reg         generic map (            DATA_WIDTH      => 32,            ACTIVE_BIT_MASK => "11111000000000001111111100000000")         port map (            clk       => wb_clk_i,            rst       => wb_rst_i,            ctrl_wr   => imask_wr,            ctrl_rd   => imask_rd,            ctrl_din  => wb_dat_i,            ctrl_dout => imask_dout,            ctrl_bits => imask_bits);   end generate IM32;   IM16 : if DATA_WIDTH = 16 generate      IMASK : gen_control_reg         generic map (            DATA_WIDTH      => 16,            ACTIVE_BIT_MASK => "1111100000000000")         port map (            clk       => wb_clk_i,            rst       => wb_rst_i,            ctrl_wr   => imask_wr,            ctrl_rd   => imask_rd,            ctrl_din  => wb_dat_i,            ctrl_dout => imask_dout,            ctrl_bits => imask_bits);   end generate IM16;-- interrupt status register   ISTAT : gen_event_reg      generic map (         DATA_WIDTH => DATA_WIDTH)      port map (         clk      => wb_clk_i,         rst      => wb_rst_i,         evt_wr   => istat_wr,         evt_rd   => istat_rd,         evt_din  => wb_dat_i,         evt_dout => istat_dout,         event    => istat_events,         evt_mask => imask_bits,         evt_en   => evt_en,         evt_irq  => rx_int_o);   istat_events(0)           <= lock_evt;   istat_events(1)           <= istat_lsbf;   istat_events(2)           <= istat_hsbf;   istat_events(3)           <= istat_paritya;   istat_events(4)           <= istat_parityb;   istat_events(15 downto 5) <= (others => '0');   IS32 : if DATA_WIDTH = 32 generate      istat_events(23 downto 16) <= istat_cap(7 downto 0);      istat_events(31 downto 24) <= (others => '0');   end generate IS32;-- capture registers   GCAP : if DATA_WIDTH = 32 and CH_ST_CAPTURE > 0 generate      CAPR : for k in 0 to CH_ST_CAPTURE - 1 generate         CHST : rx_cap_reg            port map (               clk            => wb_clk_i,               rst            => wb_rst_i,               cap_ctrl_wr    => ch_st_cap_wr(k),               cap_ctrl_rd    => ch_st_cap_rd(k),               cap_data_rd    => ch_st_data_rd(k),               cap_din        => wb_dat_i,               cap_dout       => cap_dout(k),               cap_evt        => istat_cap(k),               rx_block_start => rx_block_start,               ch_data        => rx_data,               ud_a_en        => ud_a_en,               ud_b_en        => ud_b_en,               cs_a_en        => cs_a_en,               cs_b_en        => cs_b_en);      end generate CAPR;      -- unused capture registers set to zero      UCAPR : if CH_ST_CAPTURE < 8 generate         UC : for k in CH_ST_CAPTURE to 7 generate            cap_dout(k) <= (others => '0');         end generate UC;      end generate UCAPR;   end generate GCAP;-- Sample buffer memory   MEM : dpram      generic map (         DATA_WIDTH => DATA_WIDTH,         RAM_WIDTH  => ADDR_WIDTH - 1)      port map (         clk     => wb_clk_i,         rst     => wb_rst_i,         din     => sample_din,         wr_en   => sample_wr,         rd_en   => mem_rd,         wr_addr => sbuf_wr_adr,         rd_addr => sbuf_rd_adr,         dout    => sample_dout);-- phase decoder   PDET : rx_phase_det      generic map (         WISHBONE_FREQ => WISHBONE_FREQ)  -- WishBone frequency in MHz      port map (         wb_clk_i       => wb_clk_i,         rxen           => conf_rxen,         spdif          => spdif_rx_i,         lock           => lock,         lock_evt       => lock_evt,         rx_data        => rx_data,         rx_data_en     => rx_data_en,         rx_block_start => rx_block_start,         rx_frame_start => rx_frame_start,         rx_channel_a   => rx_channel_a,         rx_error       => rx_error,         ud_a_en        => ud_a_en,         ud_b_en        => ud_b_en,         cs_a_en        => cs_a_en,         cs_b_en        => cs_b_en);  -- frame decoder   FDEC : rx_decode      generic map (         DATA_WIDTH => DATA_WIDTH,         ADDR_WIDTH => ADDR_WIDTH)      port map (         wb_clk_i       => wb_clk_i,         conf_rxen      => conf_rxen,         conf_sample    => conf_sample,         conf_valid     => conf_valid,         conf_mode      => conf_mode,         conf_blken     => conf_blken,         conf_valen     => conf_valen,         conf_useren    => conf_useren,         conf_staten    => conf_staten,         conf_paren     => conf_paren,         lock           => lock,         rx_data        => rx_data,         rx_data_en     => rx_data_en,         rx_block_start => rx_block_start,         rx_frame_start => rx_frame_start,         rx_channel_a   => rx_channel_a,         wr_en          => sample_wr,         wr_addr        => sbuf_wr_adr,         wr_data        => sample_din,         stat_paritya   => istat_paritya,         stat_parityb   => istat_parityb,         stat_lsbf      => istat_lsbf,         stat_hsbf      => istat_hsbf);end rtl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -