「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
相关推荐
心中有国也有家1 分钟前
AtomGit Flutter 鸿蒙客户端:一键记录情绪的极致体验
学习·flutter·华为·harmonyos
lauo11 分钟前
从52起融资看教育科技新范式:PopLang引擎与Token节点经济如何重塑AI学习终端
人工智能·科技·学习
YUS云生27 分钟前
Python学习笔记·第29天:Git进阶——分支操作与合并冲突
笔记·python·学习
xiaoyuchidayuma29 分钟前
已知 ud、uq 求解三相相电压并计算调制比
笔记·学习
B8017913Y1 小时前
上课记笔记写不完不会整理?2026学习笔记生成使用场景该怎么选
人工智能·笔记·学习
小园子的小菜2 小时前
Java设计模式精讲:创建型+结构型模式(含生产级案例+相似模式对比)
学习·设计模式
_muffinman2 小时前
梁山派学习笔记1
笔记·学习
AI云海11 小时前
利用好手机这个工具-碎片化学习
学习
β添砖java13 小时前
2025最新快速构建企业级虚拟专用网络环境学习笔记
笔记·学习
qianpeng414 小时前
IDA PRO笔记
笔记