文档目录

4.7. 全局变量

组件可以使用并更新C++全局变量。如果访问组件函数中的全局变量,会将其实现为 Avalon® Memory-Mapped (MM) Host接口,类似于指针参数。

如果访问多个全局变量,则每个全局变量都使用相同的 Avalon® MM Host接口,这样会导致可停顿仲裁。如果使用指针和非恒定全局存储器访问,则指针和全局存储器访问全都共享相同的 Avalon® MM Host接口。

除了 Avalon® MM Host接口,组件使用的每个全局变量都有一个输入管道,并且必须为其提供系统存储器中全局变量的地址。在RTL中生成的输入管道自变量被命名为@<global variable name> 。针对指针自变量而生成,但省略了@的输入管道被用于命名相应的指针自变量。

如果你的全局变量被声明为const,就不会生成 Avalon® MM Host接口,也不生成任何其它输入管道。因此,将全局变量声明为const会比使用可修改的全局变量所占用的FPGA面积显著减少。