fpga 设计中寄存器、接口上下文中使用的内存映射术语的实际和准确含义是什么?

问题描述 投票:0回答:1

我在

fpga
设计过程中多次听到这些术语,据我所知,我从Google搜索中收集到的信息,就像一些数据将从核心传输到内存。

假设一个系统,其中第一个块是 zynq ps(cortex a-9 处理器核心),第二个块是 axi GPIO,它通过一些中间接口(AXI Intercoonect)连接,因此处理器将

axi gpio
视为内存。这是我通过一些渠道了解到的,但我想实际感受它并消化它,所以我需要正确的解释。

当我们知道它是在寄存器和接口的上下文中进行内存映射时。一般来说,寄存器总是内存,所以我们说它是内存映射的Reister,在处理器的上下文中,我们如何知道它是内存映射的接口?

enter image description here

memory fpga cpu-registers register-transfer-level
1个回答
0
投票

内存映射接口是一种可以被CPU“访问”的接口,就好像它是内存一样。特别是相同的指令(通常还有地址空间)可用于访问外设。 内存的行为使得写入某个地址的值可以从那里再次读回而不改变。 然而,内存映射外设不一定“表现”为内存。相反,它可以具有诸如

之类的行为

仅写入地址,例如在设置某个位时发出命令。读回的值可能始终为 0。

只读地址,将数据传送给CPU。例如状态寄存器。每次读取时它们可能有不同的值
  • 对读或写的副作用。例如,每次写入寄存器时都可以传输消息
  • 当然它也可以只包含某些寄存器后面的普通内存。例如消息缓冲区。
  • 一个主要的
  • 优点
  • 是CPU和软件不需要特殊的指令来访问它,它们甚至可能不会见面“知道”。

一个缺点可能是CPU或软件不知道它,可能会引入错误。例如,编译器可以优化对内存映射寄存器的写访问,假设它从未被读取过。或者,如果 MMU 配置不正确,推测性缓存可能会在外设中触发副作用。

© www.soinside.com 2019 - 2024. All rights reserved.