视频领域FPGA平台式开发体系

随着产品上市速度要求,质量要求的不断提升,硬件和软件都在通过各自的方式提升自己的开发速度。硬件领域的模块化,软件领域的平台化,都已经取得了比较明显的效果。无论是在产品质量,开发速度,新员工快速上手方面,只要按照平台化的方式进行开发,都能很好的提升效率。

因此,对于逻辑FPGA的开发,可以结合公司的产品其自身的特点,采用以下的FPGA平台式开发模式,将与底层硬件相关的IP(Intellectual Property)进行封装,然后在此基础上进行各个功能模块,以及单板级的开发。这种开发模式分别择取了硬件的模块化,以及嵌入式软件的底层驱动封装的优点,从而保证了开发的可靠性,灵活性,可扩展性。

此开发平台如果建成,对逻辑开发的效率,可靠性,维护性会带来很大的提升。现有的逻辑开发,如果涉及到新器件使用,至少需要1个月到2个月的时间评估,如果有重要模块需要开发评估板验证的话,所花的时间更长,而这些都会算到项目的开发时间中。而平台中如已纳入相关器件,前期的评估可以缩短到2周左右,可以大大加快项目决策和开发的进度。另外在可靠性方面,因为已在平台中进行过验证,则不会出现逻辑资源不足,代码修改后不稳定等问题。这样降低出问题几率,也就减少了工程维护的成本,提高公司产品形象。

如下图,此平台共分为4个开发层,物理接口层,驱动封装层,功能模块层,应用层。越是下层与器件关系越密切。
在这里插入图片描述
(1)物理接口层
此层次负责生成各个不同FPGA厂商的硬件IP,进行参数配置,以及使用厂商提供的示例工程进行仿真。虽然同一类型IP功能都基本相同,但不同厂家的IP生成方式,参数,调用方法,注意事项都各不相同,需要各自熟悉和摸索。
对于生成的各个IP模块需要按照厂家,器件型号,软件版本分别放置,便于查阅和重新调用修改。此层次的管理注重对各个IP的熟悉和使用,对于开发无太多要求。
(2)驱动封装层
此层次将同一类型的IP封装成相同的接口,以供上层功能模块调用。传统的FPGA开发往往不关注此层次,都直接在功能模块中调用底层IP,所以当器件发生变化时,就需要重新修改代码,适应新的器件。由于端口的不同,甚至会造成很大改动,这样就会对开发效率和可靠性带来很大影响。
这个层次的开发内容是整个FPGA开发平台的支撑,必须兼顾到上层接口的通用性,以及下层不同厂商IP的有效封装。在有新的厂家的器件加入时,必须适时进行版本的更新。
(3) 功能模块层
此层次是实现各个不同功能模块,公司以视频开发为主,所以此层次多是各种视频相关功能模块,所以仿真时也要做到视频输入输出级别的仿真。
此层次的功能模块虽然与底层IP无直接关系,但是在调用和仿真时还是要选择相应的器件。
另外此层次的模块也不是都用到底层IP的,部分模块是纯代码的,可以在各个器件上调用。
(4)应用层
此层次只是负责调用各个功能模块,组装成所需要的单板功能。

这种平台式的开发方式,需要建立在相应器件的熟悉研究之上,通过合理的封装来隔离不同器件的多样性,可以使上层开发人员更专注于功能的实现,而不需在开发功能模块的同时还去研究不同器件的特性。所以底层的器件必须选择公司常用的器件,进行充分的学习和熟悉,而不是把所有的器件都归到此平台中。

为了实现FPGA平台式开发,必须实现以下内容:
1.公司常用的FPGA器件有多种,不能对所有器件都做平台开发,必须有重点,优选两种器件作为第一版本平台支持的器件进行平台开发。
2.对两种器件分别生成同类型的IP进行比较分析,可结合现有实现工程进行。做好归类,记录,文件存放等工作。
3.对封装模块接口进行统一,然后进行封装模块开发。做好归类,记录,文件存放等工作。
4.对已有功能模块进行代码修改,将直接调用底层IP的部分进行替换验证。做好归类,记录,文件存放等工作。
5.在新开发单板中进行使用,旧单板在新增功能或问题修复时进行修改替换。

以上实现内容中,封装模块的设计是最关键的,此模块的设计好坏直接决定了上层模块调用的易用性和通用性,也决定了对下层IP封装的多样性的支持能力。所以必须要分析多家厂商的同一类型IP的接口特点,经过提炼才能得到最通用的接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值