lbcumt 发表于 2013-6-29 22:03:37

关于用户自定义原语的调用问题

本帖最后由 lbcumt 于 2013-6-29 22:06 编辑

Verilog允许用户使用内建原语进行逻辑设计,用户也可以自己定义原语,完成特定的功能。但我在自定义原语以后,却无法调用,综合时提示找不到我自定义的原语udp_dff_edge1,"Error:Line 31: Instantiating <inst5> from unknown module <udp_dff_edge1>"。不知道为何,希望大侠能够帮忙看一下,谢谢!

自定义原语 udp_dff_edge1.v :

primitive udp_dff_edge1(q, d, clk, rst_n
    );
input      d,clk,rst_n;
output        q;
reg        q;

initial         q = 0;

table
// d        clk         rst_n             q      q+
0        (01)        1        : ?    :0;
1        (01)        1        : ?    :1;
1        (0x)        1        : 1    :1;
0        (0x)        1        : 0    :0;
?        (?0)        1        : ?    :-;
?        (??)        0        : ?    :0;
?       ?         0        : ?    :0;
?       ?         (01)        : ?    :-;
(??)       ?             1        : ?   : -;
endtable
endprimitive

例化调用:

module shift_rotate_udp1(rst_n, clk, load, d, y
    );
input         rst_n,clk,load;
input                d;
output        y;

not                      inst1 (net1, load);
and                      inst2 (net2, load, d);
and                      inst3 (net3, net1, y);
or                inst4 (net4, net2, net3);
udp_dff_edge1        inst5 (y, net4, clk, rst_n);

endmodule
页: [1]
查看完整版本: 关于用户自定义原语的调用问题