1.3. Phƣơng pháp thiết kế vi mạch tích hợp VLSI
1.3.3. Giới thiệu về ngôn ngữ mô tả phần cứng VHDL và ứng dụng của VHDL
đã đƣợc thực hiện trƣớc trong quá trình sản xuất vi mạch FPGA.
1.3.3. Giới thiệu về ngôn ngữ mô tả phần cứng VHDL và ứng dụng của VHDL trong thiết kế VLSI trong thiết kế VLSI
Trƣớc đây, các mạch tích hợp (IC) thƣờng đƣợc thiết kế và xây dựng bằng các công cụ đồ hoạ với sự trợ giúp của máy tính thƣờng đƣợc gọi là các công cụ CAD (Computer Aided Design). Với phƣơng pháp thiết kế này, chúng ta thƣờng sử dụng các thành phần linh kiện cơ bản nhƣ các cổng logic, điện trở, tụ, các vi mạch cơ bản và các ký hiệu khác từ các thƣ viện đƣợc xây dựng sẵn bởi các nhà cung cấp công cụ CAD. Ngƣời thiết kế chỉ việc gọi chúng ra, đặt chúng vào các vị trí trong sơ đồ nguyên lý và nối dây liên kết giữa các linh kiện này theo yêu cầu của ứng dụng. Về sau các cụm linh kiện hay đƣợc sử dụng lại đƣợc cất vào thƣ viện và ngƣời thiết kế chỉ việc nhặt chúng ra khi cần. Phƣơng pháp thiết kế này đƣợc gọi là bottom-up (từ dƣới lên). Phƣơng pháp này có ƣu điểm là dễ hiểu nhƣng lại tiêu tốn khá nhiều thời gian, đặc biệt là khi chúng ta muốn xây dựng các mạch lớn. Bên cạnh đó, phƣơng pháp này cũng gây nhiều khó khăn cho ngƣời thiết kế khi phải kiểm tra các mạch phức tạp. Do đó, phƣơng pháp thiết kế truyền thống này đã nhanh chóng đƣợc cải tiến và dần thay thế bằng các quy trình và phƣơng pháp thiết kế khác thuận lợi hơn. Xu hƣớng thiết kế hiện nay là phƣơng pháp thiết kế top-down (từ trên xuống) cùng với việc sử dụng các ngôn ngữ mô tả phần cứng (HDL: Hardware Description Language) và các công cụ thiết kế, tổng hợp bằng máy tính. Nhờ vào việc cải tiến từng bƣớc chu trình thiết kế top-down, một ngôn ngữ mô tả phải hỗ trợ tất cả các mức trừu tƣợng khác nhau: đặc điểm kỹ thuật hệ thống, mô tả thuật toán, các khối chức năng và netlist mức cổng logic. Một lĩnh vực quan trọng trong chu trình thiết kế ngày nay là việc sử dụng các công cụ tổng hợp logic (synthesis tool). Các công cụ này cho phép tạo ra các netlist mức cổng logic một cách tự động từ các mô tả về cách hoạt động. Điều này đòi hỏi một ngôn ngữ đƣợc chuẩn hoá cho phép mô phỏng hệ thống đã xây dựng ở các mức mô tả khác nhau.
VHDL (VHSIC Hardware Description Language; VHSIC (Very High Speed Integrated Circuit) ra đời nhằm đáp ứng những yêu cầu trên. VHDL cho phép mô tả các hoạt động tuần tự và đồng thời của các vi mạch số. Các mạch số đƣợc mô tả trong VHDL có thể có định thời (timing) hoặc có thể không và VHDL cũng cho phép mô tả các mạch này ở các mức mô tả khác nhau. VHDL cũng cho phép xây dựng các thiết kế phân cấp bằng cách xây dựng các mô-đun nhỏ và nối chúng lại với nhau. Ngày này, hầu hết các công cụ thiết kế đều hỗ trợ ngôn ngữ VHDL vì nó đã đƣợc chuẩn hoá bởi Hiệp hội các kỹ sƣ điện-điện tử (IEEE) [13]. Nhờ đó, VHDL có thể đƣợc sử dụng nhƣ là một môi trƣờng chuyển đổi giữa các công cụ CAD khác nhau hoặc giữa ngƣời sử dụng công cụ CAD và nhà cung cấp chip.
Cấu trúc một chƣơng trình viết bằng ngôn ngữ VHDL bao gồm 5 phần: Thƣ viện (Library), thực thể (Entity), kiến trúc (Architecture), cấu hình (Configuration) và gói (Package). Trong đó 3 phần không thể thiếu đƣợc trong một chƣơng trình VHDL đó là: Thƣ viện, thực thể và kiến trúc, phần cấu hình và gói thƣờng đƣợc sử dụng khi thiết kế các mạch phức tạp.
- Phần thƣ viện (Library) là nơi chứa các mô tả về các hàm và linh kiện cơ bản nhất đƣợc sử dụng trong thiết kế. Khi thực hiện mô phỏng hay tổng hợp, các chƣơng trình sẽ tham chiếu tới các mô tả này trong thƣ viện. Do VHDL đƣợc chuẩn hóa bởi Hiệp hội các kỹ sƣ điện-điện tử (IEEE) nên thƣ viện thƣờng đƣợc sử dụng là thƣ viện IEEE.
- Thực thể (Entity) là danh sách mô tả các chân vào/ra (các Port) và các tham số chung (Generic) có thể thay đổi của mạch điện.
- Kiến trúc (Architecture) mô tả chi tiết hoạt động hoặc cấu trúc bên trong của thực thể. Trong phần này ngƣời thiết kế có thể khai báo các tín hiệu, các quá trình và các linh kiện sử dụng trong mạch. Một architecture thể hiện một chức năng của thực thể gắn với nó. VHDL cho phép xây dựng nhiều architecture cho một thực thể. Có hai cách mô tả kiến trúc của một phần tử (hoặc hệ thống) đó là mô hình hành xử (Behaviour) hay mô tả theo mô hình cấu trúc (Structure). 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.
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 ra kết quả gì ra đầu ra) dƣới dạng các cấu trúc ngôn ngữ lập trình bậc cao. Cấu trúc đó có thể là PROCESS, WAIT, IF, CASE, FOR-LOOP… nhƣng thành phần chủ yếu của việc mô tả hoạt động là PROCESS.
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ử (hoặc 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 đế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 đó.
- Cấu hình (Configuration) chỉ rõ thực thể sử dụng kiến trúc nào trong số các kiến trúc đƣợc xây dựng.
- Gói tƣơng tự nhƣ thƣ viện, chứa các hàm và các mạch linh kiện căn bản đƣợc sử dụng nhiều lần trong thiết kế. Sự khác biệt ở đây là các mô tả trong thƣ viện thấp hơn nhiều so với trong gói do gói là các mô tả riêng của ngƣời sử dụng.
Với cấu trúc nhƣ trên, VHDL có thể giúp ngƣời thiết kế mô tả mạch số ở nhiều mức trừu tƣợng khác nhau. Các mức trừu tƣợng trong mô tả phần cứng VHDL đƣợc chỉ ra trong Hình 10.
Hình 10: Các mức trừu tượng trong mô tả phần cứng.
Mức cao nhất là mức hệ thống. Mức này mô tả mạch điện là tổ hợp các khối chức năng đƣợc kết nối lại với nhau. Các chức năng có thể đƣợc quyết định thực hiện bằng phần cứng hoặc phần mềm. Mức này cho phép hiểu đƣợc hoạt động của mạch nhƣng không mô tả đƣợc kiến trúc chi tiết bên trong vi mạch. Mức thứ hai thấp hơn là mức truyền dữ liệu giữa các thanh ghi (RTL: Register Transfer Level hay Dataflow), mức này cho phép các nhà thiết kế hình dung đƣợc cấu trúc của mạch và luồng dữ liệu di chuyển trang mạch. Mức trừu tƣợng hóa thấp nhất là mức cổng (gate level), khi thiết kế ở mức này nhà thiết kế phải quan tâm chi tiết đến các thuộc tính điện của các cổng lô-gic và của mạch.
Với khả năng cho phép mô tả ở các mức cao, ngôn ngữ mô tả phần cứng VHDL giúp ngƣời lập trình dễ dàng hơn khi sử dụng phƣơng pháp thiết kế từ trên xuống, không mất thời gian cho mức cổng và cho phép mô tả những vi mạch phức tạp hơn nhiều.
Chương 2 Lõi vi xử lý mềm MicroBlaze
Chƣơng trƣớc cung cấp các kiến thức cơ bản nhất về hệ vi xử lý, hệ thống SoC, công nghệ FPGA và phƣơng pháp thiết kế VLSI. Chƣơng này trình bày cụ thể về vi xử lý MicoBlaze, là vi xử lý đƣợc sử dụng để triển khai hệ vi xử lý về sau.