首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"cmem“、"infer”和"mport“是什么意思?

"cmem“、"infer”和"mport“是什么意思?
EN

Stack Overflow用户
提问于 2022-04-01 04:49:18
回答 1查看 64关注 0票数 2

我看到由Chisel发出的下列FIRRTL代码:

代码语言:javascript
复制
cmem mem : SInt<64>[8]

代码语言:javascript
复制
infer mport _T = mem[io.address], clock

注意:我的内存对象名为"mem“。

但是,在firrtl 1.5.2规范中,术语"cmem“、"infer”和"mport“不出现。

谁来解释一下这些术语。更好的是,是否有一些我不知道的规范解释了他们?

EN

回答 1

Stack Overflow用户

发布于 2022-04-01 05:14:33

这些是"CHIRRTL“的特点--一个略高于FIRRTL的级别IR,有助于弥合Chisel和FIRRTL之间的差距。这些都没有记录在FIRRTL规范中,但它们应该是。

有三个构造:

  1. cmem,它声明一个组合读存储器。这将映射到具有读取延迟0的FIRRTL内存和声明顺序读取内存的写延迟1.
  2. smem。这将映射到具有读取延迟1的FIRRTL内存和写入延迟1.
  3. write/read/infer mport,后者声明的内存端口是读端口、写端口,或者将被推断为读或写。

这些映射与Chiel的Mem (cmem)和SyncReadMem (smem)结构密切相关。

FIRRTL编译器首先要做的事情之一是移除这些结构并将它们转换为FIRRTL内存,方法是计算它有多少端口,每个端口的时钟/启用数是多少,以及端口是否是读、写或读/写端口。

有关这方面的现有最佳文档是CIRCT的文档:https://circt.llvm.org/docs/RationaleFIRRTL/#chirrtl-memories

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71701951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档