常见问题解答

文章的细节

ID: 1060
案例类型: 常见问题解答
类别:
相关:
家庭: 所有FPGA

数据库搜索答案

我有一个三级移位寄存器,软件总是在双端口RAM中实现它,我如何避免基于RAM的移位寄存器?

下面是Verilog的原始代码:

Reg [6:0] shft_reg1, shft_reg2, shft_reg3;
总是@(posedge pclk)开始
shft_reg1 < =喧嚣;
shft_reg2 < = shft_reg1;
shft_reg3 < = shft_reg2;
结束

我想把那些移位组件保留为寄存器。

解决方案1:

综合工具将根据一定的条件决定是将顺序移位寄存器实现为寄存器、分布RAM还是块RAM。用户可以通过指定syn_ramstyle或syn_srlstyle属性来选择不同的实现。这些属性可以被全局地应用于模块或RAM实例。例子:

Module(…)/* synthesis syn_ramstyle="block_ram" */;



reg [3:0] regBank[15:0] /* synthesis syn_srlstyle="register " */; / /注册信息

有关语法和属性值的更多细节,请参阅联机帮助Synplify参考手册。

解决方案2:

另一种解决方案是使用syn_keep属性来保存这些寄存器信号。Synplify将自动实现移位组件作为寄存器。
像大多数网站一样,我们使用cookie和类似的技术来增强用户体验。我们也允许第三方在我们的网站上放置cookie。继续使用本网站,即表示您同意使用我们所述的cookie饼干的政策