首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]请教Verilog高手

[求助]请教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 ,

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

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

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


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

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm
&nbsp;&nbsp;我的理解是这样的,因为index的位数是固定的,所以是可综合的。2的5次方是32,相当是一个32个输入的选择器。这只是我的个人理解

事实上,由于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://blog.chinaecnet.com/u/20/index.htm
返回列表