草庐IT

7.3 Verilog 随机数及概率分布

随机数Verilog中使用系统任务$random(seed)产生随机数,seed为随机数种子。seed值不同,产生的随机数也不同。如果seed相同,产生的随机数也是一样的。可以为seed赋初值,也可以忽略seed选项,seed默认初始值为0。不使用seed选项和指定seed并对其修改来调用$random的代码如下所示:实例  //seedvar  integerseed;  initialbegin   seed=2;   #30;   seed=10;  end  //noseed  reg[15:0] randnum_noseed;  always@(posedgeclk)begin   

7.3 Verilog 随机数及概率分布

随机数Verilog中使用系统任务$random(seed)产生随机数,seed为随机数种子。seed值不同,产生的随机数也不同。如果seed相同,产生的随机数也是一样的。可以为seed赋初值,也可以忽略seed选项,seed默认初始值为0。不使用seed选项和指定seed并对其修改来调用$random的代码如下所示:实例  //seedvar  integerseed;  initialbegin   seed=2;   #30;   seed=10;  end  //noseed  reg[15:0] randnum_noseed;  always@(posedgeclk)begin   

7.4 Verilog 实数整数转换

关键词:定点数,浮点数,$realtobits,$bitstoreal本节主要介绍实数与整数间相互转换的函数:$realtobits,$bitstoreal,同时说明下real型(同C语言中的doublefloat)变量是怎么用多位宽的二进制码表示的。二进制表示小数二进制表示小数十进制整数用二进制来表示时,需要进行数据除以2然后取余的操作。小数部分用二进制来表示时恰好相反,需要进行数据乘以2然后判断整数部分是否大于1的操作。得到2.3125小数部分0.3125的二进制表示的过程如下:计算过程判断二进制位0.3125x2=0.62500.625x2=1.25≥11(1.25-1)x2=0.500

7.4 Verilog 实数整数转换

关键词:定点数,浮点数,$realtobits,$bitstoreal本节主要介绍实数与整数间相互转换的函数:$realtobits,$bitstoreal,同时说明下real型(同C语言中的doublefloat)变量是怎么用多位宽的二进制码表示的。二进制表示小数二进制表示小数十进制整数用二进制来表示时,需要进行数据除以2然后取余的操作。小数部分用二进制来表示时恰好相反,需要进行数据乘以2然后判断整数部分是否大于1的操作。得到2.3125小数部分0.3125的二进制表示的过程如下:计算过程判断二进制位0.3125x2=0.62500.625x2=1.25≥11(1.25-1)x2=0.500

7.5 Verilog 其他系统任务

仿真控制:$finish,$stop系统任务调用格式任务描述退出仿真$finish(type);结束仿真,参数type可选择退出仿真时是否打印信息type=0:直接退出不打印type=1:打印仿真时间和该语句所在的位置行信息type=2:打印仿真时间、位置、存储器和CPU时间的使用情况暂停仿真$stop(type);暂停仿真,用法格式与$finish相同$finish与$stop都有让仿真停止的功能,但他们还是有区别的。$finish是结束本次仿真。$stop是暂停当前的仿真。仿真暂停后通过Verilog仿真工具或命令行还可以使仿真继续进行,而结束仿真后仿真无论如何也不能再进行。$stop类似

7.5 Verilog 其他系统任务

仿真控制:$finish,$stop系统任务调用格式任务描述退出仿真$finish(type);结束仿真,参数type可选择退出仿真时是否打印信息type=0:直接退出不打印type=1:打印仿真时间和该语句所在的位置行信息type=2:打印仿真时间、位置、存储器和CPU时间的使用情况暂停仿真$stop(type);暂停仿真,用法格式与$finish相同$finish与$stop都有让仿真停止的功能,但他们还是有区别的。$finish是结束本次仿真。$stop是暂停当前的仿真。仿真暂停后通过Verilog仿真工具或命令行还可以使仿真继续进行,而结束仿真后仿真无论如何也不能再进行。$stop类似

8.1 Verilog PLI 简介

进行数字设计时,经常会遇到特殊的情况,Verilog中的任务和函数已经不能满足仿真需求,需要自定义一些系统任务和函数。编程语言接口(PLI,ProgramLanguageInterface)提供了一套接口子程序,用于访问设计内部的数据结构,并可以提取仿真环境信息。用户可以调用这些子程序,自定义系统任务和系统函数,与设计内部数据以及Verilog仿真器环境进行交互。PLI功能通俗来讲,VerilogPLI提供了一套C语言函数,设计人员可以调用这些集成函数编写软件C程序。RTL编译时,将编写的软件程序也集成到仿真环境中。仿真运行时,通过系统任务调用的方式,就可以动态的去访问仿真中的数据结构。这种访