csignor 发表于 2014-2-20 00:08:22

FPGA 延时

最近一段在做FPGA有关项目,但是对于在时序里的延时很不清楚,在C语言中是用for循环来延时的,在FPGA我用的是VHDL语言,我用loop循环来延时但是效果不是很明显,不知道那位高人能解答下,FPGA的延时要是有例程最好了谢谢

aureole 发表于 2014-2-20 00:12:53

要用硬件的心态去做fpga,用c语言的心态做fpga有的受的,呵呵。

延时嘛,时钟计数

csignor 发表于 2014-2-20 00:18:30

aureole 发表于 2014-2-20 00:12
要用硬件的心态去做fpga,用c语言的心态做fpga有的受的,呵呵。

延时嘛,时钟计数 ...

因为刚刚开始接触,在时序时候做延时的时候有人告诉我用启动信号延时,用if来控制但是我的脑袋有点转不过来,这样的话在计时的时候process不是在一直重复前面那段程序吗

zkf0100007 发表于 2014-2-20 08:49:15

用计数器,状态机之类的

bulejeans 发表于 2014-2-20 09:34:56

FPGA不要有延时的思想,要想到计时,计数,想想你延时的目的是什么。。

csignor 发表于 2014-2-20 18:55:38

bulejeans 发表于 2014-2-20 09:34
FPGA不要有延时的思想,要想到计时,计数,想想你延时的目的是什么。。

昨天我想到了状态机,毕竟以前没有做过空芯片还没有办法完全转化过来

南孤雁2010 发表于 2014-2-21 18:19:15

友情赞助一个跑马灯程序,硬件编程和软件编程思想不一样的,一定要转换这个思想

always@(posedge sys_clk or negedge sys_rstn)
        begin
                if(!sys_rstn)
                        delay_cnt<=25'd0;
                else
                        begin
                                if(delay_cnt==25'd24999999)
                                        delay_cnt<=25'd0;
                                else
                                        delay_cnt<=delay_cnt+1'b1;       
                        end
        end
always@(posedge sys_clk or negedge sys_rstn)
        begin
                if(!sys_rstn)
                        led<=8'b11111110;
                else
                        begin
                                if(delay_cnt==25'd24999999)
                                        led<={led,led};
                                else
                                        led<=led;       
                        end
        end
endmodule

zqf441775525 发表于 2014-3-3 09:41:14

状态机,比较好理解和接受

zqf441775525 发表于 2014-3-3 09:41:35

状态机,比较好理解和接受
页: [1]
查看完整版本: FPGA 延时