我在FPGA三段式状态机SEARCH_PDH_OK状态中需要花费100MS延时才进入下一个状态,然后在LOCK_IN_PROCESS 状态中清零tim_ones,这样写我如果在LOCK_IN_PROCESS 也要用到计时器就会出问题,
因为计时器没有清零,我能从 SEARCH_PDH_OK 跳转至LOCK_IN_PROCESS时进行清零计时器的操作吗?
还是我单独写一个计时模块把所有的计时功能移至这个模块里面呢?
一般是怎样处理这一块的呢?
//第三段,产生输出 进行计时
- SEARCH_PDH_OK: //扫描到PDH
- begin
- time_ones <= 8'd0;
- //stop pzt scanning
- analog_switch_2 <= OFF;
- //analog_switch_1 <= ON;
- sawtooth_control <= OFF;
- if(time_count == T100MS) //1s
- begin
- end
- else
- time_count <= time_count + 1'b1;
- end
//第二部分,状态转移,进行判断时间是否到了 然后状态跳转 - SEARCH_PDH_OK: //扫描到PDH
- begin
- //100MS等待
- if(time_count == T100MS) //100ms
- begin
- nstate <= LOCK_IN_PROCESS;
- end
- end
|