接触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(如UART、SPI、Timer)和接口(ISA、PCI、USB)均可在FPGA中实现。
此学习阶段,应注重对基本逻辑电路的理解,以及HDL语言至硬件电路的综合过程,形成良好的代码风格。
(2)DSP算法设计
相对于通用的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处理需求,FPGA在DSP设计应用也逐渐成熟,系统级设计工具及开发方法也逐渐涌现,常见的如System Generator for DSP(Xinlinx)、DSP Builer(Altera)、matlab/simulink、synplify DSP等,下图为DSP Builder设计流程。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
图 DSP Builder设计流程
(3)时序分析及处理
(4)仿真及验证
(5)SOPC
文章评论(0条评论)
登录后参与讨论