verilog中的错误语句

verilog中的错误语句,verilog,system-verilog,vlsi,Verilog,System Verilog,Vlsi,嗨,我正在使用下面的代码设计一个n位计数器。 根据开始和结束,我想实例化up或down计数器 但我得到的是“格式错误的声明”。请帮忙 module nbitUpCounter(startc,endc , clk, rst_n,actlow,count); parameter n = 7; output reg [n:0] count; input [n:0] startc; input [n:0] endc; input clk; input rst

嗨,我正在使用下面的代码设计一个n位计数器。 根据开始和结束,我想实例化up或down计数器

但我得到的是“格式错误的声明”。请帮忙

module nbitUpCounter(startc,endc , clk, rst_n,actlow,count);
parameter n = 7;

    output reg [n:0] count;
    input  [n:0] startc;
    input  [n:0] endc;
    input clk;
    input rst_n;
    input actlow;

    // Increment count on clock
    always @(actlow or posedge clk or negedge rst_n)
    begin
       if (actlow == 0)
       begin
           if (rst_n==0) 
          count = startc;
       else if (count==endc) count=startc;
           else count = count + 1;
       end
    end
endmodule

module nbitDownCounter(startc,endc , clk, rst_n,actlow,count);

parameter n = 7;

    output reg [n:0] count;
    input  [n:0] startc;
    input  [n:0] endc;
    input clk;
    input rst_n;
    input actlow;

    // Increment count on clock
    always @(actlow or posedge clk or negedge rst_n)
    begin
       if (actlow == 0)
       begin
           if (rst_n==0) 
          count = startc;
       else if (count==endc) count=startc;
           else count = count - 1;
       end
    end
endmodule

module Init(startc,endc , clk, rst_n,actlow,count);
parameter n = 7;

    output wire [n:0] count;
    input  [n:0] startc;
    input  [n:0] endc;
    input clk;
    input rst_n;
    input actlow;
generate
    initial
    begin
        if(startc>endc)
        nbitDownCounter c(startc, endc, C_t,rst_t,actlow,count);
    end
endgenerate
endmodule

module Testbench;

    reg [7:0] startc, endc;
    reg C_t, rst_t;
    reg actlow;
    wire [7:0] outc;

    initial
    begin

    //case 0
    startc <= 8'b00000011; endc <= 8'b0000001;
    //Init i(startc,endc,C_t,rst_t,actlow,count);
    actlow<=0;
    C_t <=1; rst_t <=0;
    #1 $display("count = %b",outc );
    //case1

    rst_t<=1;C_t<=0;C_t<=1;
    #1 $display("count = %b",outc );

    //Case3
    C_t<=0;C_t<=1;
    #1 $display("count = %b",outc );
    //Case3
    C_t<=0;C_t<=1;
    #1 $display("count = %b",outc );
    end
endmodule
模块nbitUpCounter(开始计数、结束计数、时钟、重新计数、动作计数);
参数n=7;
输出寄存器[n:0]计数;
输入[n:0]startc;
输入[n:0]endc;
输入时钟;
输入rst\n;
输入actlow;
//时钟递增计数
始终@(actlow或posedge clk或negedge rst_n)
开始
如果(actlow==0)
开始
如果(rst_n==0)
计数=startc;
如果(count==endc)count=startc,则为else;
否则计数=计数+1;
结束
结束
端模
模块nbitDownCounter(开始、结束、时钟、重新启动、动作、计数);
参数n=7;
输出寄存器[n:0]计数;
输入[n:0]startc;
输入[n:0]endc;
输入时钟;
输入rst\n;
输入actlow;
//时钟递增计数
始终@(actlow或posedge clk或negedge rst_n)
开始
如果(actlow==0)
开始
如果(rst_n==0)
计数=startc;
如果(count==endc)count=startc,则为else;
else计数=计数-1;
结束
结束
端模
模块初始化(起始、结束、时钟、起始、动作、计数);
参数n=7;
输出线[n:0]计数;
输入[n:0]startc;
输入[n:0]endc;
输入时钟;
输入rst\n;
输入actlow;
生成
最初的
开始
如果(开始>结束)
nbitDownCounter c(开始、结束、结束、重新开始、动作、计数);
结束
最终生成
端模
模块测试台;
注册号[7:0]startc,endc;
注册会计师,注册会计师;
reg-actlow;
导线[7:0]outc;
最初的
开始
//案例0

startc您试图在初始块中实例化模块,这是非法的。删除模块Init中的初始begin应该可以解决这个问题。请查看此页面以获取示例:

请发布您的全部错误消息,希望它能告诉您更多信息。