FPGA系统设计之设计前的思考

来源:互联网 发布:.js文件如何打开 编辑:程序博客网 时间:2024/05/16 11:15

       我的QQ:849886241     有疑问可以邮箱联系。

 说FPGA系统设计。 这个角度我实在没有多少经验。只能说一下,我的思考了。

        从大的系统框架角度来分析FPGA项目的文章,我还没有找到过,我也不知道按照什么样的流程,需要什么样的细节。一下是我在开发设计项目的一般过程。

背景

        主要是面向多人团队合作的方式。团队合作完成,和个人独立完成分别有不同的设计方法。这里画PCB的工作,交给硬件工程师了。

过程

         第一步:要了解自己设计的整体内容都有些什么。估计一些,在这个设计的内容里面,可能将来要升级的地方。比如说,我现在的摄像头最大的是1080p的。可是最近4k的摄像头以及出现了,目前我的设计可能不需要支持4k摄像头(1920p)。但是未来可能需要向这个方向升级。但是也并不一定说要升级到8k(如果有的话),因为那需要很多年后了。可能整套硬件都需要改了。

         第二步:模块划分,当然这个是粗略划分,后面还需要进行在设计,在划分一种迭代的过程。功能划分。这种划分暂时不是分配给每个工程师的。你要完成的内容有了,功能模块划分就容易很多了。比如说,我要做多路图像的缩放拼接输出。而且兼容其他的功能。第一部分一定是视频输入缩放,第二部分,存入ddr2,第三部分就是拼接,第四部分是主控制器。如果还要兼容很多的功能就要主控制器比较灵活了。

         第三步:精细的设计内容。才能更好的模块在细节划分。比如说:视频的不同制式,是否需要自己检测,还是规定好了的。是不是全都是逐行扫描,还是隔行扫描的也有。是否要支持图像暂停功能,是否支持运动检测,是否支持监视区暂停,是否支持画中画结构。输出视频方式是否需要可选等等。有很多的功能自己要想好,因为将来要扩展的,不清楚是什么内容。

        第四步:针对精细的设计内容,然后在分模块。这个时候,需要注意模块的划分原则了。我还是先说一下模块划分原则吧(我记得不是很全面),联系紧密的放到一起,对外接口尽量要少,对外没有时序要求,每个模块的控制器独立放置。不过这个模块划分,我说的不是很明白,好像我这么写只有自己能明白。我来找找看有没有现成的文章。

http://china-lss.blog.163.com/blog/static/3547002720118942542189/这个好像也不全面。关于在分模块这里还是摄像头项目举例:首先要把时钟分离出来,有几个时钟域一定是固定好的,输出,ddr2,这些时钟是确定的。视频缩放模块里面,一定有针对不同的视频格式缩放的算法,算法的完成需要存储器,如果复用,就有复用控制器,选择器,每一个视频输入同步头是否需要单独一个模块。等等。类似的细节就需要现在想的差不多。

         第五步:到目前为止模块划分,到最后一个阶段,引脚规划。比如说:视频输入转接模块,就是4路要输出1路的模块,4选1选择器。它是否需要全不输出控制线,是否需要2个视频叠加控制线,要做到尽可能多的控制线,可以没用,但是有时候少了就会比较麻烦。记得一个答案,无论做多么细致的规划总是有不全面的地方。给自己的程序留余地。余地这么解释,就是在不确定的情况下,不要写的太紧凑。比如说,本来一个always块可以写的,分2个always块,这样,添加控制线的时候,就不会一次控制的太多了。

        第六步:模块硬件验证规划。软件modsim验证,没有什么好说的了吧。每个模块单独验证就可以了吧。这里要说的是硬件验证。有时候并不是modsim验证就能看出来的。比如说图像,没有显示器,光看那些数,有时候还真看不出问题来。前端的图像压缩,其实是可以用输出模块来验证的。所以先想清楚怎么验证,是否可以合作验证,在这个时候需要规划了。

         第七步:开始写程序了。到目前为止,好像芯片选型都没做是吧。因为资源使用量还不好规划,引脚数量到现在已经可以确定了,速度等级,那家公司的。这些东西具体怎么选,这里不用说了吧。我还是找一个连接吧。http://wenku.baidu.com/link?url=efwwGQjf2gc8AAbg8WREKfwTG-pUTtRCQnpMEPkz-_pQJJxqVcLY5pa6KmCKqxG2HxmjfO8CQXXrRX0n0US6fPpRijd2_4zj5MP48omxzme。等几个大的模块能够估算出资源使用的时候,就可以选芯片了,比如说ddr2,或者是nios结构等。如果芯片的情况有变化,比如说不容易采购,价格高昂等。就要从第一步从新开始(但是大体结构一定不会变的)。


         目前就写到这里,后面的过程就不多说了。顺序比较明朗了。无非就是logiclock,时序分析等。

微笑我能力有限,只有一点点经验,所以可能并不完善。希望对各位有点提示作用就可以了。

8 0
原创粉丝点击