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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dct.v

?? Verilog code for 2D-DCT with detailed documentation.
?? V
?? 第 1 頁 / 共 3 頁
字號:
       end
   else  if (i_wait != 2'b00)
      begin
      i_wait  <= i_wait - 1;
      end
   else
      begin
      i_wait  <= 2'b00;
      end
   end

// First valid add_sub appears at the 10th clk (8 clks for shifting inputs,
// 9th clk for registering shifted input and 10th clk for add_sub
// to synchronize the i value to the add_sub value, i value is incremented
// only after 10 clks using i_wait
/* sign and magnitude separated here. magnitude of 9 bits is stored in *comp */

always @ (posedge RST or posedge CLK)
begin
    if (RST)
       begin  
         addsub1a_comp <= 9'b0; save_sign1a <= 1'b0;
       end
    else 
       begin
       case (add_sub1a[9])
       1'b0: begin 
              addsub1a_comp <= add_sub1a; save_sign1a <= 1'b0; 
              end
       1'b1: begin 
              addsub1a_comp <= (-add_sub1a) ; save_sign1a <= 1'b1; 
              end 
       endcase
       end
end

always @ (posedge RST or posedge CLK)
begin
    if (RST)
       begin  
         addsub2a_comp <= 9'b0; save_sign2a <= 1'b0;
       end
    else 
       begin
       case (add_sub2a[9])
       1'b0: begin 
              addsub2a_comp <= add_sub2a; save_sign2a <= 1'b0;
              end
       1'b1: begin 
              addsub2a_comp <= (-add_sub2a) ; save_sign2a <= 1'b1; 
              end 
       endcase
       end
end

always @ (posedge RST or posedge CLK)
begin
    if (RST)
       begin  
         addsub3a_comp <= 9'b0; save_sign3a <= 1'b0; 
       end
    else 
       begin
       case (add_sub3a[9])
       1'b0: begin 
              addsub3a_comp <= add_sub3a; save_sign3a <= 1'b0; 
              end
       1'b1: begin 
              addsub3a_comp <= (-add_sub3a); save_sign3a <= 1'b1; 
              end 
       endcase
       end
end

always @ (posedge RST or posedge CLK)
begin
    if (RST)
       begin  
         addsub4a_comp <= 9'b0; save_sign4a <= 1'b0; 
       end
    else 
       begin
       case (add_sub4a[9])
       1'b0: begin 
              addsub4a_comp <= add_sub4a; save_sign4a <= 1'b0; 
              end
       1'b1: begin 
              addsub4a_comp <= (-add_sub4a); save_sign4a <= 1'b1; 
              end 
       endcase
       end
end

     assign p1a_all = addsub1a_comp * memory1a[6:0];/* 9 bits * 7 bits = 16 bits*/
     assign p2a_all = addsub2a_comp * memory2a[6:0];
     assign p3a_all = addsub3a_comp * memory3a[6:0];
     assign p4a_all = addsub4a_comp * memory4a[6:0];

/* The following instantiation can be used while targetting Virtex2 */
//MULT18X18 mult1a (.A({9'b0,addsub1a_comp}), .B({11'b0,memory1a[6:0]}), .P(p1a_all));
//MULT18X18 mult2a (.A({9'b0,addsub2a_comp}), .B({11'b0,memory2a[6:0]}), .P(p2a_all));
//MULT18X18 mult3a (.A({9'b0,addsub3a_comp}), .B({11'b0,memory3a[6:0]}), .P(p3a_all));
//MULT18X18 mult4a (.A({9'b0,addsub4a_comp}), .B({11'b0,memory4a[6:0]}), .P(p4a_all));

always @ (posedge RST or posedge CLK)
  begin
    if (RST)
      begin
        p1a <= 18'b0; p2a <= 18'b0; p3a <= 18'b0; p4a <= 18'b0; indexi<= 7;
      end /* p*a is extended to one more bit to take into acoount the sign */
    else if (i_wait == 2'b00)
      begin
   
        
        p1a <= (save_sign1a ^ memory1a[7]) ? (-p1a_all[15:0]) :(p1a_all[15:0]);
        p2a <= (save_sign2a ^ memory2a[7]) ? (-p2a_all[15:0]) :(p2a_all[15:0]);
        p3a <= (save_sign3a ^ memory3a[7]) ? (-p3a_all[15:0]) :(p3a_all[15:0]);
        p4a <= (save_sign4a ^ memory4a[7]) ? (-p4a_all[15:0]) :(p4a_all[15:0]);
        

        if (indexi == 7)
          indexi <= 0;
        else
          indexi <= indexi + 1;
        end
  end


/*always @ (posedge RST or posedge CLK)
  begin
    if (RST)
      begin
        p1a <= 19'b0; p2a <= 19'b0; p3a <= 19'b0; p4a <= 19'b0; indexi<= 7;
      end
    else if (i_wait == 2'b00)
      begin
        p1a <= (save_sign1a ^ memory1a[7]) ? (-addsub1a_comp * memory1a[6:0]) :(addsub1a_comp * memory1a[6:0]);
        p2a <= (save_sign2a ^ memory2a[7]) ? (-addsub2a_comp * memory2a[6:0]) :(addsub2a_comp * memory2a[6:0]);
        p3a <= (save_sign3a ^ memory3a[7]) ? (-addsub3a_comp * memory3a[6:0]) :(addsub3a_comp * memory3a[6:0]);
        p4a <= (save_sign4a ^ memory4a[7]) ? (-addsub4a_comp * memory4a[6:0]) :(addsub4a_comp * memory4a[6:0]);
        if (indexi == 7)
          indexi <= 0;
        else
          indexi <= indexi + 1;
      end
  end*/

/* Final adder. Adding the ouputs of the 4 multipliers */

always @ (posedge CLK or posedge RST)
   begin
   if (RST)
       begin
       z_out_int1 <= 19'b0; z_out_int2 <= 19'b0; z_out_int <= 19'b0;
       end
   else
       begin
       z_out_int1 <= (p1a + p2a);
       z_out_int2 <= (p3a + p4a);
       z_out_int <= (z_out_int1 + z_out_int2);
       end
   end

// rounding of the value

assign z_out_rnd = z_out_int[7] ? (z_out_int[18:8] + 1'b1) : z_out_int[18:8];

/* 1 sign bit, 11 data bit */
assign z_out = z_out_rnd;

/* 1D-DCT END */

/* tranpose memory to store intermediate Z coeeficients */
/* store the 64 coeeficients in the first 64 locations of the RAM */
/* first valid adder output is at the 15th clk. (input reg + 8 bit SR + add_sub + comp. Signal + reg prod 
+ 2 partial prod adds) So the RAM is enabled at the 15th clk)*/

always @ (posedge CLK or posedge RST)
   begin
   if (RST)
       begin
       cntr12 <= 4'b0;
       end
   else
       begin
       cntr12 <= cntr12 + 1;
       end
   end

/* enable RAM at the 14th clk after RST goes inactive */

assign en_ram1 = RST ? 1'b0 : (cntr12== 4'b1101) ? 1'b1 : en_ram1;

always @ (posedge CLK or posedge RST)
   begin
   if (RST)
       begin
	   en_ram1reg <= 1'b0;
       end
   else
       begin
       en_ram1reg <= en_ram1 ;
       end
   end

/* After the RAM is enabled, data is written into the RAM1 for 64 clk cycles. Data is written in into
each consecutive location . After 64 locations are written into, RAM1 goes into read mode and RAM2 goes into
write mode. The cycle then repeats.
For either RAM, data is written into each consecutive location. However , data is read in a different order. If data
is assumed to be written in each row at a time, in an 8x8 matrix, data is read each column at a time. ie., after
the first data is read out, every eight data is read out . Then the 2nd data is read out followed be every 8th.

the write is as follows:
1w(ram_locn1) 2w(ram_locn2) 3w(ram_locn3) 4w(ram_locn4) 5w(ram_locn5) 6w(ram_locn6) 7w(ram_locn7) 8w(ram_locn8)
9w(ram_locn9) 10w(ram_locn10) 11w(ram_locn11) 12w(ram_locn12) 13w(ram_locn13) 14w(ram_locn14) 15w(ram_locn15) 16w(ram_locn16)
..................
57w(ram_locn57) 58w(ram_locn58) 59w(ram_locn59) 60w(ram_locn60) 61w(ram_locn61) 62w(ram_locn62) 63w(ram_locn63) 64w(ram_locn64)

the read is as follows:
1r(ram_locn1)  9r(ram_locn2) . . . 57r(ram_locn8)
2r(ram_locn9) 10r(ram_locn10) . . . 58r(ram_locn16) 
3r(ram_locn17) 11r(ram_locn18) . . . 59r(ram_locn24)
4r(ram_locn25) 12r(ram_locn26) . . . 60r(ram_locn32)
5r(ram_locn33) 13r(ram_locn34) . . . 61r(ram_locn40)
6r(ram_locn41) 14r(ram_locn42) . . . 62r(ram_locn48)
7r(ram_locn49) 15r(ram_locn50) . . . 63r(ram_locn56)
8r(ram_locn57) 16r(ram_locn58) . . . 64r(ram_locn64)

where "xw" is the xth write and "ram_locnx" is the xth ram location and "xr" is the xth read. Reading 
is advanced by the read counter rd_cntr, nd writing by the write counter wr_cntr. */


always @ (posedge CLK or posedge RST)
   begin
   if (RST)
       begin
	   rd_cntr[5:3] <= 3'b111;
       end
   else
       begin 
	   if (en_ram1reg == 1'b1)
	       rd_cntr[5:3] <= rd_cntr[5:3] + 1;
	   end
   end

always @ (posedge CLK or posedge RST)
   begin
   if (RST)
       begin
	   rd_cntr[2:0] <= 3'b111;
       end
   else
       begin 
	   if (en_ram1reg == 1'b1 && rd_cntr[5:3] == 3'b111)
	       rd_cntr[2:0] <= rd_cntr[2:0] + 1;
       end
   end

always @ (posedge CLK or posedge RST)
   begin
   if (RST)
       begin
	   rd_cntr[6] <= 1'b1;
       end
   else
       begin 
       if (en_ram1reg == 1'b1 && rd_cntr[5:0] == 6'b111111)
          rd_cntr[6] <= ~rd_cntr[6];
       end
   end


always @ (posedge CLK or posedge RST)
   begin
   if (RST)
       begin
       wr_cntr <= 7'b1111111;
       end
   else begin
       if (en_ram1reg == 1'b1)
          wr_cntr <= wr_cntr + 1;
	   else 
	      wr_cntr <= 7'b0;
       end
   end


initial
begin
ram2_mem[0] <= 16'b0; ram2_mem[1] <= 16'b0; ram2_mem[2] <= 16'b0; ram2_mem[3] <= 16'b0; ram2_mem[4] <= 16'b0;
ram2_mem[5] <= 16'b0; ram2_mem[6] <= 16'b0; ram2_mem[7] <= 16'b0; ram2_mem[8] <= 16'b0; ram2_mem[9] <= 16'b0;
ram2_mem[10] <= 16'b0; ram2_mem[11] <= 16'b0; ram2_mem[12] <= 16'b0; ram2_mem[13] <= 16'b0; ram2_mem[14] <= 16'b0;
ram2_mem[15] <= 16'b0; ram2_mem[16] <= 16'b0; ram2_mem[17] <= 16'b0; ram2_mem[18] <= 16'b0; ram2_mem[19] <= 16'b0;
ram2_mem[20] <= 16'b0; ram2_mem[21] <= 16'b0; ram2_mem[22] <= 16'b0; ram2_mem[23] <= 16'b0; ram2_mem[24] <= 16'b0;
ram2_mem[25] <= 16'b0; ram2_mem[26] <= 16'b0; ram2_mem[27] <= 16'b0; ram2_mem[28] <= 16'b0; ram2_mem[29] <= 16'b0;
ram2_mem[30] <= 16'b0; ram2_mem[31] <= 16'b0; ram2_mem[32] <= 16'b0; ram2_mem[33] <= 16'b0; ram2_mem[34] <= 16'b0;
ram2_mem[35] <= 16'b0; ram2_mem[36] <= 16'b0; ram2_mem[37] <= 16'b0; ram2_mem[38] <= 16'b0; ram2_mem[39] <= 16'b0;
ram2_mem[40] <= 16'b0; ram2_mem[41] <= 16'b0; ram2_mem[42] <= 16'b0; ram2_mem[43] <= 16'b0; ram2_mem[44] <= 16'b0;
ram2_mem[45] <= 16'b0; ram2_mem[46] <= 16'b0; ram2_mem[47] <= 16'b0; ram2_mem[48] <= 16'b0; ram2_mem[49] <= 16'b0;
ram2_mem[50] <= 16'b0; ram2_mem[51] <= 16'b0; ram2_mem[52] <= 16'b0; ram2_mem[53] <= 16'b0; ram2_mem[54] <= 16'b0;
ram2_mem[55] <= 16'b0; ram2_mem[56] <= 16'b0; ram2_mem[57] <= 16'b0; ram2_mem[58] <= 16'b0; ram2_mem[59] <= 16'b0;
ram2_mem[60] <= 16'b0; ram2_mem[61] <= 16'b0; ram2_mem[62] <= 16'b0; ram2_mem[63] <= 16'b0;
 
ram1_mem[0] <= 16'b0; ram1_mem[1] <= 16'b0; ram1_mem[2] <= 16'b0; ram1_mem[3] <= 16'b0; ram1_mem[4] <= 16'b0;
ram1_mem[5] <= 16'b0; ram1_mem[6] <= 16'b0; ram1_mem[7] <= 16'b0; ram1_mem[8] <= 16'b0; ram1_mem[9] <= 16'b0;
ram1_mem[10] <= 16'b0; ram1_mem[11] <= 16'b0; ram1_mem[12] <= 16'b0; ram1_mem[13] <= 16'b0; ram1_mem[14] <= 16'b0;
ram1_mem[15] <= 16'b0; ram1_mem[16] <= 16'b0; ram1_mem[17] <= 16'b0; ram1_mem[18] <= 16'b0; ram1_mem[19] <= 16'b0;
ram1_mem[20] <= 16'b0; ram1_mem[21] <= 16'b0; ram1_mem[22] <= 16'b0; ram1_mem[23] <= 16'b0; ram1_mem[24] <= 16'b0;
ram1_mem[25] <= 16'b0; ram1_mem[26] <= 16'b0; ram1_mem[27] <= 16'b0; ram1_mem[28] <= 16'b0; ram1_mem[29] <= 16'b0;
ram1_mem[30] <= 16'b0; ram1_mem[31] <= 16'b0; ram1_mem[32] <= 16'b0; ram1_mem[33] <= 16'b0; ram1_mem[34] <= 16'b0;
ram1_mem[35] <= 16'b0; ram1_mem[36] <= 16'b0; ram1_mem[37] <= 16'b0; ram1_mem[38] <= 16'b0; ram1_mem[39] <= 16'b0;
ram1_mem[40] <= 16'b0; ram1_mem[41] <= 16'b0; ram1_mem[42] <= 16'b0; ram1_mem[43] <= 16'b0; ram1_mem[44] <= 16'b0;
ram1_mem[45] <= 16'b0; ram1_mem[46] <= 16'b0; ram1_mem[47] <= 16'b0; ram1_mem[48] <= 16'b0; ram1_mem[49] <= 16'b0;
ram1_mem[50] <= 16'b0; ram1_mem[51] <= 16'b0; ram1_mem[52] <= 16'b0; ram1_mem[53] <= 16'b0; ram1_mem[54] <= 16'b0;
ram1_mem[55] <= 16'b0; ram1_mem[56] <= 16'b0; ram1_mem[57] <= 16'b0; ram1_mem[58] <= 16'b0; ram1_mem[59] <= 16'b0;
ram1_mem[60] <= 16'b0; ram1_mem[61] <= 16'b0; ram1_mem[62] <= 16'b0; ram1_mem[63] <= 16'b0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品亚洲乱码伦伦中文| 国产婷婷色一区二区三区| 91精品国产色综合久久ai换脸| 欧美精品一区二区三区在线播放 | 99re成人精品视频| 欧美日韩和欧美的一区二区| 国产精品三级久久久久三级| 麻豆精品在线视频| 欧美视频一区二区三区四区 | 成年人国产精品| 日韩精品一区二区三区在线观看| 亚洲综合在线视频| 丁香一区二区三区| 精品少妇一区二区三区视频免付费 | 97精品久久久久中文字幕| 日韩欧美国产麻豆| 亚洲va在线va天堂| 色婷婷国产精品久久包臀| 中文字幕国产一区二区| 国产在线看一区| 欧美岛国在线观看| 理论片日本一区| 5858s免费视频成人| 亚洲综合一区在线| 91黄视频在线| 亚洲黄色免费网站| 97精品电影院| 一区二区三区加勒比av| 色综合色狠狠天天综合色| 中文字幕一区二区三区蜜月| 成人在线视频首页| 国产欧美精品一区二区色综合| 国产一区二区三区综合| 337p日本欧洲亚洲大胆精品| 国产综合久久久久久鬼色 | 成人免费黄色在线| 国产欧美日韩视频一区二区| 韩国理伦片一区二区三区在线播放| 日韩欧美一区中文| 久久国产精品99久久久久久老狼 | 欧美日韩国产在线播放网站| 亚洲永久免费视频| 欧美美女喷水视频| 久久99久久精品| 久久精品视频一区二区| 成人国产亚洲欧美成人综合网| 亚洲欧洲精品一区二区精品久久久| 成人高清伦理免费影院在线观看| 中文字幕制服丝袜一区二区三区| 99视频国产精品| 亚洲欧美乱综合| 欧美日韩1234| 久久精品噜噜噜成人av农村| xnxx国产精品| 97aⅴ精品视频一二三区| 一区二区三区四区在线| 9191久久久久久久久久久| 美腿丝袜亚洲综合| 中文字幕第一页久久| 色素色在线综合| 毛片av一区二区三区| 久久久久9999亚洲精品| 91视频国产观看| 免费成人在线网站| 国产精品麻豆99久久久久久| 欧美日韩在线三级| 国产一区二区三区不卡在线观看 | 欧美精品在线观看一区二区| 久久精品免费观看| 亚洲精品免费在线观看| 欧美一级欧美一级在线播放| 成人免费毛片嘿嘿连载视频| 亚洲成人中文在线| 久久精品一二三| 欧美性视频一区二区三区| 国产一区二区三区日韩| 亚洲自拍偷拍综合| 久久久美女毛片| 欧美精品xxxxbbbb| www.激情成人| 国产一区二区按摩在线观看| 午夜激情综合网| 国产精品欧美精品| 日韩欧美在线网站| 精品视频全国免费看| 国产成人精品影视| 日本成人在线一区| 国产精品美女久久久久aⅴ| 欧美日本在线观看| 色婷婷综合久久久久中文| 国产精品1区2区3区| 日精品一区二区三区| 日韩理论片网站| 久久精品欧美一区二区三区不卡 | 国产成人亚洲精品青草天美 | 欧美成人艳星乳罩| 欧美午夜精品一区二区蜜桃| 成人激情开心网| 国产一二精品视频| 麻豆精品久久久| 日韩高清不卡一区二区三区| 一级女性全黄久久生活片免费| 国产精品二区一区二区aⅴ污介绍| 精品国产乱码久久久久久牛牛| 欧美丰满少妇xxxxx高潮对白| 色综合中文字幕| 91亚洲精品一区二区乱码| 国产98色在线|日韩| 国产精品一区二区三区四区| 久久成人免费网| 精品亚洲欧美一区| 激情偷乱视频一区二区三区| 久久99国产精品久久99果冻传媒| 五月天激情小说综合| 亚洲国产乱码最新视频 | 中文字幕在线观看一区| 中文字幕av免费专区久久| 欧美国产乱子伦| 国产欧美一区二区精品性色超碰| 久久久五月婷婷| 欧美国产亚洲另类动漫| 国产精品久久久久久久久晋中 | 亚洲国产视频在线| 亚洲国产精品影院| 午夜精品福利久久久| 秋霞午夜鲁丝一区二区老狼| 美腿丝袜亚洲色图| 国产精品一品二品| 成人avav影音| 在线观看一区不卡| 91精品在线免费| 久久亚洲综合av| 国产精品久久久一本精品| 亚洲日韩欧美一区二区在线| 一级日本不卡的影视| 日本vs亚洲vs韩国一区三区二区| 蜜桃精品视频在线观看| 激情五月婷婷综合网| 丁香另类激情小说| 欧美日韩午夜在线视频| 精品国产自在久精品国产| 国产人久久人人人人爽| 一区二区三区丝袜| 免费成人在线观看视频| 成人免费观看av| 69久久夜色精品国产69蝌蚪网| 精品少妇一区二区| 亚洲欧美综合另类在线卡通| 天天操天天色综合| 国产盗摄一区二区| 欧美午夜不卡在线观看免费| 精品毛片乱码1区2区3区| 中文字幕一区二区三区在线观看 | 欧美肥妇bbw| 亚洲国产精品成人综合色在线婷婷 | 日本免费新一区视频| 久久99久久99| 91丨九色丨蝌蚪丨老版| 欧美一区二区在线免费观看| 国产日韩精品一区二区三区| 一区二区三区精品久久久| 国产做a爰片久久毛片| 欧洲另类一二三四区| 久久亚洲精精品中文字幕早川悠里 | 欧美猛男男办公室激情| 国产视频一区在线观看| 午夜精品福利视频网站| 成人一区二区三区在线观看| 欧美日韩不卡一区二区| 亚洲人成网站影音先锋播放| 久久精品国产亚洲5555| 日本高清不卡视频| 国产精品私人自拍| 精品一区二区三区不卡| 欧美三级韩国三级日本一级| 国产精品传媒入口麻豆| 狠狠色丁香久久婷婷综合_中| 欧美日韩在线免费视频| 亚洲欧美日韩中文播放| 国产成人精品免费在线| 日韩一区二区精品葵司在线| 一区二区三区中文字幕精品精品 | 最近日韩中文字幕| 经典三级一区二区| 欧美一区二区三区四区高清| 亚洲欧美日韩电影| 成人黄色777网| 国产夜色精品一区二区av| 捆绑调教一区二区三区| 欧美精品乱码久久久久久按摩| 中文字幕一区二区在线观看| 国产成a人无v码亚洲福利| 欧美精品一区二区三区一线天视频| 视频在线观看一区二区三区| 欧美亚洲综合久久| 亚洲一区在线电影| 欧美视频在线一区| 亚洲影视在线播放| 欧美日韩亚洲另类| 婷婷激情综合网|