在一个模块中查看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}}模块。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...