1、差分编码解析
绝对码bn(输入信号) | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
相当码dn-1(dn延迟后的相对码) | 0(保证第一个输出就是绝对码本身) | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
相对码dn(输出信号) | 0(输出初始值是绝对码) | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
差分编码的原则就是第一个输出的相对码就是绝对码本身,后面用本时刻的相对码与前一个相对码作差(实际就是异或)得到输入信号绝对码,通过上表可以很清楚看出运行机制
2、差分编码FPGA实现(verilog代码)
显然,要想实现 差分编码的FPGA实现,需要有输出dn,dn需要初始值(一般为0),需要有dn的延迟值dn-1,而延迟对于verilog来说非常简单,因为阻塞赋值相对于非阻塞赋值本身就要延迟一个一个时钟,因此思路如下:
output dn;
input bn;
assign dn=dn-1^bn;
reg dn-1;
always@(posedge clk or negedge rst)
begin
if(!rst) dn-1<=0;
else dn-1<=dn;
end