微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请问for循环语句能用Design Compiler综合吗?

请问for循环语句能用Design Compiler综合吗?

时间:10-02 整理:3721RD 点击:
如题:我有下面的一个简单的例子想熟悉下DC软件的使用,想看看DC综合的过程。module funct(clk,n,result,reset);
output[31:0] result;
input[3:0] n;
input reset,clk;
reg[31:0] result;
always @(posedge clk)          //在clk的上升沿时执行运算
begin
if(!reset)  result<=0;        //复位
else  begin
result <= 2 * factorial(n);  //调用factorial函数
end
end

function[31:0] factorial;         //阶乘运算函数定义(注意无端口列表)
input[3:0] opa;                 //函数只能定义输入端, 输出端口为函数名本身
reg[3:0] i;
begin
factorial = opa ? 1 : 0;
for(i= 2; i <= opa; i = i+1)   //该句若要综合通过,opa应赋具体的数值
factorial = i* factorial;       //阶乘运算
end
endfunction
endmodule
王金明书上的简单例子。
运行DC,却得到error:提示综合时提示超过了最大的迭代次数?
不知道大家有没有使用DC综合过含有这种情况的一些设计。
还有就是含有for语言的硬件代码难道不是可综合的代码?只能用来产生测试向量?
因为有时一些决策器(即少数服从多数的例子)也需要使用for来编写程序。
求高人指点!

求高人指点!

要综合的话,for循环边界必须是常数

LS说的对


谢谢楼上几位讲解。

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

网站地图

Top