Phương pháp thiết kế truyền thống là tối thiểu hoá các hàm Boolean và sử dụng các sơ đồ phần tử, nhưng phương pháp này bị giới hạn về độ phức tạp và chỉ có thể thiết kế được các hệ thống chứa vài ngàn phần tử. Nhưng với công nghệ tích hợp ngày nay thì việc sử dụng phương pháp trên là rất khó khăn.
Ngôn ngữ mô tả phần cứng (HDL-Hardware Description Langgues)
hỗ trợ rất lớn cho việc thiết kế mạch vi điện tử, nó cho phép thiết kế các hệ thống phức tạp, nó rât mềm dẻo trong thiết kế vì vậy có thể thay đổi tham số một cách dễ dàng. Trong quá trình thiết kế, các ngôn ngữ mô tả phần cứng chính là các công cụ thiết kế nhằm mục đích tạo mẫu, mô phỏng, kiểm tra, thiết kế; là ngôn ngữ mô tả hành vi, mô tả dòng dữ liệu, sơ đồ kết nối. Trên thực tế có rất nhiều ngôn ngữ mô tả phần cứng được dùng như là công cụ chuẩn cho thiết kế chế tạo cho các thiết bị logic lập trình được nói chung và FPGA nói riêng. Một số loại ngôn ngữ như sau:
-AHPL là HDL mô tả dòng dữ liệu.
-CDL (Computer Design Language) là ngôn ngữ mô tả dòng dữ liệu phát triển trong đào tạo.
-CONLAN (Consensus Language) là ngôn ngữ mô tả phân cấp phần cứng.
-IDL (Interactive Design Language) là ngôn ngữ tạo tự động cấu trúc PLA của hãng IBM.
-TEGAS (Test Generation and Simulation) là hệ thống tạo tín hiệu kiêm tra và mô phỏng các mạch số, đây là ngôn ngữ cấu trúc.
-VHDL (Very high speed integrated circuit Hardware Description Languages) là ngôn ngữ mô tả phần cứng có đủ sức thiết kế và mô tả các hệ thống số.
-Verilog là ngôn ngữ hỗ trợ phân cấp thiết kế, nó xuất hiện sau VHDL có đặc điểm là dễ sử dụng.
Ngôn ngữ Verilog và VHDL đã được chuẩn hoá và được sử dụng rộng rãi ở các nước, tất cả các hệ thống tổng hợp phần cứng đều chấp nhận hai ngôn ngữ này. Verilog được thiết kế như một ngôn ngữ mô phỏng còn VHDL được thiết kế như một ngôn ngữ mô tả và dữ liệu. Cả Verilog và VHDL đều được phát triển từ thập niên 80 trước khi nó được giới thiệu như một phần mềm thương mại dùng để tổng hợp logic. Cả hai ngôn ngữ hiện nay sử dụng vào mục đích không phải như ý định ban đầu nên hiện trạng của nó trong tổng hợp logi gần giống như các bộ biên dịch ngôn ngữ máy tính, do vậy khi tổng hợp logic buộc người thiết kế phải dùng một tập con của cả Verilog và VHDL.
Có 2 cách mô tả phần cứng bằng HDL là mô hình hành vi trừu tượng và mô hình cấu trúc phần cứng.
Mô hình hành vi trừu tượng là mô tả trừu tượng hành vi của phần cứng đối với các mục đích đặc tả, hành vi này không bị chi phối bởi cấu trúc hay thiết kế của phần cứng.
Mô hình cấu trúc phần cứng. Cấu trúc phần cứng có khả năng được mô hình trong ngôn ngữ mô tả phần cứng mà không cần quan tâm đến hành vi của thiết kế.
mức trừu tượng khác nhau. Các mô hình mức cao mô tả một cách trừu tượng hoạt động của phần cứng, trong khi đó các mô hình mức càng thấp sẽ có càng nhiều chi tiết hơn.
* Một vài so sánh giữa Verilog và VHDL
Sau đây ta so sánh và đối chiếu một số khía cạnh của Verilog và VHDL.
- Khả năng:
Cấu trúc phần cứng có thể được mô hình hiệu quả với một trong hai ngôn ngữ verilog và VHDL.
- Biên dịch:
VHDL: nhiều khối thiết kế xuất hiện trong cùng file hệ thống có thể được biên dich riêng rẽ nếu muốn. Tuy nhiên thực tế sẽ duy trì mỗi khối thết kế trong tập tin hệ thống riêng.
Verilog: Verilog vẫn bám vào chế độ biên dịch bẩm sinh, kiểu biên dịch chương trình được viết trong một file duy nhất.
- Kiểu dữ liệu:
VHDL có rất nhiều kiểu dữ liệu của ngôn ngữ hay do người lập trình định nghĩa. Điều này có nghĩa là nhiều hàm chuyển đổi được cần đến.
Các kiểu dữ liệu của Verilog đơn giản hơn, dễ sử dụng và rất phù hợp với mô hình cấu trúc phần cứng. Không giống như VHDL, trong Verilog người sử dụng không định nghĩa kiểu dữ liệu.
- Tính sử dụng lại thiết kế:
Trong VHDL các thủ tục và các hàm có thể được đặt trong một gói, chúng sẵn sàng đối với bất kỳ thiết kế nào.
Không có khái niệm các gói trong Verilog. Các hàm và thủ tục được dùng trong một mô hình phải được định nghĩa trong phát biểu module.
- Cấu trúc mức cao
VHDL có nhiều cấu trúc và tính chất hơn cho mô hình mức cao so với Verilog. Các kiểu dữ liều trừu tượng có thể được dùng cùng với các phát biểu sau:
- Các phát biểu package nhằm dùng lại mô hình
- Các phát biểu configuration nhằm cấu hình lại cấu trúc thiết kế. - Các phát biểu generate nhằm tạo bản sao cấu trúc.
- Các phát biểu generic cho mô hình tổng quát.
Verilog ngoài khả năng thông số hoá các mô hình bằng các thông số quá tải, không có tương đương nào đối với các phát biểu mô hình mức cao.
- Cấu trúc mức thấp
VHDL chỉ có các toán tử logic 2 đầu vào được xây dựng sẵn: NOT, AND, OR…. Việc định thời phải được chỉ ra riêng biệt bằng cách dùng mệnh đề after.
Verilog ý định ban đầu phát triển cùng với việc mô hình mức cổng, do vậy ngôn ngữ này có các cấu trúc rất tốt cho mô hình ở mức thấp.
Với một số điểm so sánh trên việc lựa chọn ngôn ngữ nào là do sở thích, công cụ của mỗi người. Cách viết chương trình và kinh nghiệm là vấn đề quan trọng hơn so với tính chất ngôn ngữ. VHDL là ngôn ngữ súc tích nhưng dài dòng, Verilog giống ngôn ngữ C hơn vì lý do này những người lập trình C thích Verilog hơn VHDL. Bất kể ngôn ngữ mô tả phần cứng nào khi được dùng điều quan trọng là ta nghĩ đến mục đích của phần cứng.