vhdl - 如何在 VHDL 中获得具有 n 个 '1' 的二进制数?
问题描述
我想使用 uniform() 生成一个随机数。最大值必须等于 N 位整数的最大值。
所以我需要用n'1's生成一个二进制数的值
谢谢
解决方案
uniform 给你一个从 0.0 到 1.0 的实数。您需要对其进行缩放以适应所需的值范围,并可选择将其转换为 std_logic_vector。
例如对于 N 位目标值:
uniform(seed1, seed2, rand);
rand_int := integer(floor(rand*2.0**N));
sig <= std_logic_vector(to_unsigned(rand_int,N));
推荐阅读
- javascript - 动态创建的文本字段的访问值
- android - Facebook android 应用丢弃通过 Intent 传递的#hashtag。但它适用于iOS
- android - Flutter - 如何仅在列表视图中显示所选项目
- c++ - 关于 SFINAE 的函数和结构之间的差异
- node.js - NodeJS:用于服务器端应用程序的 Google 登录
- java - java.lang.RuntimeException:执行doInBackground()时发生错误Singleton android错误
- java - 从 Apache Camel 中的特定偏移量开始阅读 Kafka 主题
- go - 使用存储结构字段名称和类型的映射来恢复 Go 结构
- google-apps-script - 您如何完成 Google 插件授权生命周期?
- cluster-computing - Slurm:失败的作业将被 --requeue 多少次