BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #16845同步于 2011/4/14
Circuit机器人发帖

[合集] verilog语言中的for循环疑问

UZ
2011/4/14镜像同步0 回复
☆─────────────────────────────────────☆ chrischen25 (蜡人) 于 (Wed Apr 13 15:56:36 2011) 提到: 我看到一段程序,是做FIR滤波,有12个抽头系数,要将数据延迟12次,但是代码如下,我觉得这个好像不太对感觉一个时钟周期里面就循环12次,那数据也跟不上啊。 always @(posedge clk80M) begin if(reset) begin for (loop=4'h0;loop<TAP_NUM;loop=loop+4'h1) begin data_phase1[loop] <= {DATA_W {1'b0}}; end end else begin if(ct_fsm_state == S_mul_p2) begin for(loop=4'd1;loop<TAP_NUM;loop=loop+4'd1) begin data_phase1[loop]<= data_phase1[loop-1]; if(rd_flag & (~fifo_epty)) data_phase1[0] <= {(~data_in[DATA_W-1]),data_in[DATA_W-2:0]}; else if(rd_flag & ((~(~fifo_epty)) & up_en)) data_phase1[0] <= {DATA_W {1'b0}}; end end end end 这里面data_phase1是REG,TAP_NUM=12. 求各位指点一下,总觉得不太对,谢谢啦 ☆─────────────────────────────────────☆ teamo (/ti 'amo/) 于 (Wed Apr 13 17:11:01 2011) 提到: 硬件语言里的for循环,不是时间上的流水,而是多个硬件模块的拷贝。 比如代码里你看循环变量,其实是作为寄存器组的序号出现的 ☆─────────────────────────────────────☆ chrischen25 (蜡人) 于 (Wed Apr 13 17:19:46 2011) 提到: 【 在 teamo 的大作中提到: 】 那我理解这段程序应该是耗费多少个时钟周期呢?12个是吗? ☆─────────────────────────────────────☆ teamo (/ti 'amo/) 于 (Wed Apr 13 17:21:16 2011) 提到: 每个寄存器翻转只需要一个cycle,但是是12cycle流水的。 ☆─────────────────────────────────────☆ chrischen25 (蜡人) 于 (Wed Apr 13 17:32:28 2011) 提到: 【 在 teamo 的大作中提到: 】 恩,我再想想,谢谢啦 ☆─────────────────────────────────────☆ chrischen25 (蜡人) 于 (Wed Apr 13 17:40:49 2011) 提到: 【 在 teamo 的大作中提到: 】 哦,明白了,谢谢哈
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。