如何解决在一个模块中查看X以获取值
我有两个模块“连接”在一起。一个是简单的序列检测器,一个是计数器。
这是方法的两个签名:
module Detector1010 (input [3:0] co_in,input j,clk,rst,output w,output reg init,output reg en);
module counter (input clk,en,init,output reg [3:0] co );
基本上,计数器中的输出寄存器'co'旨在从Dector1010模块读取(因此为co_in)。原因是我希望能够检测co何时达到某个值,以执行某种操作。
在“ Detector1010”中始终有块检查“ co_in”的值
$display("sleep! %d",co_in);
if(co_in == 4'b1111) begin
//reached 16!
$display("reached 16!");
end
在这里,我只是在等待计数器值达到16,并在每次执行always块时打印它的值。 (执行频率有多高?它似乎只是连续运行,而不是按时运行。我想整个问题总是在运行?)。但是,通过显示改为打印:
"sleep! x"
好像没有传递该寄存器的实际值。我使用电线连接两个模块,所以我认为允许这种输入:
wire [3:0] co;
wire init;
wire en;
assign co = 4'b0000;
Detector1010 det(co,j,w,en);
counter cnt(clk,co);
我认为变量'co'只能用作检测器和计数器模块之间的数据总线。我想我误会了该变量的工作原理?不太确定我在这里做错了什么!
我可以发布整个代码示例。我只是想保持简洁。
解决方法
您对Parallel.ForEach(myData.AsEnumerable()...,value =>
{
Object x = new Object(); // or x = dict[key];
x.A = ...;
x.B = ...; //Can I do this and is it safe?
}
信号存有争执,从而导致co
。删除此行:
x
您的assign co = 4'b0000;
模块驱动counter
输出信号,但是您的测试台始终将其驱动为0,始终从时间0开始。co
通常在{{ 1}}模块。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。