|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
如题:我有下面的一个简单的例子想熟悉下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来编写程序。
求高人指点!!! |
|