我在使相对简单的FPGA设计(对于Altera Cyclone IV)满足由250 MHz时钟驱动的逻辑时序方面遇到麻烦。这让我想知道商用微处理器(例如Intel Core i7)如何满足时钟频率超过高出一个数量级的时序要求。
当我为FPGA苦苦挣扎于250 MHz时,商用微处理器如何满足3.8 GHz的时序要求?
我在使相对简单的FPGA设计(对于Altera Cyclone IV)满足由250 MHz时钟驱动的逻辑时序方面遇到麻烦。这让我想知道商用微处理器(例如Intel Core i7)如何满足时钟频率超过高出一个数量级的时序要求。
当我为FPGA苦苦挣扎于250 MHz时,商用微处理器如何满足3.8 GHz的时序要求?
Answers:
FPGA本身实际上没有“门”。它们通常具有查找表(LUT)。LUT通常使用SRAM来实现。例如,Spartan 3 FPGA使用16位SRAM。也就是说,四个地址输入产生一个输出信号。通过向SRAM加载代表真值表的位模式来完成“编程”,例如对于2输入XOR,您的地址为00 =输出0,地址01 =输出1,地址10 =输出1,地址11 =输出0。
所有这些都意味着FPGA实际上具有许多,许多额外的和不必要的门来执行相同的逻辑功能。如果您需要FPGA来实现可重编程性和快速原型设计,那就太好了!实际上,有些人首先在FPGA中实现设计,然后对其进行调试,然后再移至ASIC,后者将变得更小,更快,消耗的功率更少,而这一切都与FPGA相同。
现代微处理器也正在流水线化。例如,在一个简单的FPGA程序中,一个非常大的计算涉及几个加法,可能还有几个乘法,并且可以在同一时钟周期内进行比较。在一个时钟周期内完成所有这些工作意味着时钟周期必须很长。在流水线实现中(可以在FPGA中实现并且经常用于实现时序收敛),将大的计算分解为多个部分,并且每个部分都在一个短得多的时钟周期内执行。仍然需要大约相同的时间来进行计算,但是优点是,在计算出第一块并将第一部分基准移动到第二块之后,第一块可以立即开始处理第二个基准。第一次计算仍然需要很多周期才能完成,
简而言之,FPGA具有通用逻辑,而CPU具有特定逻辑。FPGA具有通用路由,而CPU具有特定路由。FPGA可能是流水线,但CPU绝对是流水线。
扩展dwlech的评论。处理器具有直接铜线连接。FPGA通过可编程连接相互连接。处理器也将关键内容并排放置。FPGA还需要用于容纳编程的SRAM的空间。