早教吧 育儿知识 作业答案 考试题库 百科 知识分享

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模块进行混合仿真