• Linear Feedback Shift Register


    线性反馈移位寄存器(Linear Feedback Shift Register,简称LFSR)是一种数字电路设计和密码学中常用的寄存器类型。它是一种简单而高效的方式,用于生成伪随机的二进制序列,并在数据混淆、错误检测和加密等领域中有应用。LFSR通常用于流密码的生成。

    以下是LFSR的关键特性和组成部分:

    1. 移位寄存器:LFSR通常由一组触发器或存储元件连接在一条链上组成,每个触发器存储一个二进制位。

    2. 反馈机制:名称中的“线性反馈”指的是将移位寄存器的特定位以线性方式连接起来的反馈回路。反馈机制涉及对寄存器的某些位进行异或(XOR)运算,并将结果反馈到移位寄存器的输入上。参与反馈回路的位的位置称为“反馈点”。

    3. 时钟信号:LFSR受时钟信号控制,这意味着它们在每个时钟周期中将其内容向右(或向左)移动一位。移位寄存器的输入位通常来自其中一个触发器,该位随后被移动到下一个触发器。反馈机制然后确定输入位的值。

    4. 序列生成:LFSR生成一个二进制位序列,看起来是随机的,但完全由初始状态(种子值)和反馈机制确定。该序列在一定数量的时钟周期后重复,这个数量称为LFSR的周期。周期取决于LFSR的具体配置和大小。

    5. 多项式表示:LFSR的配置通常使用多项式表示。多项式表示了反馈点和它们对应的系数。多项式用于确定反馈机制的反馈点。

    6. 应用领域:

      • 伪随机数生成:LFSR用于生成各种需要伪随机序列的应用,包括计算机科学和工程领域。
      • 错误检测和纠正:LFSR可用于检测数据传输和存储中的错误。它们通常用于循环冗余校验(CRC)算法。
      • 密码学:LFSR在某些加密和解密算法中使用,特别是在流密码中。

    LFSR在硬件中实现相对简单,因此适用于需要伪随机序列的各种应用。然而,它们的简单性也意味着它们的输出序列可能具有一定的统计特性,不适合用于密码学目的,除非进行额外的处理。在密码学中使用时,通常与其他密码学技术结合使用以增强安全性。
    在这里插入图片描述
    Write the Verilog code for this sequential circuit (Submodules are ok, but the top-level must be named top_module). Assume that you are going to implement the circuit on the DE1-SoC board. Connect the R inputs to the SW switches, connect Clock to KEY[0], and L to KEY[1]. Connect the Q outputs to the red lights LEDR.

    module top_module (
    	input [2:0] SW,      // R
    	input [1:0] KEY,     // L and clk
    	output [2:0] LEDR);  // Q
    
        wire b;
        assign b = LEDR[1] ^ LEDR[2];
        submodule module1(KEY[0], KEY[1], {SW[0], LEDR[2]}, LEDR[0]);
        submodule module2(KEY[0], KEY[1], {SW[1], LEDR[0]}, LEDR[1]);
        submodule module3(KEY[0], KEY[1], {SW[2], b}, LEDR[2]);
    
    endmodule
            
    module submodule(
        input clk,
        input L,
        input[1:0] in,
        output Q);
        
        always@(posedge clk)begin
            case(L)
                1'b0: Q <= in[0];
                1'b1: Q <= in[1];
            endcase
        end
    endmodule
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    一篇文章入门 Redis(万字长文干货)
    RAID磁盘阵列管理
    新上线游戏产品需不需要防御?
    上海各梯队IB学校怎么选?
    哈希表及其封装
    大型网站系统架构演化实例_7.使用NoSQL和搜索引擎
    基于Matlab实现全局优化算法
    TCP的三次握手与四次挥手
    OpenSSL 编程 一:基本概念
    【Java】Stream规约操作及使用场景
  • 原文地址:https://blog.csdn.net/qq_46264636/article/details/133125534