JESD204B学习笔记
简介
JESD204B 是在 FPGA 与 ADC 之间的串行接口,串行数据速率可达 \(12.5Gbps\)。相对于 LVDS,JESD204B
可以提供更高的带宽,更小的布局面积,更少的管脚以及更低的功耗。
JESD204B Link Data Flow and Protocol Layer Diagram (Subclass 1)
子类
根据是否以及如何实现时间参考对齐(作为确定性链路延迟的要求),将
JESD204B 分为三个子类
Subclass 0
Subclass 1
Subclass 2
是否支持确定延迟
否
是
是(速度受限)
如何实现确定延迟
N/A
SYSREF
SYNC~
是否向后兼容 204A
是
否
否
时钟和同步信号
Device ClockSYNC~
Device ClockSYSREFSYNC~
Device ClockSYNC~
SYNC~是否时序严格
否
否
是
时序
Frame
Clock:传输层的数据帧与帧时钟对齐,所有发送和接收设备的帧时钟周期必须相同;
Local Multi-F ...
CUDA性能优化
以 LeetGPU-Matrix
Multiplication 为例
性能演进如下图所示
12345678910111213141516171819202122232425262728293031性能 (GFLOPS, V100 FP32) ↑7000| ████████████ cuBLAS/Cutlass | ████████████ (Tensor Core + 汇编) |1000| ████████ async/wmma | ████████ (异步拷贝 + 矩阵指令) | 650| ████████ 寄存器/occupancy 调优 | ████████ (指令调度 + 延迟隐藏) | 500| ████ 向量化加载 | ████ (float4, 128-bit 事务) | 3 ...
FreeRTOS堆内存管理
内存分配
FreeRTOS-Kernel/portable/MemMang
这一部分主要关注的是 FreeRTOS
在申请内存时,调度器挂起到恢复调度器之间的代码。
12345vTaskSuspendAll();{ // 核心代码}( void ) xTaskResumeAll();
heap_1.c
heap_1 仅支持分配内存块,但是不支持释放。
在 heap_1.c
中,下面这段程序的目的是确保 pucAlignedHeap 指向的地址是
portBYTE_ALIGNMENT 的倍数(例如 8
字节对齐),pucAlignedHeap
作为申请空间的逻辑起点,在首次调用 pvPortMalloc
时计算,之后固定不变!
1234567891011/* Ensure the heap starts on a correctly aligned boundary. */pucAlignedHeap = ( uint8_t * )( ( (portPOINTER_SIZE_TYPE) &(ucHeap[ portBYTE_ALIGNMENT ...
代理服务器
123456789101112131415161718 ./+o+- yyyyy- -yyyyyy+ OS: Ubuntu 24.04 noble ://+//////-yyyyyyo Kernel: x86_64 Linux 6.8.0-90-generic .++ .:/++++++/-.+sss/` .:++o: /++++++++/:--:/- o:+o+:++.`..```.-/oo+++++/ Shell: zsh 5.9 .:+o:+o/. `+sssoo+/ Resolution: No X Server .++/+:+oo+o:` /sssooo. WM: Not Found/+++//+:`oo+o /::--:. GTK Theme: [GTK3]\+/+o+++`o++o ...
链路预算
链路预算的目的是验证通信链路是否闭合,即接收端信噪比是否满足误码率要求,并计算链路余量以评估通信系统的可靠性。
核心原理
链路预算是对信号从发射端到接收端整个传输过程中的
增益 与 损耗
在对数域进行代数加减,最终得到接收端的信噪比,并与系统解调门限进行比较。通信链路可分为以下三部分
发送端:决定发射功率、天线增益,核心指标是
EIRP(有效全乡辐射功率)
信道:信号传播过程中的衰减,核心指标是自由空间损耗+大气损耗等
接收端:决定接收信号的能力和噪声水平,核心指标是
G/T(品质因数)
另外,在透明转发卫星系统中,链路分为上行链路(地面 →
卫星)和下行链路(卫星 →
地面),上下行链路串联,噪声会累积,总载噪比取决于较差的一段链路(计算公式为倒数和)
计算流程
确定系统基本参数
基本参数
具体内容
工作频率
上行频点 和下行频点
通信距离
卫星到地面的距离
信号参数
符号速率 ,调制阶数 ,编码码率 ,扩频比 ,滚降系数
指标要求
目标误码率
计算信号带宽
计算发射端 EIRP
:发射机输出功率;
:发射天线增益;
计算 ...
Nginx学习笔记
运行环境
1234567OS: Ubuntu 24.04 nobleKernel: x86_64 Linux 6.8.0-90-genericShell: zsh 5.9Disk: 13G / 68G (19%)CPU: AMD EPYC 7K62 48-Core @ 2x 2.595GHzGPU: Cirrus Logic GD 5446RAM: 804MiB / 3915MiB
安装
部署版
12345678cd /usr/local/srcwget https://nginx.org/download/nginx-1.28.2.tar.gztar -zxvf nginx-1.28.2.tar.gzcd nginx-1.28.2/./configuremakemake installln -s /usr/local/nginx/sbin/nginx /usr/local/bin/ # 全局可执行
配置文件位于 /usr/local/nginx/conf/nginx.conf
调试版
1234567891011cd /usr/local/srcwget https://nginx. ...
内存管理
本文内容基于 glibc-2.43
版本
内存分配
64 位 Linux 内存布局如下图所示
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556# 64-bit Linux (x86_64) Userspace Virtual Memory Layout## High addresses# 0xffffffffffffffff +---------------------------------------------------+# | (non-canonical / guard) |# 0xffff800000000000 +---------------------------------------------------+# | ...
为什么是50Ω
同轴线缆的 特性阻抗是
功率容量 与 损耗 之间的平衡。
阻抗
单位长度传输线的等效模型
单位长度传输线的特性阻抗为
近似无损耗的传输线,特性阻抗表示为
在不精确要求下,这个阻抗与频率无关。表达式中 为单位长度分布电感, 为单位长度分布电容。
设同轴线内导体半径为 ,外导体半径为 ,则有效传输区域为 .
其中
表示填充介质的磁导率,
为填充介质的介电常数, 为真空磁导率,
为真空介电常数;
分别为介质的相对磁导率、相对介电常数。
真空波阻抗满足 ,非磁介质
,则特性阻抗表示为
并且填充空气时 .
功率容量
同轴线功率容量通常由介质击穿限制决定。
在同轴传输线中, TEM
模是主模,电场仅存在径向分量,从内导体外壁指向外导体内壁,磁场仅存在角向分量,围绕内导体环形分布,电场与磁场相互垂直,且均垂直于轴向传输方向。
同轴线内电磁场分布
工程中计算介质击穿功率容量时,可忽略损耗对场强分布的影响,仅考虑静态/低频极限下的径向场强分布。
对于无耗同轴线,其径向场强的静态、低频形式为
其中
表示同轴线内外导体间的电压。当
时取最大值,介电强度(击穿电场 ...
SSH隧道端口转发访问服务器Jupyter
本文省略 Jupyter 安装流程,配置流程如下:
12jupyter notebook --generate-configvim .jupyter/jupyter_notebook_config.py
修改下面内容:
12345c.ServerApp.allow_remote_access = Falsec.ServerApp.ip = '127.0.0.1'c.ServerApp.notebook_dir = '<custom_path>'c.ServerApp.open_browser = Falsec.ServerApp.port = <custom_port>
经过上述配置后,Jupyter 只能在服务器本机的环回网卡开一个 TCP 监听端口
<custom_port>,只有服务器自己能访问,外界扫描不到端口,降低被爆破的风险。SSH
连接建立后,会形成一个加密的双向通道,全程加密并且能在通道中复用多路数据流,当然也包括端口转发。
服务器不开放公网端口,本地使用 SSH 建隧道,把服务器的 Jupyter
端口映射到本地,再用浏览器访问 ...
Visual Studio 配置 GPU
运行环境:
操作系统:Windows 11 Pro
开发工具:Visual Studio 2022 v17.14.24
CUDA
Visual Studio 在新建的工程中,右键 → [Build Custemization
Files],添加下面目录中的 .targets 文件
1C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\extras\visual_studio_integration\MSBuildExtensions
然后
[Properties] → [VC++ Directories] → [Include Directories] 填入
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include
[Properties] → [VC++ Directories] → [Library Directories] 填入
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12. ...