的,已经有工程师在设计产品的时候使用了这样的方案:把各种不同的电路功能编译成不
同的配置文件,根据需要通过外部单片机把合适的应用 bit 流写入到 FPGA 内,从而完成根
据功能需要变更硬件,这个需求很好理解吧。在软件领域可重构这个词出现的概率是非常
多的,软件的发展也是往这个方向前进,c++,java 支持下的接口、模板、对象重载等等,
再到组件、COM,无一不用可重构这个概念。在 FPGA 领域,现在绝大部分器件只支持整
体配置,也就是整体重构,如果能支持局部电路重构,那么上面我们叙述的应用就能够很
自然的实现,而且切换速度会很快,实际上我们需要的是在接口不变的情况下切换速度要
非常快,快的让逻辑自身也不知道底层硬件已经重构,就象没有变化一样。为什么我们这
么重视电路可重构呢?一个原因是我们在软件发展的里程上看到的,我们可以在接口的支
持下以相同的程序支持很大一类的应用。另一个原因我认为:人类信息科技发展的一个必
然趋势。为什么这么说呢?需要从我们人本身身上认识开始,我们人类的大脑是亿万年来
自然选择的结果,是宇宙中最精致的事物之一,是物质运动的最高形式(这有些象哲学家
的说辞了),我们的大脑能形成条件反射,一个多次重复的思考过程,最后就形成的直接
的通路,这种变化能让我们以最快的速度去适应和处理信息,我们对计算机的要求不也是
这样嘛,可是,我们现在的计算机对多次重复的处理,能形成直接的通路吗?不能,一个
计算,再怎么重复和有规律,现在的计算机只要程序不变,它永远重复,这就是人类能有
直觉,而计算机不能的一个原因吧。说到这里,基于 LUT 查找表的 FPGA 倒是有些这个思
想的雏形,对于一些逻辑计算,我们通过 EDA 软件的计算和优化,把输入和结果直接下载
到 LUT 的 RAM 中,省略了电路逻辑处理过程,这也算是一个直接通路吧。我们要使计算
机的能力越来越强,现在的一个方法是提高频率,这个方法很直接,可是现在材料和工艺
在功率问题上的制肘已经使这个方法走到尽头了(热衷于提高频率的 Intel 不是也放弃了这
个方法了嘛),于是新的方法是并行,用多核,Intel 和 Amd 现在都在这个阵地上拼抢,说
到并行,实际上 fpga 是一个很好并行处理平台,只要逻辑资源允许,它内部也可以构建 n
处理模块,n 个软核 cpu。这些方法中前一个方法是靠工艺取胜,后一个方法是靠体系取胜,
体系取胜是最终的办法。人类大脑中的蛋白运算并没有如此高的频率,神经传导速度也比
不上电路和光纤,但它的处理能力、容量和适应能力是惊人的。选择 FPGA 的一个直接原
因是它的并行和灵活,但我认为更重要的应该是它的可重构上,特别是局部单元电路可重
构的 FPGA 更能够做到象人类大脑中信息处理机制一样,也就是信息处理的过程中根据需
要能够改变物理联系通道(即底层硬件电路),局部单元可重构的 FPGA 能带来体系结构上