Tải bản đầy đủ (.pdf) (28 trang)

NGÔN NGỮ LẬP TRÌNH VHDL,PHẦN MỀM QUARTUS VÀ KIT DE2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.43 MB, 28 trang )

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
Trang 29
HVTH: Hà Minh Tân
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à chia sẻ thiết kế. Và nó cũng cho phép dùng lại các phần đã có sẵn.
2.1.4 Ngôn ngữ VHDL cho thiết kế logic
Ngôn ngữ phần cứng:

HDL được dùng để mô tả phần cứng cho mục đích mô phỏng, tạo mẫu,

kiểm tra, thiết kế và lập tài liệu. Ngôn ngữ này cung cấp một quy ước và định dạng
ngắn gọn để biểu diễn phân cấp các chi tiết chức năng và nối dây cho hệ thống số,
các ký hiệu thay cho sơ đồ mạch số và biểu diễn trừu tượng. Phần mềm HDL
thường chứa chươ
ng trình mô phỏng (kiểm tra thiết kế) và tổng hợp phần cứng
(thiết kế phần cứng tự động).
Ngôn ngữ mô tả hành vi:

Instruction Set Processor Specification (ISPS) là HDL mô tả hành vi các hệ
thống số. Ngôn ngữ này được C. G. Bell giới thiệu vào năm 1971. ISPS được thiết
kế cho mô phong phần cứng, tự động thiết kế, phát sinh tự động phần mềm. Ngôn
ngữ này là ngôn ngữ lập trình giống phần mềm nhưng nó bao gồm cấu trúc chuyển
động đặc biệt của dữ liệu các thanh ghi và các bus. Kiến trúc giống như CPU được
mô tả dể dàng và hiệu quả trong ISPS. ISPS thích hợp nh
ất cho việc biểu diễn đầu
ra của giai đoạn thiết kế hành vi của một quá trình thiết kế.
Ngôn ngữ mô tả dòng dữ liệu:

Ngôn ngữ lập trình phần cứng AHPL (A Hardware Programming
Language). Ngôn ngữ này biểu diễn một tập hợp ký hiệu để trình bày phần cứng
trong môi trường lý thuyết. Việc sử dụng tập hợp ký hiệu ban đầu này dẫn đến sự
phát triển ngôn ngữ phần cứng AHPL.
Ngôn ngữ mô tả netlist:

Cách khác để mô tả hệ thống số này là netlist để mô tả nối kết các phần
cứng của nó. Tập con của ngôn ngữ mô tả phần cứng Verilog có thể được dùng
cho mục đích này. Có hai cách mô tả phần cứng: sơ đồ logic và ngôn ngữ HDL.
Mỗi mô tả thích hợp với mỗi công cụ CAD tại một giai đoạn thiết kế khác nhau.
Mô tả ISPS có thông tin về hành vi mức độ cao và có thể dùng như công cụ mẫ
u

Trang 30
HVTH: Hà Minh Tân
cho người thiết kế phần cừng. Mức mô tả này phù hợp với người quản lý muốn
biết về chức năng của sản phẩm cuối cùng trước khi nó được thiết kế. Mô tả
AHDL chứa nhiều thông tin kiến trúc và thích hợp hơn đối với việc mô phỏng
mạch cho thiết kế và cấu trúc. Người thiết kế phần cứng có thể sử dụng mức mô
phỏng phần cứng này để kiểm tra thiết kế của bộ điều khiển và đường dẫn dữ liệu.
Mô tả Verilog khác với mô tả ISPS và AHPL trong đó chứa các thông tin mà công
cụ CAD – Computer Aided Design có thể sử dụng để phân tích chi tiết hơn hoặc
chế tạo mạch điện. Mức mô phỏng này thích hợp cho việc mô phỏng các phần tử
mẫu đã định nghĩa trước hoặc có thể là một netlist được tạo ra bởi công cụ CAD
sau giai đoạn phát sinh tự động.
Mô tả phần cứng:

Ngôn ngữ mô tả phần cứng là các công cụ tạo mẫu để tạo ra một mẫu phần
cứng, một trong những ứng dụng của tạo mẫu là để mô phỏng. Mô phỏng là sử
dụng một mẫu của hợp phần thực để phân tích cách ứng xử của nó dưới các điều
kiện và kích thích cho trước. Trong môi trường thiết kế, mô tả phần cứng sử dụng
các mẫu của hợp phần và các định nghĩa lấy trong thư viện mô phỏng để tạo ra
một mẫu phần cứng mô phỏng. Mô phỏng được dùng để kiểm tra kết quả của bất
kỳ giai đoạn thiết kế nào. Bộ mô phỏng cần tập hợp dữ liệu mô phỏng hay kích
thích để mô phỏng mạch. Chương trình mô phỏng sử dụng dữ liệu này mô tả đầ
u
vào tại thời điểm cụ thể và phát ra các đáp ứng cho mạch. Kết quả của chương
trình mô phỏng được mô tả bằng dạng sóng, giản đồ thời gian, hoặc danh sách các
giá trị theo thời gian.
Mô phỏng hệ thống được phân thành hai loại:
• Mô phỏng tại thời điểm cố định (Obvious): mổi thành phần được đánh giá
tại thời điểm cố định.
• Mô phỏng sự kiện (Event driven): mổi thành phần được đánh giá khi một

trong số đầu vào của nó thay đổi.
Kiểm tra kết quả:

Trang 31
HVTH: Hà Minh Tân
Sau khi mô phỏng và tổng hợp, kiểm tra là mối quan tâm của người thiết kế
hệ thống số. Các vấn đề liên quan đến việc kiểm tra bao gồm: fault collapsing, test
generation, fault simulation test compaction, fault dictionaries. Mặc dù ít được
quan tâm hơn so với mô phỏng và tổng hợp, nhưng người ta thực hiện nhiều cách
kiểm tra dựa vào HDLs. HDLs cung cấp một dạng netlist cho mục đích phát ra
kiểm tra hay mô phỏng lỗi. Các testbench để đánh giá các lỗi có thể được lập trình
trong ngôn ngữ
mô tả phần cứng. Một tập con dạng sóng của ngôn ngữ mô tả phần
cứng có thể dùng để biểu diễn dữ liệu kiểm tra bằng thiết bị kiểm tra hoặc tạo kích
thích để mô phỏng lỗi.
2.1.5 Các phần mềm mô phỏng cho ngôn ngữ VHDL
Hiện nay có rất nhiều hãng đầu tư nghiên cứu và sử dụng ngôn ngữ VHDL
để thiết kế các mạch lập trình được theo nhiều tiêu chuẩn công ngh
ệ khác nhau:
Exemplar logic’s leonardo:
Là một công cụ tổng hợp, tối ưu hóa và phân tích rất linh hoạt mềm dẻo.
Nó được sử dụng để thiết kế các vi mạch ASICs, FPGAs, CPLDs. Người thiết kế
có thể thực hiện nhiều thiết kế trên cùng một bản thiết kế, lưu giữ và điều chỉnh
bằng tay các cấp thiết kế, sử dụng ngôn ngữ mô tả phần cứng để cài đặt thi
ết kế.
Leonardo cung cấp một môi trường thiết kế top – down bắt đầu từ VHDL hay
Verilog có khả năng thông báo kết quả bằng việc sử dụng tập tin hiện thời SDF và
thư viện mô phỏng Vital. Leonardo được tính hợp đầy đủ mô trường mô phỏng
các kiểu công nghệ. Công cụ tổng hợp Exemplar giải quyết các mức tổng hợp tới
cổng logic, tối ưu tốc độ, diện tích, ánh xạ công ngh

ệ.
Synopsys FPGA express:
Có chức năng chuyển ngôn ngữ VHDL thành các khối logic, ánh xạ các cấu
trúc logic vào thư viện công nghệ FPGA.
Synplify:
Tổng hợp mạch dùng ngôn ngữ VHDL và Verilog dễ sử dụng, tốc độ tổng
hợp rất nhanh so với các công cụ tổng hợp khác. Ngõ ra là sơ đồ liên kết mức cổng
cung cấp cho các công cụ Place và Route FPGA sử dụng.
Trang 32
HVTH: Hà Minh Tân
Cypress Semiconductor Warp:
Là chương trình dịch cho thiết kế CPLDs và FPGAs, Warp nhận đầu vào là
tập tin VHDL. Nó sẽ tổng hợp và tối ưu thiết kế để tạo ra phần cứng. Warp xuất ra
sơ đồ liên kết QDIF cho place và route. Công nghệ SPDE trong Warp thực hiện tối
ưu hóa sắp xếp và đi dây cho vi mạch FPGAs Pasis 80
Mentor Graphic:
Là hãng phần mềm lớn chuyên cung cấp các công cụ tổng hợp phức tạp cho
các loại thiết bị CPLDs và FPGAs.
Max + Plus II:
Là phần mềm đa ch
ức năng thực hiện thiết kế tổng hợp cho một số loại
CPLDs và FPGAs của hãng Altera. Nó hỗ trợ biên dịch, mô phỏng, phân tích định
thời và tổng hợp mạch.
Quartus II:
Là phần mềm đa chức năng dùng trong thiết kế logic của hãng Altera. Hỗ
trợ dạng file text và file graphic, có khả năng biên dịch, phân tích thời gian tổ hợp
mạch và kiểm tra trong thiết kế logic.
2.2 Thực thể thiết kế củ
a VHDL
2.2.1 Đặc điểm của VHDL

Đặc tính tổng quát:
VHDL có thể sử dụng để lập tài liệu thiết kế, thiết kế
tốc độ cao mô phỏng tổng hợp và kiểm tra phần cứng. VHDL mô tả phần cứng từ
mức hệ thống đến mức cổng, hỗ trợ tính đồng thời nghĩa là các thành phần nhỏ
đến lớn hoạt động tại một thời điểm.
Hỗ trợ phân cấp thiết kế
: Đây là đặc tính thiết yếu của ngôn ngữ phần cứng
đa cấp. Thiết kế chứa một mô tả giao diện và một số phần độc lập để mô tả hoạt
động, hoạt động của hệ thống có thể mô tả dựa trên chức năng hoặc dựa trên cấu
trúc của những thành phần nhỏ.
Có thư viện hỗ trợ:
Ngôn ngữ cung cấp cơ chế để truy cập tới nhiều thư
viện khác nhau. Thư viện không những chứa đặc tả giao diện của thiết kế mà còn
Trang 33
HVTH: Hà Minh Tân
chứa một số đặc tả hoạt động của hệ thống. Các đặc tả và các mẩu có thể dựa vào
thư viện sau khi được dịch bởi chương trình.
Có lệnh tuần tự:
Khi người thiết kế phân chia hệ thống thành những thành
phần hay những phần con, tiếp đó người thiết kế có thể mô tả chi tiết hoạt động
bên trong bàng những cấu trúc ngôn ngữ lập trình tuần tự như các lệnh If – Then –
Else, Case, Loop… các lệnh tuần tự cung cấp phương pháp đơn giản để tạo ra các
thành phần phần cứng dựa trên chức năng của chúng.
Thiết kế tương thích chung:
Thiết kế tổng quát, ngôn ngữ cho phép người
thiết kế đặt cấu hình mô tả hợp phần có thông số chung trong thiết kế. Mô tả tương
thích chung có thể thay đổi kích thước, đặc tính vật lý, định thời, đặc tính tải, và
môi trường hoạt động của thiết kế.
Khai báo kiểu và cách dùng: VHDL cho phép mô tả các kiểu Bit, Boolean,
Interger, Float, kiểu liệt kê, kiểu mảng, kiểu bản ghi. VHDL hỗ trợ các kiểu do

người dùng định nghĩa, cho phép định nghĩa lại các toán tử của ngôn ngữ.
Sử dụng các chương trình con:
VHDL cho phép định nghĩa, sử dụng các
hàm, thủ tục. Chương trình con có thể sử dụng để biến đổi kiểu, định nghĩa đơn vị
luận lý, định nghĩa loại toán tử, toán tử mới và các ứng dụng khác trong ngôn ngữ
lập trình.
Điều khiển định thời: VHDL cho phép định thời ở tất cả các cấp, đặt giá trị
của tín hiệu, thời gian delay, định nghĩa tín hiệu đồng bộ, độ rộng xung và ràng
buột thời gian khác.
Đặc tả cấu trúc:
. Ngôn ngữ có các cấu trúc để đặc tả phân cấp cấu trúc của
phần cứng ở tất cả các cấp.
2.2.2 Đặt điểm thiết kế
Các thực thể thiết kế được xây dựng trong VHDL sử dụng 5 kiểu đơn vị
thiết kế khác nhau. Khai báo entity (thực thể), khai báo package (gói) và khai báo
configuration (cấu hình) là các đơn vị thiết kế chủ yếu và thấy được bên trong
một library (thư
viện). Một library là một miền lưu trữ của môi trường máy chủ
cho các đơn vị thiết kế biên dịch.
Trang 34
HVTH: Hà Minh Tân




Hình 2.1: Các đơn vị thiết kế của VHDL
Khai báo architecture (kiến trúc) và package body (thân của gói) là các
đơn vị thiết kế thứ cấp do chúng không thấy được bên trong một library
Khai báo thực thể trong VHDL phần đị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. Thực chất của 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. Ta có thể có tất cả các thông tin để kết
nối mạch vào mạch khác hoặc thiết kế tác nhân đầu vào phục vụ cho mục đích thử
nghiệm.
Khai báo kiến trúc: Mỗi 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 tạo ra hơn một kiến trúc cho một thực
thể. Phần khai báo kiến trúc có thể bao gồm các khai báo về 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.
Tên của kiến trúc là nhãn được đặt tùy theo người sử dụng. 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 thuộc tính (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 thuộc tính và mô tả theo mô hình cấu trúc.
Trang 35
HVTH: Hà Minh Tân
Khai báo cấu hình: Khai báo configuration là đơn vị thiết kế chủ yếu được
sử dụng để kết nối phát biểu entity với thân architecture riêng biệt, nhằm tạo
thành các thành phần của thiết kế. Ta có thể tạo ra nhiều hơn một khai báo
configuration cho một entity, mỗi khai báo xác định một tập kết nối khác nhau
cho mỗi thành phần.
Khai báo gói: Khai báo package là một kho chứa để lưu giữ các khai báo
thườ
ng sử dụng, có thể được truy cập tổng thể ngang qua nhiểu đơn vị thiết kế.
Khai báo package có một package body kết hợp nếu các chương trình con (hàm)
hoặc thủ tục được khai báo.
Thân gói: Package body luôn luôn được kết hợp với một khai báo package
có cùng tên và chứa thân chương trình con của các hàm và thủ tục được khai báo
trong khai báo package.
2.2.3 Cấu trúc chương trình
Đơn vị thiết kế thể hiện các đơn vị thiết kế khác, đến lượt đơn vị thiết kế
khác này có thể thể hiện những đơn vị thiết kế khác nữa theo kiểu hệ thống có thể

bậc. Cấu trúc chương trình có thứ bậc này sẽ phỏng theo cấu trúc phần cứng được
suy ra khi cấu trúc phần cứng này được mô hình.
Các phát biểu được viết bên trong một đơn vị thiết kế sẽ thuộc một trong 3
loại : khai báo ( declaration), đồng thời (concurrent) và tuần tự (sequential).
2.2.3.1 Phát bi
ểu khai báo
Trong VHDL, thành phần của một đơn vị thiết kế mức thấp phải được khai
báo trước khi thành phần này được thể hiện. Một chương trình con trong VHDL là
một procedure (thủ tục) hoặc một function (hàm). Phát biểu khai báo được đặt
trước mệnh đề begin trong phát biểu architecture, block (khối), process (quá
trình), procedure hoặc function.

Trang 36
HVTH: Hà Minh Tân

Hình 2.2: Các khai báo chương trình con trong đơn vị thiết kế
2.2.3.2 Phát biểu đồng thời
Đây là phát biểu được thực thi song song, cùng một thời điểm. Các phát
biểu này hoạt động độc lập với tất cả phát biểu đồng thời khác. Khi mô tả cấu trúc
phần cứng, các phát biểu đồng thời biệu diễn những phần độc lập của mạch được
mô hình. Mỗi phát biểu đồng thờ
i được thực thi không đồng bộ với tất cả phát biểu
đồng thời khác.
Block và process là các phát biểu đồng thời. Các phép gán tín hiệu (signal
assignment) và lối gọi procedure là đồng thời sao cho chúng không hiện diện bên
trong phát biễu process. Tương tự, lại gọi funtion là đồng thời miễn là function
được gọi từ bên trong biểu thức của phép gán tín hiệu đồng thời.
2.2.3.3 Phát biểu tuần tự
Trang 37
HVTH: Hà Minh Tân

Các phát biểu tuần tự là phát biểu được thực thi phụ thuộc vào luồng thủ
tục (procedural flow) của các cầu trúc bao quanh chúng.


Hình 2.3: Các phát biểu quá trình trong đơn vị thiết kế và các lời gọi
chương trình con trong đơn vị thiết kế hoặc thư viện

2.3 Phần mềm Quartus II và kit DE2 của Altera
2.3.1 Các thành phần cơ bản của Quartus II
New project wizard : tạo project mới
Assignments :
• Devices: chọn họ và linh kiện phần cứng
Trang 38
HVTH: Hà Minh Tân
• Pins: gán chân để lập trình linh kiện
• Timing setting : thiết lập chế độ thời gian trong mô tả dụng sóng
Compiler tool: công cụ biên dịch chương trình
Simulation tool : công cụ mô phỏng
Timing Analyzer tool : phân tích thời gian
RTL viewer : sau khi biên dịch chương trình, Quartus tạo ra mô hình phần cứng
dưới dạng biểu đồ sẽ được nạp vào linh kiện lập trình.
Programmer : nạp chương trình vào linh kiện
Compiler report : bảng báo cáo kết quả biên dịch chương trình
Simulation report : bảng báo cáo kết quả mô phỏng ch
ương trình
Mega Wizard plug-in manager : tạo hoặc thay đổi các tập tin thiết kế có sẳn của
megafunctions theo nhu cầu sử dụng.
2.3.2 Thiết kế và biên dịch, mô phỏng chương trình
• Khai báo project:


Hình 2.4: Tạo Project mới
Trang 39
HVTH: Hà Minh Tân

Hình 2.5: Khai báo thư mục chưa file

Hình 2.6: Thêm vào những file cần thiết
Trang 40
HVTH: Hà Minh Tân

Hình 2.7: Chọn họ linh kiện cho thiết kế


Hình 2.8: Hoàn tất quá trình tạo project.
Trang 41
HVTH: Hà Minh Tân

• Cấu hình cho linh kiện: dùng Assign Pins trong Assignments để gán các cổng
vào và ra của thiết kế cho các chân linh kiện lập trình. Sau khi soạn thảo chương
trình, để thực hiện mô phỏng mà lập trình cho linh kiện, chương trình cần được
biên dịch. Quá trình biên dịch gồm các giai đoạn phân tích, tổng hợp, kết nối, trình
bày và sắp xếp, phân tích thời gian và tạo tập tin dữ liệu cấu hình cho chip.Chọn
biểu tượng Start Compilation trên thanh công cụ standard.
• Mô phỏng : gồm có 2 cách mô phỏng timing và funtional


Hình 2.9: Tạo mới file mô phỏng

Trang 42
HVTH: Hà Minh Tân


Hình 2.10: Chọn file mô phỏng


Hình 2.11: Lưu file với tên trùng với tên project

Trang 43
HVTH: Hà Minh Tân

Hình 2.12: Thêm vào các node


Hình 2.13: Hiện danh sách các node trong thiết kế

Trang 44
HVTH: Hà Minh Tân

Hình 2.14: Đưa các node vào mô phỏng


Hình 2.15: Chọn cài đặt

Trang 45
HVTH: Hà Minh Tân

Hình 2.16: Lựa chọn cách mô phỏng


Hình 2.17: Tạo file netlist cho quá trình mô phỏng
Trang 46

HVTH: Hà Minh Tân

Hình 2.18: Bắt đầu mô phỏng

Lập trình cho linh kiện: Các tập tin cần thiết được tạo ra sau khi chương
trình biên dịch thành công. Linh kiện thuộc họ Cyclone II nên sử dụng tập tin lập
trình có phần mở rộng .pof (programmer object file) đối với lập trình JTAG và tập
tin có phần mở rộng .sof (Sram object file) đối với lập trình AS. Để khởi động quá
trình lập trình cho linh kiện, chọn Programmer trong Application. Cửa sổ cấu hình
xuất hiện, người dùng cầ
n xác định phần cứng dùng để lập trình cho thiết bị, tập
tin lập trình và thiết bị cần được lập trình. Chọn Program/Configure, nhấn Start
Programming để nạp vào linh kiện.

Trang 47
HVTH: Hà Minh Tân

Hình 2.19: Nạp chương trình xuống kit DE2

2.3.3. Giới thiệu kit DE2 của Altera
Bộ công cụ DE2 được thiết kế để nhằm áp dụng nhu cầu giảng dạy và học
môn thiết kế logic với các công cụ triển khai và các thiết bị logic lập trình được.
Bo mạch DE2 là bo mạch thử nghiệm hoạt động riêng. Khi được dùng với phần
mềm Quartus II, nó sẽ cung cấp nền tảng cao hơn cho việc học thiết kế logic s
ố sử
dụng các công cụ theo tiêu chuẩn công nghệ và linh kiện logic lập trình được
(programmable logic device, PLD).
2.3.4 Các thành phần cơ bản trong DE2
Bộ DE2 gồm các thành phần cần thiết để sử dụng và kết nối với máy tính:
Trang 48

HVTH: Hà Minh Tân

Hình 2.20: Bo DE2 và các linh kiện đi kèm

+ Board DE2
+ Cáp usb dùng cho việc lập trình và điều khiển
+ Đĩa CD chứa dữ liệu của DE2 và những tài liệu phụ (hưởng dẫn sử dụng, thanh
điều khiển, thiết kế tham khảo, datasheet của thiết bị, hướng dẫn, các bài tập thí
nghiệm)
+ DE2 được bảo vệ bởi tấm mica trong suốt và đặt trên 6 chân cách điện
+ Bộ nguồn 9 V
DC
Vi xử lý Cylone II 2C35
• Thiết bị truyền định dạng nối tiếp- EPCS16
• USB Blaster dùng cho mục đích lập trình và điều khiển API (hỗ trợ 2 kiểu lập
trình JTAG và AS)
• 512-Kbyte SRAM

×