原创 开篇:FPGA快速系统原型设计--敏捷实践

2015-10-22 12:41 3085 29 35 分类: FPGA/CPLD

    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。

    先上一篇PPT:pdf.gifRSPwFPGAs BookIntro v2.pdf

 

    再转一篇e-Mail:

 

    很高兴能认识两位技术专家,并得到你们的帮助。

 

    我使用Altera的芯片和工具已经有10多年了,对其工具的易用性感受很深。在工作中,我自己写了一些用于仿真、调试的工具,也结合实际,把一些软件开发中常用的配置管理工具引入到了FPGA产品开发中。在我的第一份工作中,我就已经开始使用版本管理工具和迭代式开发方法,我们那时候叫“小步快跑”。从工具角度看,版本管理、回归测试、自动化脚本是敏捷开发必不可少的要素;从开发方法看,迭代式开发、提早集成、每日发布、及时反馈和重构是敏捷开发的精髓。这些从软件工程中得来的工具和方法,也适用于FPGA开发,毕竟FPGA开发离不开编码,而且芯片本身也是可编程和可重构的。然而,工具和方法都是形式上的。敏捷开发真正的难点在于“落地”,也就是结合工程开发的具体情况,调整工具和方法的使用,使其服务于具体的工程开发实践。把形式上的敏捷,转变成本质上的敏捷。

 
    我们要做的这本书,就是要结合一个具体的工程,把敏捷开发的方法和工具,“落地”到FPGA开发中,有针对性地解决一些FPGA开发者经常遇到的“痛点”。
    工程的选取,我现在的想法是在EasyGX上,开发一个兼容Intel 82574L的PCIe千兆网卡。通过这个工程,读者可以掌握SG-DMA PCIe接口设备的开发,可以掌握RGMII以太网接口设备的开发,并打通从Linux OS到互联网/云的数据通路。在此基础上,可以进一步扩展线速度网络协议卸载(我之前做过UDP协议卸载的产品,TCP协议卸载的原型,IEEE1588的硬件辅助实现),OpenCL异构计算(EasyGX的板上资源是否能够支持,还有待考证),以及PCIe存储协议接口(我正在做的一个开源项目)。
 
    工程中涉及到的知识点有:芯片底层IO特殊功能的使用、Serdes的使用和调试、PCIe IP Core的使用、Qsys层次化架构的使用、DMA的设计和使用、一个最小功能以太网MAC的开发、仿真模型的设计和使用、C和System Verilog联合仿真接口的设计和使用。
    工程中涉及到的工具有:Qsys、多个基于Virtual JTAG的调试工具、Quartus Tcl脚本、Modelsim Tcl脚本、TimeQuest时序约束和分析、GIT版本管理工具。
    工程中涉及到的方法有:FPGA工程的版本管理方法、FPGA工程的自动化发布方法、FPGA工程的回归测试的方法、FPGA迭代式开发方法。
 
    全书的篇章按照迭代式开发的方法,从骏龙提供的PCIe DMA参考设计出发,每一章扩展开发一部分功能,引入一部分工具和方法。每一章自成体系,具备一个迭代周期的全部内容:需求分析、目标分解、任务实施、回顾反思、下一阶段计划。
 
 
    以上是我对这本书的一些计划和想法。邮件中提到的(3)和(4)超出了我的能力。我们可以考虑请另外一位作者加入或者另起一本书来做。
关于本书涉及的一些素材,可以参考我放在开源代码中的几个工程和附件中的PPT。
 
Hardware Assisted IEEE 1588 IP Core: http://opencores.org/project,ha1588
Bus Transaction Monitor with JTAG: http://opencores.org/project,bustap-jtag
EasyGX-Qsys-PCIe-Study: https://git.oschina.net/riple/EasyGX-Qsys-PCIe-Study
 
    谨以此文作为本系列文章的开篇。
 
 

文章评论6条评论)

登录后参与讨论

ilove314_323192455 2015-10-22 14:04

为riple的回归点赞

用户1696769 2015-10-21 17:06

大神终于归来了……赞一个!

用户1669570 2015-10-21 13:43

博主,请教一个问题,周期约束完毕后,出现不满足的路径,我该如何做,难道只能需改设计吗,以为周期约束后会按照要求自动进行约束的,望楼主指点一二

ash_riple_768180695 2015-10-20 19:31

多谢关注。太久不动笔,有些生疏了。

用户377235 2015-10-19 08:48

你终于回归了,博主

wenxings_326063143 2015-10-11 08:12

学习了 谢谢楼主
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
我要评论
6
29
关闭 站长推荐上一条 /2 下一条