2011-07-13 11 views
6

cosmiacチュートリアル13 http://www.cosmiac.org/tutorial_13.htmlとISE 10.1を使用するとpdfファイルに画像を生成する方法が示され、最初の.zipファイルをクリックするとプロジェクトをダウンロードできます。プロジェクトの終わりに、それは言う...今、同様の方法で小さなビデオをストリーミングしようとする。 注:Matlabファイルを適切に修正してピクセル情報を取得し、 reader.vhdを使用するビデオ仕様に変更する必要があります。クリーンな出力を得るには、8 の色(Spartan-3Eボードで表現可能)のみを使用するビデオも必要です。スパータン3e fpgaで小さなビデオをストリーミングする方法は?

私の質問は... matlab .coeファイル(ビデオフレーム)がある場合、小さなビデオをストリームするために、単一のポートRAM(コアメモリジェネレータのRAMの種類)を使用しますか?以下の読者を変更するにはどうすればよいですか?

私は2つのフレーム(2つの画像)から始まります。私は、ビデオのように背中合わせに、または別のものの上に1つ(より簡単に)表示したいと思います。

覚えておくべきこと.. vhdlプログラミング言語、ザイリンクスise任意のバージョン(私が更新可能)、ザイリンクスインパクト。

--------------------------------------------------------------------------------- 
-- File Name: reader.vhd 
---------------------------------------------------------------------------------- 

library IEEE; 
use IEEE.STD_LOGIC_1164.ALL; 
use IEEE.STD_LOGIC_ARITH.ALL; 
use IEEE.STD_LOGIC_UNSIGNED.ALL; 


entity reader is 
Port (clk, reset : in STD_LOGIC; 
     row : in STD_LOGIC_VECTOR (9 downto 0); 
     col : in STD_LOGIC_VECTOR (9 downto 0); 
     addr : out STD_LOGIC_VECTOR (15 downto 0); 
     ennormal, enencryp : out std_logic; 
      datain : in STD_LOGIC_VECTOR (2 downto 0); 
      dataout : out STD_LOGIC_VECTOR (2 downto 0)); 
end reader; 

architecture Behavioral of reader is 

constant vtop : integer := 128; 
constant vbottom : integer := 351; 

constant htop1 : integer := 64; 
constant hbottom1 : integer := 287; 
constant htop2 : integer := 352; 
constant hbottom2 : integer := 575; 

signal addr_normal : STD_LOGIC_VECTOR (15 downto 0) := (others => '0'); 
signal addr_encryp : STD_LOGIC_VECTOR (15 downto 0) := (others => '0'); 

signal en_normal : std_logic := '0'; 
signal en_encryp : std_logic := '0'; 

begin 

ens : process (clk, reset) 
begin 
    if reset = '1' then 
      en_normal <= '0'; 
      en_encryp <= '0';  

    elsif clk'event and clk='1' then 

      if (row >= vtop) and (row <= vbottom) then 

       if (col >= htop1) and (col <= hbottom1) then 
         en_normal <= '1'; 
         en_encryp <= '0'; 
       elsif (col >= htop2) and (col <= hbottom2) then 
         en_normal <= '0'; 
         en_encryp <= '1'; 
       else 
         en_normal <= '0'; 
         en_encryp <= '0'; 
       end if; 

      else 
        en_normal <= '0'; 
        en_encryp <= '0'; 
      end if; 

    end if; 

end process ens; 

c_normal: process (clk, reset) 
begin 
     if reset = '1' then 

      addr_normal <= (others => '0'); 

     elsif clk'event and clk='1' then 

      if en_normal = '1' then 

       if addr_normal = 50175 then 
        addr_normal <= (others => '0'); 
       else 
        addr_normal <= addr_normal + 1; 
       end if; 

      end if; 
     end if; 
end process c_normal; 

c_encryp: process (clk, reset) 
begin 
     if reset = '1' then 

      addr_encryp <= (others => '0'); 

     elsif clk'event and clk='1' then 

      if en_encryp = '1' then 

       if addr_encryp = 50175 then 
        addr_encryp <= (others => '0'); 
       else 
        addr_encryp <= addr_encryp + 1; 
       end if; 

      end if; 
     end if; 
end process c_encryp; 

addr <= addr_normal when (en_normal = '1') else addr_encryp; 

dataout <= datain; 

ennormal <= en_normal; 
enencryp <= en_encryp; 

end Behavioral; 

答えて

0

あなたはオープングラフィックスプロジェクトに興味があるかもしれない。しかし、彼らのコードは、Verilogで、http://wiki.opengraphics.org/tiki-index.php

彼らはまた、ザイリンクスのSpartan 3を使用します。

svn co svn://svn.opengraphics.org/ogp 
関連する問題