在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3169|回复: 2

[求助] 菜鸟问一个verilog中function模块的问题。

[复制链接]
发表于 2015-6-25 14:45:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
学习Verilog过程中碰见一个阶乘函数定义和调用的模块。后面测试部分怎么都看不懂测试了个啥。
关键句:result = n *factorial(n)/((n*2)+1);   //为什么结果会用这样的表达输出,那么最先两个结果分别是4/5和18/7?
完整模块如下:
module tryfact;
      //函数的定义————————
         function[31:0]factorial;
              input[3:0]operand;
              reg[3:0]index;
              begin
                  factorial = 1;  //0的阶乘为1,1的阶乘也为1
                  for(index=2; index<=operand; index=index+1)
                  factorial = index*factorial;
              end
          endfunction
      //函数的测试————————
reg[31:0]result;
reg[3:0]n;
initial
begin
    result=1;
    for(n=2; n<=9; n=n+1)
    begin
        $display("Partial result n= %d result= %d", n, result);
        result = n * factorial(n)/((n*2)+1);
    end
    $display("Finalresult= %d", result);
end
    endmodule  //模块结束
发表于 2015-6-27 16:59:43 | 显示全部楼层
确定后面的语句是用来验证的吗?
发表于 2015-6-28 10:05:11 | 显示全部楼层
后面是计算result的一个表达式,如果用这个式子来检验结果太没必要了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-24 19:55 , Processed in 0.018009 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表