首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LFSR描述对吗?

LFSR描述对吗?
EN

Stack Overflow用户
提问于 2016-01-12 21:32:18
回答 1查看 714关注 0票数 0

我根据1中的抽头写了一个32位LFSR。我想问一下,对于32位LFSR和抽头32、22、2和1,下面的描述是否正确。

代码语言:javascript
复制
module lfsr (
  input  logic        clk_i,
  input  logic        rst_i,
  output logic [31:0] rand_o
);

  logic[31:0] lfsr_value;

  assign rand_o = lfsr_value;

  always_ff @(posedge clk_i, negedge rst_i) begin
    if(~rst_i) begin
      lfsr_value <= '0;
    end else begin
      lfsr_value[31:1] <= lfsr_value[30:0];
      lfsr_value[0]    <= ~(lfsr_value[31] ^ lfsr_value[21] ^ lfsr_value[1] ^ lfsr_value[0]);
    end
  end
endmodule

1

EN

回答 1

Stack Overflow用户

发布于 2016-01-14 01:48:18

看起来没问题。您也可以使用XOR,而不是XNOR,只要您重置为其他值( XOR版本锁定在全0,XNOR锁定在全1)。

对于许多应用程序,伪随机输出是您移出的单个位(在本例中为31),而不是整个寄存器。它也是(更多?)通常向右移位,并将XOR数据放在最高位,并使用位0输出作为PR数据。

您的代码是明确的SystemVerilog,而不是Verilog,所以我删除了Verilog标记。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34745086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档