微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教综合的问题

请教综合的问题

时间:10-02 整理:3721RD 点击:
下面是一个用半加器&全加器级联成一个加法器的小程序
在synopsys dc 却elaborate不了
显示error:indexing into a non-array variable is not supported to 'L[]'
请问是怎么回事?怎么解决?
另外我想问下实现一些算法需要二维数组的,verilog也支持,但是好象综合不了,请问有什么方法修改这样的代码,可使它综合并且对原来程序修改较少?
谢谢!
程序如下:
module adder_rc (a,b,y);

parameter WIDTH = 4;

input [WIDTH-1:0] a;
input [WIDTH-1:0] b;
output y;

reg [WIDTH-1:0] y;
reg [WIDTH-1:0] carry;
integer i;

always @(a or b)
begin

y=0;
carry=0;
i=0;

y[0]=half_adder_sum(a[0],b[0]);
carry[0]=half_adder_cout(a[0],b[0]);

for (i=1; i<=WIDTH-1; i=i+1)
begin
y=full_adder_sum(a,b,carry[i-1]);
carry=full_adder_cout(a,b,carry[i-1]);
end
end

function half_adder_sum;
input a;
input b;
begin
half_adder_sum=a^b;
end
endfunction

function half_adder_cout;
input a;
input b;
begin
half_adder_cout=a&b;
end
endfunction

function full_adder_sum;
input a;
input b;
input cin;
begin
full_adder_sum=a^b^cin;
end
endfunction

function full_adder_cout;
input a;
input b;
input cin;
begin
full_adder_cout=(a&b)|(a&cin)|(b&cin);
end
endfunction
endmodule

怎么都没人回答我的问题额。
555~~~~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top