【问题标题】:Verilog - X value for wire connecting two modulesVerilog - 连接两个模块的电线的 X 值
【发布时间】:2016-07-08 22:00:17
【问题描述】:

我正在制作两个模块,一个serializer 和一个deserializer,我正在尝试将serializer 输出连接到deserializer 输入。 但关键是我有一个不寻常的问题,我定义的临时变量没有改变,它们有 x 值。任何人都可以帮我解决这个问题吗?

这是serializer 的定义:

module serializer (clk, validInput, inputData, outputData, validOutput);

    input clk, validInput;
    input [0:9] inputData;
    output reg outputData;
    output  reg validOutput;

之后还有一些代码,deserializer 看起来像:

module deserializer( input clk, inputBit, validInput,
                     output reg validOutput,
                     output reg [0:9] outputData);

控制器代码是:

module controller(  input clk, validInput,
                    input [0:9] inputData,
                    output [0:9] outputData,
                    output validOutput);
    wire tmpValid = 1, tmpData = 1;



    deserializer dsrilz(
        .clk(clk),
        .inputBit(tmpData),
        .validInput(tmpValid),
        .validOutput(validOutput),
        .outputData(outputData));

    serializer srilz (
        .clk(clk),
        .validInput(validInput),
        .inputData(inputData),
        .outputData(tmpData),
        .validOutput(tmpValid));

endmodule

问题是当我将 tmpDataserializer 更改为另一个值而不是我在开始时给它的那个值时(现在给零,而它在controller 中定义的值是1),而不是变成零,它变成x。 有没有人知道我应该怎么做才能解决它?

【问题讨论】:

    标签: serialization module verilog system-verilog


    【解决方案1】:

    wire tmpValid = 1, tmpData = 1; 行不初始化网络,它应用连续赋值。

    wire 可以有多个驱动程序。当驱动程序发送冲突数据(至少一个 1 驱动程序和一个 0 驱动程序)时,网络会产生 X。

    简单的解决方案。将wire tmpValid = 1, tmpData = 1; 更改为wire tmpValid, tmpData;

    【讨论】:

      【解决方案2】:

      如果我理解正确,您是从串行器(从其 outputData 端口)驱动 tmpData,但您也在控制器内部初始化 tmpData 信号。换句话说,您正在创建具有相同强度的多个驱动程序,当它们都驱动 1 时将解析为 1,但当它们驱动相反的值时将解析为 x。

      您需要做的是在序列化程序中初始化 outputData 和 validOutput,并且不要在控制器中给 tmpValid 或 tmpData 初始值。

      wire tmpValid, tmpData;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多