原创 FPGA开发——何去何从?

2010-1-9 14:35 2743 4 4 分类: FPGA/CPLD

   接触FPGA开发有半年多的时间,却有颇多感触。


   不相信FPGA会有什么高手,今天才发现错了。


   http://blog.ednchina.com/riple/39653/message.aspx



       做FPGA绝不能仅停留在写几句vhdl语言,用LPM或IP搭建系统这个阶段。摸索了这些时间,大概明确了今后努力的方向可能有:
       (1)系统时序分析,理解各种约束条件及其建立方法,并在实际的问题中得以运用;
       (2)实现数字信号处理算法
             学习理解常用的数字信号处理算法,在FPGA内部构建基于各种算法的数字信号处理模块;
       (3)理解不同编码风格对FPGA编译结果的影响,学会分析RTL……


01/09/2010 再谈FPGA设计方向<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />      01/09/2010 tianhangchen@gmail.com
1)逻辑设计


由于FPGA可通过软件开发的方式灵活定制硬件电路,使得FPGA在逻辑设计得到了非常广泛的应用,简单的如基本的输入输出IO接口,复杂的到嵌入式MCU的构建(如功能完整的8051软核)。该方向的应用十分广泛,几乎所有的peripheral(如UARTSPITimer)和接口(ISAPCIUSB)均可在FPGA中实现。


此学习阶段,应注重对基本逻辑电路的理解,以及HDL语言至硬件电路的综合过程,形成良好的代码风格。
2DSP算法设计


相对于通用的DSP处理器件,FPGA的并行处理能力使其可在同一时间处理大量不同的任务,在涉及到高带宽复杂计算时可以将DSP中的重复算法和算法中对速率要求严格的部分集成到FPGA中去处理。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


1)算法的描述和分解


   算法简化:发现某个计算方法的规律性,重新构建计算过程,降低计算复杂度,以获得更高的计算效率。


   exp1:离散傅里叶变换————>快速傅里叶变换


   N阶傅里叶变换的复杂度由N2减小到Nlog2N


   exp2:卷积运算


   直接在时域计算卷积————>DFT,计算频域的乘积,IDFT


   算法分解:主要子系统


2)硬件结构的描述和分解:数据流+控制流


3)编译控制(算法和硬件结构的映射)


   最好性能、最小资源、最小功耗、最小成本、最小体积准则等


   将计算资源和算法匹配


   结构和算法的映射过程,是把一个独立于实现和独立于时间的抽象层次上描述的正确算法,映射到把处理器资源以及资源中的事件序列进行具体分配、独立于时间的系统。因此,要从独立于结构和时间的算法描述开始,得到依赖于结构和时间的描述。


4)硬件性能估计与测试(实时性、延时、模块间通信带宽等)


实际上,相对于FPGA逻辑设计而言,DSP设计者需要将精力主要集中在算法的理解和对FPGA资源特性具有针对性的简化上,同时对并行处理、流水线处理甚至是处理器的体系结构有一定的了解。


随着FPGA日益凸显的性能以及日益增强的DSP处理需求,FPGADSP设计应用也逐渐成熟,系统级设计工具及开发方法也逐渐涌现,常见的如System Generator for DSPXinlinx)、DSP BuilerAltera)、matlab/simulinksynplify DSP等,下图为DSP Builder设计流程。


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


DSP Builder设计流程



3)时序分析及处理
4)仿真及验证


5SOPC


 

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条