Board logo

标题: 关于FOR语句的问题 [打印本页]

作者: kuxi4969    时间: 2006-10-6 11:46     标题: 关于FOR语句的问题

用什么方法可以使for循环按照时钟的节拍运行?


比较:


(1)always@(posedge clk)                                              


begin


  for(i=0;i<=1024;i=i+1)


       mem=i;


end


这样写能否按照时钟的节拍对mem赋值呢?下面的(2)呢?哪个行?为什么?


(2)initial


begin


for(i=0;i<=1024;i=i+1)


     begin


        mem=i;


    always@(posedge clk)


     end


 


作者: stone133    时间: 2006-10-24 10:14

两种写法都可以对men赋值;
只有1能按照时钟节拍进行赋值;
2里面的写法是用在仿真中的,实际电路中的硬件没有节拍或者时间的概念;
for和c里面的基本一样,如果作为硬件来说,个人觉得写成:
if(i<1024)
begin
mem=i;
i=i+1;
end
else
mem=mem;
更容易和时钟节拍在理解上挂上钩
作者: kuxi4969    时间: 2006-10-24 10:17

哦!!谢谢版主了!!!
作者: stone133    时间: 2006-10-24 10:19

补充一点:对于i来说,要定义成integer类型,但是这样的类型是不被hdl编译器所支持的




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