primitive ffjk (Q, Clk, set, reset, J, K);
output Q;
input Clk, set, reset, J, K;
reg Q;
table
// Clk set reset J K : Q : Qnew
? 1 0 ? ? : ? : 1;
? 0 1 ? ? : ? : 0;
? 10 0 ? ? : ? : -;
? 0 10 ? ? : ? : -;
01 0 0 0 0 : ? : -;
01 0 0 0 1 : ? : 0;
01 0 0 1 0 : ? : 1;
01 0 0 1 1 : 0 : 1;
01 0 0 1 1 : 1 : 0;
? 0 0 ?? ?? : ? : -;
endtable
endprimitive
module ff(Q, Clk, set, reset, J, K);
input Clk, set, reset, J, K;
output reg Q;
ffjk M1(Q,Clk,set,reset,J,K);
endmodule
我已经制作了一个JK FF的原语。然后我制作了一个模块,并在其中使用了原语。我还编写了一个测试平台来执行这段代码。我经常在第二行遇到语法错误。
jkff.v:2: syntax error
投降了。
发布于 2019-12-23 02:12:44
这是iverilog的一个问题。它只接受非常旧的Verilog语法。在单独的行上编写reg
声明。
primitive ffjk (Q, Clk, set, reset, J, K);
output Q;
input Clk, set, reset, J, K;
reg Q;
用Verilog-2001/SystemVerilog编写这段代码的正确方法是
primitive ffjk (output reg Q,
input Clk, set, reset, J, K );
然后,您将会遇到表的问题。如果你不能解决这个问题,你将不得不问另一个问题。
https://stackoverflow.com/questions/59445877
复制相似问题