本文给出了当SHREG_EXTRACT设置为yes和no时,Schematic的差异,也验证了如下结论:
SHREG_EXTRACT有2个值,yes和no。
当为yes时,等效于SRL_STYLE设置为reg_srl_reg;
当为no时,等效于SRL_STYLE设置为register。
SHREG_EXTRACT设置为yes
测试代码
代码语言:javascript复制module top(
input clk_i,
input data_i,
output data_o);
parameter SHIFT = 4;
(*shreg_extract = "yes"*) reg[SHIFT-1:0] reg_shift;
always @(posedge clk_i)
begin
reg_shift <={data_i,reg_shift[SHIFT-1:1]};
end
assign data_o = reg_shift[0];
endmodule
原理图
SRL_STYLE设置为reg_srl_reg时,第一和最后一级深度用FF(Flip Flop,触发器),其他用LUT,与上图结构一致。
SHREG_EXTRACT设置为no
测试代码
代码语言:javascript复制module top(
input clk_i,
input data_i,
output data_o);
parameter SHIFT = 4;
(*shreg_extract = "no"*) reg[SHIFT-1:0] reg_shift;
always @(posedge clk_i)
begin
reg_shift <={data_i,reg_shift[SHIFT-1:1]};
end
assign data_o = reg_shift[0];
endmodule
原理图
当SRL_STYLE设置为register,用FF(Flip Flop,触发器)生成SRL,与上图的结构一致。