Random 随机布尔网络在Verilog中的实现

Random 随机布尔网络在Verilog中的实现,random,boolean,verilog,Random,Boolean,Verilog,我想在FPGA中实现布尔网络。布尔网络语句如下所示 随机布尔网络由N个随机连接的节点组成,每个节点都有一个二进制状态:开或关1或0。在NK网络中,每个节点接收从网络中其他节点随机选择的K个输入,并且在大多数情况下允许自连接。图1显示了RBN拓扑的示例 网络中每个节点在t+1时的状态由其在t时的输入状态通过随机生成的布尔函数确定,该布尔函数可用每个节点的查找表表示,见表1。通常,布尔函数在网络的整个生命周期内不会改变。在RBN中,每个节点的布尔函数将2K个可能的输入组合映射到0或1的输出状态 通过

我想在FPGA中实现布尔网络。布尔网络语句如下所示

随机布尔网络由N个随机连接的节点组成,每个节点都有一个二进制状态:开或关1或0。在NK网络中,每个节点接收从网络中其他节点随机选择的K个输入,并且在大多数情况下允许自连接。图1显示了RBN拓扑的示例

网络中每个节点在t+1时的状态由其在t时的输入状态通过随机生成的布尔函数确定,该布尔函数可用每个节点的查找表表示,见表1。通常,布尔函数在网络的整个生命周期内不会改变。在RBN中,每个节点的布尔函数将2K个可能的输入组合映射到0或1的输出状态

通过给每个节点分配一个0或1的值,网络被赋予一个随机初始状态。每个节点在下一时间步的值是使用其输入的状态和每个节点的布尔函数确定的。所有节点同时同步更新。生成网络的新状态,然后用于确定下一个状态,依此类推。网络活动的示例如图所示

我真的很想在verilog中实现这一点。有人能给我一些关于RBN的细节吗

在阅读了关于布尔网络的全部陈述之后,我可以将我的问题分为三个步骤,分别是 首先,我可能想用给定的节点函数实现二进制网络。 第二,我想实现一个随机函数块。 第三,将两者结合起来。顺便说一句

每次重置时,或在编译时,生成不同的网络。随机布尔函数fd_0,d_1,…,d_k-1可以表示为2^k对1多路复用器,具有2^k随机数据输入和从其他多路复用器的N个输出中选择的k个选择输入。对于定时要求,在管路上放置闩锁。我已经为您绘制了网络的基本块:


您将需要N个这样的块与互连的Q。您必须实现组合生成器N choose K,基于表示选择数的输入,并将顶部输入连接到某种随机数生成器编译时(或非编译时)上,这是您的选择。

您能否进一步解释一下您尝试实现的内容。您是否正在尝试创建其中一个网络的模型?或者编写代码来生成这些网络的verilog模型?您是想在FPGA中实现一些东西,还是仅仅是一个模拟器?也许你想在FPGA中实现一些硬件来迭代这些网络的许多可能排列?是的,我想在FPGA中实现硬件来遍历这些网络的许多可能排列。我想在FPGAI中实现这个布尔网络,我认为您需要编辑您的问题,并对您的应用程序进行更多的解释,以便人们更容易提出设计方法的建议。不是算法本身,而是你要做的。把你的问题分开。首先,您可能希望使用给定的节点函数实现二进制网络。其次,要实现一个随机函数块。第三,将两者结合起来。顺便说一句,你想让它在每次重置时还是在编译时生成不同的网络?@AlexeyBirukov。例如,时间要求将无法满足..谢谢@Eugene SH,你是对的。我想在verilog中实现这个。你能帮助我理解代码吗?为上述内容编写代码是一项重要的工作。但是给出的结构实现是1:1转换成代码的,所以我将把它留给您,或者留给有足够时间的人。