Dùng ngôn ngữ VHDL mô tả một hệ thống báo động cho xe hơi:

Một phần của tài liệu Bài giảng VHDL (Trang 37 - 39)

Trong một hệ thống báo động cho xe hơi, chúng ta thường kết nối hệ thống này với một cái còi báo động, để khi có một tác động từ bên ngoài nào vào hệ thống thì chuông sẽ vang lên. Theo ý tưởng này, chúng ta phải có: một công tắc điều khiển đóng ngắt chính cho hệ thống được đặt tên là M; một công tắc đại diện cho việc đóng mở cửa xe được đặt tên là D; một bộ phát hiện dao động được đặt tên là V. Chúng ta sẽ quy định mức logic cho từng ký hiệu này như sau: cửa xe mở khi D=1, trường hợp khác thì D=0; tương tự như thế, khi xe bị rung động thì V=1, trường hợp khác V=0; chúng ta muốn còi S reo lên thì S=1. Như vậy có ba trường hợp làm cho chuông báo hiệu reo lên là D=1 hoặc V=1 hoặc cả hai D=V=1, trong ba trường hợp trên công tắc điều khiển chính của hệ thống sẽ đóng lại làm chuông báo động vang lên tức là M=1. Tuy nhiên, vấn đề đặt ra ở đây là khi người chủ xe mở cửa xe ra vào bên trong lái xe thì họ không muốn còi báo động vang lên. Do đó lúc này công tắc điều khiển chính M=0 tương ứng với toàn bộ hệ thống báo động sẽ ngừng hoạt động bất kể D và V đang là 0 hay 1. Dựa trên những phân tích trên ta lập bảng chân trị cho hàm S gồm 3 biến M, D,V như sau:

Chương 2 : Dùng ngôn ngữ VHDL mô tả các mạch số cơ bản

Từ phương trình trên ta sẽ thiết lập được sơ đồ mạch cho cả hệ thống báo động này như sau:

Ngoài ra ta có thể rút gọn biểu thức S bằng cách sử dụng các tiên đề và các định lý cơ bản trong đại số Boolean:

Từ biểu thức S rút gọn ta sẽ thiết lập được mạch báo động đơn giản hơn, sử dụng ít cổng logic hơn nhưng yêu cầu chống trộm vẫn đảm bảo.

Giãn đồ xung đóng ngắt chuông được mô tả rõ nét thông qua hình 2.3

Hình 2. 3 : Giãn đồ xung của hệ thống báo động trong xe hơi: (a) Dạng xung trên lý thuyết; (b) Dạng xung trên thực tế.

Ta nhận thấy có xuất hiện thời gian trễ khi ngắt và mở chuông. Điều này hoàn toàn phù hợp với thực tế khi thi công mạch.

Ta sẽ viết chương trình VHDL cho biểu thức logic của mạch báo động trong xe hơi:

Đoạn mã này được viết ở cấp độ Dataflow không phải vì ta nhìn vào tên thân cấu trúc của nó là Dataflow để xác định. Mà vì mã hóa ở cấp độ Dataflow sẽ dùng các phương trình logic để mô tả mạch. Trong đoạn mã dưới đây ta sẽ dùng cách này để mô tả sự hoạt động của các cổng AND, OR, NOT bằng những câu lệnh gán tín hiệu đồng thời.

Hình 2. 4 : Mạch báo động trong xe hơi (a) đoạn mã VHDL được viết dưới dạng dataflow; (b) mô phỏng giãn đồ xung.

Một phần của tài liệu Bài giảng VHDL (Trang 37 - 39)