问题是当其中一个主人与奴隶互动时,奴隶没有正确地允许另一个(在协议中有一个叫做'waitrequest'的信号,当我用它时,我没有正确地使用那个信号正确地,奴隶总是发送waitrequest,这也帮助我调试问题)。
如图所示尝试双端口RAM 这里 并通过正确使用'waitrequest'信号修改组件,一切都开始正常工作。
现在回答:
的 Q1:zpc_1 HDL代码中读取数据的地址是否应从0x20000偏移量开始,并在每个周期递增0x40(64)以逐字读取数据? (或任何其他方法) 强>
的 A1: 强> 您可以根据需要定义相对于自定义主组件的另一个地址偏移量,并从该地址偏移量开始读取(我在图片中使用了0x00000000)。地址应在每个周期递增0x40(64),以便在@Unn注释时逐字读取数据。
的 Q2:zpc_1能够读取第一个单词并按照第一个单词中的说明继续工作,可能是什么原因? 强>
的 A2: 强> 原因是从机(单端口RAM)无法通过单个端口同时正确响应两个主机,用双端口RAM替换它解决了这个问题。