SystemVerilog/Verilog的实数输入输出和常数:Cordic或者直接unsynthesizable的C表达

本文探讨了在图像处理中使用SystemVerilog/Verilog进行浮点数运算,特别是涉及指数函数如Gaussian filter时的挑战。正规方法是利用Cordic算法或厂商提供的数学库,但Cordic核主要针对以e为底的指数计算。为快速验证设计,有时会采用不可综合的C表达式。在定义输入输出时,应注意输入实数应声明为`var real 2.718`,输出则只需`real 3.14`。参考资源包括SystemVerilog和Verilog的陷阱以及相关博客文章。
摘要由CSDN通过智能技术生成

因为在图像处理的时候需要用到很多filter,其中Gaussian filter是一个是exponential function,所以要用到e和**。

正规的做法是用Cordic或者xilinx/altera的math lib。


cordic核貌似只能对以e为底的数计算,e^x=coshx+sinhx,选择双曲计算sinh and cosh选项,然后把两个输出相加就是e^x结果.

可以参考http://verilog.openhpsdr.org/。上面有Cordic的分析和test,用的modelsim。路径是:E:\verilog\thesis_2014\Apr6_Conv\cordic\CORDIC Test



但为了快速检验设计,看看neural network对不对,所以暂时先不考虑cordic的设计。当然,要记住RTL是设计电路而不是程序。


参考的资料是:SystemVerilog and verilog gotcha 101 和 http://billauer.co.il/blog/2009/07/verilog-standard-short-port-declaration-output-reg-autoarg/

看到了对于input的实数要定义成:var real 2.718,而output只要real 3.14就行。

//&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值