题解 | #多bit MUX同步器#

多bit MUX同步器

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

跨时钟域传输,电路图如图所示: alt

完整代码:

`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_in1;
    reg data_ena1,data_enb1,data_enb2;
    always@(posedge clk_a or negedge arstn)begin
        if(!arstn)begin
            data_in1 <= 0;
            data_ena1 <= 0;
        end
        else begin
            data_in1 <= data_in;
            data_ena1 <= data_en;
        end
    end
    
    always@(posedge clk_b or negedge brstn)begin
        if(!brstn)begin
            data_enb1 <= 0;
            data_enb2 <= 0;
        end
        else begin
            data_enb1 <= data_ena1;
            data_enb2 <= data_enb1;
        end
    end
    
    always@(posedge clk_b or negedge brstn)begin
        if(~brstn)
            dataout <= 0;
        else 
            dataout <= data_enb2? data_in1: dataout;
    end
                   
endmodule
全部评论

相关推荐

不懂!!!:感觉你的项目描述太简单了,建议使用star描述法优化提炼一下,就是使用什么技术或方案解决了什么问题,有什么效果或成果,例如:对axios进行了二次封装,实现了请求的统一管理、错误的集中处理以及接口调用的简化,显著提高了开发效率和代码维护性,使用canvas技术实现了路线绘制功能,通过定义路径绘制函数和动态更新机制,满足了简化的导航可视化需求,提升了用户体验。像什么是使用其他组件库,基本功能描述就最好不要写到项目成果里面去了,加油
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务