Rocket

https://mp.weixin.qq.com/s/s_6qPkT2zwdqYLw5iK7_8g

 

简单介绍TLError的实现。

 

 

1. 继承自DevNullDevice

 

TLError继承自DevNullDevice,并把类参数传递给DevNullDevice使用:

根据注释,TLError的行为类似/dev/null,但会给出错误响应。

 

2. lazy val module

 

lazy val module实现TLError的内部逻辑:

 

1) 只有一个输入边

 

TLError作为下游节点只有一个输入边,而没有输出边:

 

2) 为in.a/in.d添加中间变量

 

 

3) idle

 

idle是一个寄存器标志位,默认值为1:

 

idle只有在支持Acquire操作时,才会变化:

不支持缓存操作时,idle一直为真。

-----------------------------------------------------------------------------

这是一篇付费文章,请移步付费阅读全文,谢谢!
文章链接:https://mp.weixin.qq.com/s/s_6qPkT2zwdqYLw5iK7_8g

原文地址:https://www.cnblogs.com/wjcdx/p/12820913.html