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

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

?? imdct.vhd

?? 這是一個(gè)用VHDL語言編寫的mp3編解碼實(shí)現(xiàn)。
?? VHD
字號(hào):
---------------------------------------------------------------------------------
-- File Name: imdct.vhd
-- Function Description:
--	This is the main module of component IMDCT. Two packages are 
--	used in this module: all_types.vhd, and imdct_package.vhd
---------------------------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;
use work.all_types.all;	
use work.imdct_package.all;
use work.mul.all;

entity imdct is
  port( clk   : in  std_logic;		-- clock input signal
        rst   : in  std_logic;		-- reset signal (1 = reset)
        start : in  std_logic;		-- start=1 means that this block is activated
        done  : out std_logic;		-- generate a done signal for one clock pulse when finished
        din  : in  std_logic_vector(31 downto 0);	-- signals from memory
        dout  : out std_logic_vector(31 downto 0);	   -- signals to memory
		  memc: out mem_control_type;                   -- signals to memory
        frm   : in  frame_type);		-- contains all header and side information for the current frame
 end imdct;                                  

architecture behavioral of imdct is

  type state_type is (rst_prev_block,idle,judge1,send_addr,idle1,get_data,judge2,send_data_to_comp,calc,judge3,send_data,judge4,done1);
  signal present_state,next_state: state_type;
  type type_dct_out is array (0 to 575) of std_logic_vector(31 downto 0);
  signal dct_in,dct0_in,dct1_in,dct2_in,dct3_in,dct0_out,dct1_out,dct2_out,dct3_out : type_dct;
  signal prev_line0_in,prev_line1_in,prev_line2_in,prev_line3_in,prev_line0_out,prev_line1_out,prev_line2_out,prev_line3_out:type_dct;
  signal dct_out : type_dct_out;
  signal sig_memc: mem_control_type;
  signal memo_en:std_logic_vector(2 downto 0); 
  signal sig_block_type:std_logic_vector(1 downto 0);
  signal prev_block:type_dct_out; 
 
  component imdct0_gen
            port (dct_in: in type_dct;
				      dct_out: out type_dct;
						prev_line_in: in type_dct;
						prev_line_out: out type_dct);
			  end component;
			                  	  
  component imdct1_gen
             port( dct_in: in type_dct;
				      dct_out: out type_dct;
						prev_line_in: in type_dct;
						prev_line_out: out type_dct);
			   end component;
 
  component imdct2_gen
             port(dct_in: in type_dct;
				      dct_out: out type_dct;
						prev_line_in: in type_dct;
						prev_line_out: out type_dct); 
				end component;


  component imdct3_gen
             port(dct_in: in type_dct;
				      dct_out: out type_dct;
						prev_line_in: in type_dct;
						prev_line_out: out type_dct );
            end component;
 
  begin
    memc<=sig_memc;
 	 	
   c0: imdct0_gen
	   port map  ( dct_in => dct0_in, 
				      dct_out => dct0_out,
					  	prev_line_in => prev_line0_in,
						prev_line_out => prev_line0_out);

   c1: imdct1_gen
	   port map( dct_in => dct1_in,
				      dct_out => dct1_out,
					  	prev_line_in => prev_line1_in,
						prev_line_out => prev_line1_out);


  c2: imdct2_gen
	   port map( dct_in => dct2_in,
				      dct_out => dct2_out,
					  	prev_line_in => prev_line2_in,
						prev_line_out => prev_line2_out);

  c3:imdct3_gen
	   port map( dct_in => dct3_in,
				      dct_out => dct3_out,
					  	prev_line_in => prev_line3_in,
						prev_line_out => prev_line3_out);


 process(clk)  
     begin
       if(clk'event and clk='1')then
          if rst ='1' then               
	  present_state<= rst_prev_block;
     	   else
          present_state<=next_state;
         end if ;
      end if;
  end process;

 process(present_state)
    variable sb_count,ss_count,data_count:integer; 
 
     begin 
	         
	  case present_state is
	  when rst_prev_block =>
	                       for i in 0 to 575 loop
	                         prev_block(i) <=(others=>'0');
	                        end loop;
	                        next_state<=idle;
	           
	  when idle  => sig_memc.en<='0';
                        sig_memc.we<='0';
                        sig_memc.oe<='0';
	                
	                 sb_count:=0;
						  data_count:=0;
						  ss_count := 0;
						  done<='0';

						  for i in 0 to 17 loop
						  dct_in(i)<=(others=>'0');
						
						  end loop;
					   
						  
						  sig_memc.addr<=(others=>'0');
						 

						  next_state<= judge1;  

                                              


	when judge1=>
                    if start ='1' then
						    next_state<=send_addr;
						  else
                      next_state<=idle;
						  end if;
						  
						  
	when send_addr =>sig_memc.we<='0';
	                 sig_memc.en<='1';
			 sig_memc.oe<='1';
			 dout <= (others=>'0'); 
	                 sig_memc.addr<= conv_std_logic_vector((sb_count*18+ss_count),10); 					  
	                 
                       
                                     
			 next_state <= idle1;
                       
     when idle1 =>      next_state<= get_data;
                        
		 			  
	  	                 
    when get_data =>     ss_count:=ss_count+1;

	                 dct_in(ss_count-1)<=din;
                          			 
			  if ss_count=18 then			  
			  	next_state<= judge2;
			  else
			  	next_state <= send_addr;
			  end if;

    
    when judge2 =>  ss_count:=0;
                    if sb_count < 2 and frm.sideinfo.blocksplit_flag ='1' and frm.sideinfo.switch_point ='1' then       
    						  sig_block_type <="00";
                    else  						     
		     sig_block_type<=frm.sideinfo.block_type;
		    end if;
                     next_state<=send_data_to_comp;              	  
						  


   when send_data_to_comp => if sig_block_type ="00" then
                                  for i in 0 to 17 loop
				     dct0_in(i) <=  dct_in(i);
				     prev_line0_in(i)<=prev_block(sb_count*18+i);
			          end loop;	     
                             end if;     
   
                              if sig_block_type ="01" then
                                     for i in 0 to 17 loop
				      dct1_in(i) <=  dct_in(i);
				      prev_line1_in(i)<=prev_block(sb_count*18+i);
				     end loop;	     
                             end if;   
   
                              if sig_block_type = "10" then
	                              for i in 0 to 17 loop
				       dct2_in(i) <=  dct_in(i);
				       prev_line2_in(i)<=prev_block(sb_count*18+i);
				      end loop;	     
                              end if;   
   
                               if sig_block_type ="11" then
                                   for i in 0 to 17 loop
				    dct3_in(i) <=  dct_in(i);
				    prev_line3_in(i)<=prev_block(sb_count*18+i);
				   end loop;	     
                               end if;   
   
                          next_state<= calc;
   
   
   
   when calc =>
                 if sig_block_type ="00" then
                     			    for i in 0 to 17 loop
      			            prev_block(sb_count*18+i)<=prev_line0_out(i);
				
   				     dct_out(sb_count*18 +i)<=dct0_out(i);
    			    end loop;
      		 end if;
            
	            if sig_block_type ="01" then
                 
			        for i in 0 to 17 loop
					     prev_block(sb_count*18+i)<=prev_line1_out(i);
				        
 	  				dct_out(sb_count*18 +i)<=dct1_out(i);
   			     end loop;
               end if;
       	   	                
  		       if sig_block_type = "10" then
	               		    for i in 0 to 17 loop
					   prev_block(sb_count*18+i)<=prev_line2_out(i);
				     
 				    dct_out(sb_count*18 +i)<=dct2_out(i);
				    end loop;
   		   end if;

			 if sig_block_type ="11" then
              
				  for i in 0 to 17 loop
				     prev_block(sb_count*18+i)<=prev_line3_out(i);
				     dct_out(sb_count*18 +i)<=dct3_out(i); 
				  end loop;
	   	  end if;

			  sb_count:=sb_count+1;
			  next_state<=judge3;  
	  when judge3 => 
			  if sb_count = 32 then
			  sb_count:=0;
			  next_state <=send_data;
			  else
			  next_state<=send_addr;
			  end if;
		                              
	  when send_data=>       sig_memc.oe<='0';
 	 	                 sig_memc.en<='1';
		 		 sig_memc.we<='1';
				 sig_memc.addr<=conv_std_logic_vector(data_count,10);
				 dout<=dct_out(data_count);
				 data_count:=data_count+1;
             next_state<=judge4;  
	  when judge4=>				
				 if data_count =576 then
 				   next_state<= done1;
 				   data_count:=0;
				 else
				   next_state<=send_data;
				 end if;

    when done1 => done <='1';
                                 next_state<=idle;

 when others => next_state <=idle;
 end case;
 end process;
 end behavioral ;        
    
       
  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产一级片| 国产999精品久久| 欧美日韩在线电影| 亚欧色一区w666天堂| 欧美一区二区在线观看| 韩国欧美一区二区| 中文字幕 久热精品 视频在线 | 日产欧产美韩系列久久99| 4438成人网| 韩国av一区二区三区四区| 国产欧美日韩久久| 91麻豆自制传媒国产之光| 亚洲第一搞黄网站| 亚洲精品一区二区三区香蕉| 粉嫩一区二区三区在线看| 亚洲精品国产a久久久久久| 这里只有精品电影| 懂色av一区二区三区蜜臀 | 亚洲综合视频在线观看| 欧美精品九九99久久| 激情综合一区二区三区| 亚洲三级视频在线观看| 7777精品久久久大香线蕉| 国产一区二三区| 亚洲精品中文字幕在线观看| 欧美一区二区人人喊爽| 成人国产精品视频| 日韩av网站在线观看| 国产精品网站在线播放| 欧美放荡的少妇| 成人a区在线观看| 日本欧美在线看| 国产精品九色蝌蚪自拍| 欧美一级淫片007| 91网页版在线| 国产精品伊人色| 日韩激情一区二区| 国产精品福利在线播放| 日韩免费视频一区二区| 在线看不卡av| 成人精品一区二区三区中文字幕| 日本中文字幕一区二区有限公司| 日韩美女视频一区二区| 久久综合五月天婷婷伊人| 精品视频全国免费看| 福利91精品一区二区三区| 麻豆精品在线播放| 夜夜嗨av一区二区三区| 国产欧美日本一区视频| 日韩欧美国产综合| 欧美日本在线看| 色偷偷88欧美精品久久久| 国产99久久久国产精品免费看| 日韩精品一区第一页| 亚洲精品一二三| 亚洲欧洲国产专区| 国产日韩欧美高清在线| 精品日韩在线观看| 在线电影国产精品| 欧美三级欧美一级| 欧美综合一区二区三区| 99久久伊人网影院| 成人在线视频一区| 国产精品亚洲第一区在线暖暖韩国| 蜜臀久久99精品久久久画质超高清| 一区二区三区精品视频| 国产在线看一区| 美女性感视频久久| 水蜜桃久久夜色精品一区的特点| 亚洲一区在线免费观看| 亚洲男人天堂av| 亚洲人妖av一区二区| 日韩一区欧美小说| 亚洲三级久久久| 亚洲免费在线看| 一区二区三区日韩| 亚洲国产成人av网| 秋霞午夜av一区二区三区| 婷婷国产v国产偷v亚洲高清| 天堂影院一区二区| 免费看日韩精品| 久久成人av少妇免费| 黑人巨大精品欧美黑白配亚洲| 国产最新精品精品你懂的| 国产原创一区二区三区| 国产伦精品一区二区三区免费| 国产精品亚洲人在线观看| 国产xxx精品视频大全| voyeur盗摄精品| 日本韩国精品一区二区在线观看| 欧美在线免费播放| 91精品一区二区三区在线观看| 欧美岛国在线观看| 国产欧美精品一区| 最近中文字幕一区二区三区| 亚洲制服丝袜在线| 美女爽到高潮91| 国产福利精品一区| 色综合久久88色综合天天| 欧美日韩激情一区二区三区| 欧美成人女星排名| 中文字幕乱码久久午夜不卡| 亚洲免费观看高清完整| 日本欧洲一区二区| 大胆亚洲人体视频| 一本大道久久a久久精品综合| 欧美伦理视频网站| 国产亚洲一二三区| 一区二区三区成人在线视频| 美女视频一区二区| 91在线观看美女| 91精品国产色综合久久ai换脸 | 国产+成+人+亚洲欧洲自线| 99精品久久免费看蜜臀剧情介绍| 欧美色图12p| 国产日韩欧美一区二区三区综合| 亚洲伦理在线免费看| 免费在线成人网| 99久久精品国产网站| 日韩一区二区三区免费看| 中文字幕在线观看不卡视频| 青青青爽久久午夜综合久久午夜| 成人av在线电影| 欧美一区二区三区四区在线观看 | 亚洲蜜臀av乱码久久精品| 色哟哟国产精品| 日韩欧美国产高清| 一区二区三区在线免费观看| 国产一区二区在线视频| 欧美色图一区二区三区| 中文字幕成人在线观看| 久久国产麻豆精品| 欧美优质美女网站| 国产精品久久久久久久裸模| 精品中文av资源站在线观看| 91久久精品一区二区三| 久久欧美一区二区| 免费在线观看日韩欧美| 欧美三电影在线| 亚洲欧洲精品一区二区三区不卡| 精品综合久久久久久8888| 欧美日韩精品一区视频| 亚洲免费观看视频| 成人app网站| 久久久欧美精品sm网站| 青草av.久久免费一区| 欧美系列一区二区| 亚洲男人都懂的| 99久久精品国产导航| 日本一区二区三区在线不卡 | 亚洲成av人片一区二区梦乃| 99精品视频在线观看免费| 久久久美女毛片| 激情久久五月天| 日韩欧美国产综合| 蜜桃久久精品一区二区| 777xxx欧美| 天天影视涩香欲综合网| 欧美性色黄大片手机版| 亚洲一区欧美一区| 欧美视频一区二区三区在线观看| 亚洲精品成人精品456| 91在线观看下载| 亚洲三级理论片| 91国偷自产一区二区使用方法| 亚洲欧洲美洲综合色网| 91同城在线观看| 一区二区三区 在线观看视频 | 成人免费视频一区| 久久久99免费| 国产白丝精品91爽爽久久| 国产网红主播福利一区二区| 国产高清成人在线| 国产精品每日更新在线播放网址| 成人动漫一区二区在线| 国产精品国产三级国产| 色av成人天堂桃色av| 亚洲午夜免费福利视频| 在线综合视频播放| 美日韩黄色大片| 国产亚洲精品bt天堂精选| 成人综合在线网站| 一区二区三区在线观看欧美| 欧美日韩中文精品| 免费美女久久99| 久久精品在线观看| av一区二区三区四区| 樱桃国产成人精品视频| 7777精品伊人久久久大香线蕉| 精品一区二区三区影院在线午夜 | 亚洲欧美日韩系列| 欧美日韩国产区一| 极品瑜伽女神91| 国产精品女主播在线观看| 在线免费观看日本欧美| 美女国产一区二区三区| 中文字幕av资源一区| 欧美日韩国产高清一区二区| 精品一区二区三区视频在线观看| 亚洲国产精品成人综合色在线婷婷|