问题标签 [amba]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
57 浏览

fpga - 如何进行以 ACLK 为中心的数据传输

在 AXIS stream speck 中,ACLK 定义为:

全局时钟信号。所有信号都在 ACLK 的上升沿采样。

这意味着假设 AXIS 主机和从机接收相同的 ACLK。请您帮助理解以下内容:
1) 如果 AXIS 主从模块上存在 ACLK 转换,则由设计人员负责。Speck 对此没有任何限制。我的理解对吗?
2) 数据传输应该是 ACLK 中心对齐。所以开发者应该让 AXIS 主机发送时钟中心对齐的数据。正确的?
3)如何进行以ACLK为中心的数据传输?假设您在整个系统中有全局时钟,要使要传输的数据时钟中心与该数据对齐,您需要生成与全局时钟相左移的新时钟。任何想法我们如何在 FPGA 中做到这一点?

0 投票
1 回答
360 浏览

verilog - 两个主组件控制同一个从设备(地址分配),英特尔 Quartus Prime Platform Designer (Qsys)

我正在使用 DE1-SoC(FPGA + ARM cortex A9)做一个项目。你可以在这里看到设计的一部分(Qsys,平台设计者)

片上存储器(RAM、image_memory)由两个不同的主控器控制。其中一个主模块是众所周知的h2f_lw_axi_master(由 Quartus Prime 软件提供,使 ARM 和 FPGA 数据交换成为可能),另一个zpc_1是我设计的自定义主模块。

这个项目的基本思想是,FPGA配置完成后,应该可以将数据写入片上存储器,zpc_1读取存储器的内容并对其进行操作。

每个字的长度为 512 位(64 字节),共有 1200 个字(因此分配的地址从0x0002_0000开始,到0x0003_2bff结束,足够的空间用于 76800 = (512 * 1200) /8 字节。hps 使用 uint512_t (来自 boost 库c++) 类型数据写入和 zpc_1 的 readdata 宽度为 512 位。地址是相对于h2f_lw_axi_master分配的。

我有两个关于这个系统的问题。

1 、 zpc_1 HDL代码中读取数据的地址是否应该从0x20000偏移开始,每个周期递增0x40(64)来逐字读取数据?(或任何其他方法)

2. zpc_1能够读取第一个字,并按照第一个字的指示连续工作,可能是什么原因?

如果您需要更多信息来回答问题和/或问题不够清楚以至于无法理解,请随时询问更多信息(评论)。

0 投票
1 回答
38 浏览

caching - MESI 协议 snoop 实现问题

我有一个 MESI 协议问题。假设我有两个核心(核心 1 和 2),每个核心都有自己的二级缓存。当两个内核具有相同的数据并且缓存线处于状态 S 时,这意味着它们都具有干净且相同的数据。在 t=0 时,核心 1 写入缓存行,核心 1 将切换到 M(已修改),核心 2 最终将处于 I(无效)状态。在物理世界中,此交易需要时间才能完成。假设缓存 2 需要 5 秒才能知道缓存 1 更新了缓存行。

假设在 t=2 时,核心 2 写入相同的缓存行并切换到 M 状态。来自核心 2 的写入操作将在 t=7 (2+5) 时通知核心 1。然后核心 2 需要在 t=5 时使缓存 2 无效,而核心 1 在 t=7 时使该行无效。现在两条线都失效了,核心1和核心2写入的数据丢失了。这显然不遵循协议。我的逻辑有什么问题以及如何防止这种废话?

0 投票
2 回答
1104 浏览

stm32 - STM32H7 上的 MDMA 和内部 FLASH R/W

早上好,

我们使用 STM32H7 以 5MSPS 的速率同时采集 3 个 16 位 ADC 通道,并将数据存储在外部 eMMC 中。一切都值得无缝如下: 3 个从属 SPI 和 3 个 DMA 到内部触发器缓冲器;MDMA 将数据交错到 2 个触发器 eMMC 缓冲区;SDMMC 外设到 eMMC 的 IDMA。eMMC 引入了一些意外的等待时间,需要在内部缓冲比预期更多的数据,并且由于我们没有足够的内部 RAM 在 eMMC 等待期间进行足够的缓冲(并且无法在 FMC 上添加外部 RAM,或在 Quad 上添加 nvSRAM -SPI,...由于集成限制),我们研究了使用带有内部闪存的 MDMA 来临时缓冲数据。这是个坏主意吗?STM32H7 上的 FLASH 分为 2 个 bank,第一个可用于程序存储器(因此在 DMA 访问期间不会发生冲突和处理器停止),并且有 2 个 AXI 控制器,MDMA 也是一个 AXI 外围设备……也许速度太慢了?你们有没有人试过这个?

当我们阅读参考手册(第 13 章:MDMA 控制器(MDMA))时:

主直接存储器访问 (MDMA) 用于在存储器和存储器之间或外设和存储器之间提供高速数据传输。MDMA 无需任何 CPU 操作即可快速移动数据。这使 CPU 资源可以自由用于其他操作。

但是 MDMA 可能只能将数据从 AXI 移动到 AHB 或 AHB 到 AXI,而不是 AXI 到 AXI?

最好的问候,克莱门特

0 投票
1 回答
405 浏览

vlsi - 如何在 APB 协议中从从机生成 PREADY 信号?

我正在设计 AMBA APB 从站。我的设计中 AMBA APB 的所有信号都是从主机端正确生成的,但是在什么情况下我的从机应该生成 PREADY 信号?PENABLE、PSEL、PADDR 和 PDATA 可从主机获得。我的从机应该什么时候产生 PREADY 信号?在设计从机以使 PREADY 高时,我应该考虑哪些具体情况?我的数据是否应该仅在 PREADY 为高时才传输?

0 投票
0 回答
42 浏览

amba - AMBA AHB拆分交易的FSM

我是 AMBA AHB 标准的新手。我想在 AMBA AHB 标准中绘制拆分事务的 FSM。你可以看到我到目前为止所画的。问题是我画的很简单,有些交易没有标签,因为我认为它们的标签应该是内部寄存器,因此我没有为它们绘制任何东西。我对吗?

提前致谢。

仲裁者

奴隶

0 投票
1 回答
63 浏览

protocols - 为什么数据不能写在 ASB 的基地址 +1 上

我正在研究关于 AHB 协议的项目。

我正在做的是使用 AHB 系统制作 IP 块并使用 SDK(Vitis)写入/读取数据。

基地址分配给 0x43C0_0000。

如果我用 Xil_Out 在基地址上写入数据,它就可以工作。

但是,当我给 Xil_Out 0x43C0_0000 +1 时,它不起作用。

通过反复试验,我发现只有 0x43C0_0000 + 4*n 上的地址有效。

为什么写入不在该范围内的数据不起作用?

0 投票
0 回答
9 浏览

amba - AMBA 总线协议控制

我有一个关于这个协议的主人的问题。我找不到控制主人的信息。我了解来自 master 的地址和数据取决于应用程序。但是谁来决定呢?开发人员(系统程序员?)决定应该写入/读取哪些地址和数据,或者必须遵循一些模式?我想知道主人什么时候改变id,什么时候改变地址(命中/错过),什么时候改变它的长度......谁能解释或给我一些信息来搜索?

非常感谢!

0 投票
1 回答
72 浏览

amba - AHB 总线:在宽总线上实现窄从机

我在 ARM 的 AHB 规范中看到了这张图片。这基本上是我们如何使用 AHB 结构与更窄的从站连接的示例。在这里,我无法理解 haddr[2] 作为多路复用器选择的用法。该位将如何帮助我们确定是否需要选择数据总线的上半部分或下半部分。请帮助我理解这一点。

在更宽的总线上实现窄从站

0 投票
0 回答
11 浏览

cpu - 如何触发CPU突发操作?

我正在进行一项硬件设计验证,其中包括 CPU(ARC)、设计(包含 AHB)和连接到 AHB 总线的 SRAM。我想知道 CPU 是否可以通过 AHB 总线对 SRAM 进行突发写入。如果是,如何实施。

以下是我工作的一些细节:

  • 连接 CPU -> AHB -> SRAM

  • C 代码

上述 C 代码仅通过 AHB 对 SRAM 进行单次写入。

为了进行突发写入,我应该考虑什么?我应该参考 ARC 手册了解突发功能吗?或者向编译器添加一些 FLAGS 以优化它以实现突发操作?本质上我想知道 CPU 是如何实现突发写入的。