第一个问题:& I) K( A/ U! s/ v
① FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。0 M0 l- }- r) K
1 z4 m3 H" v e- f* E3 R② BLOCK RAM 即块状RAM,一般每块几十K BIT,拿来做数据临时存储的。比如做DSP运算的时候,外部需要处理的数据先送到块状RAM存起来,再送到乘加器做运算,算完的结果再存到块状RAM内。当然还有其他应用,取决于用户的具体应用。内部RAM的好处是存取速度块,但容量不会很大,整个FPGA的块状RAM加起来也就几十几百兆,再大就需要外部RAM了。 / i( R+ y' X3 Q3 J! F / s2 r6 F' k& Z: B6 c请问:①中所讲的存放FPGA程序的片内RAM与②中所讲的BLOCK RAM(即块状RAM)是同一个RAM吗?(从讲述中了解到:①中所讲的片内RAM是存放程序的,而②中所讲的BLOCK RAM是做数据临时存储的,貌似两者不是一回事?)9 p3 @6 M2 u6 u3 C
$ M. P" y8 B: u) M第二个问题: ; e2 U2 Y% g1 ~) S/ I: E# Q& Z书上说:查找表LUT可以看成16*1的SRAM,软件计算出所有的可能结果并将结果写入SRAM,这一过程就是所谓的编程。那么请问:查找表LUT与片内程序存储器RAM的关系是什么?(是不是所有逻辑模块的LUT可以看做是片内RAM的一部分呢?也就是说片内程序RAM从物理上讲不是一整块?) ]; t$ h8 Q' r, W- e