Board logo

标题: [求助]请教Verilog高手 [打印本页]

作者: mulfee    时间: 2007-9-9 15:59     标题: [求助]请教Verilog高手

请问下面的语句是否可以被综合,如果可以综合,那么将综合为何种逻辑结构,里边的循 环是如何用硬件方法实现的,类似的还有repeat,while语句,谢谢!
function[31:0] sum;
    input[3:0] n;
    reg[4:0] index;
    begin
        fra = 1;
        for(index = 1;index < 10;index = index + 1)
             fra = fra + index;
 end endfunction ,
作者: caopengly    时间: 2007-9-9 19:47

你所表示的是循环方法表示一个累加。

事实上通过循环只是将你的表达变简单了,而硬件的结构和你写十次fra = fra + index;没有差别。

至于你表示累加的逻辑结构,fra最后是个定值所以只是一个46的常数而已,保存在锁存器中。


[此贴子已经被作者于2007-9-9 19:58:02编辑过]


作者: cmf3887299    时间: 2007-9-9 22:19

&nbsp;&nbsp;我的理解是这样的,因为index的位数是固定的,所以是可综合的。2的5次方是32,相当是一个32个输入的选择器。这只是我的个人理解
作者: caopengly    时间: 2007-9-10 09:47

事实上,由于fra在计算后为一固定的值,系统不会为一固定的值去分配其他资源来实现循环累加的。

  fra = 1;
        for(index = 1;index < 10;index = index + 1)
             fra = fra + index;

就等于

fra=46;

fra最后的值46(1+1+2+3+...+9),当然fra的位数不够,只能显示32,所以最后结果46-32=14;

[此贴子已经被作者于2007-9-10 9:47:51编辑过]






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0