语言的风格对于代码的综合有很大的影响,我以前没感受到,现在才感到书到用时方恨少。我最近编了个verilog程序,可是代码综合出来太大了,没法下到板子上去。我用的是xilinx的xc3s500e,综合后silice的使用率150%。 我分析后发现主要是两种语句占用的资源太大了。首先是我定义了一个reg [7:0]Register[0:95]的寄存器组,语句Register[RegAddr]<=WDataBuf;这条语句占用了20%的资源。还有一个类似的reg [127:0]AesKey[10:0]占用了40%的资源。这些好像都会综合成ram。 还有就是一个function [7:0] aesbox; input [7:0]a; case(a) 8'h0: aesbox=XX 8'h01:aesbox=XX 。 。 。 8'hff: aesbox=XX; endcase endfunction 这个好像会被综合成rom(XX都是常数),多次调用这个函数也占用了40%的资源。这种情况有没有其他的能实现相同功能的但资源利用较少的方法,请各位大侠指教,不胜感激 |