đồng hồ dò cho dự án cấp cao của tôi

R

rakko

Guest
một câu hỏi dành cho những kỹ sư ra khỏi đó.Tôi đang tìm một mạch kỹ thuật số Verilog rằng một kết quả đầu ra 1 miễn là đồng hồ chạy và đầu ra một số không, nếu đồng hồ điểm dừng.ai biết làm thế nào để làm điều này.

 
Hãy nhớ rằng tổng hợp HDL không có khái niệm về thời gian.Bạn đã có một đồng hồ thứ hai có sẵn?Hoặc có lẽ thời gian một số phần cứng khác, thiết bị trì hoãn?Bạn có thể sử dụng một trong những điều đó để tạo ra một cửa sổ thời gian.Trong cửa sổ đó, bạn đếm các đồng hồ đầu vào.Nếu đếm được bằng không, sau đó đồng hồ đầu vào là không chạy.

 
Hi rakko,

Có một đồng hồ kích hoạt tín hiệu của thiết kế của bạn không?Hoặc sử dụng nó với một tín hiệu đầu vào?

Chúc may mắn

 
rakko đã viết:

một câu hỏi dành cho những kỹ sư ra khỏi đó.
Tôi đang tìm một mạch kỹ thuật số Verilog rằng một kết quả đầu ra 1 miễn là đồng hồ chạy và đầu ra một số không, nếu đồng hồ điểm dừng.
ai biết làm thế nào để làm điều này.
 
Bạn nên có một đồng hồ tham chiếu ổn định.

Các máy dò công trình đồng hồ theo miền đồng hồ tham khảo.Và bạn nên biết phạm vi tần số của đồng hồ "" được phát hiện.Nếu tần số của đồng hồ tham chiếu là cao hơn nhiều so với đồng hồ "" được dectected, bạn có thể phát hiện những thay đổi 0-1 hoặc / và 1-0 trong một cửa sổ thời gian.Nếu frequecy của đồng hồ tham chiếu là thấp hơn.bạn có thể phân chia đồng hồ "phát hiện" của một số giá trị để làm cho đồng hồ "mới" tần số ít nhất 2 lần thấp hơn tham chiếu đồng hồ, sau đó phát hiện ra đồng hồ "mới".Kết quả là như nhau.Thêm vào sau khi 5 phút:Điều gì nếu bạn chỉ có một đồng hồ, đồng hồ phát hiện?

XOR đầu ra toggled từ hai dff với đồng hồ ngược?...hay một số thủ thuật như rằng ...Cũng có nên làm việc ...

Hiếm khi đó tình hình sẽ xuất hiện trong thiết kế sản.

 
Nếu bạn chỉ có duy nhất đồng hồ sau đó bạn sẽ phải sử dụng retriggerable
monoshot, giữ cho thời gian liên tục của monoshot retriggerable ít hơn
thời kỳ đồng hồ của đồng hồ bạn muốn phát hiện!

Nếu bạn có hai đồng hồ nói sys_clk và clk_in.Sau đó, sử dụng mã sau đây!
Lưu ý ở đây là theo sự khác biệt trong sys_clk và clk_in tần số
bạn cần phải điều chỉnh các mã sau đây!

Hope this helps!

Mã số:

clk_detect module (/ * AUTOARG * /

/ / Đầu ra

clk_ok,

/ / Đầu vào

sys_clk, reset_n, clk_in

);

đầu vào sys_clk, reset_n, clk_in;

sản lượng clk_ok;reg [08:00] count_clk_in;

reg [7:0] count_sys_clk;

reg cy_count_clk_in_r, cy_count_clk_in_rr;Dây reset_cnt = ~ cy_count_clk_in_rr & cy_count_clk_in_r;gán clk_ok = ~ count_sys_clk [7];luôn luôn @ clk_in posedge (hoặc reset_n negedge) bắt đầu

if (! reset_n)

count_clk_in <= 0;

khác

count_clk_in <= count_clk_in 1'b1;

cuối/ / Đôi flop Synchronizer cho clk_in truy cập mang!

luôn luôn @ sys_clk posedge (hoặc reset_n negedge) bắt đầu

nếu (reset_n)! bắt đầu

cy_count_clk_in_r <= 1'b0;

cy_count_clk_in_rr <= 1'b0;

end else begin

cy_count_clk_in_r <= count_clk_in [8];

cy_count_clk_in_rr <= cy_count_clk_in_r;

cuối

cuối

/ / Retriggerable monoshot!

luôn luôn @ sys_clk posedge (hoặc reset_n negedge) bắt đầu

nếu (reset_n)! bắt đầu

count_sys_clk <= 0;

end else begin

nếu (reset_cnt)

count_sys_clk <= 0;

if (count_sys_clk [! 7])

count_sys_clk <= count_sys_clk 1'b1;

cuối

cuối

endmodule / / clk_detect
 
Tôi nghĩ rằng u có một problen nhỏ trên beginng (ngay sau khi cài lại).
Trong trường hợp hệ thống đồng hồ sau khi resert là stabel nhưng chúng tôi không có clk_in
count_sys_clk sẽ tính và sẽ có một thời gian (256 sys đồng hồ) mà clk_ok sẽ hiển thị '1 'clk_in nhưng không phải là ok.
Trong mô phỏng của tôi tỷ lệ này là sys_clk / clk_in = 50 / 1

 
đồng hồ cho phép tín hiệu có lẽ là một sự lựa chọn

 

Welcome to EDABoard.com

Sponsor

Back
Top