DSP主要用于处理信号,事先算法,特点是多级流水,可以加快数据处理的速度,开发环境主要是C语言,可以理解为软件设计,设计员不需要太了解DSP的内部结构。
FPGA区别于ASIC设计,属于硬件设计的范畴,ASIC是硬件全定制,FPGA是硬件半定制。具体来说ASIC整个电路都由设计员设计,用多少资源设计多少资源,一般用于产品设计。FPGA资源由事先由厂商给定,设计员可以在给定资源下做硬件设计开发。
DSP就是一个指令比较独特的处理器。它虽然是通用处理器,但是实际上不怎么“通用”。技术很牛的人可以用DSP做一台电脑出来跑windows,而实际上真正这么干的肯定不怎么聪明。用DSP做信号处理,比其他种类的处理器要厉害;用DSP做信号处理之外的事情,却并不见长。而且信号处理的代码一般需要对算法很精通的人才能真正写好。 数据结构里面的时间复杂度和空间复杂度在这里是一把很严酷的尺子。 FPGA只不过披着软件的外衣,实际上是硬件。FPGA内部有两层相对独立的电路。使用者“编码->编译”后生成一个映像,这个映像作用于第一层电路。这层电路之际上就是一个0,1的开关矩阵,这个开关矩阵用来控制第二层工作电路,将第二层工作电路配置成一个相应的处理器。 理论上FPGA可以配置成任何需要的处理器,而实际上为了尽量少出bug,FPGA开发都使用已经开发好的“库文件”,也就是把人家能稳定工作的电路图拿过来。
|