本帖最后由 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 [3:0] d;
output [3:0] y;
not inst1 (net1, load);
and inst2 (net2, load, d[3]);
and inst3 (net3, net1, y[0]);
or inst4 (net4, net2, net3);
udp_dff_edge1 inst5 (y[3], net4, clk, rst_n);
endmodule
|