題解 | #脈沖同步電路#
脈沖同步電路
http://www.fangfengwang8.cn/practice/b7f37e6c55e24478aef4ec2d738bbf07
簡析
輸入:data_in
輸出:dataout
總體思路是將A時鐘域的脈沖信號轉(zhuǎn)換為電平信號,打兩拍后再轉(zhuǎn)換為B時鐘域的脈沖信號。
代碼
`timescale 1ns/1ns
module pulse_detect(
input clk_fast ,
input clk_slow ,
input rst_n ,
input data_in ,
output dataout
);
reg data_level, data_level1, data_level2, data_level3;
// 脈沖信號轉(zhuǎn)電平信號
always@(posedge clk_fast or negedge rst_n) begin
if(~rst_n)
data_level <= 0;
else
data_level <= data_in? ~data_level: data_level;
end
// 電平信號打兩拍再轉(zhuǎn)為脈沖信號
always@(posedge clk_slow or negedge rst_n) begin
if(~rst_n) begin
data_level1 <= 0;
data_level2 <= 0;
data_level3 <= 0;
end
else begin
data_level1 <= data_level;
data_level2 <= data_level1;
data_level3 <= data_level2;
end
end
assign dataout = data_level3^data_level2;
endmodule
Verilog篇題解 文章被收錄于專欄
本人對??途W(wǎng)verilog篇題目一些理解