实现FLSR,寄存器位数为10,反馈函数,初始值都自己定
时间: 2023-06-20 13:10:13 浏览: 56
FLSR(Feedback Linear Shift Register)是一种线性反馈移位寄存器。它的输入是一个位序列,输出是该序列经过一定的线性变换后的结果。该线性变换由寄存器中的位和一个反馈函数确定。以下是一个实现FLSR的示例,其中寄存器位数为10,反馈函数为x^10 + x^3 + 1,初始值为0000000001:
1. 初始化寄存器为0000000001。
2. 对于每个时钟周期,将寄存器中的位左移一位,并在最低位插入输入位序列的下一位。
3. 计算寄存器的输出位:将寄存器中的位与反馈函数进行异或运算,然后将结果相加并对2取模,得到输出位的值。
4. 将输出位添加到输出序列中。
根据上述步骤,可以得到FLSR的实现代码如下:
```python
def FLSR(input_seq):
register = [0]*10 # 初始化寄存器为0000000001
output_seq = []
feedback_fn = [1,0,0,0,0,0,0,0,0,1,1] # 反馈函数为x^10 + x^3 + 1
for bit in input_seq:
register.pop(0) # 将寄存器中的位左移一位
register.append(bit) # 在最低位插入输入位序列的下一位
output_bit = sum([register[i]*feedback_fn[i] for i in range(11)]) % 2 # 计算输出位
output_seq.append(output_bit) # 将输出位添加到输出序列中
return output_seq
```
这个代码实现了一个简单的FLSR,可以根据需要进行修改和扩展。