如果在Verilog HDL中使用'function‘来计算’参数‘会导致逻辑资源占用 您所在的位置:网站首页 verilogfunction函数 如果在Verilog HDL中使用'function‘来计算’参数‘会导致逻辑资源占用

如果在Verilog HDL中使用'function‘来计算’参数‘会导致逻辑资源占用

2022-06-12 04:53| 来源: 网络整理| 查看: 265

我想在参数语句中实现一些复杂的计算,但这会使我的代码难以阅读。我知道其他一些FPGA工程师使用'function‘来做这件事。代码如下所示:

function integer calc_head_len; input [11:0] DFF; begin calc_head_len=0; if(DFF[11]) calc_head_len=calc_head_len + 16; if(DFF[10]) calc_head_len=calc_head_len + SFL_WIDTH; if(DFF[9]) calc_head_len=calc_head_len + FDSTI_WIDTH_PORT; if(DFF[8]) calc_head_len=calc_head_len + FDSSI_WIDTH_PORT; if(DFF[7]) calc_head_len=calc_head_len + BN_WIDTH; end endfunction localparam FRAME_HEAD_LEN=calc_head_len(DFF);

问题是,首先,据我所知,‘参数’赋值应该只使用常量表达式,但‘函数’可以计算变量,那么为什么这是可以的呢?

其次,“参数”不会占用逻辑资源,因为它们可以在综合阶段计算,但“函数”会在同一时间计算吗?或者它会占用额外的资源?

感谢您的帮助!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有