cyyself
- Subscribers
- Post coverage
- ER - engagement ratio
Data loading in progress...
Data loading in progress...
Hardware specification: SoC: MediaTek MT7986A 4x A53 Flash: ESMT F50L1G41LB 128MB RAM: ESMT M15T4G16256A 512MB Ethernet (Max Speed): XDR6086: 1x 2.5G Wan, 1x 2.5G Lan, 1x 1G Lan XDR...
14401
百所高校要开设开源软件课程了,这个事情真的靠谱么?, 视频播放量 10977、弹幕量 225、点赞数 1183、投硬币枚数 587、收藏人数 200、转发人数 166, 视频作者 码农高天, 作者简介 清华毕业,加州工作,微软码农。每周六中午直播。知乎:高天。微博:码农高天。,相关视频:【高天直播谈】我在清华学了啥?我的本科成绩单出场了!聊聊大学和工作的关系,HA!HA!HA!我想严肃的谈谈高可用,每个程序员都应该有监控和报警的意识 | 如何做监控 | 监控哪些指标 | 产品收益能监控吗,KataGo的弱点真的被找到了,对抗攻击诱导最强AI犯了业余棋手都不会犯的大错,twitter开源了他们的推荐算法,然而有人在里面发现了奇怪的东西……,聊聊我发的论文:如何将芯片验证速度提升4万倍?用FPGA!,国产剧里天才程序员期中考试写的爱心代码,真的现实么?我来复刻一下!,全自动AI来了?教你安装AutoGPT,解放生产力,又给Python修了个可能触发SegFault的Bug,一晚上就merge了,IT大佬直播评价“Java之父”余胜军,直言抛开技术不谈...
14805
15100
DRAM Training DRAM 一直有一个比较麻烦的初始化过程,就是 DRAM Training,其中很重要的一步就是计算出各个数据线相对于时钟的偏移(skew)。这个偏移是怎么来的呢? 我们知道,对于 SRAM,如果想要更多的位宽,只需要把地址线和控制信号连接到多个 SRAM 上,然后把 SRAM 的数据信号并行连接到 FPGA 上就可以了,但是前提是要尽量保证等长,否则一样有偏移的问题。DRAM 也是采用类似的方法进行扩展的,但是 DRAM 通常需要并行连接很多个芯片,例如 8 个 x8 的芯片的合并成一个 64 位的 DDR SDRAM。此时数据线依然是并行连接,但是地址线和控制信号就出现了走线困难:很难在那么小的空间里,等长地把地址和控制信号分布到各个芯片上,而且还有信号完整性的问题。 Fly-by topology 因此,实际上地址和控制信号是采用了串联的方式连接,也就是下图的右边的连接方式: 图源 Versal ACAP PCB Design User Guide (UG863)。 但是数据信号(DQ 和 DQS)依然是并行点对点连接到 DRAM 上的(上图左侧)。这就出现了问题:不同的 DRAM 芯片,数据和时钟的偏差不同,数据可能差不多时间到,但是时钟的延迟越来越大: 注:这里简化了,当成 SDR 来画。 不做任何处理的话,DRAM 采样得到的数据就不正确了。为了解决这个问题,就需要人为地在数据信号上也加上可变的延迟,保证时钟和数据同步,这样 DRAM 才可以实现正确的写入: Write Leveling 为了解决写入时,时钟和数据有偏移的问题,需要采用 Write Leveling 方法来解决。具体思路是这样的:如果 DRAM 以时钟信号去采样数据信号可以得到正确的结果,那反过来,如果认为数据信号是时钟信号,在数据信号的上升沿去采样时钟,应该也可以观测到稳定的结果。 所以 Write Leveling 的工作方式就是: 设置 DRAM 进入 Write Leveling 模式,此时 DRAM 会使用 DQS 信号来采样 CK 信号,把结果输出到 DQ 上 DDR 控制器不断地修改 DQS 的输出延迟,然后统计 DQ 上的输出 示意图如下:
15111