关于lfsr的本源多项式

2019-07-16 01:41发布

在Xilinx中现成的32为 lfsr模块如下:

   reg [31:0] <reg_name>;

   always @(posedge <clock>)
      if (<reset>)
         <reg_name> <= 32'h00000000;
      else if (<clock_enable>) begin
         <reg_name>[31:1] <= <reg_name>[30:0];
         <reg_name>[0] <= ~^{<reg_name>[32], <reg_name>[22], <reg_name>[2:1]};
      end
                       

对最后一句 同或 语句我看的很不明白 ,究竟是怎么样运算的呢?<reg_name>[32], <reg_name>[22], 这两个都是一位的,但是<reg_name>[2:1]是两位的,不懂这是什么意思?

还有从这里面可以看出lfsr的本源多项式吗?
求各位大神帮忙解决一下哈,很急着想要用呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
Huntersjm
1楼-- · 2019-07-16 05:47
~^{<reg_name>[32], <reg_name>[22], <reg_name>[2:1]} 是这句吗?如果说这句,就是 对
<reg_name> 的[32] [22] [2] [1]这四位进行同或运算。{<reg_name>[32], <reg_name>[22], <reg_name>[2:1]}本来就是四位啊。{}可以组合成高位的。
微风lin
2楼-- · 2019-07-16 09:13
Huntersjm 发表于 2013-5-2 09:18
~^{[32], [22], [2:1]} 是这句吗?如果说这句,就是 对
的[32] [22] [2] [1]这四位进行同或运算。{[32],  ...

哦 这样啊,谢谢哈!那请问从这里可以看出本源多项式吗? xilinx里面只提供了32位的Lfsr, 如果我想要得到大于32位的lfsr ,那要怎么做呢

一周热门 更多>