「Verilog学习笔记」多bit MUX同步器

专栏前言

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

输入数据暂存在data_reg中,使能信号data_en用打两拍的方式跨时钟域传输到时钟域B,最后data_out根据使能信号更新数据。data_en信号在A时钟域用一个D触发器暂存,然后打两拍传输到B时钟域。根据同步到B时钟域的使能信号data_en_b1,更新输出。

复制代码
`timescale 1ns/1ns

module mux(
	input 				clk_a	, 
	input 				clk_b	,   
	input 				arstn	,
	input				brstn   ,
	input		[3:0]	data_in	,
	input               data_en ,

	output reg  [3:0] 	dataout
);
	reg [3:0] data_reg ; 
	reg		  data_en_a, data_en_b0, data_en_b1 ; 

	always @ (posedge clk_a or negedge arstn) begin 
		if (~arstn) data_reg <= 0 ; 
		else data_reg <= data_in ; 
	end

	always @ (posedge clk_a or negedge arstn) begin 
		if (~arstn) data_en_a <= 0 ; 
		else data_en_a <= data_en ; 
	end

	always @ (posedge clk_b or negedge brstn) begin 
		if (~brstn) begin 
			data_en_b0 <= 0 ; 
			data_en_b1 <= 0 ; 
		end
		else begin 
			data_en_b0 <= data_en_a ;
			data_en_b1 <= data_en_b0 ; 
		end
	end

	always @ (posedge clk_b or negedge brstn) begin 
		if (~brstn) dataout <= 0 ; 
		else dataout <= data_en_b1 ? data_reg : dataout ; 
	end

endmodule
相关推荐
知识分享小能手2 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
汇能感知4 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun4 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao5 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾5 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT6 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa6 小时前
HTML和CSS学习
前端·css·学习·html
ST.J6 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
Suckerbin6 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全
看海天一色听风起雨落7 小时前
Python学习之装饰器
开发语言·python·学习