首页 > 技术文章 > 自定义IP之——Avalon MM slave 接口的IP 读数据(readdata)的控制信号read_n是必须的吗?

DoreenLiu 2021-01-29 15:14 原文

在 设计 avalon MM  slave的 IP 时,  我在网络上看了一个资料,以为read_n 信号不是必须的,以为只要chipselect有效就可以将寄存器的值读到readdata端口上:

 但是对比writedata,需要在write_n信号有效的情况下才能将writedata的数据写入IP寄存器。

我有些疑惑,于是我去翻阅了Avalon 的手册:

https://www.intel.com/content/dam/altera-www/global/zh_CN/pdfs/literature/manual/mnl_avalon_spec-ch.pdf?wapkw=avalon&elq_cid=3303981_ts1611910593487&erpm_id=6950610_ts1611910593487 

 从avalon手册可以 看到如果read_n存在且被置位,则会存在一个读数据的动作。就会用到readdata。但是还是看不出是否必须。

然后再去查看了PIO 控制器的一些.v文件(比如 某个工程里面  Qsys产生的 synthesis\submodules 路径 )

 

 

发现这些都没有read_n 信号,然后跟我们工程师讨论了下,他表示IO控制器里面的寄存器读和写 是分开的,地址是不相同的,所以可以不用read_n 信号。也就是当读地址和写地址不相同的情况下, 读使能信号和写使能信号不是必须的。

 

推荐阅读