FPGA实现内存映射寄存器

FPGA implement memory mapped register

我在 fpga (vhdl) 编程方面相对较新。所以我不知道不同解决方案的资源成本...... 所以我想知道如果我想在 fpga 设计中实现一些内存映射寄存器,哪种方法最有意义。我应该设计 1 个地址解码器来选通地址匹配上的所有寄存器,还是设计每个寄存器都有自己的解码器(或者至少每个子组件,如 pwm 发生器,它在我的实现中使用几个寄存器)更好。

提前感谢您的见解 问候 一月

关键资源通常不是门 (LUT),而是工程时间,因此主要关注的是使设计易于管理和模块易于重用。

仅出于这个原因,您应该进行分层地址解码,其中每个模块负责分配地址的分区和解码space。

因此,在您的情况下,PWM 发生器应该具有单独的地址解码器,用于分配给层次结构中下一个更高级别的 PWM 模块的地址 space 中的寄存器。

要了解资源使用情况,您可以安装 FPGA 综合工具并尝试不同的方法;这是一个很好的练习,可以帮助您在不同的实现之间进行选择。