Kiến thức cơ bản

Học thiết kế Logic từ một ví dụ đơn giản

Học thiết kế Logic từ một ví dụ đơn giản

Bài viết này sẽ cho các bạn cái nhìn gần hơn với Vivado và cách tạo một thiết kế theo trình tự cơ bản nhất.

 

Mục đích của bài viết

Thực hành thông qua design đơn giản
Làm quen với Vivado
Nắm được các bước để tạo thiết kế trên Vivado 
 
 

Thông tin yêu cầu

1. Thiết kế mạch có 1 cổng AND 2 đầu vào. Đầu ra của cổng AND được chốt lại bằng Flipflop 1 bit

2. Tín hiệu vào:

2.1 Clock - Tên cổng: clock. Tần số: 10Mhz.
2.2 Reset - Tên cổng: reset. Tích cực mức 1. Reset đồng bộ
2.3 Đầu vào A.
2.4 Đầu vào B.
2.5 Đầu ra Q.

3. Tạo testbench, test pattern và checklist

4. Điền kết quả vào checklist

 

đồ khối thông tin tín hiệu

Để bắt đầu thiết kế, chúng ta sẽ vẽ sơ đồ khổi cho các thành phần của nó. Trong ví dụ này, thiết kế chỉ có đơn giản 2 thành phần, 1 là cổng AND logic cho 2 tín hiệu đầu vào, 2 là 1 FlipFlop để lưu giá trị của output từ cổng AND. Để có thể biết cách vẽ sơ đồ khối ( Block Diagram ), các bạn tham khảo bài viết hướng dẫn tại đây.

 

Sơ đồ khối

 Để ghi nhớ các thành phần vào ra ( In Out) của một module, cách đơn giản nhất là dùng 1 bảng tính Excel. Các cột có thể được dùng để chứa các thông tin cụ thể. Ở đây có 4 loại thông tin được lưu vào 4 cột chính, ngoài ra, cột đầu tiên là về chỉ số của tín hiệu.  Về phần bảng thông tin vào ra của module, các bạn có thể xem thêm hướng dẫn chi tiết tại đây.

Các đầu vào ra của module

 

Dạng sóng thiết kế

 Một vấn đề quan trọng không kém và không thể thiếu trong thiết kế logic, đó là dạng sóng của các tín hiệu trong thiết kế.  Nó là hình ảnh ban đầu của những ý tưởng về thiết kế cũng như là điểm kết nối của yêu cầu và sản phẩm đầu ra của kỹ sư.  Về cách tạo dạng sóng, các bạn tham khảo tại đây.

 

 

Verilog coding

Đây là phần không thể thiếu của thiết kế logic. Trong thực tế, công đoạn này tốn khá ít thời gian hơn là như mọi người có thể hình dung. Một khi đã phát thảo ra các chi tiết của phần cứng có trong thiết kế và vẽ được sơ đồ khối của nó, thì việc coding cũng chỉ là chuyển đổi thiết kế sang 1 dạng khác mà thôi. Tùy vào hoàn cảnh của quá trình thiết kế, đôi lúc các bạn sẽ phải bắt đầu coding khi chưa có được sơ đồ khối hay dạng sóng mong muốn. Điều này đòi hỏi kinh nghiệm và sự hỗ trợ, nhận xét từ đồng nghiệp hoặc người cùng làm với mình. Để biết các viết 1 module trên ngôn ngữ Verilog, các bạn tham khảo tại đây.

 

 

phỏng

Để biết được chức năng của các đoạn code viết ra có giống với thiết kế và ý tưởng ban đầu về mặt chức năng hay không, chúng ta cần phải trả qua công đoạn mô phỏng thiết kế. Bước mô phỏng này tốn khá nhiều thời gian và đòi hỏi phải có một kế hoạch thật rõ ràng. Về môi trường mô phỏng, các bạn xem hướng dẫn và các khái niệm cơ bản tại đây.

Việc tạo và xây dựng môi trường mô phỏng đóng vai trò then chốt trong sự thành công của thiết kế logic. Các bạn sẽ phải tuân thủ nghiêm ngặt các nguyên tắc và định hướng ban đầu để có thể đạt được hiệu quả cao nhất. 

 

 Nếu bạn có thắc mắc, vui lòng để lại comment ở bên dưới !!

 

Còn tiếp....