在 Systemverilog 中实现特殊功能寄存器的最佳方式

most optimal way to implement special function registers in Systemverilog

我正在使用结构实现我的特殊功能寄存器,我可以在压缩结构和非压缩结构之间进行选择,压缩结构的优点是它们允许我能够将我的结构视为向量,但缺点就是从综合的角度来看,解包结构更好,因为"synthesis compilers might be able to optimize unpacked structures better than packed structures".

我想知道使用解包结构是否有意义,即使是出于上述综合考虑。

谢谢。

引自书 "RTL modeling with SystemVerilog",Stuart Sutherland。

重要的不是打包或解包声明,而是您最终对结构执行的操作。如果您使用 packedunpacked 编写完全相同的代码,则综合无关紧要。但是就像你说的那样,如果你想对整个结构执行像 xor 这样的按位运算,那么使用解压缩的结构会变得更加困难。