Verilog-2005支持一些简单的数学函数,其参数的数据类型只能是integer和real型。

Integer型数学函数

$clog2是一个以2为底的对数函数,其结果向上取整,返回值典型的格式:

integer result;

result = $clog2(n);

最典型的应用就是通过参数化的方式来求某个变量的位宽,在另一篇文章已经对用法做了详细的介绍:Verilog设计中如何匹配变量的位宽?($clog2系统函数)

Real型数学函数

其参数数据类型为real型,返回值同样为real型,这意味着下面这些数学函数都无法被综合:

Function Description
$ln(x) N自然对数(以e为底的对数)
$log10(x) 十进制对数(以10为底的对数)
exp(x) e^x ,e=2.718281828...
sqrt(x) 开平方
$pow(x, y) x^y
$floor(x) 向下取整
$ceil(x) 向上取整
$hypot(x, y) sqrt(xx + yy)。对两个数平方和开平方
$sin(x) sin
$cos(x) cos
$tan(x) tan
$asin(x) arcsin
$acos(x) arccos
$atan(x) arccos
$atan2(x, y) x/y的反正切
$sinh(x) 双曲正弦
$cosh(x) 双曲余弦
$tanh(x) 双曲正切
$asinh(x) 反双曲正弦
$acosh(x) 反双曲余弦
$atanh(x) 反双曲正切

写个简单的testbench到modelsim验证一下:

module tb_math_fuc;real x, y;        //这些函数的参数需要是real类型,返回也是real类型initial begin       //0.3f表示取小数点后3位,下同x = 10000;$display("$log10(%0.3f) = %0.3f", x, $log10(x));             //以10为底的对数  x = 1;$display("$ln(%0.3f) = %0.3f", x, $ln(x));                        //以e为底的对数x = 2;$display("$exp(%0.3f) = %0.3f", x, $exp(x));                     //e^xx = 25;$display("$sqrt(%0.3f) = %0.3f", x, $sqrt(x));                  //开平方x = 5;y = 3;$display("$pow(%0.3f, %0.3f) = %0.3f", x, y, $pow(x, y)); //x^yx = 2.7813;$display("$floor(%0.3f) = %0.3f", x, $floor(x));                //向下取整x = 7.1111;$display("$ceil(%0.3f) = %0.3f", x, $ceil(x));             //向上取整x = 30 * (22.0/7.0) / 180;$display("$sin(%0.3f) = %0.3f", x, $sin(x));    //sin函数x = 90 * (22.0/7.0) / 180;$display("$cos(%0.3f) = %0.3f", x, $cos(x));   //cos函数x = 45 * (22.0/7.0) / 180;$display("$tan(%0.3f) = %0.3f", x, $tan(x));   //tan函数x = 0.5;$display("$asin(%0.3f) = %0.3f rad, %0.3f deg", x, $asin(x), $asin(x) * 7.0/22.0 * 180);//arcsin函数x = 0;$display("$acos(%0.3f) = %0.3f rad, %0.3f deg", x, $acos(x), $acos(x) * 7.0/22.0 * 180); //arccos函数x = 1;$display("$atan(%0.3f) = %0.3f rad, %f deg", x, $atan(x), $atan(x) * 7.0/22.0 * 180);       //arctan函数endendmodule

这是验证结果:

Verilog语法之数学函数相关推荐

  1. verilog语法学习目录

    verilog语法实例学习(1) Verilog中注释 Verilog代码中的信号 标识符 信号的值 Verilog中的数字 Verilog中的参数 verilog语法实例学习(2) 线网类型 变量类 ...

  2. [转]verilog语法学习心得

    verilog语法学习心得 1.数字电路基础知识: 布尔代数.门级电路的内部晶体管结构.组合逻辑电路分析与设计.触发器.时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  D ...

  3. 探索Julia(part6)--基本命令与数学函数

    学习笔记,仅供参考,有错必纠 参考自:Julia数据科学应用–Zacharias Voulgaris 使用Julia-1.1.1 基本命令与数学函数 基本命令与函数 print与println pri ...

  4. matlab的数学函数,matlab中常见数学函数的使用

    matlab中常见数学函数的使用 MATLAB 基本知识 Matlab 的内部常数 pi 圆周率 exp(1) 自然对数的底数 e i 或 j 虚数单位 Inf 或 inf 无穷大 Matlab 的常 ...

  5. SQL Server数学函数

    数学函数 1.计算绝对值ABS ABS函数对一个数值表达式结果计算绝对值(bit数据类型除外),返回整数. 语法结构: ABS(数值表达式) 返回值:与数值表达式类型一致的数据 示例: SELECT ...

  6. vb怎么判断整数_VB数学函数大全

    Hello大家好,从本节课程开始,我们开启了新的篇章--VB常用内置函数.在VB6.0中,有很多的内置函数,利用好这些函数可以轻松地实现许多功能,减少代码编写量,使程序设计效率更上一层楼.在本章节,我 ...

  7. 使用函数求最大公约数 pta_13个数学函数应用技巧解读,易学易懂,远离数学计算困扰...

    Excel中的函数种类很多,其中有一类为数学函数,如果能够熟练掌握,将会远离数学计算的困扰,提高工作效率. 一.Excel数学函数:Sign. 功能:确定数字的符号,如果为正数.则返回1:如果为0,则 ...

  8. pythonmathcot函数_NumPy数学函数介绍和用法

    本文概述 Numpy包含大量数学函数, 可用于执行各种数学运算.数学函数包括三角函数, 算术函数和用于处理复数的函数.让我们讨论一下数学函数. 三角函数 Numpy包含三角函数, 用于计算弧度中不同角 ...

  9. SQL Server 数据库之数学函数

    数学函数 1. 概述 2. ABS 函数求绝对值 3. Pi 函数求圆周率 4. Power 函数 5. Rand 函数 6. Round 函数 7. Square 函数和 Sqrt 值 7.1 Sq ...

最新文章

  1. python 错误--UnboundLocalError: local variable '**' referenced before assignment
  2. 使用gevent启动bottle web框架
  3. [C++11]继承构造函数
  4. python日志输出 超量 停止_linux 内存分配参数导致的 buffer_pool 分配不出来的问题排查...
  5. GCN-Based User Representation Learning for Unifying Robust Recommendation and Fraudster Detection
  6. 如何优化代码和RAM大小
  7. oracle升级后出现 ora-02055,分布式更新失败 0ra-02055错误 请各位指点(在线等待)...
  8. 【debug】requests.exceptions.ChunkedEncodingError: (‘Connection broken: IncompleteRead(0 bytes read)‘
  9. 下载、安装Keil 5
  10. 多线程python实现方式_python多线程的两种实现方式(代码教程)
  11. 编程语言不仅仅是工具而已
  12. 〖Python〗-- 模块与包
  13. 用JS做关灯游戏(初级)
  14. 急需能临时发邮件的临时邮箱 临时邮箱怎么注册 邮箱163注册入口在哪
  15. 分库分表知识详解与分库分表中间件介绍
  16. Sphinx/coreseek/mysql全文检索
  17. AutoCAD2014官方原版软件下载
  18. 小牛电动股权曝光:李彦持股4.4% 李一男持股降至28.1%
  19. 手机dlna到linux,linux dlna服务器
  20. 【蓝桥杯-单片机学习笔记(三)】共阳数码管的静态显示

热门文章

  1. Python——format
  2. 好书整理(to be continued)
  3. 一位真正的好人却永远走了
  4. 【HDOJ】1493 QQpet exploratory park
  5. json对象与json字符串互转,ajax各常见函数
  6. 【计算机毕业设计】70.毕业设计管理系统源码
  7. 江南,我愿变成你怀中的一枝青莲
  8. zookeeper配置文件zoo.cfg详细讲解
  9. 【Git】如何进行分支合并
  10. STM32入门篇2之外部中断