Nguyên văn bởi hithere123
Xem bài viết
Thông báo
Collapse
No announcement yet.
Làm cách nào để nhân chia lẻ cho xung clock?
Collapse
X
-
Woa ... Jeff ko recommend mạch chia clock này cho FPGA đâu ... Jeff nghĩ dùng DCM sẽ tốt hơn ...
Làm sao bảo đảm được output của a Tony ko bi glitch nhỉ? Vì Jeff thấy thế này:
- int_clk_out sẽ có 1 ít delay so với rising_edge của clk (T1)
- (!clk) sẽ có 1 ít delay so với clk (T2)
---
Nếu như T2>T1 thì sẽ bị glitch ngay.
Ban đầu Jeff hiểu khác.
Vấn đề bắt đầu phức tạp hơn so với việc dùng DCM rùi.
Comment
-
Thường thì FF có delay hơn inverter nhiều. Trong FPGA thì có thể phải cần cẩn thận hơn. Vì thế trên bài trên tôi nói là nên dùng xung ra cho enable thì tốt hơn.Nguyên văn bởi jefflieu Xem bài viếtWoa ... Jeff ko recommend mạch chia clock này cho FPGA đâu ... Jeff nghĩ dùng DCM sẽ tốt hơn ...
Làm sao bảo đảm được output của a Tony ko bi glitch nhỉ? Vì Jeff thấy thế này:
- int_clk_out sẽ có 1 ít delay so với rising_edge của clk (T1)
- (!clk) sẽ có 1 ít delay so với clk (T2)
---
Nếu như T2>T1 thì sẽ bị glitch ngay.
Ban đầu Jeff hiểu khác.
Vấn đề bắt đầu phức tạp hơn so với việc dùng DCM rùi.
Comment
-
Anh,Nguyên văn bởi tonyvandinh Xem bài viếtint_clk_out kô thể đến sớm hơn clock được là tại vì nó được tạo ra bởi clock.
Int_clk_out được tạo ra từ kết quả của 5 rising edge clock khác nhau ( R[4:0] ) từ clock nguồn.
và clock_out được tạo ra từ một mạch logic AND của int_clk_out và một đường clock nguồn.
Mặc dù cả 6 clock này là giống nhau nhưng thực tế thì rất khó đảm bảo 6 clock này cái nào đến trước, cái nào đến sau.
Anh xem lại thử.
Thân mến.
Comment
-
Không sao đâu, tôi dùng kỹ thuật này nhiều rồi. Nếu sợ thì dùng nó để đổi nhịp của clock (enable). Xem phần thứ 2 của bài tôi viếtNguyên văn bởi hithere123 Xem bài viếtAnh,
Int_clk_out được tạo ra từ kết quả của 5 rising edge clock khác nhau ( R[4:0] ) từ clock nguồn.
và clock_out được tạo ra từ một mạch logic AND của int_clk_out và một đường clock nguồn.
Mặc dù cả 6 clock này là giống nhau nhưng thực tế thì rất khó đảm bảo 6 clock này cái nào đến trước, cái nào đến sau.
Anh xem lại thử.
Thân mến.
Muốn chắc ăn thì nhân 2 - chia lẻ rồi chia 2 dùng code ở trên thì bảo đảm kô có glitchCode:reg [3:0] cnt; always @ (posedge clk or reset) if (reset) begin cnt = 0; end else if (int_clk_out) begin cnt = cnt + 1; end assign clock_out = cnt[0];
Comment
-
Okie ...Nguyên văn bởi tonyvandinh Xem bài viếtThường thì FF có delay hơn inverter nhiều. Trong FPGA thì có thể phải cần cẩn thận hơn. Vì thế trên bài trên tôi nói là nên dùng xung ra cho enable thì tốt hơn.
Cho riêng FPGA:
1/ khuyến khích dùng DCM để tạo ra clock mới (worry free
)
2/ Khi dùng mạch đếm và logic tạo ra clock mới và khi muốn dùng clock mới này cho chân CLK của FF phải cẩn thận.
Jeff có cách này, nhìn hơi nghiệp dư
.. nhưng mà chạy cũng được 
if(rising_edge(clk)) then
if(cnt=6) then cnt <= 0; else cnt<=cnt+1; end if;
end if;
khi muốn FF enable trong 6 clock trong 7 clock thì : ff_en <= '1' when cnt/=6 else '0';
khi muốn FF enable 3 trong 7 clock ff_en <= '1' when (cnt=0 or cnt=2 or cnt=4) else '0';
Comment
-
Anh,Nguyên văn bởi tonyvandinh Xem bài viếtKhông sao đâu, tôi dùng kỹ thuật này nhiều rồi. Nếu sợ thì dùng nó để đổi nhịp của clock (enable). Xem phần thứ 2 của bài tôi viết
Muốn chắc ăn thì nhân 2 - chia lẻ rồi chia 2 dùng code ở trên thì bảo đảm kô có glitchCode:reg [3:0] cnt; always @ (posedge clk or reset) if (reset) begin cnt = 0; end else if (int_clk_out) begin cnt = cnt + 1; end assign clock_out = cnt[0];

Làm theo cách 2 thì đúng là sẽ không có glitch khi STA clean nhưng xung ra sẽ bị delay 1 clock. Anh xem lại thử.
Thân.
Comment
-
Có rất nhiều cách để làm phân chia xung clock. Nếu có dư DCM để làm thì nên dùng DCM. Nói chung là phải tận dụng tất cả những gì đang có. Nhưng kô phải FPGA nào cũng có DCM và giá cả của FPGA có DCM với kô có DCM khác nhau (they dont come for free)Nguyên văn bởi jefflieu Xem bài viếtOkie ...
Cho riêng FPGA:
1/ khuyến khích dùng DCM để tạo ra clock mới (worry free
)
2/ Khi dùng mạch đếm và logic tạo ra clock mới và khi muốn dùng clock mới này cho chân CLK của FF phải cẩn thận.
Nếu chỉ làm chia cho 7/3, thì làm cách hard code cũng được.Nguyên văn bởi jefflieu Xem bài viếtJeff có cách này, nhìn hơi nghiệp dư
.. nhưng mà chạy cũng được 
if(rising_edge(clk)) then
if(cnt=6) then cnt <= 0; else cnt<=cnt+1; end if;
end if;
khi muốn FF enable trong 6 clock trong 7 clock thì : ff_en <= '1' when cnt/=6 else '0';
khi muốn FF enable 3 trong 7 clock ff_en <= '1' when (cnt=0 or cnt=2 or cnt=4) else '0';
Comment
-
Trễ 1 clock thì có ảnh hưởng gi?Nguyên văn bởi hithere123 Xem bài viếtAnh,
Làm theo cách 2 thì đúng là sẽ không có glitch khi STA clean nhưng xung ra sẽ bị delay 1 clock. Anh xem lại thử.
Thân.
Comment
-
Cám ơn sự hưởng ứng
Để đúc kết đề tài này, tôi xin cám ơn sự hưởng ứng của các bạn, đặc biệt là bạn Jeff và hithere. Sự hưởng ứng của các bạn đã làm đề tài này thêm sôi nổi và đã nêu ra những khuyết điểm của thiết kế. Dù thiết kế hay cách mấy, vẫn có thể có khuyết điểm. Có khuyết điểm có thể khắc phục. Có cái chỉ là work around (khắc phục tạm?). Cho nên cần phải biết những giới hạn của thiết kế để dùng nó một cách thích hợp hơn.
Tôi hy vọng các bạn sẽ tham gia những đề tài khác trong tương lai để mình cùng học hỏi thêm.
Thân ái
Comment
-
Okie anh,Nguyên văn bởi tonyvandinh Xem bài viếtTrễ 1 clock thì có ảnh hưởng gi?
Đúng là trong trường hợp này trễ 1 clock không vấn đề gì
Tiện thể xin phép anh tóm tắt hai ý em tham gia:
[1] Clock gate dùng ở đây không phù hợp, cách 2 của anh hay hơn, vi em cũng toàn dùng cách này và silicon ra okie. Em đưa clock gate ra chỉ là muốn góp thêm một kỹ thuật hay dùng khi đụng tới clock thôi.
[2] Em bảo lưu ý kiến không nên dùng logic AND vì chắc chắn có glitch.
Thân mến.
Comment
Bài viết mới nhất
Collapse
-
bởi theidiotcatTrong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
-
Channel: Đánh giá sản phẩm DTVN
hôm nay, 10:16 -
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
Hôm qua, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
Hôm qua, 09:09 -
-
bởi theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -
-
Trả lời cho Máy đo khuôn mẫubởi vi van phamQuá dễ, Mua cái máy xq quét tòan thân, lấy bàn và khung di chuyển. Tháo đầu xquang ra bán ve chai, mua cái máy siêu âm gắn vào vị trí đầu đèn. Setup máy là chạy chính xác, còn file Setup thì chưa nghĩ ra....
-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 08:49 -
-
Trả lời cho Máy Phun sương tạo ầm Trung Quốc.bởi nguyendinhvanMạch tạo sương là tự dao động.
Mach 555 là đóng mở chu kỳ tần số thấp.
IC 555 giá rẻ, chỉ chạy lên tần số vài trăm ki lô hẹc thôi. Thăng cao hơn là méo dạng rồi tịt.
Mach sương thì dao động tần số tầm 2 mê ga hẹc cơ !...-
Channel: Tâm tình dân kỹ thuật
07-06-2026, 00:09 -
-
bởi nguyendinhvan
Cái máy đo này mắc tiền quá !
Anh em dtvn có giải pháp nào tự chế được không ?...-
Channel: Đo lường và điều khiển dùng máy tính
07-06-2026, 00:00 -
-
bởi nguyendinhvanOi giời.
Thơi buổi PLC rồi, cậu còn hỏi mấy thứ cổ lỗ sĩ này nữa.-
Channel: Tâm tình dân kỹ thuật
06-06-2026, 22:59 -
-
bởi nguyendinhvanChuyện này cũ rồi.
Họ trả lương cho CN, sau đó lại bán hàng thu tiền về. Họ còn cấp các dịch vụ như chỗ ăn ở, quán cafe , giải trí, phương tiện giao thông. Mục đích là thu tối đa số tiền đã chi trả.
Hàng hóa sx ra, chuyển...-
Channel: Tìm mua
06-06-2026, 22:56 -
Anh lùi phase 180 để mask glitch.
Comment