Announcement

Collapse
No announcement yet.

[Thử tài thiết kế số] Thực hiện hàm logic bằng MUX

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 12520797
    replied
    Originally posted by sangnt View Post
    Bây giờ, thì thầy đổi chiến thuật rồi --> chậm chậm nhưng chắc.
    chậm chậm ==> không đủ :funny: nhưng vẫn chưa giám chắc chắc đâu Thầy, còn phê lắm :haha: , Thầy có cái nào vừa nhanh vừa chắc mà lại không phê thì tốt quá :v

    Leave a comment:


  • sangnt
    replied
    Originally posted by 11520711 View Post
    dạ đúng như thầy nói, hồi đó bọn em học ko kỷ...giờ ngồi xem lại mới thấy thấm những lời thầy dạy trên lớp. Cảm ơn thầy Sang nhiều!
    Hi Trường,
    Hồi trước, sai lầm chiến thuật, tưởng lớp bạn giỏi nên thầy dạy nhanh quá trời --> Ko biết có nhiều bạn hiểu ko? :doubt:
    Bây giờ, thì thầy đổi chiến thuật rồi --> chậm chậm nhưng chắc.

    Leave a comment:


  • sangnt
    replied
    Vẫn phần mềm kinh điển đã nói với các bạn: Microsoft Visio
    Nếu có vẽ sơ đồ khối, thì nên dùng cái đó vẽ. Vẽ quen rồi, thì làm nhanh lắm.
    Bạn cũng có thể tạo thư viện riêng cho mình.

    Ra trường biết nó cũng là một lợi thế đó!

    Leave a comment:


  • 11520537
    replied
    Originally posted by sangnt View Post
    Đúng là D+C, thì khác với D hoặc C.
    Trong bài post của thầy (#7), lúc đầu bị sai chỗ F(AB=11), thầy đã fixed lại.

    Thầy chưa hiểu yêu cầu của đề lắm, có phải là chỉ được dùng Mux_2to1 và Mux_4to1 để thiết kế mạch trên (ko dùng bất kì cổng logic nào khác)???

    - Nếu đúng vậy, thì T/h:
    F(AB=11) = C + D = C + D(C+C') = C + CD + C'D= C.1 + C'.D
    Bạn sẽ dùng được Mux_2to1 để thế cho cổng OR

    - Nếu đề yêu cầu chỉ dùng 1 loại Mux_4to1 thì kết hợp với Mux_4to1 trước, với thêm 1 Mux_4to1 này:
    F(AB=11) = C + D
    = CD' + CD + C'D
    = C'D'.0 + C'D.1 + CD'.1 + CD.1


    - Nếu đề yêu cầu chỉ dùng 1 loại Mux_2to1 thì:
    F = A.(BC + CD + C'D) + A'.BD
    = A.(BC + D) + A'.BD (Mux_2to1 với A là tín hiệu chọn kênh)

    Tiếp tục phân tích:
    BC + D = BC + D.(B + B')
    = B(C+D) + B'D (Mux_2to1 với B là tín hiệu hiệu chọn kênh)
    = B(C.1 + C'D) + B'D (thêm 1 Mux_2to1 với C là tín hiệu chọn kênh


    BD = B.D + B'.0 (Mux_2to1 với B là tín hiệu chọn kênh)

    Đáp án cho 3 trường hợp ở trên:
    [ATTACH=CONFIG]16356[/ATTACH]
    Thầy vẽ bằng phần mềm gì mà đẹp thế thầy?:adore:

    Leave a comment:


  • 11520711
    replied
    Originally posted by sangnt View Post
    Những cái này các bạn học ở môn Nhập môn Mạch số rồi!
    Chắc hồi đó học không kĩ! :unhappy:
    dạ đúng như thầy nói, hồi đó bọn em học ko kỷ...giờ ngồi xem lại mới thấy thấm những lời thầy dạy trên lớp. Cảm ơn thầy Sang nhiều!

    Leave a comment:


  • sangnt
    replied
    Originally posted by 12520797 View Post
    Đã Hiểu!!! đã biết sai ở đâu, và đã biết cách sửa ^_^. Thanks anh Dương! Thanks thầy Sang. (p/s: các kiểu topic như này rất hữu ích, hy vọng thầy, các anh, các bạn sẽ có thêm các bài tập, để rèn thêm "sự mắc lỗi" :v ) . Thân ái và quyết thắng =D
    Những cái này các bạn học ở môn Nhập môn Mạch số rồi!
    Chắc hồi đó học không kĩ! :unhappy:

    Leave a comment:


  • 12520797
    replied
    Đã Hiểu!!! đã biết sai ở đâu, và đã biết cách sửa ^_^. Thanks anh Dương! Thanks thầy Sang. (p/s: các kiểu topic như này rất hữu ích, hy vọng thầy, các anh, các bạn sẽ có thêm các bài tập, để rèn thêm "sự mắc lỗi" :v ) . Thân ái và quyết thắng =D

    Leave a comment:


  • sangnt
    replied
    Đúng là D+C, thì khác với D hoặc C.
    Trong bài post của thầy (#7), lúc đầu bị sai chỗ F(AB=11), thầy đã fixed lại.

    Thầy chưa hiểu yêu cầu của đề lắm, có phải là chỉ được dùng Mux_2to1 và Mux_4to1 để thiết kế mạch trên (ko dùng bất kì cổng logic nào khác)???

    - Nếu đúng vậy, thì T/h:
    F(AB=11) = C + D = C + D(C+C') = C + CD + C'D= C.1 + C'.D
    Bạn sẽ dùng được Mux_2to1 để thế cho cổng OR

    - Nếu đề yêu cầu chỉ dùng 1 loại Mux_4to1 thì kết hợp với Mux_4to1 trước, với thêm 1 Mux_4to1 này:
    F(AB=11) = C + D
    = CD' + CD + C'D
    = C'D'.0 + C'D.1 + CD'.1 + CD.1


    - Nếu đề yêu cầu chỉ dùng 1 loại Mux_2to1 thì:
    F = A.(BC + CD + C'D) + A'.BD
    = A.(BC + D) + A'.BD (Mux_2to1 với A là tín hiệu chọn kênh)

    Tiếp tục phân tích:
    BC + D = BC + D.(B + B')
    = B(C+D) + B'D (Mux_2to1 với B là tín hiệu hiệu chọn kênh)
    = B(C.1 + C'D) + B'D (thêm 1 Mux_2to1 với C là tín hiệu chọn kênh


    BD = B.D + B'.0 (Mux_2to1 với B là tín hiệu chọn kênh)

    Đáp án cho 3 trường hợp ở trên:
    Boolean_to_Mux.png
    Last edited by sangnt; 06-04-2015, 09:36.

    Leave a comment:


  • 11520537
    replied
    Originally posted by 12520578 View Post
    Theo em hiểu thì với AB =11 -> F=D+C (D or C nên em nghĩ chọn 1 trong 2 giá trị đều được), không biết đúng không ?[ATTACH=CONFIG]16351[/ATTACH]
    Chào bạn,

    Không thể làm như thế được, D+C khác với D hoặc C.
    Bạn sửa lại nha.

    Chúc bạn học tốt!
    Trần Đại Dương.

    Leave a comment:


  • 11520537
    replied
    Chào mọi người,

    Có thể mọi người đang hiểu sai vấn đề thì phải, đề yêu cầu sử dụng MUX2-1, MUX4-1 để thực hiện hàm logic chứ đâu bắt phải chọn 1 trong MUX đâu nhỉ? Nếu như thế thì làm sao thiết kế mạch này được.

    Chào thân ái và vì tương lai con em chúng ta!

    Trần Đại Dương.

    Leave a comment:


  • 12520578
    replied
    Originally posted by 11520537 View Post
    Chào bạn [MENTION=19741]12520578[/MENTION]

    bạn có thể giải thích tại sao "F = D + C = C" được không?
    Theo em hiểu thì với AB =11 -> F=D+C (D or C nên em nghĩ chọn 1 trong 2 giá trị đều được), không biết đúng không ?Capture.JPG

    Leave a comment:


  • 11520537
    replied
    Originally posted by 12520578 View Post
    [ATTACH=CONFIG]16350[/ATTACH] Anh cho em ý kiến a, thank a!!
    Chào bạn [MENTION=19741]12520578[/MENTION]

    bạn có thể giải thích tại sao "F = D + C = C" được không?

    Leave a comment:


  • 12520578
    replied
    Capture.JPG Anh cho em ý kiến a, thank a!!

    Leave a comment:


  • sangnt
    replied
    Định lý Shannon
    Bất kì hàm Boolean f(w1,w2, …, wn) có thể được viết dưới dạng:

    f(w1,w2, …, wn) = (𝑤1')*f(0,w2, ..., wn) + w1*f(1, w2, …wn)

    Áp dụng:
    F = ABC + A'BD + ACD + AC'D

    - T/h dùng Mux_2to1 (chọn A làm tín hiệu chọn kênh)
    F = A.(BC + CD + C'D) + A'.BD
    = A.(BC + D) + A'.BD

    - T/h dùng Mux_4to1 (chọn A, B làm 2 tín hiệu chọn kênh)
    F(AB=00) = 0
    F(AB=01) = D
    F(AB=10) = CD + C'D = D
    F(AB=11) = C + CD + C'D = C + D

    Như Dương nói, các bạn nên thiết kế ra mạch nguyên lý trước, rồi mới code Verilog như vậy sẽ nhanh và tránh được sai sót.
    Last edited by sangnt; 06-04-2015, 08:43.

    Leave a comment:


  • 11520537
    replied
    Chào các bạn,

    Sau 2 bài làm của 2 bạn ở trên thì mình có nhận xét là: các bạn thực sự không đi đúng các bước thực hiện mạch logic bằng các MUX (tiêu biểu chính là các bạn đã quá vội vàng rút gọn hàm F) dẫn đến việc chọn biến điều khiển và đầu vào cho các MUX không hợp lý một chút nào.
    Các bạn có thể sẽ cần xem lại định lý Shannon cho biểu diễn hàm logic (chứ không phải là định lý Shannon trong lấy mẫu tín hiệu đâu nha).

    Chúc các bạn học tốt!
    Trần Đại Dương.

    Leave a comment:

LHQC

Collapse
Working...
X