题解 | #多bit MUX同步器#

多bit MUX同步器

https://www.nowcoder.com/practice/30e355a04a454e16811112cb82af591e

`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 en_temp,en_b,data_en_a;
reg [3:0] data_reg;

always@(posedge clk_a or negedge arstn)
	if(!arstn)
		data_reg<=0;
	else
		//if(~data_en)//其实可以加入这句,避免在en是输入变化
			data_reg<=data_in;

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)
	if(!brstn)
		{en_temp,en_b}<=0;
	else
		{en_temp,en_b}<={data_en_a,en_temp};

always@(posedge clk_b or negedge brstn)
	if(!brstn)
		dataout<=0;
	else
		if(en_b)
			dataout<=data_reg;

endmodule

全部评论

相关推荐

frutiger:逆天,我家就安阳的,这hr咋能说3k的,你送外卖不比这工资高得多?还说大厂来的6k,打发叫花子的呢?这hr是怎么做到说昧良心的话的
找工作时遇到的神仙HR
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务