如何理解FPGA中存放程序的RAM?
FPGA内部的RAM分为两部分,一部分就是你的分布式的RAM,用于LUT,还有一种是块ram(BLOCK RAM)是一块用于存储数据的专用RAM,也就是你的系统设计中需要用到容量较大的数据储存区域(比如FIFO,SRAM等)。
FPGA实现逻辑功能就是通过LUT来的,LUT最重要的部分就是RAM,用来保存你的设计转换成的真值表。比如你有4个输入,那么这4个输入产生的组合逻辑结果最多也就是2的4次方16种结果,FPGA把这个16种结果分别对应4个输入地址,输入产生一个4位地址,就在RAM里面找到对应的结果,从而输出相应的结果。
你的理解基本正确,用于LUT的RAM不是在一起的,而是分布式的。另外有一块大的RAM用于系统设计的。
这些ram里面的数据掉电后都会丢失,这也是FPGA和CPLD的区别,FPGA每次上电都要从外部的FLASH或者在线下载BIT流到 内部的RAM里面去。
FPGA内部的RAM或者双口RAM和外挂的bai功能一样,都是拿来存du储数据的。放在zhiFPGA内部的好处就是减少了读写的延时,使dao得数据读写速度更快。FPGA经常被拿来做一些数据处理,需要处理的数据从外部送入FPGA,先被存储到双口RAM内,再从双口RAM的另一个端口送到DSP进行运算,运算的结果可以直接送出FPGA,或者存到另一个RAM中等待做其他处理。