FPGA中Bank和Clock Region之前有什么关系?

作者:张海军,来源: 傅里叶的猫微信公众号

前言:从今天开始,我们会定期整理FPGA交流群(包括其他FPGA博主的群)里面有价值的问题,并汇总成文章,如果问题多的话就每周整理一期,如果问题少就每两周整理一期,一方面是希望能帮到不经常看群消息的小伙伴,另一方面也算是我们的技术积累。

Q:FPGA中的Bank和Clock Region有什么关系?

A:这应该是很多FPGA工程师都很困惑或者没有认真相关的一个问题,首先来看Clock Region的定义,我们以7系列为例:


可以看出,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

最新文章

最新文章