在学习FPGA的过程中,注意是在学习过程中,联系FPGA的使用技巧,强烈建议尝试设计一个SDRAM控制器,不要使用IP核。

学习SDRAM控制器设计,能让你掌握很多知识。

  • 更好的使用状态机去精准控制时序。

  • 学会高速设计中必要的技能,也就是时序约束方法,timing report的阅读方法,查找时序问题的基本技巧,复位方案和时钟方案的合理设计,如何优化代码提升系统最高工作时钟,以及testbench的写法。

写sdram控制器还是能锻炼不少典型技能的,值得去花时间思考尝试,性价比是可取的。

设计流程:

看文档。

实现sdram控制器的逻辑。很多公开的教程都有指导怎样实现基本功能的,方式不一,可以参考;之后再自行思考如何改进性能。

写测试模块,配合仿真模型,验证所写逻辑是否正确,写进去能读出如预期,此阶段不追求速度。

频率觉得不够,加流水,切组合链,并行化等等,改进逻辑提高速度。

研究时序约束,并做进一步优化,让它能在板子上跑起来。

sdram控制器这时应该能用了。


版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号


扫描二维码关注杭州卿萃科技FPGA极客空间


学习FPGA有必要写SDRAM控制器吗?相关推荐

  1. 基于fpga的256m的SDRAM控制器

    2018/7/26 受教于邓堪文老师,开始真真学习控制sdram 由于自己买的sdram模块是256的,原来老师的是128,所以边学边改,不知道最后好不好使,但是我有信心 一.sdram的初始化 sd ...

  2. FPGA学习日记(八)SDRAM的读写测试

    目的:对SDRAM进行读写测试,使用FIFO对SDRAM进行封装. SDRAM功能框图: SDRAM原理图: 初始化状态机: 工作状态机: 代码如下: SDRAM顶层模块:连接外部芯片与测试灯,并通过 ...

  3. FPGA之SDRAM控制器设计(三)

    FPGA之SDRAM控制器设计(三):写 由于已经涉及了上电刷新,写三个大的状态转移,先把状态转移图给出.主控状态转移图是基于手册上描述来的.在代码注释中会给出每个状态的意义解释. 写时序图 写状态转 ...

  4. 基于FPGA的SDRAM控制器设计(二)

    基于FPGA的SDRAM控制器设计(二) 1. SDRAM理论基础 2. SDRAM初始化模块以及仿真 3.TOP模块的仲裁机制 4. SDRAM刷新模块代码以及仿真 5.代码 6.参考资料 1. S ...

  5. 基于FPGA的SDRAM控制器设计(1)

    基于FPGA的SDRAM初始化配置 SDRAM简述 SDRAM的引脚及作用 SDRAM初始化时序控制 SDRAM上电时序代码 SDRAM测试模块的代码 仿真测试结果 参考文献 总结 SDRAM简述 S ...

  6. SDRAM控制器操作时序

    此为学习http://dengkanwen.com/137.html整理的笔记,侵删! SDRAM工作原理 内部的状态跳转图 我们所需关注的几个地方: 1)粗黑线表示在该状态下会自动跳转到另一个状态, ...

  7. 学习FPGA之二:云端加速

    随着互联网,移动互联网,人工智能,物联网(5G),甚至元宇宙的发展,海量的数据越来越多,但是经过有效处理的1%都不到.数据被称为人工智能时代的石油,数据的处理越来越重要,数据中心的运算,传输是在低层需 ...

  8. 简谈:如何学习FPGA

    一.入门首先要掌握HDL(HDL=verilog+VHDL).   第一句话是:还没学数电的先学数电.然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL.因为verilog太像 ...

  9. 学习 FPGA 经验与书籍分享。

    1.不熟悉FPGA的内部结构,不了解可编程逻辑器件的基本原理. FPGA为什么是可以编程的?恐怕很多菜鸟不知道,他们也不想知道.因为他们觉得这是无关紧要的.他们潜意识的认为可编程嘛,肯定就是像写软件一 ...

最新文章

  1. docker-2-简单使用docker-ce
  2. hive sql 报错后继续执行_Hive迁移Presto的技术实践
  3. python paramiko包 ssh报错No existing session 解决方法
  4. mysql 存储过程 输出warning_如何抑制MySQL存储过程的输出?
  5. NeHe教程Qt实现——lesson14
  6. ip地址检查正则表达式 兼容ipv4,ipv6
  7. 部分设备在微信内无法播放audio的解决方案
  8. 3n+1猜想(求关键数)
  9. ORA-00600 [4400][48]错误一例
  10. Cannot find or open the PDB file
  11. FIR数字滤波器的设计及应用——MATLAB
  12. 金银岛(信息学奥赛一本通-T1225)
  13. Java实战视频bilibili
  14. Invalidate() UpdateData() OnPaint()与OnDraw
  15. matlab imdilate
  16. 一行代码打印python之禅
  17. Windows10平台安装CocosCreator V2.3.1
  18. icinga+cacti整合
  19. Redis Desktop Manager for Mac(Redis桌面管理工具)
  20. 常用Android模拟器的默认监听端口(转载)

热门文章

  1. 7z压缩文件及文件夹命令.
  2. C#winform+SqlServer 眼镜店管理系统
  3. ARP表是在交换机上还是在路由器上?
  4. 思科防火墙ASA配置案例
  5. WebRTC基础实践 - 7. 配置信令服务
  6. 基于LTC1068的程控滤波器
  7. 操作系统学习笔记——北京大学陈向群老师课后及习题答案(1)
  8. LabVIEW范例无法打开解决办法
  9. 纪念我的第一个Python程序:猜数字
  10. python 生成唯一ID