手册UG901,对vivado可综合的语句支持进行了描述,HDL包括:verilog-2001,system-verilog,VHDL;
verilog-2001扩展了对task和function的支持。
ug901手册中,章节7对支持的语法进行详细描述。


1 Filename: functions_1.v 2 // 3 // An example of a function in Verilog 4 // 5 // File: functions_1.v 6 // 7 module functions_1 (A, B, CIN, S, COUT); 8 input [3:0] A, B; 9 input CIN; 10 output [3:0] S; 11 output COUT; 12 wire [1:0] S0, S1, S2, S3; 13 function signed [1:0] ADD; 14 input A, B, CIN; 15 reg S, COUT; 16 begin 17 S = A ^ B ^ CIN; 18 COUT = (A&B) | (A&CIN) | (B&CIN); 19 ADD = {COUT, S}; 20 end 21 endfunction 22 23 assign S0 = ADD (A[0], B[0], CIN), 24 S1 = ADD (A[1], B[1], S0[1]), 25 S2 = ADD (A[2], B[2], S1[1]), 26 S3 = ADD (A[3], B[3], S2[1]), 27 S = {S3[0], S2[0], S1[0], S0[0]}, 28 COUT = S3[1]; 29 endmodule
