前言:从今天开始,我们会定期整理FPGA交流群(包括其他FPGA博主的群)里面有价值的问题,并汇总成文章,如果问题多的话就每周整理一期,如果问题少就每两周整理一期,一方面是希望能帮到不经常看群消息的小伙伴,另一方面也算是我们的技术积累。
Q:FPGA中的Bank和Clock Region有什么关系?
A:这应该是很多FPGA工程师都很困惑或者没有认真相关的一个问题,首先来看Clock Region的定义,我们以7系列为例:
image-20230513230025082
可以看出,Clock Region是包含很多东西的:CLB、CMT、BUFG、BUFH等,当然也包括IO Bank,CLB中又包含了FF、LUT、DSP等资源。
而IO Bank的定义如下:
I/O banks are collections of I/O blocks (IOBs), with configurable SelectIO drivers and receivers, supporting a wide variety of standard interfaces, both single-ended and differential.
可以看出,IO Bank一般就是指一堆有相同特性的 IO的合集,所以我们一般不会说一个bank里面包含FF/DSP这些资源。
Q:FPGA中如何对寄存器类型做初始化?
A:FPGA的初始化其实比ASIC更灵活一些,initial语句原本是用于仿真时的初始化,但在FPGA中,initial是可以被综合的,这是因为FPGA是基于SRAM查找表结构实现的,上电后需要从外部加载配置信息,这个时候initial可以让存储器载入一个初始化文件,实现初始化的操作。
但对于ASIC的话,initial只能用于仿真,无法综合。
我们甚至还可以采用如下的方式进行初始化:
initial begin : INIT $readmemh(pMemInit, mem_bk); end
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !