老怪甲 发表于 2010-5-18 10:58:36

差分曼彻斯特码解码的verilog代码

差分曼彻斯特码解码的verilog代码

我的代码:
module m_decode(clk,clk2,rst,mdi,machester);//实际的数据mdi为2046bit

input clk,clk2,rst;//时钟clk的频率是mdi的频率
input mdi;//差分曼彻斯特码的数据

output machester;


parameter size=1023;
parameter dsize=2046;

reg temp;//存储mdi确定是正确的data位后,再进行解码
reg even_data,odd_data;
reg i;
reg n,bit,x;
reg true,machester;
reg en_n,stop;//stop为全部数据异或完之后,或者是中间发现异或值为0停止


always @(posedge clk )//接收mdi,并存储
begin

if(rst)
begin

    temp<=0;
    i<=0;
    en_n<=0;
   
end

else
begin

    if(i==dsize)
      begin
         
      i<=dsize;
      en_n<=1;
      
      end
    else
      begin
         
      temp<=mdi;
      i<=i+1;
      
      end
      
end

end

always @(posedge clk ) //把temp的奇偶位上的数据分别存储,以便下一步操作
begin
   
if(!en_n)
    begin   
            
    n<=0;
    even_data<=0;   
    odd_data<=0;

end
    else
begin
      
    if(n==size-1)
      n<=size-1;
    else
    begin
      
      n<=n+1;   
      even_data<=temp;
      odd_data<=temp;
   
    end

end

end   

always @(posedge clk2 ) //先进行异或判断取奇数的数组,还是偶数的数组 ;由于解码后输出的数据频率应该是差分曼码的2倍,故用了个2倍的时钟      
begin

if(n==size-1)
begin
if(stop==0)
begin

    if(true==1)
    begin

      if(bit==size-1)
      begin
      
      stop<=1;
      bit<=size-1;
      if(x==size-1)
          x<=size-1;
      else
      begin

          machester<=even_data~^even_data;//同或,就是最后的解码电平
          x<=x+1;
      
      end      

      end
      else
      begin
      
      x<=0;
      true<=even_data^odd_data;
      bit<=bit+1;         

      end
   
    end
    else
    begin
      
      if(x==size-1)
      x<=size-1;
      else
      begin

      machester<=odd_data~^odd_data;//同或
      x<=x+1;
      
      end
   
    end

    end

end
else
begin

bit<=0;
machester<=1&#39;bz;
stop<=0;
true<=1;

end

end
   
endmodule

Sunlife 发表于 2016-7-30 17:33:42

                              谢谢分享

zhiweiqiang33 发表于 2017-4-28 15:32:22

谢谢飞翔 看看

d643189658 发表于 2017-8-17 18:43:58

谢谢楼主分享

陈飞龙 发表于 2017-8-17 19:48:07

感谢分享!!!!!!!!!!!!!!:):):):):)

chen 发表于 2017-8-19 22:06:28

学习学习。。。

雷磊 发表于 2021-6-21 15:40:18

差分曼彻斯特码解码的verilog代码
页: [1]
查看完整版本: 差分曼彻斯特码解码的verilog代码