Chisel 加载并存储到火箭芯片的一级缓存中

Chisel 加载并存储到火箭芯片的一级缓存中,chisel,rocket-chip,Chisel,Rocket Chip,我有一个加速器连接到我的RISC V内核,直到现在我都是通过RoCC接口发送数据的。现在我想通过一级缓存发送和接收数据。我知道mem field连接到缓存,但我们如何通过一级缓存执行加载和存储操作呢 查看RocketChip中的累加器ExampleModuleImp。它相当简单,但确实使用一级缓存接口来执行加载。嘿,Jack,感谢您的回复,我知道如何执行存储,但在累加器ExampleModuleImp中,对于加载,我们有地址和标签,但我们从何处获取数据?由于io.mem.req.bits.dat

我有一个加速器连接到我的RISC V内核,直到现在我都是通过RoCC接口发送数据的。现在我想通过一级缓存发送和接收数据。我知道mem field连接到缓存,但我们如何通过一级缓存执行加载和存储操作呢

查看RocketChip中的累加器ExampleModuleImp。它相当简单,但确实使用一级缓存接口来执行加载。嘿,Jack,感谢您的回复,我知道如何执行存储,但在累加器ExampleModuleImp中,对于加载,我们有地址和标签,但我们从何处获取数据?由于io.mem.req.bits.data被设置为零。加载数据在响应
io.mem.resp
中返回,您可以看到此处使用的加载数据:谢谢,这正是我想要的。它不能每个周期都接受事务。
req
接口是一个
ready-valid
接口,因此只有当
mem.req.fire()
为真(即
io.req.ready&&io.req.valid
)时,才应将收到的请求计算在内。请查看RocketChip中的累加器ExampleModuleImp。它相当简单,但确实使用一级缓存接口来执行加载。嘿,Jack,感谢您的回复,我知道如何执行存储,但在累加器ExampleModuleImp中,对于加载,我们有地址和标签,但我们从何处获取数据?由于io.mem.req.bits.data被设置为零。加载数据在响应
io.mem.resp
中返回,您可以看到此处使用的加载数据:谢谢,这正是我想要的。它不能每个周期都接受事务。
req
接口是一个
ready-valid
接口,因此只有当
mem.req.fire()
为真(即
io.req.ready&&io.req.valid
)时,才应将收到的请求计算在内。