这几天一直在研究脉冲边沿检测技术,直到今天看了特权同学的<<深入浅出玩转FPGA>>视频教程后,才恍然大悟,才真正理解verliog语言中的并行语句。可能是以前写过单片机程序原因吧,虽说Verilog语言中有很多并行语句,但是没有真正领悟它的精髓所在。
一、 什么是脉冲边沿检测
脉冲边沿检测就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测。
二、程序代码
module edge_pulse ( sysclk, rst_n, trigger, pos_edge, neg_edge ); //--------------------------------// input sysclk; input rst_n; input trigger; output pos_edge; output neg_edge; //-------------------------------// wire sysclk; wire rst_n; wire trigger; wire pos_edge; wire neg_edge; //-------------------------------// reg trigger_r0; always @ (posedge sysclk or negedge rst_n) begin if(!rst_n) trigger_r0<=1'b0; else trigger_r0<=trigger; end //------------------------------// assign neg_edge=trigger_r0&&(~trigger); assign pos_edge=(~trigger_r0)&&trigger; endmodule