当我尝试模拟代码时,收到错误消息
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
答案 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));
解析器到了左括号,不知道你想要什么。