如果设计中有多个模块,每个模块内部有许多寄存器或者存储块需要配置或者提供读出那么实现方式有多种,主要如下:
实现方式一:可以在模块顶部将所有寄存器引出,提供统一的模块进行配置和读出。这种方式简单是简单,但是顶层连接工作量较大,并且如果配置个数较多,导致顶层中寄存器的数目也会较多。
实现方式二:通过总线进行连接,为每个模块分配一个地址范围。这样寄存器等扩展就可以在模块内部进行扩展,而不用再顶层进行过多的顶层互联。如下图所示:
那如果进行总线的选择,那么有一种极为简单的总线推荐被使用,那就是AVALON-MM的总线
ALTERA提出两种总线类型,分别是AVALON-MM, AVALON-ST。分别用于连接memeory 和数据流的传送 MM不是你想的意思,其英文为memory map。实现内存映射是其主要目的。主要信号包括如下表所示:
信号 |
例子 |
address |