vhdl 怎么产生三个随机数

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 17:11:10
vhdl 怎么产生三个随机数

vhdl 怎么产生三个随机数
vhdl 怎么产生三个随机数

vhdl 怎么产生三个随机数
如果想在仿真中产生随机数 vhdl可以使用math_real函数包中的uniform函数
得到一个real类型的归一随机数 可以对这个数进行其它处理来满足具体要求 比如扩大倍数、截掉小数等
举例如下(产生0~99的随机整数)
library ieee;
use ieee.math_real.all;
use ieee.numeric_std.all;
...
PROCESS
VARIABLE seed1,seed2:positive; -- 缺省值为1
VARIABLE rand:real; -- 产生范围 0 到 1.0 的随机数
VARIABLE int_rand:integer;
BEGIN
UNIFORM(seed1,seed2,rand);
int_rand := INTEGER(TRUNC(rand*100.0));
...
如果希望产生更复杂的随机数(类似于systemverilog中的约束性随机化) 可以下载Open Source VHDL Verification Methodology提供的package 里面提供各种随机数生成函数
用于verilog产生随机数比较简单 也可以用vhdl调用一个verilog模块进行混合仿真