深入理解FPGA
FPGA到底是什么,FPGA其实本身只是一个个孤立开来的器件或者模块,没有任何的联系,我们可以通过FPGA工具,例如Quartus、TD导入芯片的资料,这样就会有芯片的管脚图和一些IP核,这些IP核分为Primitive Core和Soft Core。Primitive Core就是硬核,例如SDRAM,ADC等,这是不需要代码的,因为相当于已经有一个专门用于这个功能的芯片,我们只需要直接利用就可以,把管脚对应到我们需要的管脚,例如PLL,我们直接去拿来用就可以产生非常精准的周期脉冲信号。还有一些软核Soft Core,软核是什么呢,就是比如说我们编写的每一个module其实都可以看作软核,那么为什么板卡自带的软核那么长而且我们看不懂呢,其实是因为公司为了保护自己的IP(知识产权),将这些代码加密了,一般是门级网表的形式,让我们举SD_Card作为例子。这个软核是导入板卡后自带的,那么这个软核大概起到了什么作用呢,其实就是我们将这个软核的Input和Output配置到对应的引脚上,或者说信号上,这个IP软核就会完成对应的功能,对于SD卡来说就是读操作和写操作,这些操作的具体实现就不用我们自己写了,我们只需要阅读官方的使用文档便可以直接使用这些软核。那么为什么例程里面没有用这个自带的IP软核而是自己写SD卡的Read和Write模块呢,因为首先这个软核是加密过的,你不知道他内部具体干了什么,你只能使用它最终的结果,故而不太容易改动&