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

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

?? dct.vhd

?? 用于視頻圖像編碼的8×8DCT變換
?? VHD
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
--*********************************************************************-- *********************************************************************-- ** -----------------------------------------------------------------------------**-- ** dct.v-- **-- ** 8x8 discrete Cosine Transform-- **-- **-- **-- **                  Author: Latha Pillai-- **                  Senior Applications Engineer-- **-- **                  Video Applications-- **                  Advanced Products Group-- **                  Xilinx, Inc.-- **-- **                  Copyright (c) 2001 Xilinx, Inc.-- **                  All rights reserved-- **-- **                  Date:   Feb. 10, 2002-- **-- **                  RESTRICTED RIGHTS LEGEND-- **-- **      This software has not been published by the author, and -- **      has been disclosed to others for the purpose of enhancing -- **      and promoting design productivity in Xilinx products.-- **-- **      Therefore use, duplication or disclosure, now and in the -- **      future should give consideration to the productivity -- **      enhancements afforded the user of this code by the author's -- **      efforts.  Thank you for using our products !-- **-- ** Disclaimer:  THESE DESIGNS ARE PROVIDED "AS IS" WITH NO WARRANTY -- **              WHATSOEVER AND XILINX SPECIFICALLY DISCLAIMS ANY -- **              IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR-- **              A PARTICULAR PURPOSE, OR AGAINST INFRINGEMENT.-- ** Module: dct8x8 : -- ** A 1D-DCT is implemented on the input pixels first. The output of this-- ** called  the intermediate value is stored in a RAM. The 2nd 1D-DCT operation -- ** is done on this stored value to give the final 2D-DCT ouput dct_2d. The -- ** inputs are 8 std_logics wide and the 2d-dct ouputs are 9 std_logics wide.-- ** 1st 1D section-- ** The input signals are taken one pixel at a time in the order x00 to x07,-- ** x10 to x07 and so on upto x77. These inputs are fed into a 8 std_logic shift-- ** register. The outputs of the 8 std_logic shift registers are registered by the -- ** div8clk which is the CLK signal divided by 8. This will enable us to -- ** register in 8 pixels (one row) at a time. The pixels are paired up in an -- ** adder subtractor in the order xk0,xk7:xk1,xk6:xk2,xk5:xk3,xk4. The adder -- ** subtractor is tied to CLK. For every clk, the adder/subtractor module -- ** alternaltley chooses addtion and subtraction. This selection is done by-- ** the toggle flop. The ouput of the addsub is fed into a muliplier whose -- ** other input is connected to stored values in registers which act as -- ** memory. The ouput of the 4 mulipliers are added at every CLK in the -- ** final adder. The ouput of the  adder z_out is the 1D-DCT values given -- ** out in the order in which the inputs were read in.-- ** It takes 8 clks to read in the first set of inputs, 1 clk to register -- ** inputs,1 clk to do add/sub, 1clk to get absolute value,-- ** 1 clk for multiplication, 2 clk for the final adder. total = 14 clks to get -- ** the 1st z_out value. Every subsequent clk gives out the next z_out value.-- ** So to get all the 64 values we need  11+63=74 clks.-- ** Storage / RAM section-- ** The ouputs z_out of the adder are stored in RAMs. Two RAMs are used so -- ** that data write can be continuous. The 1st valid input for the RAM1 is -- ** available at the 15th clk. So the RAM1 enable is active after 15 clks. -- ** After this the write operation continues for 64 clks . At the 65th clock, -- ** since z_out is continuous, we get the next valid z_out_00. This 2nd set of-- ** valid 1D-DCT coefficients are written into RAM2 which is enabled at 15+64 -- ** clks. So at 65th clk, RAM1 goes into read mode for the next 64 clks and -- ** RAM2 is in write mode. After this for every 64 clks, the read and write -- ** switches between the 2 RAMS.-- ** 2nd 1D-DCT section-- ** After the 1st 79th clk when RAM1 is full, the 2nd 1d calculations can -- ** start. The second 1D implementation is the same as the 1st 1D -- ** implementation with the inputs now coming from either RAM1 or RAM2. Also,-- ** the inputs are read in one column at a time in the order z00 to z70, z10 to -- ** z70 upto z77. The oupts from the adder in the 2nd section are the 2D-DCT -- ** coeeficients.-- **********************************************************************library IEEE; use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;use IEEE.numeric_std.all;--library virtex; --use virtex.components.all; --library synplify; --use synplify.attributes.all; library unisims_ver; -- include this for modelsim simulation                     -- when using mult18x18ENTITY dct IS   PORT (      CLK                     : IN std_logic;         RST                     : IN std_logic;         xin                     : IN std_logic_vector(7 downto 0);   --  8 bit input.            dct_2d                  : OUT std_logic_vector(11 downto 0);         rdy_out                 : OUT std_logic);   END dct;ARCHITECTURE logic OF dct IS-- The max value of a pixel after processing (to make their expected -- mean to zero) is 127. If all the values in a row are 127, the max value of -- the product terms would be (127*8)*(23170/256) and that of z_out_int would -- be (127*8)*23170/65536. This value divided by 2raised to 16 is -- equivalent to ignoring the 16 lsb std_logics of the value    -- 1D section signal xa0_in, xa1_in, xa2_in, xa3_in,        xa4_in, xa5_in, xa6_in, xa7_in:           std_logic_vector(7 downto 0);signal xa0_reg, xa1_reg, xa2_reg, xa3_reg,        xa4_reg, xa5_reg, xa6_reg, xa7_reg:       std_logic_vector (8 downto 0);signal addsub1a_comp,addsub2a_comp,       addsub3a_comp,addsub4a_comp :             std_logic_vector (7 downto 0);signal add_sub1a,add_sub2a,add_sub3a,add_sub4a : std_logic_vector (9 downto 0);signal save_sign1a,save_sign2a,       save_sign3a,save_sign4a :                 std_logic;signal xor1a,xor2a,xor3a,xor4a: std_logic;signal p1a,p2a,p3a,p4a :                         std_logic_vector (18 downto 0);signal p1a_all,p2a_all,p3a_all,p4a_all :         std_logic_vector (14 downto 0);   -- assign as 36 std_logic wide signalsignal i_wait                   :  std_logic_vector(1 downto 0);   signal toggleA                  :  std_logic;   signal z_out_int1               :  std_logic_vector(18 downto 0);   signal z_out_int2               :  std_logic_vector(18 downto 0);   signal z_out_int                :  std_logic_vector(18 downto 0);   signal z_out_rnd                :  std_logic_vector(10 downto 0);   signal z_out                    :  std_logic_vector(10 downto 0);   signal indexi                   :  integer;      -- clks and counters signal cntr12                   :  std_logic_vector(3 downto 0);   signal cntr8                    :  std_logic_vector(3 downto 0);   signal cntr79                   :  std_logic_vector(6 downto 0);   signal wr_cntr                  :  std_logic_vector(6 downto 0);   signal rd_cntr                  :  std_logic_vector(6 downto 0);   signal cntr92                   :  std_logic_vector(6 downto 0);   -- memory section signal  memory1a, memory2a, memory3a, memory4a: std_logic_vector(7 downto 0);signal data_out                 :  std_logic_vector(10 downto 0);   signal en_ram1                  :  std_logic;   signal en_dct2d                 :  std_logic;   signal en_ram1reg               :  std_logic;   signal en_dct2d_reg             :  std_logic;      type ram1a_mem is array (0 to 63) of std_logic_vector(10 downto 0);signal ram1_mem                 :  ram1a_mem;   --  add the following to infer block RAM in synlpicity   --    synthesis syn_ramstyle = "block_ram"  //shd be within /*..*/   type ram2a_mem is array (0 to 63) of std_logic_vector(10 downto 0);signal ram2_mem                 :  ram2a_mem;   --  add the following to infer block RAM in synlpicity   --    synthesis syn_ramstyle = "block_ram"  //shd be within /*..*/   -- 2D section signal data_out_final           :  std_logic_vector(10 downto 0);   signal xb0_in, xb1_in, xb2_in, xb3_in,        xb4_in, xb5_in, xb6_in, xb7_in :       std_logic_vector(10 downto 0);signal xb0_reg, xb1_reg, xb2_reg, xb3_reg,        xb4_reg, xb5_reg, xb6_reg, xb7_reg :   std_logic_vector(11 downto 0);signal add_sub1b,add_sub2b,add_sub3b,add_sub4b: std_logic_vector(11 downto 0);signal addsub1b_comp,addsub2b_comp,       addsub3b_comp,addsub4b_comp :          std_logic_vector (10 downto 0);signal save_sign1b,save_sign2b,save_sign3b,save_sign4b : std_logic;signal xor1b,xor2b,xor3b,xor4b: std_logic;signal p1b,p2b,p3b,p4b: std_logic_vector(19 downto 0);signal p1b_all,p2b_all,p3b_all,p4b_all : std_logic_vector (17 downto 0);                     -- assign as 36 std_logic wide signal if using mult18x18signal toggleB                  :  std_logic;   signal dct2d_int1               :  std_logic_vector(19 downto 0);   signal dct2d_int2               :  std_logic_vector(19 downto 0);   signal dct_2d_int               :  std_logic_vector(19 downto 0);   signal dct_2d_rnd               :  std_logic_vector(11 downto 0);      -- rounding of the valueBEGIN   --  1D-DCT BEGIN    -- store  1D-DCT constant coeeficient values for multipliers */      PROCESS (RST, CLK)   BEGIN      IF (RST = '1') THEN         memory1a <= "00000000";             memory2a <= "00000000";             memory3a <= "00000000";             memory4a <= "00000000";          ELSIF (CLK'EVENT AND CLK = '1') THEN         CASE indexi IS            WHEN 0 =>                     memory1a <= "01011011";                         memory2a <= "01011011";                         memory3a <= "01011011";                         memory4a <= "01011011";                WHEN 1 =>                     memory1a <= "01111110";                         memory2a <= "01101010";                         memory3a <= "01000111";                         memory4a <= "00011001";                WHEN 2 =>                     memory1a <= "01110110";                         memory2a <= "00110001";                         memory3a <= "10110001";    -- -8'd49;                      memory4a <= "11110110";    --  end -8'd118;end            WHEN 3 =>                     memory1a <= "01101010";                         memory2a <= "10011001";    -- -8'd25;                       memory3a <= "11111110";    -- -8'd126;                      memory4a <= "11000111";                WHEN 4 =>                     memory1a <= "01011011";                         memory2a<= "11011011";    -- -8'd91;                      memory3a <= "11011011";    -- -8'd91;                      memory4a <= "01011011";                WHEN 5 =>                     memory1a <= "01000111";                         memory2a <= "11111110";    -- -8'd126;                      memory3a <= "00011001";                         memory4a <= "01101010";                WHEN 6 =>                     memory1a <= "00110001";                         memory2a <= "11110110";    -- -8'd118;                      memory3a <= "01110110";                         memory4a <= "10110001";                WHEN 7 =>                     memory1a <= "00011001";                         memory2a <= "11000111";    -- -8'd71;                      memory3a <= "01101010";                         memory4a <= "11111110";                WHEN OTHERS =>                     NULL;                        ---8'd126;end                     END CASE;      END IF;   END PROCESS;   -- 8-std_logic input shifted 8 times thru a shift register   PROCESS (CLK, RST)   BEGIN      IF (RST = '1') THEN         xa0_in <= "00000000";    xa1_in <= "00000000";             xa2_in <= "00000000";    xa3_in <= "00000000";             xa4_in <= "00000000";    xa5_in <= "00000000";             xa6_in <= "00000000";    xa7_in <= "00000000";          ELSIF (CLK'EVENT AND CLK = '1') THEN         xa0_in <= xin;    xa1_in <= xa0_in;             xa2_in <= xa1_in;    xa3_in <= xa2_in;             xa4_in <= xa3_in;    xa5_in <= xa4_in;             xa6_in <= xa5_in;    xa7_in <= xa6_in;          END IF;   END PROCESS;   -- shifted inputs registered every 8th clk (using cntr8)   PROCESS (CLK, RST)   BEGIN      IF (RST = '1') THEN         cntr8 <= "0000";          ELSIF (CLK'EVENT AND CLK = '1') THEN         IF (cntr8 < "1000") THEN            cntr8 <= cntr8 + "0001";             ELSE            cntr8 <= "0001";             END IF;      END IF;   END PROCESS;   PROCESS (CLK, RST)   BEGIN      IF (RST = '1') THEN         xa0_reg <= "000000000";    xa1_reg <= "000000000";             xa2_reg <= "000000000";    xa3_reg <= "000000000";             xa4_reg <= "000000000";    xa5_reg <= "000000000";             xa6_reg <= "000000000";    xa7_reg <= "000000000";          ELSIF (CLK'EVENT AND CLK = '1') THEN         IF (cntr8 = "1000") THEN            xa0_reg <= xa0_in(7) & xa0_in;    xa1_reg <= xa1_in(7) & xa1_in;                xa2_reg <= xa2_in(7) & xa2_in;    xa3_reg <= xa3_in(7) & xa3_in;                xa4_reg <= xa4_in(7) & xa4_in;    xa5_reg <= xa5_in(7) & xa5_in;                xa6_reg <= xa6_in(7) & xa6_in;    xa7_reg <= xa7_in(7) & xa7_in;             ELSE                     END IF;      END IF;   END PROCESS;   PROCESS (CLK, RST)   BEGIN      IF (RST = '1') THEN         toggleA <= '0';          ELSIF (CLK'EVENT AND CLK = '1') THEN         toggleA <= NOT toggleA;          END IF;   END PROCESS;   -- adder / subtractor block    PROCESS (CLK, RST)   BEGIN      IF (RST = '1') THEN

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久蜜桃av一区精品变态类天堂| 久久久久久久一区| 国产美女视频一区| 亚洲五码中文字幕| 国产精品久久午夜夜伦鲁鲁| 日韩精品一区二区三区四区| 欧美视频在线播放| av一二三不卡影片| 国产一二精品视频| 天天色图综合网| 亚洲精品va在线观看| 国产日韩v精品一区二区| 日韩欧美精品在线视频| 欧美日韩在线播放| 91影视在线播放| 高清shemale亚洲人妖| 久久国产欧美日韩精品| 日韩成人av影视| 视频一区在线视频| 亚洲一区二区不卡免费| 亚洲乱码日产精品bd| 中文一区二区在线观看| 久久久久综合网| 久久嫩草精品久久久久| 精品卡一卡二卡三卡四在线| 6080日韩午夜伦伦午夜伦| 欧美三级电影精品| 欧美色图天堂网| 色噜噜狠狠成人中文综合| 91麻豆国产福利在线观看| 91小视频在线免费看| 99精品在线免费| 91亚洲精品乱码久久久久久蜜桃| av成人免费在线| 91浏览器在线视频| 色嗨嗨av一区二区三区| 一本在线高清不卡dvd| 91在线无精精品入口| 色先锋久久av资源部| 精品日韩欧美在线| 精品福利一二区| 久久久久88色偷偷免费| 久久久久久久久岛国免费| 久久久噜噜噜久久人人看| 国产视频一区二区在线| 中文字幕一区二区三区在线不卡| 亚洲天堂成人网| 亚洲一区二区三区四区不卡| 无吗不卡中文字幕| 久久99国产精品免费| 国产精品一线二线三线| 不卡电影免费在线播放一区| 色综合欧美在线视频区| 欧美性一二三区| 日韩一区二区电影网| 欧美精品一区二区久久婷婷| 欧美激情中文不卡| 尤物在线观看一区| 奇米综合一区二区三区精品视频| 老色鬼精品视频在线观看播放| 国产精品一二三区在线| 91麻豆国产精品久久| 欧美军同video69gay| 精品国产免费一区二区三区四区| 国产日韩欧美麻豆| 一区二区三区在线视频观看| 日韩av一区二区在线影视| 国产精品99精品久久免费| 99视频超级精品| 欧美日韩一区二区三区在线 | 亚洲成人av福利| 美女看a上一区| 成人激情小说网站| 制服.丝袜.亚洲.中文.综合| 日本一区免费视频| 亚洲动漫第一页| 国产精品亚洲成人| 欧美午夜免费电影| 久久免费午夜影院| 亚洲一区二区三区国产| 国产很黄免费观看久久| 99这里只有久久精品视频| 67194成人在线观看| 国产精品天天摸av网| 男人的j进女人的j一区| 91片黄在线观看| 精品国产91乱码一区二区三区| 亚洲伦理在线免费看| 韩国一区二区三区| 欧美色爱综合网| 国产精品网站在线观看| 麻豆精品一区二区av白丝在线| 一本久久精品一区二区| 久久午夜色播影院免费高清| 性做久久久久久免费观看欧美| 国产成a人亚洲精| 欧美一区二区三区白人| 一区二区三区四区中文字幕| 国产精品一区二区x88av| 欧美群妇大交群的观看方式| 中文字幕一区二区三区在线不卡 | 国产在线视视频有精品| 欧美伊人久久久久久久久影院| 国产无一区二区| 蜜臀av在线播放一区二区三区| 在线亚洲欧美专区二区| 欧美国产亚洲另类动漫| 久久99精品久久久久久久久久久久| 日本黄色一区二区| 亚洲视频一二三区| 成人一级片在线观看| 2023国产精华国产精品| 蜜臀99久久精品久久久久久软件| 欧美色精品天天在线观看视频| 国产精品美女久久久久aⅴ | 99久久伊人久久99| 国产亚洲欧美色| 激情综合色综合久久综合| 欧美日韩精品三区| 伊人开心综合网| 色婷婷一区二区三区四区| 国产精品久久毛片| 懂色一区二区三区免费观看| 久久九九国产精品| 国产九色sp调教91| 国产丝袜美腿一区二区三区| 国产久卡久卡久卡久卡视频精品| 精品国产91洋老外米糕| 久88久久88久久久| 精品精品欲导航| 久久99精品久久久久| 精品免费视频.| 精品一区二区国语对白| 精品三级av在线| 国产精品一二三四区| 国产欧美日韩在线看| 成a人片亚洲日本久久| 一色桃子久久精品亚洲| 99久久久精品| 亚洲综合在线观看视频| 欧美三级电影一区| 免费一级片91| 久久影视一区二区| 成人在线视频一区二区| 中文字幕不卡在线观看| 91小视频免费看| 亚洲国产日韩综合久久精品| 91精品国产综合久久久久久漫画 | 粉嫩aⅴ一区二区三区四区| 国产精品亲子伦对白| 97aⅴ精品视频一二三区| 亚洲综合色丁香婷婷六月图片| 欧美久久久久中文字幕| 精一区二区三区| 亚洲国产精品99久久久久久久久| 92国产精品观看| 日韩在线一区二区| 久久九九久久九九| 色婷婷精品久久二区二区蜜臂av| 午夜欧美电影在线观看| 精品99久久久久久| 97久久精品人人做人人爽 | 婷婷丁香久久五月婷婷| 日韩精品专区在线影院观看 | eeuss鲁一区二区三区| 亚洲一区二区五区| 国产精品传媒在线| 欧美三级视频在线观看| 久久国产精品免费| 亚洲卡通动漫在线| 欧美一区二区三区婷婷月色| 成人一区二区在线观看| 亚洲高清免费观看 | 欧美韩日一区二区三区四区| 欧美综合一区二区| 国产一区免费电影| 一区二区三区资源| 精品成人在线观看| 在线观看亚洲a| 国产精品乡下勾搭老头1| 亚洲一区二区三区影院| 国产偷国产偷精品高清尤物 | 日韩欧美激情四射| av不卡在线播放| 狠狠色丁香久久婷婷综合丁香| 亚洲乱码国产乱码精品精的特点| 日韩免费成人网| 在线视频综合导航| 国产成人小视频| 欧美a级一区二区| 一区二区日韩av| 国产日韩精品一区| 日韩美一区二区三区| 欧洲一区二区三区免费视频| 国产一区二区伦理片| 蜜臀av亚洲一区中文字幕| 一区二区不卡在线播放 | 国产白丝网站精品污在线入口| 亚洲国产精品久久人人爱| 国产精品久久久一本精品|