modellering en ontwerp een paraterizable synchronizers

L

leongch

Guest
Hi guys,

Ik heb het model n het ontwerp van de BCK 2 bck DFFs die fungeren als de Synchronizer voor de asynchrone schakelingen.De specs zijn als volgt:

1.De setup en houd tijd is 0.5ns per stuk.Wanneer de installatie of het bezit overtreding plaatsgevonden op de input van de 1e DFF, zal de DOUT van 1 DFF gaan al "XX" voor 1ns en vervolgens de waarde wordt bijgewerkt met behulp van de willekeurige waarde $ random ();
2.Dit syncrhonizers zou kunnen worden parameters in de module en NO "foor loop" en "te genereren en endgenerate" moet worden gebruikt

module demeta (
input clk_d2, / / CLK domein 2
reset-ingang,
input [3:0] Din, / / input van de CLK domein 1
output reg [3:0] DOUT / / output die gesynchroniseerd op clk domain2
)
reg [3:0] D1;
wire [3:0] Di;
wire [3:0] Di_xor;

toewijzen # 5 Di = Din;
toewijzen Di_xor = Di ^ Din;
integer arg, i, j;
reg setup_vio, hold_vio;
specificeren
$ setup (Din, posedge clk_d2, `setup_time, setup_vio);
$ houden (posedge clk_d2, Din, `hold_time, hold_vio);
endspecify
altijd @ (posedge setup_vio of posedge hold_vio of posedge clk_d2)
beginnen
if (reset)
D1 <= 4'h0;
else if (hold_vio)
beginnen
if (Di_xor! = 0)
beginnen
D1 <= 'hx;
# 1 D1 <= $ random (arg);
eindigen
eindigen
else if (setup_vio)
beginnen
if (Di_xor! = 0)
beginnen
D1 <= 'hx;
# 1 D1 <= $ random (arg);
eindigen
eindigen
anders
D1 <= Din;
eindigen
altijd @ (posedge clk_d2)
beginnen
if (reset)
DOUT <= 4'h0;
anders
DOUT <= D1;
eindigen
endmodule

 

Welcome to EDABoard.com

Sponsor

Back
Top