c语言中expr,【原创】vivado中端口参数计算之expr命令

为了后面自定义IP封装的讲解,在本博文中稍微提一下TCL命令expr的运用。该命令expr是TCL中的内部命令,用于计算表达式,计算出来的结果既可用于定义端口位宽,也可用于其他功能的实现。expr的计算表达式如下所示:expr arg ?arg arg ...?

其中arg是变量,即操作对象。在这里,只列举两个端口位宽参数计算的例子以告诉自己有这样一件事存在。关于expr的详细内容可参考http://wiki.tcl.tk/583 。

假设输入端口dina和dinb的位宽分别为C_DATA_WIDTH_1和C_DATA_WIDTH_2,输出端口dout的位宽为C_DATA_WIDTH_3。

1、当实现乘法的功能时,C_DATA_WIDTH_3的值取决于下式计算结果:expr {$C_DATA_WIDTH_1+$C_DATA_WIDTH_2}

2、当实现加法的功能时,为了避免计算结果溢出,C_DATA_WIDTH_3的值等于C_DATA_WIDTH_1和C_DATA_WIDTH_2之间最大值加1,由下式计算结果决定:expr {($C_DATA_WIDTH_1 > $C_DATA_WIDTH_2) ? $C_DATA_WIDTH_1 + 1 : $C_DATA_WIDTH_2 + 1}

或者expr {max($C_DATA_WIDTH_1,$C_DATA_WIDTH_2) + 1}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值