|
发表于 2014-8-26 22:39:39
|
显示全部楼层
本帖最后由 goswami 于 2014-8-28 11:25 编辑
module top
(
input clka,clkb,rst_n,wra_n,da,
output wrb,
output [7:0]db
);
reg [7:0] da_p;
always@(posedge clka or negedge rst_n)
if(!rst_n)
da_p <= 8'h00;
else if (!wra_n)
da_p <= {da_p[6:0], da};
reg wra_r1,wra_r2,wra_r3;
always@(posedge clkb or negedge rst_n)
if(!rst_n)
{wra_r1,wra_r2,wra_r3} <= 3'b000;
else
{wra_r1,wra_r2,wra_r3} <= {~wra_n,wra_r1,wra_r2};
assign db = da_p;
assign wrb = ~wra_r2 & wra_r3; //两级寄存器用来去除亚稳态
endmodule |
|