「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
相关推荐
金伟API102431 分钟前
SQL Server基础学习笔记
笔记·学习
MartinYeung51 小时前
[论文学习]MiCA:比LoRA和全参数微调学到更多知识
深度学习·学习·机器学习
砚凝霜1 小时前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络
浮江雾1 小时前
Flutter第十节-----Flutter布局与组件全解析
android·开发语言·前端·学习·flutter·入门
岑梓铭2 小时前
《考研408数据结构》第七章(7.1 查找:顺序查找、折半查找、分块查找)复习笔记
数据结构·笔记·考研·408·ds·查找
可乐奶茶sky2 小时前
MonoGS 源码学习
学习
金伟API10242 小时前
常见的SQL面试题:经典50例
数据库·人工智能·笔记·sql·学习
DES 仿真实践家2 小时前
Plant Simulation SimTalk基础教程(3)SimTalk 变量与数据类型
开发语言·笔记·学习
维克兜率天3 小时前
【维克】概率论入门:从“抛硬币“到理解金融市场的不确定性
经验分享·学习·概率论
世人万千丶3 小时前
鸿蒙Flutter Flex嵌套布局技巧
学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统