[an error occurred while processing this directive]
|
Решил как-то на досуге посравнивать качество синтеза между квартусом и синплифаем, для чего попробовал перетащить проект (с синплифая на квартус). Так обломался на том, что квартус отказался синтезить цикл while с переменной в условии.
//------------------------------------------
// Arbiter
//
always @(posedge clk, posedge reset)
begin
if(reset) begin
ack <= 0;
end
else begin
if(ack == 0) begin
i = 0;
flag = 0;
while(flag == 0 && i < `DEVICES) begin
if(rqst[i]) begin
ack[i] <= 1;
flag = 1;
end
i = i + 1;
end
end
else begin
for(i = 0; i < `DEVICES; i = i + 1)begin
if(rqst[i] == 0)
ack[i] <= 0;
end
end
end
end
Синплифай это берет на ура и генерит все как надо.
E-mail: info@telesys.ru