mô hình và thiết kế một paraterizable synchronizers

L

leongch

Guest
Hi guys,

Tôi có phải mô hình thiết kế n 2 bck bck DFFs mà hành động như các Synchronizer cho các mạch không đồng bộ.Các số kỹ thuật như sau:

1.Thiết lập và thời gian giữ là mỗi 0.5ns.Khi thiết lập hoặc giữ vi phạm xảy ra vào ngày đầu vào của dff 1st, các Dout từ ngày 1 dff sẽ đi mặc dù "xx" cho 1ns và sau đó giá trị này đang được cập nhật với giá trị ngẫu nhiên bằng cách sử dụng $ ngẫu nhiên ();
2.Syncrhonizers này nên có khả năng được tham số bên trong các phân hệ và không có vòng lặp foor "" và "tạo ra và endgenerate" nên được sử dụng

module demeta (
clk_d2 đầu vào, / / CLK miền 2
đầu vào thiết lập lại,
input [03:00] Din, / / đầu vào từ miền CLK 1
output reg [03:00] Dout / / đầu ra cho đồng bộ hóa với CLK domain2
);
reg [03:00] D1;
dây [03:00] Di;
dây [03:00] Di_xor;

gán # 5 Di = Din;
gán Di_xor = Di ^ Din;
số nguyên arg, i, j;
reg setup_vio, hold_vio;
chỉ định
$ setup (Din, posedge clk_d2, `setup_time, setup_vio);
$ giữ (posedge clk_d2, Din, `hold_time, hold_vio);
endspecify
luôn luôn @ setup_vio posedge (hoặc hold_vio posedge hoặc posedge clk_d2)
bắt đầu
if (reset)
D1 <= 4'h0;
if (hold_vio)
bắt đầu
nếu (Di_xor = 0!)
bắt đầu
D1 <= 'hx;
# 1 D1 <= $ ngẫu nhiên (arg);
cuối
cuối
if (setup_vio)
bắt đầu
nếu (Di_xor = 0!)
bắt đầu
D1 <= 'hx;
# 1 D1 <= $ ngẫu nhiên (arg);
cuối
cuối
khác
D1 <= Din;
cuối
luôn luôn @ (posedge clk_d2)
bắt đầu
if (reset)
Dout <= 4'h0;
khác
Dout <= D1;
cuối
endmodule

 

Welcome to EDABoard.com

Sponsor

Back
Top