Menu
CoddyTech

Các mức trừu tượng hóa thiết kế

Thuộc phần Kiến thức nền tảng trong hành trình Verilog của Coddy. Bài học 5 trên 90.

Trong thiết kế số, ta có thể mô tả cùng một mạch ở các mức độ chi tiết khác nhau. Verilog là ngôn ngữ có thể mô tả mạch ở bất kỳ mức trừu tượng nào trong số này. Điều đó làm nên sức mạnh của Verilog!

Đây là các cấp độ:

Cấp độ 1: Hành vi

Cấp độ này mô tả mạch điện làm gì, chứ không phải cách mạch thực hiện. Cấp độ này tập trung vào chức năng hoặc hành vi, như "đếm tăng" hoặc "cộng hai số".

Chi tiết bên trong của quá trình đếm hoặc cộng không được hiển thị. Cách biểu đạt này gần với suy nghĩ của con người nhất và dễ viết hơn.

Cấp độ 2: RTL

Cấp độ này cho thấy dữ liệu di chuyển giữa các thanh ghi và những phép toán được thực hiện trên dữ liệu đó. Bạn có thể thấy đường đi của dữ liệu: dữ liệu đi từ một thanh ghi đến bộ cộng, rồi quay lại thanh ghi.

Đây là mức mà hầu hết nhà thiết kế kỹ thuật số làm việc, vì nó cân bằng tốt giữa tính dễ hiểu và mức độ chi tiết cần thiết để tạo ra phần cứng.

Cấp độ 3: Cấp cổng logic

Cấp độ này mô tả mạch bằng các cổng logic (logic gate) cơ bản như AND, OR và XOR. Mọi kết nối đều được thể hiện rõ ràng.

Cấp độ này rất chi tiết và khó viết bằng tay. Thông thường, các công cụ tạo ra nó từ những mô tả ở cấp độ cao hơn, thay vì viết thủ công.
 

Vì sao điều này quan trọng

- **Cấp độ cao hơn** = Dễ viết hơn, ít quyền kiểm soát hơn
- **Cấp độ thấp hơn** = Khó viết hơn, nhiều quyền kiểm soát hơn
- **RTL** là lựa chọn cân bằng nhất cho hầu hết công việc thiết kế

challenge icon

Thử thách

Cần làm gì:

  1. Chạy đoạn code này và xem cùng một phép toán được mô tả ở ba mức độ khác nhau như thế nào:

Tự làm thử

module abstraction_demo;
  
  initial begin
    $display("=== Design Abstraction Levels ===");
    $display("");
    
    $display("Level 1 (Behavioral):");
    $display("  'Add a and b' - no details how");
    $display("");
    
    $display("Level 2 (RTL):");
    $display("  'On clock edge, result <= a + b' - shows data flow");
    $display("");
    
    $display("Level 3 (Gate Level):");
    $display("  'XOR gates for sum, AND gates for carry' - actual gates");
    $display("");
    
    $finish;
  end
  
endmodule
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Verilog online