我已经使用原语为JK触发器编写了Verilog代码

问题描述 投票:0回答:1
  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

我放弃。

hdl iverilog
1个回答
0
投票

这是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 );

然后您会遇到表格问题。如果您无法弄清楚,您将不得不问另一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.