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

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

?? vga.vhd

?? xst3_video.ZIP是基于XILINX的XST3開(kāi)發(fā)板的視頻采集源碼
?? VHD
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
        START   => HSYNC_START,         -- start of horizontal sync pulse in scan line
        WIDTH   => HSYNC_WIDTH,         -- width of horizontal sync pulse
        VISIBLE => PIXELS_PER_LINE
        )
      port map (
        rst     => rst,
        clk     => clk,                 -- master clock
        cke     => cke,                 -- clock always enabled so there is a new pixel output on every clock pulse
        sync_n  => hsync_x(1),          -- send pulse through delay line
        gate    => v_gate,              -- send gate signal to increment vertical sync pulse generator once per scan line
        blank   => h_blank,             -- blanking signal within a scan line
        cnt     => pixel_cnt            -- current pixel within the scan line
        );

    vsync : sync
      generic map (
        FREQ    => HSYNC_FREQ,          -- scanline frequency (KHz)
        PERIOD  => VSYNC_PERIOD,        -- image frame period
        START   => VSYNC_START,         -- start of vertical sync pulse in frame
        WIDTH   => VSYNC_WIDTH,         -- width of vertical sync pulse
        VISIBLE => LINES_PER_FRAME
        )
      port map (
        rst     => rst,
        clk     => clk,                 -- master clock
        cke     => cke_v_gate,          -- enable clock once per horizontal scan line
        sync_n  => vsync_n,             -- send pulse through delay line
        gate    => eof_x,               -- indicate the end of a complete frame
        blank   => v_blank,             -- blanking signal within a frame
        cnt     => line_cnt             -- current scan line within a frame
        );
  end generate;

  eof_i    <= eof_x and not eof_r;      -- shorten end-of-frame signal to a single clock cycle
  eof      <= eof_i;
  fifo_rst <= eof_i or rst;             -- clear the contents of the pixel buffer at the end of every frame

  visible    <= h_blank nor v_blank;    -- pixels are visible when horiz. & vertical blank are inactive 
  blank_x(1) <= not visible;            -- send blanking signal through delay line

  -- pass the horiz. and vert. syncs and blanking signal through delay lines to compensate for the
  -- processing delays incurred by the pixel data
  hsync_x(hsync_x'high downto 2) <= hsync_r(hsync_r'high-1 downto 1);
  hsync_n                        <= hsync_r(hsync_r'high);
  blank_x(blank_x'high downto 2) <= blank_r(blank_r'high-1 downto 1);
  blank                          <= blank_r(blank_r'high);

  -- get the current pixel from the word of pixel data or read more pixel data from the buffer
  get_pixel : process(visible, pixel_data_out, pixel_data_r, rd_r, pixel_cnt)
  begin
    rd_x <= NO;                         -- by default, don't read next word of pixel data from the buffer

    -- shift pixel data depending on its width so the next pixel is in the LSBs of the pixel data shift register
    case PIXEL_WIDTH is
      when 1      =>                    -- 1-bit pixels, 16 per pixel data word
        if (visible = YES) and (pixel_cnt(3 downto 0) = 0) then
          rd_x       <= YES;            -- read new pixel data from buffer every 16 clocks during visible portion of scan line
        end if;
        pixel_data_x <= "0" & pixel_data_r(15 downto 1);  -- left-shift pixel data to move next pixel to LSB
      when 2      =>                    -- 2-bit pixels, 8 per pixel data word
        if (visible = YES) and (pixel_cnt(2 downto 0) = 0) then
          rd_x       <= YES;            -- read new pixel data from buffer every 8 clocks during visible portion of scan line
        end if;
        pixel_data_x <= "00" & pixel_data_r(15 downto 2);  -- left-shift pixel data to move next pixel to LSB 
      when 4      =>                    -- 4-bit pixels, 4 per pixel data word
        if (visible = YES) and (pixel_cnt(1 downto 0) = 0) then
          rd_x       <= YES;            -- read new pixel data from buffer every 4 clocks during visible portion of scan line
        end if;
        pixel_data_x <= "0000" & pixel_data_r(15 downto 4);  -- left-shift pixel data to move next pixel to LSB 
      when 8      =>                    -- 8-bit pixels, 2 per pixel data word
        if (visible = YES) and (pixel_cnt(0 downto 0) = 0) then
          rd_x       <= YES;            -- read new pixel data from buffer every 2 clocks during visible portion of scan line
        end if;
        pixel_data_x <= "00000000" & pixel_data_r(15 downto 8);  -- left-shift pixel data to move next pixel to LSB 
      when others =>                    -- any other width, then 1 per pixel data word
        if (visible = YES) then
          rd_x       <= YES;            -- read new pixel data from buffer every clock during visible portion of scan line
        end if;
        pixel_data_x <= pixel_data_r;
    end case;

    -- store the pixel data from the buffer instead of shifting the pixel data
    -- if a read operation was initiated in the previous cycle.
    if rd_r = YES then
      pixel_data_x <= pixel_data_out;
    end if;

    -- the current pixel is in the lower bits of the pixel data shift register
    pixel <= pixel_data_r(pixel'range);
  end process get_pixel;

  -- map the current pixel to RGB values
  map_pixel : process(pixel, rgb_r, blank_r)
  begin
    if NUM_RGB_BITS = 2 then
      case PIXEL_WIDTH is
        when 1             =>           -- 1-bit pixels map to black or white
          rgb_x <= (others => pixel(0));
        when 2             =>           -- 2-bit pixels map to black, 2/3 gray, 1/3 gray, and white
          rgb_x <= pixel(1 downto 0) & pixel(1 downto 0) & pixel(1 downto 0);
        when 4             =>           -- 4-bit pixels map to 8 colors (ignore MSB)
          rgb_x <= pixel(2) & pixel(2) & pixel(1) & pixel(1) & pixel(0) & pixel(0);
        when 8             =>           -- 8-bit pixels map directly to RGB values
          rgb_x <= pixel(7 downto 6) & pixel(4 downto 1);
        when others        =>           -- 16-bit pixels maps directly to RGB values
          rgb_x <= pixel(8) & pixel(7) & pixel(5) & pixel(4) & pixel(2) & pixel(1);
      end case;
    else                                -- NUM_RGB_BITS=3
      case PIXEL_WIDTH is
        when 1             =>           -- 1-bit pixels map to black or white
          rgb_x <= (others => pixel(0));
        when 2             =>           -- 2-bit pixels map to black, 5/7 gray, 3/7 gray, and  1/7 gray
          rgb_x <= pixel(1 downto 0) & '0' & pixel(1 downto 0) & '0' & pixel(1 downto 0) & '0';
        when 4             =>           -- 4-bit pixels map to 8 colors (ignore MSB)
          rgb_x <= pixel(2) & pixel(2) & pixel(2) & pixel(1) & pixel(1) & pixel(1) & pixel(0) & pixel(0) & pixel(0);
        when 8             =>           -- 8-bit pixels map to RGB with reduced resolution in green component
          rgb_x <= pixel(7 downto 5) & pixel(4 downto 3) & '0' & pixel(2 downto 0);
        when others        =>           -- 16-bit pixels map directly to RGB values
          rgb_x <= pixel(8 downto 0);
      end case;
    end if;

    -- just blank the pixel if not in the visible region of the screen
    if blank_r(blank_r'high-1) = YES then
      rgb_x <= (others => '0');
    end if;

    -- break the pixel into its red, green and blue components
    r <= rgb_r(3*NUM_RGB_BITS-1 downto 2*NUM_RGB_BITS);
    g <= rgb_r(2*NUM_RGB_BITS-1 downto NUM_RGB_BITS);
    b <= rgb_r(NUM_RGB_BITS-1 downto 0);
  end process map_pixel;

-- update registers
  update : process(rst, clk)
  begin
    if rst = YES then
      eof_r          <= '0';
      rd_r           <= NO;
      hsync_r        <= (others => '1');
      blank_r        <= (others => '0');
      pixel_data_r   <= (others => '0');
      rgb_r          <= (others => '0');
    elsif rising_edge(clk) then
      eof_r          <= eof_x;          -- end-of-frame signal goes at full clock rate to external system
      if cke = YES then
        rd_r         <= rd_x;
        hsync_r      <= hsync_x;
        blank_r      <= blank_x;
        pixel_data_r <= pixel_data_x;
        rgb_r        <= rgb_x;
      end if;
    end if;
  end process update;

end architecture vga_arch;



library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.numeric_std.all;
use work.common.all;

-- Generate a sync pulse within a waveform PERIOD.
-- Also output the value of the counter used for timing so that
-- it can be used in generating an address for a video RAM.

entity sync is
  generic (
    FREQ    :     natural := 50_000;    -- master clock frequency (in KHz)
    PERIOD  :     natural := 32;        -- period of sync pulse (in us)
    START   :     natural := 26;        -- time sync pulse starts within the period (in us)
    WIDTH   :     natural := 4;         -- width of sync pulse (in us)
    VISIBLE :     natural := 1024       -- number of visible pixels/line or lines/frame
    );
  port (
    rst     : in  std_logic;            -- reset
    clk     : in  std_logic;            -- master clock
    cke     : in  std_logic;            -- clock-enable
    sync_n  : out std_logic;            -- sync pulse
    gate    : out std_logic;            -- single-clock pulse at start of sync pulse
    blank   : out std_logic;            -- blanking signal
    cnt     : out std_logic_vector(15 downto 0)  -- output the timing counter value
    );
end entity sync;


architecture sync_arch of sync is
  constant NORM             : natural := 1000;  -- normalization factor for us * KHz
  constant CYC_PERIOD       : natural := (PERIOD * FREQ)/NORM;  -- sync wave PERIOD in clock cycles
  constant CYC_START        : natural := (START * FREQ)/NORM;  -- sync pulse START in cycles
  constant CYC_WIDTH        : natural := (WIDTH * FREQ)/NORM;  -- sync pulse WIDTH in cycles
  constant CYC_END          : natural := CYC_START + CYC_WIDTH;  -- sync pulse end in cycles
  signal   cnt_r, cnt_x     : natural range 0 to (2**(cnt'high+1))-1;  -- counter for timing sync pulse waveform
--  signal   cnt_r, cnt_x     : std_logic_vector(cnt'range);  -- counter for timing sync pulse waveform
  signal   sync_r, sync_x   : std_logic;  -- sync register
  signal   gate_r, gate_x   : std_logic;  -- gate register
  signal   blank_r, blank_x : std_logic;  -- blank register
begin

-- increment counter and wrap around to zero at end of period
  cnt_x <= 0 when cnt_r = CYC_PERIOD-1 else cnt_r+1;

-- generate sync pulse within waveform period
  sync_x <= LO when cnt_r = CYC_START-1 else
            HI when cnt_r = CYC_END-1   else
            sync_r;
  sync_n <= sync_r;

-- generate gate signal at start of sync pulse
  gate_x <= YES when cnt_r = CYC_START-1 else NO;
  gate   <= gate_r;

-- generate blank signal after initial visible period
  blank_x <= YES when cnt_r = VISIBLE-1    else
             NO  when cnt_r = CYC_PERIOD-1 else
             blank_r;
  blank   <= blank_r;

-- output counter value
  cnt <= std_logic_vector(TO_UNSIGNED(cnt_r, cnt'length));

-- update counter and registers
  update : process(rst, clk)
  begin
    if rst = YES then
      cnt_r     <= 0;
      sync_r    <= HI;
      gate_r    <= NO;
      blank_r   <= YES;
    elsif rising_edge(clk) then
      if cke = YES then
        cnt_r   <= cnt_x;
        sync_r  <= sync_x;
        gate_r  <= gate_x;
        blank_r <= blank_x;
      end if;
    end if;
  end process update;

end architecture sync_arch;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区精品性色| 蜜臀精品一区二区三区在线观看| 国产精选一区二区三区| 国产人久久人人人人爽| 成人免费视频caoporn| 亚洲精品久久7777| 日韩丝袜情趣美女图片| 成人综合在线视频| 天天操天天综合网| 国产日韩欧美综合一区| 欧美性极品少妇| 成人一区二区三区| 美女视频一区二区三区| 成人欧美一区二区三区| 日韩精品一区二区三区在线播放 | 国产精品久久久久精k8| 欧美午夜精品一区二区三区 | 中文字幕一区二区日韩精品绯色| 99精品视频在线免费观看| 日韩电影免费在线观看网站| 国产亚洲成aⅴ人片在线观看| 色拍拍在线精品视频8848| 国产毛片一区二区| 精品一区二区三区视频在线观看| 亚洲线精品一区二区三区八戒| 26uuu精品一区二区在线观看| 日本高清不卡一区| 成人在线视频首页| 久久国产精品99精品国产| 午夜一区二区三区视频| 国产精品久久久久7777按摩| 久久久亚洲精品石原莉奈| 欧美一区二区三区电影| 91精品婷婷国产综合久久性色 | 日韩一区二区免费高清| 欧美在线不卡视频| 在线观看一区不卡| 欧美日韩一区二区电影| 在线视频一区二区三区| 欧美一a一片一级一片| 欧美天堂一区二区三区| 欧美一区二区三区男人的天堂 | 91精品国产综合久久久久久久 | 亚洲人成亚洲人成在线观看图片| 欧美大片顶级少妇| 国产精品美女久久久久久2018| 亚洲人成小说网站色在线 | 亚洲日本韩国一区| 美腿丝袜亚洲色图| 成年人网站91| 欧美一区二区视频观看视频| 国产人伦精品一区二区| 日韩国产一区二| 99精品国产一区二区三区不卡| 7799精品视频| 一区二区三区四区中文字幕| 香蕉乱码成人久久天堂爱免费| 精品一区二区免费| 欧美一区二区在线观看| 一区二区三区欧美激情| 北条麻妃国产九九精品视频| 欧美一区二区三区在线观看| 亚洲欧美日本韩国| 日韩一级片网址| 日韩国产欧美在线播放| 欧美日免费三级在线| 一区二区三区资源| 91福利国产成人精品照片| 亚洲视频一二三| 色视频欧美一区二区三区| 亚洲精品午夜久久久| 欧美中文字幕一区| 亚洲成人你懂的| 欧美日韩成人综合| 秋霞午夜av一区二区三区| 欧美日韩精品高清| 日本伊人午夜精品| 久久久亚洲综合| 一本一道综合狠狠老| 亚洲午夜电影在线观看| 91精品国产黑色紧身裤美女| 日韩不卡一二三区| 欧美一区二区在线视频| 国产99久久精品| 亚洲欧美另类小说视频| 欧美日韩久久不卡| 国产一区欧美一区| 亚洲免费观看在线观看| 在线播放日韩导航| 成人听书哪个软件好| 亚洲一区二区三区精品在线| 日韩欧美卡一卡二| 91免费看视频| 韩国一区二区三区| 亚洲图片欧美色图| ㊣最新国产の精品bt伙计久久| 欧美日韩国产综合一区二区三区 | 久久精品人人做人人爽人人| 日本韩国欧美在线| 粉嫩av一区二区三区| 午夜精品123| 夜色激情一区二区| 中文字幕在线观看一区| 日韩免费高清电影| 717成人午夜免费福利电影| 色哟哟在线观看一区二区三区| 久久99热狠狠色一区二区| 3d成人动漫网站| 九九精品视频在线看| 亚洲国产精品人人做人人爽| 亚洲桃色在线一区| 国产肉丝袜一区二区| 91精品欧美综合在线观看最新 | 99re热视频精品| jlzzjlzz国产精品久久| 91丨porny丨国产| 91久久精品一区二区| 93久久精品日日躁夜夜躁欧美| 精东粉嫩av免费一区二区三区| 久久狠狠亚洲综合| 丁香一区二区三区| 色欧美日韩亚洲| 欧美肥大bbwbbw高潮| 日韩三级视频中文字幕| 精品国产网站在线观看| 国产欧美在线观看一区| 亚洲欧美在线观看| 亚洲成a人片综合在线| 国产一区福利在线| 91小宝寻花一区二区三区| 欧美日韩二区三区| 亚洲国产成人午夜在线一区| 亚洲欧美激情插| 国产在线看一区| 欧美羞羞免费网站| 亚洲国产成人在线| 日韩在线a电影| 欧美自拍偷拍午夜视频| 久久综合成人精品亚洲另类欧美 | 色噜噜狠狠色综合中国| 久久精品日韩一区二区三区| 午夜精品久久久久久久蜜桃app| 欧美aaa在线| 欧美久久一二区| 亚洲欧美日韩系列| 不卡的av在线| 国产精品毛片久久久久久| 欧美a一区二区| 精品久久久久久无| 天天综合日日夜夜精品| 欧洲色大大久久| 亚洲精品久久久蜜桃| 日本高清视频一区二区| 一区二区免费在线| 欧洲色大大久久| 免费在线观看精品| 欧美成人video| 国产精品中文字幕欧美| 国产三级精品三级在线专区| 波多野结衣一区二区三区| 成人免费一区二区三区视频| 色综合久久综合| 亚瑟在线精品视频| 精品国产网站在线观看| 国产乱人伦偷精品视频不卡| 中文字幕一区二区三区在线观看 | 国产成人av一区二区三区在线 | 7777精品伊人久久久大香线蕉完整版 | 亚洲一区二区欧美激情| 欧美日韩精品专区| 国产大陆a不卡| 亚洲自拍欧美精品| 久久久欧美精品sm网站| 色综合中文综合网| 成人深夜视频在线观看| 91在线视频播放地址| 一级中文字幕一区二区| 欧美电影免费观看完整版| 成人毛片视频在线观看| 日韩国产精品久久| 亚洲一区二区在线播放相泽| 欧美刺激脚交jootjob| 91久久线看在观草草青青| 国产制服丝袜一区| 久久精品国产亚洲一区二区三区 | 国产精品二三区| 日韩精品一区二区在线观看| 在线亚洲免费视频| 不卡一区在线观看| 国产不卡在线视频| 国产精品中文欧美| 国内精品伊人久久久久av一坑| 日韩精品成人一区二区在线| 国产精品成人在线观看| 国产性做久久久久久| 久久久五月婷婷| 欧美国产激情一区二区三区蜜月| 欧美v日韩v国产v| 久久久久久毛片| 国产精品久久毛片a|