【FPGA(1)】DDR4接口开发(xilinx MIG IP/verilog)

0 写在前面

  本来想在这个系列的开篇讲一些关于FPGA入门的知识,但是时间实在有限,只好先给大家记录一下我最近的一些工作。关于FPGA的前世今生、硬件编程语言的学习、以及如何快速无痛入门FPGA这些内容我大概率会在近期完成,那些似乎是我更想去记录的东西。不过既然从DDR开始,我不得不先泼一盆冷水——FPGA真的很难,此外,相比较于高级语言(c、python)来说,硬件描述语言(verilog、VHDL)的学习是一个极度需要耐心的过程。
  从目前的就业状况来看,FPGA的性价比不高。同时,本章要讲的DDR也不是入门者需要去接触的内容,如果你不是特别需要看(比如需要写大作业or刷绩点or被导师强迫的or毕不了业),千万别看!不然这辈子都不想碰FPGA了。
  但如果你执意学习,无论什么原因,恭喜你,我们马上要进入数字电路的世界啦。Welcome!和我一同感受用电路的思想去编程的快乐吧!
  PS:我是一个练习时长两年半的FPGA新手,我只能用我曾经无数个在实验室通宵的夜晚教大家如何不那么痛苦地学习FPGA,其他的高深知识我大概率是不会的,你快学,学会了教我!

1 开发环境

平台:vivado 2020.1
语言:verilog
FPGA型号:xilinx ultrascale
DDR型号:因人而异型。大家不要把DDR的型号和FPGA的型号弄混哦,我之前一直以为FPGA是一整块绿色的板子,比如EGO1等,但其实他只是很小的一块芯片,就像CPU一样大,其他的都是你自己配的or别人给你配好的。

2 DDR4 简介

  本章主要简单介绍一下DDR4,满足一下大家的好奇心,相信不想写代码的你一定会觉得很有趣。

2.1 什么是DDR4?

  DDR4 SDRAM的全称为Double-Data-Rate Fourth Generation Synchronous Dynamic Random Access Memory,是一种高带宽的计算机存储器。

2.2 为什么要用到DDR4?

  当我们在使用FPGA实现算法时,经常需要使用RAM资源做缓存或者预先存储一些重要的数据,可FPGA芯片上的资源终究是有限的,大部分中高端片上的BRAM不会超过100MB,而DDR则可以提供GB级的存储空间,能够很好地配合FPGA芯片完成具体的工程。

2.3 DDR4真的是一块大RAM吗?

  这个标题旨在讽刺北大电子学院某L姓教授在无能狂怒时,对学生怒骂道:“DDR4不就是一块大RAM吗?有什么复杂的。” 在这里,我也用这句话作为本小节的标题开启【大RAM】的接口教程。虽然从英文的解释上来看,DDR4属于SDRAM的一种,但是他进行存储时需要遵循的协议和FPGA中的“RAM”相比要复杂的多。

3 Xilinx MIG IP 简介

3.1 DDR4的协议好复杂,Xilinx帮你封装

  如果你想直接控制FPGA与DDR4进行通信,那么需要按照DDR4规定的协议,给芯片的各个管脚送入数据信号和控制信号。这也就要求你必须熟悉DDR4的通信协议才能完成这个工作,但对于大部分人而言,当你的重心不是DDR4接口开发时,这个工作的难度会让你对使用DDR4望而却步。OK,不用担心,你的问题商家更加担心,毕竟你万一觉得片上资源太少,不愿意买FPGA了怎么办?(但我觉得MIG IP核也挺难的,不好入门。这样当你RAM资源紧张的时候,为了不用DDR4,你就会加钱升级芯片哈哈哈哈!SORRY,XILINX!但你可以雇我当你的商业顾问。

3.2 DDR4

啊写不下去了,先发布!等我!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容