「Verilog学习笔记」脉冲同步电路

专栏前言

本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

复制代码
`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 ; 

	// 脉冲信号转电平信号
	always @ (posedge clk_fast or negedge rst_n) begin 
		if (~rst_n) data_level <= 0 ; 
		else data_level <= data_in ? ~data_level : data_level ; // datain是一个单周期的脉冲信号,这样可以转换成高电平或者低电平信号。电平信号更容易做跨时钟域处理
	end

	// 电平信号打两拍再转为脉冲信号,跨时钟域传输,打拍减小亚稳态概率
	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
相关推荐
Nebula_g1 天前
大模型应用技术速通笔记
笔记·深度学习·机器学习·大模型
范什么特西1 天前
每日学习-01
学习
旺仔丶歪歪乐1 天前
英语启蒙APP分级体系拆解:本土课标分级与海外原版分级有什么区别
人工智能·学习·web app
xian_wwq1 天前
【学习笔记】开源 vs 闭源:Llama / Qwen / DeepSeek 生态博弈(34/35)
笔记·学习·开源
振浩微433射频芯片1 天前
5个IO控制20个LED?查理复用实战拆解
网络·单片机·物联网·学习·智能家居
浩瀚地学1 天前
【面试算法笔记】0302-哈希表-哈希表实现
java·经验分享·笔记·算法·面试
hj2862511 天前
K8S 核心组件与资源概念 + 带注释命令 + 实操案例版笔记
笔记·容器·kubernetes
kitsch0x971 天前
论文学习_MalSkillBench: A Runtime-Verified Benchmark of Malicious Agent Skills
学习
Z5998178411 天前
c#软件开发学习笔记--分组、游标与临时表、分页
笔记·学习·c#
治愈系贝壳1 天前
ARM ---day1
linux·arm开发·学习