Xilinx FPGA中SRL原理.doc

上传人:白大夫 文档编号:3275262 上传时间:2019-08-07 格式:DOC 页数:7 大小:33KB
返回 下载 相关 举报
Xilinx FPGA中SRL原理.doc_第1页
第1页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Xilinx FPGA中SRL原理.doc》由会员分享,可在线阅读,更多相关《Xilinx FPGA中SRL原理.doc(7页珍藏版)》请在三一文库上搜索。

1、Xilinx FPGA中SRL原理SRL(移位寄存器)资源,在FPGA中都有,不过是叫不同的名字。Xilinx FPGA内部的LUT有个特殊功能,就是可以配置成可变长度SRL。5输入的一个LUT可以变成32bit 的SRL6输入的,可以变成64bit的SRL所以,你写的SRL可能被综合成LUT。可以定义移位长度的移位寄存器。就是用一个lut可以实现16位的移位寄存器。SRL16 的是 16bit移位寄存器查找表 / 16-Bit Shift Register Look-Up-Table (LUT)在一个LUT中可以实现16个FF移位的功能!SSRL16 SRL16_inst (.Q(Q), /

2、 SRL data output.A0(A0), / Select0 input.A1(A1), / Select1 input.A2(A2), / Select2 input.A3(A3), / Select3 input.CLK(CLK), / Clock input.D(D) / SRL data input);Xilinx 官网的说明原理SRL16 is a shift register look up table (LUT)。 The inputs A3, A2, A1, and A0 select the output length of the shift register. T

3、he shift register may be of a fixed, staTIc length or it may be dynamically adjusted.The shift register LUT contents are iniTIalized by assigning a four-digit hexadecimal number to an INIT attribute. The first, or the left-most, hexadecimal digit is the most significant bit. If an INIT value is not

4、specified, it defaults to a value of four zeros (0000) so that the shift register LUT is cleared during configuraTIon.The data (D) is loaded into the first bit of the shift register during the Low-to-High clock (CLK) transiTIon. During subsequent Low-to-High clock transitions data is shifted to the

5、next highest bit position as new data is loaded. The data appears on the Q output when the shift register length determined by the address inputs is reached.这里说了几点,- 移位寄存器的初始值可以用INIT属性初始化;- 移位寄存器的长度由地址线的取值决定;- 移位数据从D端输入,Q端输出- 先移入的数据是MSBXilinx 官网的说明Static Length ModeTo get a fixed length shift regist

6、er, drive the A3 through A0 inputs with static values. The length of the shift register can vary from 1 bit to 16 bits as determined from the following formula:Length = (8*A3) +(4*A2) + (2*A1) + A0 +1If A3, A2, A1, and A0 are all zeros (0000), the shift register is one bit long. If they are all ones

7、 (1111), it is 16 bits long.Xilinx 官网的说明Dynamic Length ModeThe length of the shift register can be changed dynamically by changing the values driving the A3 through A0 inputs. For example, if A2, A1, and A0 are all ones (111) and A3 toggles between a one (1) and a zero (0), the length of the shift r

8、egister changes from 16 bits to 8 bits.Internally, the length of the shift register is always 16 bits and the input lines A3 through A0 select which of the 16 bits reach the output.Inputs OutputAm CLK D QAm X X Q(Am)Am D Q(Am-1)m= 0, 1, 2, 3这里提示了几个要点:- 移位寄存器是可变长度的- 长度的改变由地址线来指定- 内部的寄存器长度是不变的,只是截取的长度

9、变了- 数据先移入到A0,然后到A1,以此类推,最后从指定长度的Am-1处输出,比如A=8,则数据从地址0输入,从地址7输出,这样有效的移位长度就为8。Xilinx 官网的说明VHDL例化实例- SRL16: 16-bit shift register LUT operating on posedge of clock- All FPGAs- Xilinx HDL Libraries Guide version 7.1iSRL16_inst : SRL16- The following generic declaration is only necessary if you wish to-

10、change the initial contents of the SRL to anything other than all- zeros.generic map (INIT = X0000)port map (Q = Q, - SRL data outputA0 = A0, - Select0 inputA1 = A1, - Select1 inputA2 = A2, - Select2 inputA3 = A3, - Select3 inputCLK = CLK, - Clock inputD = D - SRL data input);- End of SRL16_inst ins

11、tantiation复制代码Xilinx 官网的说明Verilog例化实例- SRL16: 16-bit shift register LUT operating on posedge of clock- All FPGAs- Xilinx HDL Libraries Guide version 7.1iSSRL16 SRL16_inst (.Q(Q), / SRL data output.A0(A0), / Select0 input.A1(A1), / Select1 input.A2(A2), / Select2 input.A3(A3), / Select3 input.CLK(CLK

12、), / Clock input.D(D) / SRL data input);/ The following defparam declaration is only necessary if you wish to/ change the initial contents of the SRL to anything other than all/ zeros. If the instance name to the SRL is changed, that change/ needs to be reflected in the defparam statements.defparam

13、SRL16_inst.INIT = 16h0000;/ End of SRL16_inst instantiation然后具体例子:基于SRL16的分布式RAM不再支持V5、S6和V6等器件,但是SRL16是所有XIlinx器件都支持的,并且在设计中应用非常频繁,因此可通过调用原语的方法来调用SRL16E甚至SRL32E来实现原来ISE分布式RAM IP核的设计。下面给出一段示例代码module s2p_8channels_srl16(a, d, clk, we, qspo);input 3:0 a;input 4:0 d;input clk;input we;output 4:0 qspo;

14、SRL16E #(.INIT(16h0000) / Initial Value of Shift Register) SRL16_inst_1 (.Q(qspo0), / SRL data output.A0(a0), / Select0 input.A1(a1), / Select1 input.A2(a2), / Select2 input.A3(a3), / Select3 input.CE(we),.CLK(clk), / Clock input.D(d0) / SRL data input);SRL16E #(.INIT(16h0000) / Initial Value of Shi

15、ft Register) SRL16_inst_2 (.Q(qspo1), / SRL data output.A0(a0), / Select0 input.A1(a1), / Select1 input.A2(a2), / Select2 input.A3(a3), / Select3 input.CE(we),.CLK(clk), / Clock input.D(d1) / SRL data input);SRL16E #(.INIT(16h0000) / Initial Value of Shift Register) SRL16_inst_3 (.Q(qspo2), / SRL da

16、ta output.A0(a0), / Select0 input.A1(a1), / Select1 input.A2(a2), / Select2 input.A3(a3), / Select3 input.CE(we),.CLK(clk), / Clock input.D(d2) / SRL data input);SRL16E #(.INIT(16h0000) / Initial Value of Shift Register) SRL16_inst_4 (.Q(qspo3), / SRL data output.A0(a0), / Select0 input.A1(a1), / Se

17、lect1 input.A2(a2), / Select2 input.A3(a3), / Select3 input.CE(we),.CLK(clk), / Clock input.D(d3) / SRL data input);SRL16E #(.INIT(16h0000) / Initial Value of Shift Register) SRL16_inst_5 (.Q(qspo4), / SRL data output.A0(a0), / Select0 input.A1(a1), / Select1 input.A2(a2), / Select2 input.A3(a3), / Select3 input.CE(we),.CLK(clk), / Clock input.D(d4) / SRL data input);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1