为什么我的设计中的移位寄存器是用分布式RAM实现的,而不是寄存器资源?-Lattice-莱迪斯社区-FPGA CPLD-ChipDebug

为什么我的设计中的移位寄存器是用分布式RAM实现的,而不是寄存器资源?

在合成过程中,如果移位寄存器宽且深,同步化将优化移位寄存器到分布式RAM实现,以节省寄存器资源。这种实现的缺点是移位寄存器将相对于性能产生不利影响。如果性能比区域具有更高的优先级,则可以通过为移位寄存器添加SypLimice属性“SythSrLyStase=寄存器”来禁止优化。例如,

在Verilog中:

Reg [15:0] AyReG/*合成SythSRLyType =“寄存器”*/;

在VHDL:

信号AYRG:STDYLogLogic向量(15下降到0);
属性SythSRLoStry:字符串;
AyReg的属性SythSRLL样式:信号是“寄存器”;

如果在设计中有很多大移位寄存器,则必须将属性添加到每个实例化中。

另一种方法是在整个设计中添加.sDC约束文件中的属性。例如:

定义EndoSeCopySO集合Fo{{查找*-HIE-Field:Ayt==SEQSHIFT}
定义属性{{$Fo}{{SythSRLyStudi}}{} }

当“SythSRL样式”属性设置为“寄存器”时,SypRIFIt将使用寄存器资源实现移位寄存器,而不是使用分布式RAM。

请登录后发表评论

    没有回复内容