IP核设计时 状态寄存器和参数寄存器的硬件实现
时间:10-02
整理:3721RD
点击:
我写了一个IP核,需要有状态寄存器和命令寄存器来反映IP核状态和给Ip核传递参数,CPU和IP和都会访问:命令寄存器和状态寄存器 ,请问该寄存器在硬件上怎么实现? 很多芯片都有自己的配置寄存器,工作时也可以从相应的寄存器中读取数据,这些寄存器是跨时钟域操作的,请问在硬件上怎么实现?谢谢!
就做几组能够被总线和自身IP读取或者写操作的register。
命令寄存器能被CPU写就行,由IP读出来执行相应操作。
状态寄存器,能够被CPU读就行,由IP写入,写入的通常是IP的状态值。
不同时钟需要做跨时钟域的电路。不过一般的SOC是同源的时钟,不需要做跨时钟。
当然,你还有很多方式来实现!
总线时钟是100MHz IP的工作时钟是62.5MHz 跨时钟是必须的
我是想问 这些互不相关的命令、状态寄存器 硬件怎么实现 跨时钟怎么处理?
硬件上怎么实现?完全不明白这个意思,不就是一个个reg拼起来吗?
访问这些寄存器又不是必须走总线时钟的,通过其他通讯协议也行啊
以命令寄存器为例,cpu要访问它,IP核要访问它。cpu和Ip核是工作在不同的时钟域,总不能直接去读写命令寄存器吧!一侧直接读写怎么能保证另一侧没有读写该寄存器呢?
又例如:几乎很多芯片都有自己的命令寄存器和状态寄存器,外部访问芯片是要对寄存器读写或设置,我是先问 这种寄存器在硬件层面怎么实现的?怎么处理跨时钟读取问题?
谢谢
