njithjw的个人空间 https://blog.eetop.cn/505866 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

shift_dly

已有 536 次阅读| 2016-4-17 23:43 |个人分类:FPGA_Verilog

module shift_dly
    #(
    parameter   DLY_DISTANCE = 3,
    parameter   DATA_WIDTH = 8
    )
    (
    input                       rst,
    input                       clk,

    input   [DATA_WIDTH-1:0]    din,

    output  [DATA_WIDTH-1:0]    dout

    );


generate
    if (DLY_DISTANCE == 1)
    begin: DLY1
        reg     [DATA_WIDTH-1:0]    din_dly;
        always @ (posedge clk or posedge rst)
        begin
            if (rst == 1'b1)
                din_dly <= {DATA_WIDTH{1'b0}};
            else
                din_dly <= din;
        end

        assign dout = din_dly;
    end
    else
    begin: DLY_MORE
        reg     [DLY_DISTANCE*DATA_WIDTH-1:0]    din_dly;
        always @ (posedge clk or posedge rst)
        begin
            if (rst == 1'b1)
                din_dly <= {DLY_DISTANCE*DATA_WIDTH{1'b0}};
            else
                din_dly[DLY_DISTANCE*DATA_WIDTH-1:0] <= {din_dly[(DLY_DISTANCE-1)*DATA_WIDTH-1:0],din};
        end

        assign dout = din_dly[DLY_DISTANCE*DATA_WIDTH-1:(DLY_DISTANCE-1)*DATA_WIDTH];
    end

endgenerate

endmodule


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 17

    评论
  • 3512

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-20 13:09 , Processed in 0.024625 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部