JK Flip flopError

时间:2015-11-16 06:31:17

标签: verilog

当我尝试模拟代码时,收到错误消息

Error-[SE] Syntax error 
"test_jkflipflop.v", 10: token is '('

我的源代码:

( .J(J), .K(K), .Clk(Clk), .R(R), .S(S), .Q(Q), .Qbar(Qbar));

所以请让我知道我的问题

这里我编写了JK_Flip FLop结构代码和测试台代码。

****** *******结构

`timescale 1ns/1ps
module JKflipflop(J,K,Clk,R,S,Q,Qbar);
    input J,K;
    input Clk;
    input R;
    input S;
    input Q;
    output Qbar;
    reg Qbar;

    always@ (posedge(Clk))
    begin
        if(R == 1)
            Qbar = 0;
        else
            if(S == 1)
                Qbar = 1;
            else
                if(Q == 1)
                    if(J == 0 && K == 0)
                        Qbar = Qbar;
                    else
                        if(J == 0 && K == 1)
                            Qbar = 0;
                        else 
                            if(J == 1 && K == 0)
                                Qbar = 1;
                            else
                                Qbar = ~Qbar;
                else
                    Qbar = Qbar;
    end
endmodule

******* *****测试平台

`timescale 1ns/1ps
module test_JK_flipflop;
    reg J;
    reg K;
    reg Clk;
    reg R;
    reg S;
    reg Q;
    wire Qbar;

( .J(J), .K(K), .Clk(Clk), .R(R), .S(S), .Q(Q), .Qbar(Qbar));

    initial begin
        $monitor ("J=%b K=%b Clk=%b R=%b S=%b Q=%b Qbar=%b", J,K,Clk,R,S,Q,Qbar);
    end

    initial Clk = 0;
    always
    #10
    Clk = ~Clk;
    initial begin
        J = 0;
        K = 0;
        R = 0;
        S = 0;
        Q = 0;
        #30;
        R = 1;
        #50;
        R = 0;
        S = 1;
        #50;
        S = 0;
        J = 1;  K = 1;
        #50;
        Q= 1; #50;
        J = 0;  K = 0;
        #50;
        J = 0;  K = 1;
        #50;
        J = 1;  K = 0;
        #50;
        J = 1;  K = 1;
        #50;
        Q = 0;
    end
endmodule

2 个答案:

答案 0 :(得分:0)

没有正确的实例化,使用实例名称并命名要实例化的模块。如下:

JKflipflop jkf( .J(J), .K(K), .Clk(Clk), .R(R), .S(S), .Q(Q), .Qbar(Qbar));

参考Module Instantiation链接。

答案 1 :(得分:0)

有问题的行不是任何形式的法律声明。这应该是一个实例吗?在创建实例时,必须同时提供模块名称和实例名称。像这样:

JKflipflop ff01(.J(J), .K(K), .Clk(Clk), .R(R), .S(S), .Q(Q), .Qbar(Qbar));

解析器到了左括号,不知道你想要什么。