verilog3中格式错误的语句

时间:2018-08-09 03:21:46

标签: verilog system-verilog

该代码无效。我收到“格式错误的语句”错误。你们能帮我吗? 它出现在ring_c1模块实例中。 预先感谢。

module log2(N,clk);

`include "parameters.vh"

input [7:0] N;
reg [7:0] aux ;
reg [7:0] last_log;
reg [7:0] div_last;
output reg [7:0] y;
// assign aux = N;
input clk;

parameter high = 1;

always @ (posedge clk) 
begin 
    ring_c1 ri1 ( aux[0], div_last);
    aux = aux >> 1;

    if (aux < 1 )  
        begin   
            ring_c1 r1v ( high, div_last);
            log_Finale (last_log, div_last);

            y = y + last_log;

       end      
    else
        y = y+1;
    end 
endmodule 

3 个答案:

答案 0 :(得分:1)

您不能在Always语句中实例化组件。

您必须将它们放置在永远的外部,然后使用它们。

答案 1 :(得分:0)

搜索Verilog的基础培训课程。

此处提供了一个完全免费的示例:http://vol.verilog.com/

答案 2 :(得分:0)

要扩展@Oldfart的注释:您正在尝试编写RTL(寄存器传输语言),就好像它是具有模块实例化而不是函数调用的编程语言一样,不是。您正在使用代码来描述实际的硬件,门,触发器,存储器组等。如果您无法预见代码将产生的硬件,那说明您做错了。您不能根据设计中的信号实时显示和消失硬件。但是,您可以实例化模块并使用多路复用器逻辑来设计要使用的模块输出。