原创 基于分布式算法的fir设计

2009-1-11 13:11 2306 2 2 分类: FPGA/CPLD

本人的eda课程设计,希望对大家有帮助。


其中包含matlab的仿真


modelsim的仿真


以及vhdl代码以及测试文件


LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity fir is
 port(
  --input
  clk,rst:in std_logic;
  fir_in:in std_logic_vector(11 downto 0);
  --output
  fir_out:out std_logic_vector(26 downto 0)
  );
end fir;


architecture rtl of fir is
  --定义12位的fir_in_reg
  signal fir_in_reg: std_logic_vector(11 downto 0);
  --定义13位的shift_buf 的8个数组
  subtype bit13 is std_logic_vector(12 downto 0);
  type z8 is array(0 to 7) of bit13; --type z8 is array(0 to 7) of std_logic_vector(12 downto 0);可以吗????????????
  signal shift_buf: z8;
  --定义13位的加法寄存器 4个数组
  type add4 is array(0 to 3) of bit13;
  signal add_buf: add4;
  --定义13位的移位reg 4个数组
  type shift4 is array(0 to 3) of bit13;
  signal state_shift_buf: shift4;
  --用于LUT的输入(4位)
  signal table_4b: std_logic_vector(3 downto 0);
  --LUT的输出(12位)
  signal table_out_12b: std_logic_vector(11 downto 0);
  --sum(27位)
  signal sum: std_logic_vector(26 downto 0);
  --用于控制的信号
  signal divfre_count_4b: std_logic_vector(3 downto 0);
  signal clk_13: std_logic;
  signal state_reg: std_logic;
  --lut相关的信号
  signal sign_ex: std_logic_vector(26 downto 0);
  --与除2器有关信号
  signal delta_in: std_logic_vector(3 downto 0);
  signal delta_out: std_logic_vector(26 downto 0);
 begin
  --divfre_count_4b与clk_13寄存器
  process(clk,rst)
  begin
  if(rst='1') then
   divfre_count_4b<="0000";
   clk_13<='0';
  elsif(clk'event and clk='1') then
   if(divfre_count_4b="1101") then
    divfre_count_4b<="0000";
    clk_13<='1';
   else    
    divfre_count_4b<=divfre_count_4b+'1';
    clk_13<='0';
   end if;
  end if;
  end process;
  --数据输入寄存器 fir_in_reg 12位
  process(clk,rst,fir_in)
  begin
  if(rst='1') then
   fir_in_reg<="000000000000";
  elsif(clk'event and clk='1') then
   if(clk_13='1') then
   fir_in_reg<=fir_in;
   end if;
  end if;
  end process;
  --13位宽的shift_buf 的8个数组
  process(clk,rst,fir_in_reg)
  begin
  if(rst='1') then
   for i in 0 to 7 loop    
    shift_buf(i)<="0000000000000";
   end loop;
  elsif(clk'event and clk='1') then
   if(clk_13='1') then
   for i in 0 to 6 loop    
    shift_buf(i+1)<=shift_buf(i);
   end loop;
   shift_buf(0)(11 downto 0)<=fir_in_reg;
   shift_buf(0)(12)<=fir_in_reg(11);
   end if;
  end if;
  end process;
  --add_buf:13位宽 4个数组
  process(clk,rst,shift_buf)
  begin
  if(rst='1') then
   for i in 0 to 3 loop    
    add_buf(i)<="0000000000000";
   end loop;
  elsif(clk'event and clk='1') then
   if(clk_13='1') then
   for i in 0 to 3 loop
    add_buf(i)<=shift_buf(i)+shift_buf(7-i);--对称系数,相加。
   end loop;
   end if;
  end if;
  end process;
  --state_shift_buf 13位宽,4个数组
  process(clk,rst,add_buf)
  begin
  if(rst='1') then
   for i in 0 to 3 loop    
    state_shift_buf(i)<="0000000000000";
   end loop;
   state_reg<='0';
  elsif(clk'event and clk='1') then
   case state_reg is 
    when '0'=>
     for i in 0 to 3 loop
      state_shift_buf(i)<=add_buf(i);
     end loop;
     state_reg<='1';
    when '1'=>
     if(divfre_count_4b="1101") then
      state_reg<='0';
     else
      for i in 0 to 11 loop    
       --实现了四个12位移位寄存器(13位是符号为,不参与移位)
       state_shift_buf(0)(i)<=state_shift_buf(0)(i+1);
       state_shift_buf(1)(i)<=state_shift_buf(1)(i+1);
       state_shift_buf(2)(i)<=state_shift_buf(2)(i+1);
       state_shift_buf(3)(i)<=state_shift_buf(3)(i+1);
      end loop;
      state_reg<='1';
     end if;
    when others=>  
   end case;
  end if;
  end process; 
  --table_4b,LUT输入
  table_4b(0)<=state_shift_buf(0)(0);
  table_4b(1)<=state_shift_buf(1)(0);
  table_4b(2)<=state_shift_buf(2)(0);
  table_4b(3)<=state_shift_buf(3)(0);
  --LUT完成固定系数的乘法器
  process(table_4b)
  begin
   case table_4b is
    when "0000"=>table_out_12b<="000000000000";
    when "0001"=>table_out_12b<="000000101001";--41
    when "0010"=>table_out_12b<="000010000100";--132
    when "0011"=>table_out_12b<="000010101101";--173
    when "0100"=>table_out_12b<="000101010101";--341
    when "0101"=>table_out_12b<="000101111110";--382
    when "0110"=>table_out_12b<="000111011001";--473
    when "0111"=>table_out_12b<="001000000010";--514
    when "1000"=>table_out_12b<="001111111110";--514
    when "1001"=>table_out_12b<="001000100111";--551
    when "1010"=>table_out_12b<="001010000010";--642
    when "1011"=>table_out_12b<="001010101011";--683
    when "1100"=>table_out_12b<="001101010011";--851
    when "1101"=>table_out_12b<="001101111100";--892
    when "1110"=>table_out_12b<="001111010111";--983
    when "1111"=>table_out_12b<="010000000000";--1024
    when others=>table_out_12b<="000000000000";
   end case;
   end process;
  --sign_ex的26到12位等于table_out_12b(11);以后的位等于table_out_12b;
  sign_ex(26)<=table_out_12b(11);
  sign_ex(25)<=table_out_12b(11);
  sign_ex(24)<=table_out_12b(11);
  sign_ex(23)<=table_out_12b(11);
  sign_ex(22)<=table_out_12b(11);
  sign_ex(21)<=table_out_12b(11);
  sign_ex(20)<=table_out_12b(11);
  sign_ex(19)<=table_out_12b(11);
  sign_ex(18)<=table_out_12b(11);
  sign_ex(17)<=table_out_12b(11);
  sign_ex(16)<=table_out_12b(11);
  sign_ex(15)<=table_out_12b(11);
  sign_ex(14)<=table_out_12b(11);
  sign_ex(13)<=table_out_12b(11);
  sign_ex(12)<=table_out_12b(11);
  sign_ex(11 downto 0)<=table_out_12b;
  --除2组合电路
  delta_in<=divfre_count_4b-"0001";
  with delta_in select
   delta_out<= sign_ex   when "0000",
              sign_ex(25 downto 0)&'0'  when "0001",
              sign_ex(24 downto 0)&"00"  when "0010",
             sign_ex(23 downto 0)&"000"  when "0011",
             sign_ex(22 downto 0)&"0000"  when "0100",
             sign_ex(21 downto 0)&"00000"  when "0101",
             sign_ex(20 downto 0)&"000000"  when "0110",
             sign_ex(19 downto 0)&"0000000"  when "0111",
             sign_ex(18 downto 0)&"00000000"  when "1000",
             sign_ex(17 downto 0)&"000000000"  when "1001",
             sign_ex(16 downto 0)&"0000000000"  when "1010",
             sign_ex(15 downto 0)&"00000000000"  when "1011",
             sign_ex(14 downto 0)&"000000000000"  when "1100",
             sign_ex(13 downto 0)&"0000000000000"  when "1101",
             sign_ex(12 downto 0)&"00000000000000"  when "1110",
             sign_ex(11 downto 0)&"000000000000000"  when "1111",
             sign_ex  when others;
  --sum 27位
  process(clk,rst,delta_out)
  begin
  if(rst='1') then
   sum<="000000000000000000000000000";
  elsif(clk'event and clk='1') then
   if(divfre_count_4b="0000") then
    sum<="000000000000000000000000000";
   elsif(divfre_count_4b="1101") then
    sum<=sum-delta_out;
   else
    sum<=sum+delta_out;
   end if;
  end if;
  end process;
  --27位输出寄存器
  process(clk,rst,sum)
  begin
  if(rst='1') then
   fir_out<="000000000000000000000000000";
  elsif(clk'event and clk='1') then
   if(divfre_count_4b="0000") then
    fir_out<=sum;
   end if;
  end if;
  end process;
 end rtl;


 


 


测试代码


library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
library std;
use std.textio.all;


entity fir_tb is
generic (
 DEPTH : integer := 4096;-- ROM depth
 ROMFILE : string := "D:\pro\MOD\fir\OLDLEE.HEX";
 INFILE : string := "D:\pro\edaks\mod\input.txt";
 OUTFILE : string := "D:\pro\edaks\mod\OUTPUT.txt"
);
end fir_tb;
architecture rtl of fir_tb is
component fir port(
  clk,rst:in std_logic;
  fir_in:in std_logic_vector(11 downto 0);
  fir_out:out std_logic_vector(26 downto 0)
  );
end component;


 --dr_input
 signal dr_fir_in: std_logic_vector(11 downto 0) :="000000000000" ;
 signal dr_clk: std_logic :='0' ;
 signal dr_rst: std_logic :='1' ;
 signal dr_clk_14: std_logic :='0' ;
 --output
 signal dr_fir_out: std_logic_vector(26 downto 0);
 --type TEXT is file of string;
 file     input   : text is out INFILE;
 file     output   : text is out OUTFILE;
 type memory is array (0 to DEPTH-1) of std_logic_vector(7 downto 0);
 signal store:  memory;
 signal initialized: boolean := false;
 signal count: std_logic_vector(11 downto 0);


 -- Converts std_logic_vector to natural
 function to_nat (input : std_logic_vector) return natural is
  variable result : natural;
  variable weight : natural;
 begin
  result:=0;
  weight:=1;
  for i in input'LOW to input'HIGH loop
   if (input(i)='1' or input(i)='H') then
    result := result + weight;
   end if;
   weight := weight * 2;
  end loop;
  return result;
 end to_nat;
 
 -- Converts hexadecimal string to natural
 function to_nat (input : string) return natural is
  variable result : natural;
 begin
  result:=0;
  for i in input'LEFT to input'RIGHT loop
   result := result * 16;
   case input(i) is
    when '0'      => result := result + 0;
    when '1'      => result := result + 1;
    when '2'      => result := result + 2;
    when '3'      => result := result + 3;
    when '4'      => result := result + 4;
    when '5'      => result := result + 5;
    when '6'      => result := result + 6;
    when '7'      => result := result + 7;
    when '8'      => result := result + 8;
    when '9'      => result := result + 9;
    when 'A'      => result := result + 10;
    when 'B'      => result := result + 11;
    when 'C'      => result := result + 12;
    when 'D'      => result := result + 13;
    when 'E'      => result := result + 14;
    when 'F'      => result := result + 15;
    when others   => null;
   end case;
  end loop;
  return result;
 end to_nat;
 
 -- Converts hexadecimal string to binary vector
 function to_std_logic_vector (input : string)
  return std_logic_vector is
  variable result : std_logic_vector(0 to 4*input'LENGTH-1);
 begin
  result := (others => '0');
  for i in input'LEFT to input'RIGHT loop
   case input(i) is
    when '0'      => result((i-1)*4 to 3+(i-1)*4):="0000";
    when '1'      => result((i-1)*4 to 3+(i-1)*4):="0001";
    when '2'      => result((i-1)*4 to 3+(i-1)*4):="0010";
    when '3'      => result((i-1)*4 to 3+(i-1)*4):="0011";
    when '4'      => result((i-1)*4 to 3+(i-1)*4):="0100";
    when '5'      => result((i-1)*4 to 3+(i-1)*4):="0101";
    when '6'      => result((i-1)*4 to 3+(i-1)*4):="0110";
    when '7'      => result((i-1)*4 to 3+(i-1)*4):="0111";
    when '8'      => result((i-1)*4 to 3+(i-1)*4):="1000";
    when '9'      => result((i-1)*4 to 3+(i-1)*4):="1001";
    when 'A'      => result((i-1)*4 to 3+(i-1)*4):="1010";
    when 'B'      => result((i-1)*4 to 3+(i-1)*4):="1011";
    when 'C'      => result((i-1)*4 to 3+(i-1)*4):="1100";
    when 'D'      => result((i-1)*4 to 3+(i-1)*4):="1101";
    when 'E'      => result((i-1)*4 to 3+(i-1)*4):="1110";
    when 'F'      => result((i-1)*4 to 3+(i-1)*4):="1111";
    when others   => null;
   end case;
  end loop;
  return result;
 end to_std_logic_vector;


 -- Initializing memory contents :
 function initmem return memory is
  file     source   : text is in ROMFILE;
  variable row      : line;
  variable char     : character;
  variable addr     : string(1 to 4);
  variable data     : string(1 to 2);
  variable data1    : string(1 to 2);
  variable number   : natural;
  variable address  : natural;
  variable checksum : natural;
  variable sum      : natural;
  variable vector   : std_logic_vector(7 downto 0);
  variable mem      : memory;
 begin
  for i in mem'range loop
   mem(i) := (others => '0');
  end loop;
  while not endfile(source) loop
   readline(source, row);
   if row'LENGTH>1 and row(1)=':' then
    READ(row, char);
    READ(row, data);
    number:=to_nat(data);
    sum      :=number;
    READ(row, data);
    checksum :=to_nat(data);
    sum      :=(sum+checksum) mod 256;
    READ(row, data1);
    checksum :=to_nat(data1);
    sum      :=(sum+checksum) mod 256;
    addr     :=data & data1;
    address  :=to_nat(addr);
    READ(row, data);
    checksum :=to_nat(data);
    sum      :=(sum+checksum) mod 256;
    while number>0 loop
     READ(row, data);
     vector   :=to_std_logic_vector(data);
     checksum :=to_nat(data);
     sum      :=(sum+checksum) mod 256;
     mem(address) := vector;
     address  :=address+1;
     number   :=number-1;
    end loop;
    READ(row, data);
    checksum :=to_nat(data);
    sum      :=(sum+checksum) mod 256;
    assert (sum=0)
     report "Invalid check sum" &
     " in the program memory init file."
     severity error;
   end if;
  end loop;
  return mem;
 end initmem;


begin
 fir1: fir port map(clk=>dr_clk,rst=>dr_rst,fir_in=>dr_fir_in,fir_out=>dr_fir_out);
 process(dr_clk)
 begin
  dr_clk<=not dr_clk after 10 ns;
 end process;
 process(dr_clk_14)
 begin
  dr_clk_14<=not dr_clk_14 after 140 ns;
 end process;
 process
 begin
 dr_rst<='0' after 25 ns;
 wait;
 end process;


 --init_rom_proc :
 process
  variable storevar : memory;
 begin
  if not initialized then
   storevar := initmem;
   initialized <= true;
  end if;
  store <= storevar;
  wait ; -- wait forever ...
 end process;


 read_rom_proc :
 process (dr_clk_14)
  variable count : integer :=0;
  variable doutvar : std_logic_vector(7 downto 0);
 begin
  if (dr_clk_14'event and dr_clk_14 = '1') then
    if(count=4096) then
    else
   doutvar := store(count);
   count:=count+1;
   end if;
  end if;
  dr_fir_in <= '0'&'0'&'0'&'0'&doutvar;
 end process;
 process (dr_clk_14)
 variable inline : LINE;
 variable outline : LINE;
 variable outdata : integer :=0;
 variable indata : integer :=0;
 begin
  if (dr_clk_14'event and dr_clk_14 = '1') then
    outdata :=CONV_INTEGER(dr_fir_out);
    indata:=CONV_INTEGER(dr_fir_in);
   write(outline,outdata);
   write(outline,string'(" "));
   write(inline,indata);
   write(inline,string'(" ")); 
    writeline(input,inline);
    writeline(output,outline);   
  end if;
 end process;
end rtl;


matlab


in=[
....];
out=[
....];
out=out/2048;
t0=0:length(in)-1;
t1=0:length(out)-1;
plot(t0, in, '-r', t1, out, ':b');%'-r'表示红色线;':b'表示虚蓝线
title('输入输出信号的时域曲线 红色线表示输入 蓝色线表示输出');
xlabel('t');
ylabel('abs');
axis([0,4096,0,max(max(in),max(out))]);



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fin=fft(in);
fout=fft(out);
ft0=0:length(fin)-1;
ft1=0:length(fout)-1;
fabs=abs(fin);
f_in_abs=abs(fin);
f_out_abs=abs(fout);
%plot(ft0,f_in_abs);%
%plot(ft1,f_out_abs);%
plot(ft0,f_in_abs, '-r',ft1,f_out_abs, ':b');%'-r'表示红色线;':b'表示虚蓝线
title('输入输出信号的频域曲线 红色线表示输入 蓝色线表示输出');
xlabel('f');
ylabel('abs');


 


测试文件读入的hex文件


:0900000002239DE4F512F5132220 :10000B0002287E1200009033727401F09035BB12FF :05001B002A2102242946 :10002300022974EC4D6011E8497017ED33EC330489 :04003300600DE4FC7C :10003800FEFD22E933E8330470F802019F12016AD9 :1000480058046009E4CC248150062850090201A90B :100058002840030201A6C0E0EB4A7044B98006D0EC :0D006800E0FB020195EF4E701CBD8008EB1F :10007600EAFEE9FD80EBE98DF0A4FEE5F002010F52 :06008600E9CDF9EAFEEBF2 :0C008D00EF89F0A4FCE5F0CE89F0A42E71 :10009A00E435F0CD89F0A42DFEE435F08067EF4E0B :1000AA007005BD80D780C3EF8BF0A4ACF0EE8BF067 :1000BA00A42CFCE435F0F8EF8AF0A42CE5F038FC27 :1000CA00E433CB8DF0A42CFCE5F03BF8EE8AF0A4E7 :1000DA002CFCE5F038F8E433CF89F0A42CFCE5F0E9 :0900EA0038CF3400CE89F0A42FB8 :1000F400E5F03EFEE433C98DF0A42EFEE5F039CDE3 :040104008AF0A42FAA :10010900E5F03EFEE43DFD33D0E0FB50070BBB00BC :090119000F0201A9EC2CFCEF33EC :10012300EE33FEED33FD02018175F020800E75F094 :1001330010800575F0087D007E007F003392D53076 :0B014300D503120806EC334010EF3328 :10014F00EE33FEED33FDEC33FCD5F0ED22E5F0247C :09015F007EA2D513CC92E7CDCEAF :1001690022E9D2E7C933E833F892D5EDD2E7CD33A6 :10017900EC33FC5002B2D522EC30E7100FBF000C73 :100189000EBE00080DBD00040BEB6014A2D5EB13E5 :07019900FCED92E7FD22746A :0301A100FCFDFE64 :0701A50022E480F8A2D574EA :1001AD0013FC7D80E480EFF920E73624F9500379C4 :1001BD0007E4F42402FBE582158270021583DBF659 :1001CD00E024FB501BE96014E4F0E5821582700217 :1001DD001583E004F0B40A08E4F0D9EE7401F00AD6 :0E01ED0022C2D522ED33EC3392D5FA602AB44B :0501FC0033EDC2E77BBA :1002020060067A027916E4227A02791F20D5047AEE :1002120002791A224E614E002B494E46002D494E5C :100222004600E47A08F0A3DAFC7B00740722C0835C :10023200C082ECC0E0EDC0E0EEC0E0EFC0E0EA75E5 :10024200F010A4CAABF075F04DA42BFBE435F0FC22 :10025200EA2410FAEB34C5FBEC34D9FCEDC2E7FF1B :1002620075F056A4F42411C5F0F434C58FF0A42A15 :0E027200E5F03BE43CF020E7141204BED0E0BF :10028100D0E0FED0E0FDD0E0FC1203F18014F404D4 :050291001204BED0E0E4 :10029700D0E0FED0E0FDD0E0FC120026D082D08373 :1002A700E0FAEDD2E7CD33EC332482FBE4C3CF335E :1002B700CFCE33CECD33CD33DBF37B0775F00A8456 :1002C7006004F0A31B0AE5F0F0A38FF0740AA4FF03 :1002D700ACF08EF0740AA42CFEACF050010C8DF03B :1002E700740AA42CFDE435F0F0A3DBDE74072202C8 :1002F700019FE86480F8E933E83360110460F0EDAA :0C03070033EC337009E8FCE9FDEAFEEB82 :10031400220460DED3EB9FEA9EE99DE8C2E78CF0FD :10032400C2F795F0400CE8CCF8E9CDF9EACEFAEB47 :10033400CFFB12016A85D0F05804700320D5B3E8CE :100344000470075002B2D50201A992D5EC0460F7FB :10035400E4CCC0E0C398F8603B94186008400DD02A :10036400E0FB020181E4FBFAC9FC8028E830E406E2 :10037400E4C9FBE4CAFCE830E305E4C9CACBFCE801 :1003840054076010F8C3E913F9EA13FAEB13FBEC12 :0D03940013FCD8F130F52FC3E49CFCEF9B67 :1003A200EE9AFEED99FDD0E0FBEF4E4D4C7012221D :0A03B200DB030201A6EC2CFCEF3384 :1003BD00EE33FEED33FDED30E7EB020181EF2BFF68 :1003CD00EE3AFEED39FDD0E0FB50130BBB000302FE :0A03DD0001A9ED13FDEE13FEEF136E :1003E800EC13FC0201810201A9EC5D046005E859E7 :1003F80004700302019F12016A580460F6EC486019 :06040800F2EC7004FDFEA1 :10040F0022C860DB2481C85009C3986002500602DD :10041F0001A69850CAF582E9294B4A7005AB8202B2 :10042F00019575F0007C1A7880C3EF9BEE9AED99D9 :05043F00400DC3EF9B1E :10044500EE9AFEED99FDE842F0DC23ACF0D0E0FF3A :10045500D0E0FED0E0FDAB8220E7101BEB60BAECEC :040465002CFCEF3349 :10046A00EE33FEED33FD020181E803F830E705C003 :06047A00F075F000EF2F09 :10048100EE33FEED33FD40B830E7C280AA3F800075 :10049100004120000042C80000447A0000461C4090 :1004A1000047C35000497424004B1896804CBEBCD1 :1004B100205A0E1BCA6753C21C749DC5AEFB600651 :1004C1005407601C23231204ECEB54386009120416 :1004D100D81204E7120026ECF8EDF9EEFAEFCB2280 :1004E100EB1204E780F1543803241C90048EFE9330 :0B04F100FC0EEE93FD0EEE930ECE937A :1004FD0022BB010689828A83E0225002E722BBFEDD :10050D0002E32289828A83E49322BB010CE58229CE :10051D00F582E5833AF583E0225006E92582F8E677 :10052D0022BBFE06E92582F8E222E58229F582E565 :10053D00833AF583E49322BB010689828A83F022F4 :10054D005002F722BBFE01F322F8BB010DE5822913 :10055D00F582E5833AF583E8F0225006E92582C855 :10056D00F622BBFE05E92582C8F222EF8DF0A4A884 :10057D00F0CF8CF0A428CE8DF0A42EFE22BC000B63 :07058D00BE0029EF8DF08490 :0B059500ADF022E4CCF875F008EF2F69 :1005A100EE33FEEC33FCEE9DEC984005FCEE9DFE37 :1005B1000FD5F0E9E4CEFD22EDF8F5F0EE8420D27E :0905C1001CFEADF075F008EF2FEF :1005CB00ED33FD4007985006D5F0F222C398FD0F8E :1005DB00D5F0EA22C5F0F8A3E028F0C5F0F8E582E3 :1005EB00158270021583E038F022A3F8E0C5F025E0 :1005FB00F0F0E582158270021583E0C838F0E8222E :10060B00BB0110E58229F582E5833AF583E0F5F02D :10061B00A3E0225009E92582F886F008E622BBFE0A :10062B000AE92582F8E2F5F008E222E5832AF58350 :10063B00E993F5F0A3E99322BB010DC58229C5828D :10064B00C5833AC5830205DF5011C58229F808E539 :10065B00F026F618F5F0E58236F622BBFE11C582C0 :10066B0029F808E225F0F5F0F218E23582F222F8CB :10067B00E58229F582E5832AF58374019325F0F54C :10068B00F0E4933822BB010A89828A83F0E5F0A358 :10069B00F0225006F709A7F01922BBFE06F3E5F08E :1006AB0009F31922F8BB0111E58229F582E5833A9A :1006BB00F583E8F0E5F0A3F0225009E92582C8F6AE :1006CB0008A6F022BBFE09E92582C8F2E5F008F284 :0306DB0022EF2BE0 :1006DF00EE3AFEED39FDEC38FC22E88FF0A4CC8B1E :1006EF00F0A42CFCE98EF0A42CFC8AF0EDA42CFCD9 :1006FF00EA8EF0A4CDA8F08BF0A42DCC3825F0FD18 :10070F00E98FF0A42CCD35F0FCEB8EF0A4FEA9F010 :10071F00EB8FF0A4CFC5F02ECD39FEE43CFCEAA45C :10072F002DCE35F0FDE43CFC2275F008758200EF0C :01073F002F8A :10074100EE33FECD33CDCC33CCC58233C5829BEDA8 :100751009AEC99E58298400CF582EE9BFEED9AFDAC :10076100EC99FC0FD5F0D6E4CEFBE4CDFAE4CCF95C :10077100A88222B800C1B90059BA002DEC8BF084CF :0C078100CFCECDFCE5F0CBF97818EF2FBF :10078E00EE33FEED33FDEC33FCEB33FB10D7039968 :10079E004004EB99FB0FD8E5E4F9FA227818EF2F15 :1007AF00EE33FEED33FDEC33FCC933C910D7059B97 :1007BF00E99A4007EC9BFCE99AF90FD8E0E4C9FAF3 :0907CF00E4CCFB2275F010EF2FC1 :1007D900EE33FEED33FDCC33CCC833C810D7079BBD :1007E900EC9AE899400AED9BFDEC9AFCE899F80F20 :1007F900D5F0DAE4CDFBE4CCFAE4C8F922C3E49FEE :10080A00E49EFEE49DFDE49CFC22EB9FF5F0EA9E4B :10081A0042F0E99D42F0EC6480C864809845F02279 :10082A00E8600FECC313FCED13FDEE13FEEF13FFAC :0D083A00D8F122E0FCA3E0FDA3E0FEA3E066 :1008480022ECF0A3EDF0A3EEF0A3EFF022A882854E :1008580083F0D083D08212086C12086C12086C12D4 :10086800086CE473E493A3C583C5F0C583C8C58247 :10087800C8F0A3C583C5F0C583C8C582C822A4250E :1008880082F582E5F03583F58322E0FBA3E0FAA345 :10089800E0F922F8E0FBA3A3E0F925F0F0E58215E2 :1008A8008270021583E0FA38F022F8E0FBA3A3E097 :1008B80025F0F9F0E582158270021583E038FAF028 :1008C80022EBF0A3EAF0A3E9F022BB010789828AB0 :1008D800830208925005E9F8020A7EBBFE05E9F892 :1008E800020AA089828A83020AC2BB011A89828A03 :1008F80083D0F0D0E0F8D0E0F9D0E0FAD0E0FBE81F :10090800C0E0C0F00208C95016E9F8D083D082D000 :10091800E0F9D0E0FAD0E0FBC082C083020A97BBBE :10092800FE16E9F8D083D082D0E0F9D0E0FAD0E022 :10093800FBC082C083020AB922BB010DE58229F5FA :1009480082E5833AF5830208925007E92582F80286 :100958000A7EBBFE07E92582F8020AA0E58229F58E :1009680082E5833AF583020AC2BB010DC58229C517 :1009780082C5833AC58302089B5008F8E92582C8D6 :10098800020A87BBFE08F8E92582C8020AA9C582BF :1009980029C582C5833AC583020AC2BB0120E58204 :1009A80029F582E5833AF583D0F0D0E0F8D0E0F974 :1009B800D0E0FAD0E0FBE8C0E0C0F00208C9501867 :1009C800E92582F8D083D082D0E0F9D0E0FAD0E0EF :1009D800FBC082C083020A97BBFE18E92582F8D0C3 :1009E80083D082D0E0F9D0E0FAD0E0FBC082C083A7 :1009F800020AB922D083D082F8E49370127401936A :100A0800700DA3A393F8740193F5828883E473743B :100A180002936860EFA3A3A380DFE5112582F58226 :100A2800E5103583F583B510048582112210AF06D1 :100A3800858211F51022858211F510D2AF22E511B9 :100A48002582F582E5103583F58322BB010A898268 :100A58008A83E0F5F0A3E022500687F009E719221F :100A6800BBFE07E3F5F009E3192289828A83E49340 :100A7800F5F074019322E6FB08E6FA08E6F922FA93 :100A8800E6FB0808E6F925F0F618E6CA3AF622EB7E :100A9800F608EAF608E9F622E2FB08E2FA08E2F9C3 :100AA80022FAE2FB0808E2F925F0F218E2CA3AF263 :100AB80022EBF208EAF208E9F222E493FB740193CC :100AC800FA740293F922E5082499F582E43436F59C :100AD80083E0050822903696300703903699E4752E :100AE800F00112089B0204FE2000E97F2ED200804C :0A0AF80018EF540F2490D43440D4BA :0D0B030030040BEF24BFB41A00500324612E :100B1100E50960021509050CE50C7002050B3007AB :100B21000E903696E475F00112089BEF020544021F :100B31002FE07403D2078003E4C207F508903696CC :100B41001208C9E4F509F50BF50CE50960077F20EA :070B5100120B1180F5750A7B :100B5900C201C200C202C203C205C206C208120A09 :010B6900DDAE :100B6B00700D3007057F00120B22AF0CAE0B22B4B9 :090B7B00255FC2D5C204120ADD97 :100B850024D0B40A00501A75F00A780930D5050842 :010B9500B6A9 :100B97000106C6A426F620D5047002D20380D92404 :100BA700CFB41A00EF5004C2E5D204020E14D201EA :100BB70080C6D20080C0D20280BCD2D580BAD2050E :100BC70080B47F20120B112002077401B509004081 :040BD700F1120ACE3F :100BDC00120B11020B4BD208D2068095120ACEFBD7 :100BEC00120ACEFA120ACEF94A4B700679127A0F13 :010BFC007B7D :100BFE0020022EE509602A7E008E82758300120582 :100C0E001760060EEE650A70F0C2D5EBC0E0EAC0C2 :100C1E00E0E9C0E0EE120E75D0E0F9D0E0FAD0E0D7 :040C2E00FB1204FEB3 :100C330060AAEBC0E0EAC0E0E9C0E0120B11D0E02B :100C43002401F9D0E03400FAD0E0FBE50A0460DCCB :100C5300D50AD98087D20280A2120E5760F7E50A1F :100C63007001041201B4A90A600DE50A600914F5C4 :030C73000A120E54 :100C7700EF60F3EA30E702F404C3995079EAF42508 :100C87000A0430E701E404F50A800D120E5760C12B :100C9700EA050A250A1201B4EA9036C5F030E701E1 :100CA700E4250A04D50A0420050114120E75E4C0D0 :030CB700E0120E3A :100CBB009036C5E0601320E70714F0120AF9802282 :100CCB0004F0D0E014C0E07F00120AF9E50A6007D7 :100CDB00120AF0150A800B300503120AF0D0E0025D :100CEB000B4BD0E00480C4120E57609EE50A041231 :100CFB0001B49036C5EAF0E50A2005026001042430 :050D0B0004120E7574D6 :050D110004C0E0120E19 :100D1700120AF9E50A2005026003120AF0D0E0B5CD :100D27000AE87F45120B039036C5E07F2B30E704B6 :100D37007F2DF404C0E0120B11D0E075F00A84C0D7 :100D4700F0120AFAD0E0120AFA020B4B791080026D :100D57007908C206C2088008D2D5790A8004790AC0 :0D0D6700C2D5E50A047002F50AE4FAFDFEAB :100D7500120ACEFC7B08200113120ACEFD7B10302F :090D8500000A120ACEFE120ACE89 :100D8F007B20EC3382D592D55013C3E43000069FFD :100DA000E49EFEE42001039DFDE49CFCE4CBF8C23C :100DB00001EC700CCFCECDCCE824F8F870F380179E :030DC000C3EF334B :100DC400EE33FEED33FDEC33FCEB33FB994002FBD9 :100DD4000FD8E9EB300105F8D0E0C448B201C0E017 :100DE4000AEC4D4E4F78207B0070C2EAB50A0040F1 :100DF400BCC0E0120E77D0F0D0E0200104C4C0E003 :100E0400C4B201C0F0120AFAD0F0D5F0EB020B4BD9 :100E14001209FC0BE8530D53580BB94C0BB5420D9A :100E2400574F0D5F440D5F490BCE430D65550C9232 :100E3400460CF2450C5C470F32500BBD2D0BC12EF6 :100E44000BE42B0BC5230BE2200F1B2A0B7D480060 :060E5400000BDCE50AB40E :100E5B0003750A06120ACEFC120ACEFD120ACEFE4A :030E6B00120ACE9A :100E6F009036BE0201F1790AA2D52003143005098C :100E7F00B910020404B9080104A2D52006025001DA :100E8F00042002689202B509005034C0E07F203080 :100E9F0003197F30A20272067205500F120ECEC2D6 :100EAF0002C206C205C2087F30800F300503E9C0B9 :100EBF00E0120B11300503D0E0F9D0E0B509CC30CA :100ECF0005177F30B9100C120B117F583004077FB4 :100EDF00788003B90803120B113002057F2D020B26 :100EEF00117F202008F87F2B2006F322920280CF5B :100EFF007F00B40700500B24BEF582E43436F5832F :010F0F00E001 :100F110022286E756C6C2900D201120ACE3001F8BC :100F2100C201780930D50108F6020B7D2D504349E5 :100F310058120ACE2403B405004001E4900F2D930A :100F4100120B02743A120B02D203750904020D53FB :010F5100900F :100F5300F8120A227B017A33797412230AA3A312AB :100F630008C97A337987900005120A461208C91214 :100F7300230AE4F0A3F012230AE0FEA3E0C39401E2 :100F8300EE9400503E900005122317C003C002C028 :100F93000112230AA3A31208921208F212230AA32E :100FA300A3A3E475F0131205DF900005120A46A30C :100FB300E475F0131205DF12230AE475F00112053C :100FC300DF80B312234BC003C002C00112230AA364 :100FD300A31208921208F27B017A33797490339A40 :100FE3001208C9900008020A22C2AF850D81122A95 :0B0FF3001E7484C0E07424C0E03222B1 :0200000400F00A :0100000000FF :00000001FF

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条