cmqdcyy 发表于 2012-6-17 21:21:34

ov7670摄像头求助

麻烦各位大侠给我解释下这个摄像头驱动的其中一段程序,有点不太懂。
always@(posedge iCLK or negedge iRST)
begin
      if(!iRST)
      begin
                Pre_FVAL <= 0;
                mCCD_FVAL <= 0;
                mCCD_LVAL <= 0;
                mCCD_DATA <= 8'h00;
                X_Cont <= 0;
                Y_Cont <= 0;
      end
      else
      begin
                Pre_FVAL <= iFVAL;
                if( {Pre_FVAL,iFVAL}==2'b10)
                mCCD_FVAL <= 1;
                else if({Pre_FVAL,iFVAL}==4'b01)
                mCCD_FVAL <= 0;
               
                mCCD_LVAL <= iLVAL;
//                mCCD_DATA <= ov7660_data_8bit;
                if(mCCD_FVAL)
                begin

cmqdcyy 发表于 2012-6-17 21:22:08

尤其是这段 if( {Pre_FVAL,iFVAL}==2'b10)
                mCCD_FVAL <= 1;
                else if({Pre_FVAL,iFVAL}==4'b01)
                mCCD_FVAL <= 0;

Flyback 发表于 2012-6-17 22:18:46

有个疑问,{Pre_FVAL,iFVAL}这个拼接的数据到底是2'b还是4'b呢

hunningtu 发表于 2012-6-18 11:17:50

cmqdcyy 发表于 2012-6-17 21:22 static/image/common/back.gif
尤其是这段 if( {Pre_FVAL,iFVAL}==2'b10)
                mCCD_FVAL

这段代码很常用的,就是检测一下下降沿和上升沿的。

huacheng 发表于 2012-6-18 14:05:03

Pre_FVAL   <= iFVAL;
               if( {Pre_FVAL,iFVAL}==2'b10)
               mCCD_FVAL <= 1;
               else if({Pre_FVAL,iFVAL}==4'b01)
               mCCD_FVAL <= 0;
这段代码的意思是:
   Pre_FVAL   <= iFVAL; ifval是输入信号,在clk的上升沿,赋值给中间量Pre_FVAL,这样Pre_FVAL就相对于ifval有个一个时钟的延时么,
   下面的就是检测ifval的上升沿和下降沿了哦。楼主可以自己画下时序图,就明白了哦

wangqqqqqq 发表于 2012-6-19 19:46:07

我也在做cmos 正看驱动呢 可否加楼主qq讨论讨论 ?

cmqdcyy 发表于 2012-6-20 16:30:17

wangqqqqqq 发表于 2012-6-19 19:46 static/image/common/back.gif
我也在做cmos 正看驱动呢 可否加楼主qq讨论讨论 ?

可以啊,可以一起探讨一下,QQ 747302616
页: [1]
查看完整版本: ov7670摄像头求助