赞
踩
在做FPGA的开发过程中经常会使用到移位寄存器,一般我们使用移位寄存器的目的都是为了将某个信号进行打拍,使得时序符合我们的需求。最常见的一种打拍方法就是在process过程语句中对信号进行移位(在verilog中是在always过程中进行移位)。但是这里我给大家介绍一下SRL6E,这个是Xilinx提供的一个原语,顾名思义,这是一个可以最大实现16位移位寄存的移位寄存器。
需要注意的是,SRL16E原语在不同的器件中表现形式可能稍有区别,下面是在Kintex-7系列器件中的SRL16E原语:
- --使用原语时,需要加上这两句
- Library UNISIM;
- use UNISIM.vcomponents.all;
-
-
- -- SRL16E: 16-bit shift register LUT with clock enable operating on posedge of clock (Mapped to SliceM LUT6)
- -- Kintex-7
- -- Xilinx HDL Language Template, version 2017.4
-
-
- --以下时=是SRL16E原语
-
- SRL16E_inst : SRL16E
- generic map (
- INIT => X"0000")--对寄存器进行初始化
- port map (
- Q => Q, -- SRL data output--寄存器输出端口
- A0 => A0, -- Select[0] input--四个地址输入端口
- A1 => A1, -- Select[1] input
- A2 => A2, -- Select[2] input
- A3 => A3, -- Select[3] in
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。