在 FPGA 中,通常使用内部存储器(例如 Block RAM)存储程序代码,而将数据存储在外部存储器(例如 DDR3 或 DDR4 内存)中。内部存储器通常拥有更快的读写速度,而外部存储器则拥有更大的存储容量。
不过,如果需要,您可以在 FPGA 中的某个内部存储器中同时存储程序代码和数据,例如可以在系统启动时将程序代码加载到内部存储器,然后在运行过程中读取和写入数据。
因此,是否同时存储程序代码和数据取决于您的系统设计和需求。
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里面去。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)