
Trang 24
HVTH: Hà Minh Tân
CHƯƠNG 2 :
NGÔN NGỮ LẬP TRÌNH VHDL,
PHẦN MỀM QUARTUS VÀ KIT DE2
2.1 Giới thiệu môi trường thiết kế phần cứng và ngôn ngữ VHDL:
2.1.1 Môi trường thiết kế phần cứng ( Hardware Design Environments)
Để đáp ứng sự phát triển kỹ thuật số, các công cụ thết kế được trợ giúp bởi
máy tính (CAD – computer Aided Design) được đưa vào quá trình thiết kế phần
cứng. Hỗ trợ mạnh mẽ cho phương pháp thiết kế này là những ngôn ngữ mô tả
phần cứng (HDLs – Hardware Description Languages). Khái niệm HDLs được
ứng dụng rộng rãi trong thiết kế hệ thống số trong thời gian gần đây, dựa vào
HDLs, công cụ hỗ trợ cho thiết kế hệ thống số đã phát triển và được sử dụng nhiều
trong thiết kế phần cứng.
Quá trình thiết kế hệ thống số:
Ý tưởng thiết kế:
Trước tiên người thiết kế phần cứng phải có ý tưởng thiết kế. Sau đó, phát
triển ý tưởng thiết kế thành sơ đồ khối, lưu đồ, ngôn ngữ tự nhiên. Người thiết kế
chỉ ra toàn bộ chức năng từ đầu vào đến đầu ra mà không cần chi tiết phần cứng
hoặc kiến trúc của hệ thống dưới thiết kế.
Thiết kế đường dữ liệu:
Trong giai đoạn này người thiết kế chỉ rõ thanh ghi và các đơn vị logic.
Những thành phần này được kết nối bằng các bus một hay hai chiều rồi điều khiển
hoạt động dữ liệu giữa các thanh ghi và các đơn vị logic thông qua các bus.

Trang 25
HVTH: Hà Minh Tân
Thiết kế luận lý:
Thiết kế luận lý là bước tiếp theo trong quá trình thiết kế và liên quan đến
ứng dụng các cổng và các mạch lật cơ bản cho việc cài đặt các thanh ghi dữ liệu,
các bus, các đơn vị logic và phần cứng điền khiển chúng. Kết quả của giai đoạn
này là một danh sách kết nối (netlist) của cổng và mạch lật. Công nghệ chế tạo các
cổng và các chi tiết kỹ thuật của các mạch lật không có trong netlist này. Sau đó
chuyển các netlist này thành sơ đồ hay danh sách transistor. Điều này liên quan
đến sự thay thế cổng và mạch lật bằng transistor hay các phần tử thư viện tương
ứng nhưng phải xem xét chế độ tải và định thời.
Thiết kế vật lý:
Tối ưu luận lý: dùng để loại bỏ các biến dư thừa trong mạch.
Ánh xạ công nghệ đã tối thiểu số khối logic, diện tích.
Placement dùng để bố trí các khối để có tốc độ nhanh nhất.
Routing kết nối các khối logic thành hệ thống số hoàn chỉnh
Chế tạo:
Sử dụng danh sách các transistor và đặc tả kỹ thuật để đốt cháy cầu chì hay
nạp dữ liệu vào SRAM của thiết bị có thể lập trình hoặc tạo mặt nạ cho việc sản
xuất mạch tích hợp.
Nhiều nhà sản xuất đã nghiên cứu các sản phẩm lập trình được như: FPGAs
(Field Programmable Gate Arrays), CPLDs (Complex Programmable Logic
Devices), vi mạch Hard Wire, Serial PROMs.
Vi mạch FPGAs gồm một ma trận các đơn vị logic. Những liên kết kim loại
giữu các khối logic có thể được nối một cách tùy ý bằng các chuyển mạch có thể
lập trình được để chế tạo thành một mạch như yêu cầu. FPGAs chứa một số lượng
lớn các cổng logic, các thanh ghi, các mạch vào ra tốt độ cao.
Vi mạch CPLDs chứa nhiều khối chức năng và khối chức năng ra, liên kết
với nhau thông qua ma trận chuyển mạch. CPLDs là hệ thống tích hợp nhỏ từ 800
đến 10000 cổng nhưng có tốt độ cao, thiết kế đơn giản.

Trang 26
HVTH: Hà Minh Tân
Vi mạch Hard Wire lập trình bằng mặt nạ của SRAM – dựa trên nền tảng
của FPGAs. Các cổng của Hard Wire tương tự như FPGAs nhưng các phần tử
logic được liên kết bằng kim loại cố định nên kích thước nhỏ và giá thành thấp.
Serial PROMs là vi mạch nhớ có thể lập trình được một lần được sử dụng
để nạp dữ liệu cho SRAM FPGAs.
2.1.2 Các ngôn ngữ mô tả phần cứng:
Hiện nay có rất nhiều ngôn ngữ mô tả phần cứng được thiết kế cho mục
đích mô phỏng, thiết kế, kiểm tra:
AHPL là một HDL mô tả dòng dữ liệu. Ngôn ngữ này sử dụng tín hiệu
đồng hồ để đồng bộ các phép gán dữ liệu cho các thanh ghi và các mạch lật nhưng
không hổ trợ các mạch không đồng bộ. Kiểu dữ liệu trong AHPL bị cố định và
hạn chế ở các kiểu bit, vector bit. Các thủ tục hay hàm chỉ thực hiện trong các đơn
vị luận lý tổ hợp.
CDL (Computer Design Language) là ngôn ngữ mô tả dòng dữ liệu phát
triển trong trường học, không hỗ trợ phân cách thiết kế.
CONLAN (Consensus Language) cho phép mô tả phân cách nhưng bị giới
hạn sử dụng tham khảo bên ngoài.
IDL (Interactive Design Language) là ngôn ngữ sử dụng trong hãng IBM
được thiết kế để tự động tạo ra các cấu trúc PLA. Nhưng nó không bao trùm mô tả
mạch tổng quát.
ISPS (Instruction Set Proccessor Specification) là ngôn ngữ mô tả hành vi
cấp cao được thiết kế để tạo ra môi trường thiết kế cho phần mềm dựa trên phần
cứng. Điều khiển định thời trong ISPS bị hạn chế.
TEGAS (Test Generation And Simulation) là hệ thống để tạo ra tín hiệu
kiểm tra và mô phỏng mạch số.
TI – HDL (Texas Instrument Hardware Description Language) là ngôn ngữ
đa cấp cho thiết kế và mô phỏng phần cứng. Ngôn ngữ này cố định kiểu dữ liệu và
không cho phép các kiểu dữ liệu do người định nghĩa.

Trang 27
HVTH: Hà Minh Tân
VERILOG là ngôn ngữ hỗ trợ phân cấp thiết kế xuất hiện sau VHDL, dễ sử
dụng, được tiêu chuẩn hóa quốc tế.
VHDL (Very Hight Speed Intergrated Circuits Hardware Description
Language) là ngôn ngữ mô tả phần cứng được công nhận tiêu chuẩn IEEE năm
1987, có đầy đủ sức mạnh cho việc mô tả và thiết kế hệ thống số ngày nay. VHDL
hỗ trợ mô tả phân cấp từ hệ thống xuống tận cổng logic hay kiểu mạch, hỗ trợ đặc
điểm về thời gian, cung cấp các cấu trúc hết sức tổng quát.
2.1.3 Ngôn ngữ lập trình VHDL
VHDL là ngôn ngữ mô tả phần cứng dùng cho các mạch tích hợp tốc độ rất
cao, đượ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 như là một
ngôn ngữ mô tả phần cứng tiêu chuẩn và thống nhất cho phép 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ữ VHDL được ba công ty Intermetics, IBM và Texas
Instruments bắt đầu nghiên cứu phát triển vào tháng 7 năm 1983. Phiên bản ưu
tiên được công bố vào tháng 8-1985. Sau đó VHDL được đề xuất để tổ chức IEEE
xem xét thành một tiêu chuẩn chung. 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 kỹ, lưỡng tài liệu đó. Với một ngôn ngữ mô tả 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ó hệ đượ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.
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ế, một bộ mô tả 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 chỉ sử dụng một

Trang 28
HVTH: Hà Minh Tân
ngôn ngữ duy nhất. Và khi so sánh với các ngôn ngữ mô phỏng phần cứng khác ta
thấy VHDL có một số ưu điểm hơn hẳn các ngôn ngữ khác:
• Thứ nhất 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 được sự 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.
• Thứ hai là 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 ví dụ 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 sẳn có. VHDL cũng hỗ trợ cho
nhiều loại công cụ 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 ngẫu nhiên.
• Thứ ba là tính độ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 tuy thuộc công nghệ chế
tạo phần cứng mới ra đời nó có thể được áp dụng cho các hệ thống đã thiết kế.
• Thứ tư là 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ố 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ả chi tiết.
• Thứ năm là 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ô tả đá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 tiêu 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 lớn (trong đó các hệ con được thiết kế độc lập).
• Thứ sáu là 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ể được sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm

