亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Verilog

使用 VHDL 和 Verilog 在 FPGA 中进行高效 LFSR 设计

FPGA 中的 LFSR – VHDL 和 Verilog 代码

线性反馈移位寄存器如何在 FPGA 内部工作

LFSR 代表线性反馈移位寄存器,它是一种在 FPGA 内部有用的设计。 LFSR 易于综合,这意味着它们占用相对较少的资源,并且可以在 FPGA 内部以非常高的时钟速率运行。有许多应用程序可以从使用 LFSR 中受益,包括:

线性反馈移位寄存器作为 FPGA 内部的一系列触发器实现,这些触发器连接在一起作为移位寄存器。移位寄存器链的多个抽头用作 XOR 的输入 或同或 门。该门的输出然后用作反馈 到移位寄存器链的开头,因此反馈在 LFSR 中。

使用 XNOR 门的 5 位 LFSR

当 LFSR 运行时,各个触发器生成的模式是伪随机的,这意味着它接近随机。它不是完全随机的,因为从 LFSR 模式的任何状态,您都可以预测下一个状态。需要注意移位寄存器的一些属性:

较长的 LFSR 将花费更长的时间来运行所有迭代。 N 位 LFSR 的最长可能迭代次数是 2N-1。如果你想一想,N 位长的东西的所有可能模式是 2N。因此,只有一种模式无法使用 LFSR 来表达。当使用 XOR 门时,该模式为全 0;当使用 XNOR 门作为反馈门时,该模式为全 1。

VHDL 和 Verilog 代码可创建您想要的任何 N 位宽 LFSR。它使用多项式(这是 LFSR 背后的数学原理)来为每个位宽创建最大可能的 LFSR 长度。因此,对于 3 位,需要 23-1=7 个时钟来运行所有可能的组合,对于 4 位:24-1=15,对于 5 位:25-1=31 等。我基于 XNOR 实现来允许 FPGA 在 LFSR 上以全零状态启动。以下是 Xilinx 发布的所有 LFSR 模式的完整表格。

VHDL 实现:

LFSR.vhd

<前>07

测试平台(LFSR_TB.vhd)

<前>16

Verilog 实现:

LFSR.v

<前>24

测试平台(LFSR_TB.v)

<前>38

Verilog

  1. Verilog 全加器
  2. Verilog 生成块
  3. Verilog 教程
  4. Verilog 用户定义原语
  5. Verilog 阻塞和非阻塞
  6. 带分配的组合逻辑
  7. Verilog 灰色计数器
  8. JK 人字拖
  9. always 的顺序逻辑
  10. Verilog 内部和内部分配延迟
  11. Verilog 运算符
  12. Verilog 约翰逊计数器