Hiện nay các mạch tích hợp ngày càng thực hiện được nhiều chức năng hơn, do đó chúng ngày càng trở nên phức tạp hơn. Các phương pháp thiết kế mạch truyền thống như dùng tối thiểu hoá hàm Boolean hay dùng sơ đồ các phần tử không còn đáp ứng được các yêu cầu đặt ra khi thiết kế. Hơn nữa các mạch thiết kế ra yêu cầu phải được thử nghiệm kỹ lưỡng trước khi đưa vào chế tạo hàng loạt.
Hơn nữa cần phải xây dựng một bộ tài liệu hướng dẫn vận hành hệ thống hoàn chỉnh dễ hiểu và thống nhất. Vì thế người ta thường sử dụng các ngôn ngữ mô phỏng phần cứng làm phương tiện thiết kế, mô phỏng thử nghiệm các hệ thống số.
Bài viết này sẽ giới thiệu về một ngôn ngữ mô phỏng phần cứng thông dụng hiện nay; Ðó là ngôn ngữ mô phỏng phần cứng dùng cho mạch tích hợp tốc độ cao (Very high speed Intergrated Circuit Hardware Description Language).
1. Các phương pháp thiết kế truyền thống.
a/ Phương pháp thiết kế dùng hàm Boolean.
Tất cả các mạch dựa trên các phần tử logic cơ bản gồm cổng logic và các mạch flip-flop đều có thể thiết kế bằng các hàm Boolean. Có nhiều phương pháp đã được sử dụng để tối thiểu hoá hàm Boolean nhằm tăng tính hiệu quả sử dụng các phần tử logic, chẳng hạn như phương pháp dùng bìa cácnô. Về mặt lý thuyết bất kỳ hệ thống số nào cũng có thể biểu diễn dưới dạng các hàm Boolean. Nhưng việc tối thiểu hoá cũng như xử lý hàng nghìn hàm logic rõ ràng là không thực tế. Trong khi các yêu cầu thiết kế hệ thống hiện nay đòi hỏi tới hàng nhiều nghìn hàm Boolean.
b/ Phương pháp thiết kế dựa trên sơ đồ (là sự mở rộng của phương pháp thiết kế bằng hàm Boolean.)
Trong phương pháp này, người thiết kế có thể sử dụng thêm các mạch chức năng thông dụng khác ngoài các phần tử cơ bản là cổng và flip-flop. Như vậy, phương pháp này cho phép thiết kế thiết kế hệ thống một cách có cấu trúc. Phương pháp thiết kế dựa trên sơ đồ được dùng phổ biến và có rất nhiều phần mềm thiết kế cung cấp cho người thiết kế một giao diện thiết kế đồ hoạ thuận tiện. Trong nhiều năm phương pháp này là phương pháp được sử dụng chủ yếu trong ngành công nghiệp chế tạo phần cứng số.
Hình 2. Minh hoạ cho phương pháp thiết kế dựa trên sơ đồ.
c/ Nhược điểm của các phương pháp thiết kế truyền thống.
Mặc dù có ưu điểm là dễ hiểu và dễ sử dụng, phương pháp thiết kế dùng hàm Boolean và phương pháp thiết kế dựa trên sơ đồ có một số nhược điểm. Nhược điểm lớn nhất của các phương pháp này là chúng chỉ mô tả hệ thống dưới dạng mạng các phần tử nối với nhau. Nhìn vào một hệ thống được mô tả bằng hai phương pháp trên (dưới dạng hàm Boolean hay dạng sơ đồ) ta không thể lập tức chỉ ra được các chỉ tiêu và chức năng chung nhất của hệ thống. Ðể thiết kế một hệ thống bằng phương pháp truyền thống, người thiết kế cần phải đi qua hai bước thực hiện hoàn toàn thủ công: đó là chuyển từ các yêu cầu về chức năng của hệ thống sang biểu diễn hệ thống bằng hàm Boolean, sau đó chuyển từ hàm Boolean sang sơ đồ mạch của hệ thống. Cũng tương tự khi cần hiểu được một hệ thống người phân tích cần phân tích sơ đồ mạch của hệ thống chuyển nó thành các hàm Boolean sau đó mới lập lại được các chức năng, hoạt động của hệ thống. Và các bước nói trên hoàn toàn phải thực hiện thủ công không có bất kỳ sự trợ giúp nào của máy tính. ở đây người thiết kế chỉ có thể sử dụng máy tính làm công cụ hỗ trợ trong việc vẽ sơ đồ mạch của hệ thống (dùng công cụ CAE – Computer Aided Tool) và chuyển từ sơ đồ mạch sang công cụ tổng hợp mạch vật lý (dùng công cụ Synthesis).
Một nhược điểm khác của phương pháp thiết kế truyền thống là sự giới hạn trong độ phức tạp của hệ thống. Phương pháp dùng hàm Boolean chỉ có thể dùng để thiết kế các hệ thống lớn nhất biểu diễn bởi vài trăm hàm. Phương pháp dựa trên sơ đồ chỉ có thể dùng để thiết kế lớn nhất chứa tới 6000 phần tử.
2.Ngôn ngữ mô phỏng phần cứng (HDL).
Ngôn ngữ mô phỏng phần cứng giải quyết được nhược điểm lớn nhất của các phương pháp thiết kế trước đây. Nếu các phương pháp cũ đòi hỏi phải chuyển đổi từ mô tả hệ thống (các chỉ tiêu về chức năng của hệ thống) sang tập hợp các hàm logic bằng tay thì bước chuyển đổi đó hoàn toàn không cần thiết khi dùng ngôn ngữ mô phỏng phần cứng. Hầu hết các công cụ thiết kế dùng ngôn ngữ mô phỏng phần cứng đều cho phép sử dụng biểu đồ trạng thái (finite-state-machine) cho các hệ thống tuần tự cũng như cho phép sử dụng bảng chân lý cho hệ thống tổng hợp. Việc chuyển đổi từ các biểu đồ trạng thái và bảng chân lý sang mã ngôn ngữ mô phỏng phần cứng được thực hiện tự động. Ngôn ngữ mô phỏng phần cứng được dùng nhiều để thiết kế cho các thiết bị logic lập trình được (PLD-Programmable Logic Device) từ loại đơn giản đến các loại phức tạp như ma trận cổng lập trình được (Field Programmable Gate Array).
II.Ngôn ngữ mô phỏng phần cứng VHDL.
1. Giới thiệu.
VHDL là viết tắt của cụm từ Very High Speed Intergrated Circuit Hardware Description Language-ngôn ngữ mô phỏng phần cứng cho các mạch tích hợp tốc độ rất cao. VHDL là ngôn ngữ mô phỏng phần cứng được phát triển dùng cho chương trình VHSIC (Very High Speed Intergrated Circuit) của bộ quốc phòng Mỹ.Mục tiêu của việc phát triển VHDL là có được một ngôn ngữ mô phỏng phần cứng tiêu chuẩn và thống nhất cho phép phát triển thử nghiệm các hệ thống số nhanh hơn cũng như cho phép dễ dàng đưa các hệ thống đó vào ứng dụng trong thực tế. Ngôn người VHDL được ba công ty Intermetics, IBM và Texas Instruments bắt đầu nghiên cứu phát triển vào 7/1983. Phiên bản đầu tiên được công bố vào 8/1985. Sau đó VHDL được đề xuất để tổ chức IEEE xem xét thành một tiêu chuẩn. Năm 1987, đã đưa ra tiêu chuẩn về VHDL – tiêu chuẩn IEEE-1076-1987.
VHDL được phát triển để giải quyết các khó khăn trong việc phát triển, thay đổi và lập tài liệu cho các hệ thống số. Như ta đã biết, một hệ thống số có rất nhiều tài liệu mô tả. Ðể có thể vận hành bảo trì sửa chữa một hệ thông ta cần tìm hiểu tài liệu đó kỹ lưỡng. Với một ngôn ngữ mô phỏng phần cứng tốt việc xem xét các tài liệu mô tả trở nên dễ dàng hơn vì bộ tài liệu đó có thể được thực thi để mô phỏng hoạt động của hệ thống. Như thế ta có thể xem xét toàn bộ các phần tử của hệ thống hoạt động trong một mô hình thống nhất.
Trước khi VHDL ra đời, có nhiều ngôn ngữ mô phỏng phần cứng được sử dụng nhưng không có một tiêu chuẩn thống nhất. Các ngôn ngữ mô phỏng phần cứng đó được phát triển để phục vụ các bộ mô phỏng chạy chúng. Vì các ngôn ngữ mô phỏng phần cứng đó được các nhà cung cấp thiết bị phát triển, nên mang các đặc trưng gắn với các thiết bị của nhà cung cấp đó và thuộc sở hữu của nhà cung cấp.
Trong khi đó, VHDL được phát triển như một ngôn ngữ độc lập không gắn với bất kỳ một phương pháp thiết kế, bộ mô phỏng hay công nghệ phần cứng nào. Người thiết kế có thể tự do lựa chọn công nghệ, phương pháp thiết kế trong khi vẫn sử dụng một ngôn ngữ duy nhất.
VHDL có một số ưu điểm hơn hẳn các ngôn ngữ mô phỏng phần cứng khác là:
Tính công cộng:
VHDL được phát triển dưới sự bảo trợ của chính phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE, VHDL không thuộc sở hữu của bất kỳ cá nhân hay tổ chức nào. Do đó VHDL được hỗ trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống. Ðây là một ưu điểm nổi bật của VHDL, giúp VHDL trở nên ngày càng phổ biến.
Khả năng hỗ trợ nhiều công nghệ và phương pháp thiết kế:
VHDL cho phép thiết kế bằng nhiều phương pháp như phương pháp thiết kế từ trên xuống, hay từ dưới lên dựa vào các thư viện có sẵn. VHDL cũng hỗ trợ cho nhiều loại công nghệ xây dựng mạch như sử dụng công nghệ đồng bộ hay không đồng bộ, sử dụng ma trận lập trình được hay sử dụng mảng logic ngẫu nhiên. Như vậy VHDL có thể phục vụ tốt cho nhiều mục đích thiết kế khác nhau, từ việc thiết kế các phần tử phổ biến đến việc thiết kế các IC ứng dụng đặc biệt (Application Specified IC).
Ðộc lập với công nghệ:
VHDL hoàn toàn độc lập với công nghệ chế tạo phần cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức cổng có thể được chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộc vào công nghệ chế tạo phần cứng nào được sử dụng (dùng CMOS, nMOS, hay GaAs). Ðây cũng là một ưu điểm quan trong của VHDL nó cho phép người thiết kế không cần quan tâm đến công nghệ phần cứng khi thiết kế hệ thống, như thế khi có một công nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng ngay cho các hệ thống đã thiết kế.
Khả năng mô tả mở rộng:
VHDL cho phép mô tả hoạt động của phần cứng từ mức hệ thống số (hộp đen) cho đến mức cổng. VHDL có khả năng mô tả hoạt động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp chặt chẽ thống nhất cho mọi mức. Như thế ta có thể mô phỏng một bản thiết kế bao gồm cả các hệ con được mô tả ở mức cao và các hệ con được mô tả chi tiết.
Khả năng trao đổi kết quả:
Vì VHDL là một tiêu chuẩn được chấp nhận, nên một mô hình VHDL có thể chạy trên mọi bộ mô phỏng đáp ứng được tiêu chuẩn VHDL-các kết quả mô tả hệ thống có thể được trao đổi giữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưng cùng tuân theo chuẩn VHDL. Cũng như, một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trong một hệ thống; trong khi các hệ con đó được thiết kế độc lập.
Khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiết kế:
VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy nó có thể sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm nhiều người. Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử nghiệm và chi sẻ thiết kế. VHDL cũng cho phép dùng lại các phần đã có sẵn.
Trên đây ta đã xem xét một số đặc điểm của ngôn ngữ VHDL, sau đây ta sẽ đi sâu vào xem xét một số khái niệm thiết kế cơ bản trong VHDL.
2. Cấu trúc một mô hình hệ thống mô tả bằng VHDL.
Thông thường một mô hình VHDL bao gồm ba phần: thực thể, kiến trúc và các cấu hình. Trong một số trường hợp mô hình còn có thêm phần các môi trường kiểm tra.
2.1 Thực thể (Entity).
Khai báo thực thể trong VHDL là câu lệnh định nghĩa các chỉ tiêu phía ngoài của một phần tử hay một hệ thống. Các thông tin có trong phần khai báo thực thể cho phép kết nối phần tử (hệ thống) mà thực thể đó đại diện với các phần tử (hệ thống) khác. Thực chất việc khai báo thực thể chính là khai báo giao diện của hệ thống với bên ngoài. Hoạt động thực chất của hệ thống không được mô tả trong khai báo thực thể. Dưới đây là một ví dụ khai báo thực thể cho một cổng NAND.
Câu lệnh LIBRARY IEEE và USE IEEE.std_logic_1164.ALL cho phép thực thể sử dụng các định nghĩa trong thư viện về các tiêu chuẩn của IEEE. Khai báo thực thể bao gồm tên của thực thể và một tập các cổng và phần chung. Trong đó phần chung GENERIC là các hằng số được truyền cho phần tử (hệ thống). Phần chung có thể coi là các tham số định trước của phần tử, chẳng hạn như độ trễ. Các cổng là phần giao diện vào ra của phần tử. Các cổng có thể tương ứng với các chân IC, hay các đầu nối trên bảng mạch. Các cổng được khai báo là cổng vào, cổng ra, cổng hai chiều hay bộ đệm.
2-2.Kiến trúc (Arrchitecture).
Một khai báo thực thể đều phải đi kèm với ít nhất một kiến trúc tương ứng. VHDL cho phép khai báo nhiều kiến trúc cho một thực thể. Một khai báo kiến trúc có thể bao gồm các khai báo về các tín hiệu bên trong, các phần tử bên trong hệ thống, hay các hàm và thủ tục mô tả hoạt động của hệ thống. Có hai cách mô tả kiến trúc của một phần tử (hệ thống) đó là mô tả theo mô hình hoạt động hay mô tả theo mô hình cấu trúc. Tuy nhiên một hệ thống có thể bao gồm cả mô tả theo mô hình hoạt động và mô tả theo mô hình cấu trúc.
2-2-1.Mô tả kiến trúc theo mô hình hoạt động.
Mô hình hoạt động mô tả các hoạt động của hệ thống (hệ thống đáp ứng với các tín hiệu vào như thế nào và đưa các kết quả gì ra đầu ra) dưới dạng các câu lệnh cảu ngôn ngữ lập trình bậc cao. Các câu lệnh đó có thể là PROCESS, WAIT, IF, CASE, FOR-LOOP...Ví dụ, kiến trúc của cổng NAND nói trên có thể mô tả theo mô hình hoạt động như sau.
Hình 4. Mô tả kiến trúc cổng NAND theo mô hình hoạt động.
Ta thấy kiến trúc của phần tử NAND có một lệnh gán tín hiệu mô tả chức năng của phần tử. Câu lệnh này được thực thi khi một trong hai cổng a,b thay đổi giá trị. Và câu lệnh gán có độ trễ, tức là tín hiệu ở bên vế trái sẽ thay đổi tương ứng sau thời gian trễ.
2-2-2.Mô tả kiến trúc theo mô hình cấu trúc.
Mô hình cấu trúc của một phần tử (hệ thống) có thể bao gồm nhiều cấp cấu trúc bắt đầu từ một cổng logic đơn giản để xây dựng mô tả cho một hệ thống hoàn thiện. Thực chất của việc mô tả theo mô hình cấu trúc là mô tả các phần tử con bên trong hệ thống và sự kết nối của các phần tử con đó. Như với ví dụ mô tả mô hình cấu trúc một flip-flop RS gồm hai cổng NAND như sau.
2-3. Cấu hình.
Việc khai báo cấu hình tương tự như việc liệt kê các phần của bản thiết kế. Khai báo cấu hình thực chất là chỉ ra kiến trúc nào được gắn với thực thể nào. Như vậy các kiến trúc khác nhau có thể cùng được gắc với một thực thể. Ðiều này cho phép thay đổi bản mô tả ở thời điểm mô phỏng hay tổng hợp hệ thống. Việc khai báo cấu hình là tuỳ chọn, cũng có thể sử dụng cấu hình mặc định do VHDL cung cấp-khi đó kiến trúc được khai báo cuối cùng cho một thực thể sẽ được gắn với thực thể đó.
2-4. Môi trường kiểm tra.
Một trong các nhiệm vụ rất quan trọng là kiểm tra bản mô tả thiết kế. Kiểm tra một mô hình VHDL được thực hiện bằng cách quan sát hoạt động của nó trong khi mô phỏng. Thông thường các bộ mô phỏng có cung cấp khả năng kiểm tra, nhưng cũng có thể xây dựng một môi trường kiểm tra VHDL. Môi trường kiểm tra có thể hiểu như một mạch kiểm tra ảo. Môi trường kiểm tra sinh ra các tác động lên bản thiết kế và cho phép quan sát hoặc so sánh kết quả hoạt động của bản mô tả thiết kế.
Hình 6. Minh hoạ một môi trường kiểm tra ảo bằng VHDL.
III. Kết luận.
Trên đây ta đã xem xét một ngôn ngữ phần cứng khá phổ biến là VHDL. Ta có thể thấy các ưu điểm của VHDL cũng như các cấu trúc cơ bản nhất của VHDL. Tuy nhiên, VHDL là một ngôn ngữ rất phức tạp và không phải là một ngôn ngữ dễ học và dễ làm chủ. Bài báo này chỉ mang tính chất giới thiệu một ngôn ngữ đang được dùng phổ biến để thiết kế các hệ thống số.
Như vậy, câu hỏi đặt ra là VHDL có thể ứng dụng gì trong điều kiện Việt Nam?
Trên thực tế, hiện nay chúng ta có đủ điều kiện công nghệ để chế tạo, tổng hợp các mạch số tích hợp, vì vậy việc sử dụng VHDL để thiết kế các mạch số ở Việt Nam còn có nhiều vướng mắc cần giải quyết.
Tuy nhiên chúng ta có thể sử dụng VHDL để mô phỏng quan sát kiểm tra hoạt động của các phần cứng mà không cần dùng tới các mạch kiểm tra quá đắt tiền. Ðiều này rất hữu ích trong các trường đại học (như tại Khoa Ðiện tử – Viễn thông. PTIT - Học Viện Công Nghệ Bưu Chính Viễn Thông). Ta có thể sử dụng VHDL để xây dựng các bài thí nghiệm mô phỏng hoạt động phần cứng minh hoạ cho giảng dạy.
Hơn thế việc nghiên cứu sử dụng VHDL là cần thiết cho các kỹ sư vận hành hệ thống, vì các hệ thống số chúng ta đặt mua sẽ có thể được cung cấp tài liệu dưới dạng các mô hình VHDL.
(Nguồn: Tạp chí điện tử trẻ)
chưa chuyên sâu, chỉ nói sơ thôi
Trả lờiXóa