首页 > 代码库 > 跨时钟域接口转换电路
跨时钟域接口转换电路
1 module handshake( 2 input clka,wra_n,da,clkb,rst, 3 output reg [7:0] db, 4 output reg wrb_n 5 ); 6 7 reg ack,temp,req1; 8 reg [7:0] data; 9 always@(posedge clka or negedge rst)10 if(!rst)11 data<=8‘d0;12 else if(!wra_n)13 data<={data[6:0],da};//data<={da,data[7:1]};14 always@(posedge clkb or negedge rst)15 if(!rst)16 begin17 req1<=1‘b1;18 temp<=1‘b1;19 end20 else 21 begin22 temp<=wra_n;23 req1<=temp;24 end25 assign wra_n_rising=temp&&(~req1);//捕获wra_n的上升沿,使能wrb_n一个时钟周期26 always@(posedge clkb or negedge rst)27 if(wra_n_rising)28 begin29 wrb_n<=1‘b1;30 db<=data;31 end32 else33 begin34 wrb_n<=1‘b0;35 db<=8‘hxx;36 end37 endmodule
题目要求:完成两个时域的接口转换电路。
解释:串转并:data<={data[6:0],da};(从D7开始输入,不断左移)data<={da,data[7:1]}(从D0开始输入,不断右移)
捕获写信号的上升沿,转化为与数据同时输出的b时域的使能信号。
跨时钟域接口转换电路
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。