前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XilinxFPGA中SRL16E的使用详解

XilinxFPGA中SRL16E的使用详解

原创
作者头像
ZeroEDA
发布2022-01-08 17:12:50
1.5K0
发布2022-01-08 17:12:50
举报
文章被收录于专栏:VerilogHDLVerilogHDL

FPGA开发过程中经常会使用到移位寄存器,使用移位寄存器一般是为了将某个信号进行打拍,使得时序符合我们的需求。最常见的一种打拍方法就是在process过程语句中对信号进行移位(在verilog中是在always过程中进行移位)。XilinxFPGA中提供的一个原语SRL6E,可以最大实现16位移位寄存的移位寄存器。? 需要注意的是,SRL16E原语在不同的器件中表现形式可能稍有区别,下面是在Artix-7系列器件中的SRL16E原语:

代码语言:c
复制
  // SRL16E: 16-bit shift register LUT with clock enable operating
   //         on posedge of clock (Mapped to a SliceM LUT6)
   //         Artix-7
   // Xilinx HDL Language Template, version 2020.1

   SRL16E #(
      .INIT(16'h0000) // Initial Value of Shift Register    对寄存器进行初始化
   ) SRL16E_inst (
      .Q(Q),       // SRL data output  寄存器输出端口
      .A0(A0),     // Select[0] input四位输出位选择控制地址
      .A1(A1),     // Select[1] input
      .A2(A2),     // Select[2] input
      .A3(A3),     // Select[3] input
      .CE(CE),     // Clock enable input寄存器使能端口
      .CLK(CLK),   // Clock input          时钟端口
      .D(D)        // SRL data input    寄存器输入端口
   );

example:

代码语言:javascript
复制
`timescale 1ns / 1ps
module SRL16E_Test(

    input clk_in,
    output 	wResetQ,
    output 	wEnableN
    );

wire wResetQ;
wire wEnableN;


SRL16E #( .INIT( 16'hFF00 ) ) mReset
( .CLK ( clk_in ),
  .CE  ( 1'b1 ),
  .A0  ( 1'b1 ), .A1( 1'b1 ), .A2( 1'b1 ), .A3( 1'b1 ),   //选择第16位输出
  .D   ( 1'b0 ),
  .Q   ( wResetQ ) );


SRL16E #( .INIT( 16'h000F ) ) mEnable
( .CLK ( clk_in ),
  .CE  ( 1'b1 ),
  .A0  ( 1'b1 ), .A1( 1'b1 ), .A2( 1'b1 ), .A3( 1'b1 ),  //选择第16位输出
  .D   ( 1'b1 ),
  .Q   ( wEnableN ) );

endmodule

Testbench:

代码语言:javascript
复制
`timescale 1ns / 1ps
module tb_SRL16E;

    reg		 clk_in;
    wire	wResetQ;
    wire	wEnableN;

    always #10 clk_in <= ~clk_in; 				//时钟信号50M
    
    initial begin
        clk_in = 1'b1;
    end

    SRL16E_Test u_SRL16E(
        .clk_in   (clk_in   ),
        .wResetQ  (wResetQ  ),
        .wEnableN (wEnableN )
    );

endmodule

Waveform

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com