在做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
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/60295.html