【问题标题】:cannot be driven by primitives or continuous assignment不能由原语或连续赋值驱动
【发布时间】:2015-05-08 15:20:20
【问题描述】:

我明白了

注册输出;不能由基元或连续赋值驱动。

错误。

计数器模块是:

module Counter(
    input             clk,
    input             clear,
    input             load,
    input             up_down, // UP/~DOWN
    input[3:0]        IN,
    input             count,
    output reg[3:0]   OUT
    );
    always @(posedge clk, negedge clear)
    if (~clear) OUT <= 4'b0000;
    else if(load) OUT <= IN;
    else if(count)
    begin
       if(up_down) OUT <= OUT + 1'b1;
       else OUT <= OUT - 1'b1;
    end
    else OUT <= OUT;
endmodule

测试台是:

module test;
   .
   .
   .
   reg [3:0] IN;
   reg [3:0] OUT;

   Counter c1(clk, clear, load, up_down, IN, count, OUT);
endmodule

错误出现在Counter c1(clk, clear, load, up_down, IN, count, OUT); 行中。

【问题讨论】:

    标签: verilog


    【解决方案1】:

    问题是test 模块有这个声明:

    reg [3:0] OUT;
    

    reg 不应连接到模块 output

    test 中的reg 更改为wire,然后确保没有其他信号驱动test 中的OUT 网络:

    wire [3:0] OUT;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-24
      • 2014-06-01
      • 1970-01-01
      相关资源
      最近更新 更多