Random 在随机位置的8位字中添加3位噪声

Random 在随机位置的8位字中添加3位噪声,random,vhdl,noise,test-bench,Random,Vhdl,Noise,Test Bench,我已经创建了一个汉明码编码器来处理信号,到这里一切都很好 我在测试台上实现输出“噪声”时遇到问题。对于噪声,我希望应用最多3位。我必须通过在随机位置添加3位(来自噪声信号)中的每一位来破坏8位输出 例如:noise=111,output=00000000。当噪声被注入8位字时,它看起来是这样的:01000101/11100000/00101010。我一直在尝试rand()函数,但运气不好 我对VHDL还不熟悉,希望您能给我一些指导 作为测试人员,我一直在尝试创建一个名为x的随机整数(范围从0到7

我已经创建了一个汉明码编码器来处理信号,到这里一切都很好

我在测试台上实现输出“噪声”时遇到问题。对于噪声,我希望应用最多3位。我必须通过在随机位置添加3位(来自噪声信号)中的每一位来破坏8位输出

例如:noise=111,output=00000000。当噪声被注入8位字时,它看起来是这样的:01000101/11100000/00101010。我一直在尝试rand()函数,但运气不好

我对VHDL还不熟悉,希望您能给我一些指导

作为测试人员,我一直在尝试创建一个名为x的随机整数(范围从0到7)。并尝试在“x”位置应用1位


所以输出(x)我对VHDL一无所知,但从算法上来说,假设你有一个随机数生成器,这听起来很简单

  • 生成一个介于0到3之间的整数,将多个1放在噪声字中,并用0填充字的其余部分

  • 杂音字的位

  • 噪声字与输出字


  • 关于随机数的第一个问题总是:你是在测试台上需要它们,还是在硬件上真正需要它们。作为一个错误陈述,“我一直在尝试rand()函数,但我没有运气”缺少一个答案,你的问题在这里无法解决,这并不具体。“我也发现很难在网上找到相关信息。如果有人能推荐我其他论坛来收集更多信息。”这是肯定的。正如@Oldfart所说,你需要说明的主要问题是,这是否只是为了模拟测试,或者你真的需要在硬件中生成伪随机数。假设您对噪声分布没有任何复杂的要求,那么这两种选择都非常简单(但在每种情况下,最佳实现将完全不同)。@Oldfart您是对的。噪声将在试验台上实施。您添加最后两段的编辑仍然无法提供and so输出(x),鉴于OP已澄清其要求仅用于模拟,此方法有效。除非模拟试验的数量非常大,否则我可能会对步骤1和步骤2采取更慢的方法(例如,只生成8位随机数,直到我得到一个恰好有3个设置位的随机数)。尽管如此,可以通过链接(例如)到此处来完成此答案:。这说明了如何在VHDL测试台中生成统一的随机整数。