Loading

counter汇总:环形计数器、扭环计数器、LSFR计数器

计数器

环型计数器

环型计数器就是最简单的移位寄存器,对应N位环型计数器有N个状态。

反馈逻辑函数为:

\[D_0 = Q_{n-1} \]

verilog code

module round_counter
(
	input clk,
	input rst_n,
	output reg [3:0] q
);

	always @(posedge clk or negedge rst_n)begin
		if(!rst_n)begin
			q <= 4'b1000;
		end
		else
      q <= {q[0], q[3:1]};
	end
endmodule

扭环计数器

环形计数器不同的是将最低位取反后移位到最高位,其计数长度为N = 2n,经过n个时钟后,计数器状态与初始状态刚好相反,然后再经过n个时钟返回初始状态。

\[D_0 = \overline{Q_{n-1}} \]

module round_counter
(
	input clk,
	input rst_n,
	output reg [3:0] q
);

	always @(posedge clk or negedge rst_n)begin
		if(!rst_n)begin
			q <= 4'b0000;
		end
		else
			q <= {~q[0], q[3:1]};
	end
endmodule

线性反馈移位寄存器

线性反馈移位寄存器(LFSR),它是由n个D触发器和若干个异或门组成的。LFSR可以产生的最长的随机序列是\(2^n-1\),对应抽头不同,产生的随机序列长度也不同。

img

有两种实现方式,一种IE型,异或门内接(伽罗瓦)的线性反馈移位寄存器;

img

另一种是异或门外接(斐波那契)的线性反馈移位寄存器,简称EE型LFSR

img

其中,\(g_n\)为反馈系数,取值只能为0或1,取为0时表明不存在该反馈之路,取为1时表明存在该反馈之路,n个D触发器最多可以提供\(2^n-1\)个状态(不包括全0的状态)。为了保证这些状态没有重复,\(g_n\)的选择必须满足一定的条件。

多项式表示,如果抽头为在第16,14,13,11个比特,则相应的特征多项式为:

x{{16}}+x{{14}}+x{{13}}+x{{11}}+1.,

image.png

如图,有反馈路径的\(g_n\)为1,反之为0

module RanGen(
    input               rst_n,    /*rst_n is necessary to prevet locking up*/
    input               clk,      /*clock signal*/
    input               load,     /*load seed to rand_num,active high */
    input      [7:0]    seed,     
    output reg [7:0]    rand_num  /*random number output*/
);


always@(posedge clk or negedge rst_n)
begin
    if(!rst_n)
        rand_num    <=8'b0;
    else if(load)
        rand_num <=seed;    /*load the initial value when load is active*/
    else
        begin
            rand_num[0] <= rand_num[7];
            rand_num[1] <= rand_num[0];
            rand_num[2] <= rand_num[1];
            rand_num[3] <= rand_num[2];
            rand_num[4] <= rand_num[3]^rand_num[7];
            rand_num[5] <= rand_num[4]^rand_num[7];
            rand_num[6] <= rand_num[5]^rand_num[7];
            rand_num[7] <= rand_num[6];
        end
            
end
endmodule
posted @ 2022-07-28 22:17  pu1se  阅读(1223)  评论(0)    收藏  举报