【重拾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
仿真结果和我们预计的一样: