(继续折腾树莓派)LFSR伪随机数高速生成
本帖最后由 量子隧道 于 2025-2-8 16:42 编辑近日正经事太多,脑袋绷得紧紧的,没时间折腾业余爱好(学习Raspberry Pi Pico)。借着下午有一小会时间,搞一搞。这次试试用MCU以全速工作能产出多快的伪随机码。
伪随机码一般以线性移位寄存器(LFSR)来产生。这玩意是个神奇的结构,以几十bit就能生成比宇宙年龄还长的随机序列。在密码,通信领域有大量应用。下图是搬运自我推崇备至的AOE。
代码:
#include <Arduino.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
unsigned long LFSR=0x7fffffff;
void setup() {
// 设置 GPIO 为输出模式
for(int i=0;i<=29;i++){
pinMode(i,OUTPUT);
}
sio_hw->gpio_oe_set = (0x3fffffff);
while(1){
LFSR = (LFSR<<1) | (((LFSR>>30)^(LFSR>>27)) & 0x00000001);
sio_hw->gpio_out = LFSR ;
}
}
void loop() {
}
测得:
其中一路是另一路的1bit延迟。这是因为探头夹在了相邻两个GPIO上。
每生成一个新(伪随机)数需要45nS。这个树莓派被我调成时钟频率5nS了。所以那个while loop需要9个clock tick循环一圈。这应该是极限了。这也超过了90年代的硬件随机数发生器了。若用PLD的话可以把9缩成1。
因为所有20多个管脚同时输出,并且相互间是时移关系,所以电路板上还可以对这20多个bit做加权求和,模拟sinx/x函数等,做LPF加高斯白噪音生成。
试过双核一起干,分担工作量,结果一圈循环花的时间更多。想来是两个核访问同一个变量的竞争和调度带来的延迟。所以双核通信看起来需要大数据量倒换才高效。
小实验,小玩具,小结论,博君一笑尔。 量子隧道 发表于 2025-2-9 22:27
这是在天朝,可以合法得瑟。所以不能无愧于作者,我尽量多宣传一下这两位作者的这本书,也算给他们爆点知 ...
这件事情的底线是不能拿来牟利,书还算是便宜的,价值几千几万的软件照样拿来“学习或研究”,大家都这么干。
另外俺给自己做好了心理建设,逻辑是这么贵的书无论如何俺都不会买的,因此作者没有任何损失。
;P
是不是下一步就要搞 PIO 版本的了? scoopydoo 发表于 2025-2-8 17:30
是不是下一步就要搞 PIO 版本的了?
正有此意。上次看RP2040手册看到PIO指令集那块中断了。待我看完PIO部分再想能不能做。 推崇的“AOE”是什么,网站? dirtyacc 发表于 2025-2-8 18:20
推崇的“AOE”是什么,网站?
art of electronics,一本书。 量子隧道 发表于 2025-2-8 18:20
art of electronics,一本书。
哦哦,这书我正在看pdf,中文版只有第二版,英文版有第四版了,稍微对比了一下前面的,感觉更新挺多的 本帖最后由 scoopydoo 于 2025-2-8 18:51 编辑
dirtyacc 发表于 2025-2-8 18:20
推崇的“AOE”是什么,网站?
作为一名游戏迷,提起 AOE 俺首先想到的是 Age of Empires (帝国时代),或者山口山里面的 AOE (群伤、群疗):lol
这本书不知道算是番外篇还是姊妹篇也不错!
scoopydoo 发表于 2025-2-8 18:48
作为一名游戏迷,提起 AOE 俺首先想到的是 Age of Empires (帝国时代),或者山口山里面的 AOE (群伤、 ...
这本X篇我是先看的,我觉得好料的密集程度比非X篇更高。 是不是几颗QFN封装的74ALVC门也能做伪随机;P MT4S301 发表于 2025-2-8 19:09
是不是几颗QFN封装的74ALVC门也能做伪随机
肯定能啊。还见有人用LVPECL门和触发器,在PCB上搭出超级快,Gbps+的数字伪随机发生器。 本帖最后由 MT4S301 于 2025-2-8 19:33 编辑
量子隧道 发表于 2025-2-8 19:13
肯定能啊。还见有人用LVPECL门和触发器,在PCB上搭出超级快,Gbps+的数字伪随机发生器。
说到PECL就头疼,之前搓了cross-coupled pair振荡器+波形放大,
原理图已经调出来但PCB走线(双层板上)走不通。差分对称、供电皮、地平面至多顾及2项
说买点小信号NMOS来做无源混频器的,便卡住了:Q
洛彻司特公司有海量BF11〇8存货....... scoopydoo 发表于 2025-2-8 18:48
作为一名游戏迷,提起 AOE 俺首先想到的是 Age of Empires (帝国时代),或者山口山里面的 AOE (群伤、 ...
x chapter能分享一下吗? dirtyacc 发表于 2025-2-9 00:40
x chapter能分享一下吗?
俺手里这个版本有 262MB 太大了,俺在国外,国内的网盘因为没有手机无法注册使用。国外的网盘如果你懂得科学上网的话,我可以放上去。 dirtyacc 发表于 2025-2-9 00:40
x chapter能分享一下吗?
扔个邮箱号,我发给你 量子隧道 发表于 2025-2-9 09:07
扔个邮箱号,我发给你
老兄手里的版本文件有多大?
页:
[1]
2