【重拾FPGA】一个简单的同步脉冲电路

今天在图书馆看《硬件架构的艺术》这本书的时候,对书上出现的一个同步脉冲电路非常有感觉,似乎有点从电路到代码的思路了,特此发出来记录一下。

电路图如下:

【重拾FPGA】一个简单的同步脉冲电路

由两个D触发器来控制信号的存储和移位,通过组合逻辑对当前信号和上一个信号进行判断,是否出现了上升沿或者下降沿(不同的脉冲触发只需要改变组合逻辑电路非门位置)

代码比较简单

module IMPUSE(clk, data, out);
	input clk;
	input data;
	
	output out;
	
	reg state_cur;  //当前状态
	reg state_next;  //下一个状态
	
	[email protected](posedge clk)
	begin
		state_cur <= state_next;  //状态移位
	end
	
	[email protected](posedge clk)
	begin
		state_next <= data;  //新状态存入
	end
	
	assign out = state_next & ~(state_cur);  //组合逻辑
endmodule

仿真结果和我们预计的一样:

【重拾FPGA】一个简单的同步脉冲电路