FPGA中SRL16资源

资源的使用:

今天对FPGA中的srl16资源IP核进行的仿真,以研究其功能,芯片为XC7K325Tffg900。

1、SRL16的作用就是移位寄存器,Xilinx的FPGA中基本单元为CLB,CLB由两个slice构成,分为SliceL与SliceM,其中SliceM中的LUT可以配置为Distribute RAM或SRL;

2、SRL16的IP核名称为RAM-based Shift Register ,其配置参数有以下几个:

(1)、


这个参数确定的是移位寄存器的移位时钟个数。这个时钟个数取决于后面的Depth参数。其中第一个参数Fixed Length 指的是移位周期数是固定的(后面的Depth指定)。第二个参数指的是可变长度的,也就是说移位寄存器的移位长度是可变的,至于长度究竟是多少,那就得看下面的参数Depth了,这个Depth代表的是移位寄存器的最大移位长度(因为是可变的),如果选择这一项的话就意味着会启用一个外接寄存器来控制移位的真正长度,也就是A[]寄存器,这个输入来控制移位的真正长度(但是在Depth范围内)。

(2)、


这个参数指的是优化的参数,也就是面积与速度的选择,当选择可变的移位寄存器长度时,才可以选择面积或者速度;当选择固定长度时,只能选择面积优化。

(3)、

时钟使能引脚

(4)、


第一个参数指的是确定输入数据的位宽,也就是输入数据是多少位的,第二个参数在固定长度移位寄存器中是移位寄存器移位的长度,在可变长度移位寄存器中指的是最大移位长度。

(5)、


先这样想,移位寄存器的目的是把现在输入的数据经过几个时钟周期延时后再输出,这样的话最开始有一段时间(刚输入数据的时间)输出信号线上究竟是什么数据呢?第一要确定的是在上电之后,在1.5个时钟周期内输出的数据是之后我们需要确定的默认数据,而在这1.5个周期之后到我们真正数据移位完成开始输出的这一段时间里数据是什么呢?就是上面的coe文件中的数据或者Default Data,它指的是在上电后一个半时钟周期后到真正的数据输出这段时间内输出线上需要出现的数据,也就是coe或者1111。经验证,coe文件的优先级要高于Dfault Data。

(6)、


这个参数就是1.5个时钟周期内输出的数据。

本文转载自:Next_FSE