Function ncelab中的错误:F*MISLUN:缺少顶层模块、设计单元名称

Function ncelab中的错误:F*MISLUN:缺少顶层模块、设计单元名称,function,verilog,cadence,Function,Verilog,Cadence,我试图实现一个可重新配置的模块,根据用户设置更改其配置。在那里,我将有一个巨大的,如果没有别的梯子。当用户决定将位向右移动4位时,if-else条件梯形图中的所有值也应相应更改,用户无需手动更改每个值。一个核心变化就足以实现这一点 我已经开始尝试它的功能第一,这就是为什么我还没有写定稿,但有麻烦的错误 下面您将了解rtl和tb。我需要两件事的帮助: (1) 为什么我在Cadence实验室软件中出现这个错误? (2) 调整“if…else”条件中存在的值的最佳方法是什么?因为我会有一个巨大的梯子

我试图实现一个可重新配置的模块,根据用户设置更改其配置。在那里,我将有一个巨大的,如果没有别的梯子。当用户决定将位向右移动4位时,if-else条件梯形图中的所有值也应相应更改,用户无需手动更改每个值。一个核心变化就足以实现这一点

我已经开始尝试它的功能第一,这就是为什么我还没有写定稿,但有麻烦的错误

下面您将了解rtl和tb。我需要两件事的帮助:

(1) 为什么我在Cadence实验室软件中出现这个错误? (2) 调整“if…else”条件中存在的值的最佳方法是什么?因为我会有一个巨大的梯子

RTL:

module function_trial (clk,value_in, value_out
);

input clk;
input value_in;
output value_out;

reg [31:0] value_in;
reg [31:0] c;
reg [31:0] value_out;

function [31:0] truncation; //The function truncates the last 4 lsbs
input [31:0] trunc_in;

begin
truncation = trunc_in >> 4;
end
endfunction

always @(value_in) begin

    c = 32'h00000000;

if (value_in >= truncation(32'h08000000) && value_in < truncation(32'h0A000000)) begin

    c = 32'h00000001;

end else if (value_in>= truncation(32'h0A000000) && value_in < truncation (32'h0C000000)) begin

    c = 32'h00000002;
end
end

assign value_out=c;

endmodule

我可能问不好这个问题。如果您需要更多说明,请告诉我。

我看到代码中有两个错误

reg[31:0]值_in
错误,因为它是一个输入,并且输入不能是'reg'类型。你必须把它改成“电线”

reg[31:0]值\u out错误,因为您正在使用“分配”。分配的目标必须是导线而不是注册表。所以这个词也需要改成wire


我无法将这些错误类型与标题中的错误消息相匹配。我怀疑这些错误阻止了模块的生成,这可能是您列出的错误消息的原因。在这种情况下,请检查其他地方的其他错误消息

我在代码中看到两个错误

reg[31:0]值_in
错误,因为它是一个输入,并且输入不能是'reg'类型。你必须把它改成“电线”

reg[31:0]值\u out错误,因为您正在使用“分配”。分配的目标必须是导线而不是注册表。所以这个词也需要改成wire

我无法将这些错误类型与标题中的错误消息相匹配。我怀疑这些错误阻止了模块的生成,这可能是您列出的错误消息的原因。在这种情况下,请检查其他地方的其他错误消息

`timescale 1ns/10ps
module tb_function_trial (
                    );


reg  clk;
reg  [ 31 : 0 ] value_in;  
wire [ 31 : 0 ] value_out;

function_trial function_trial_i (
    .clk(clk),
    .value_in(value_in),
    .value_out(value_out)
                  );


 parameter CLKPERIODE = 20;

 initial clk = 1'b1;
 always #(CLKPERIODE/2) clk = !clk;

 initial begin
  value_in = 32'h00810000;
#10
  value_in = 32'h00B00000;
#50 $finish();
 end

 `include "testcase.v"

 endmodule