b Các công cụ mô phỏng chấp nhận toàn bộ khái niệm của Verilog c Các công cụ tổng hợp công chỉ chấp nhận một phần các khái niệm của Verilog d Chỉ tập trung nghiên cứu một phần Sử dụng
Trang 1LỜI NÓI ĐẦU
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ạchtruyề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
Mặt khác 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ốnghoàn chỉnh dễ hiểu và thống nhất Chúng ta đã làm việc với một số chương trìnhphần mềm hỗ trợ cho việc thực hiện mô tả mạch hay hiểu được cách thiết kếmạch Ví dụ: Proteus, HDL,VHDL, Verilog…Trong phần này chúng ta sử dụnghai ngôn ngữ phần cứng chuẩn công nghiệp là VHDL và Verilog Cả hai ngôn ngữnày đều được sử dụng rộng rãi và đã được IEE chấp nhận
Dưới đây là bài viết : “Tổng quan về HDL, VHDL, Verilog và thiết kế bộ đếmđến 8 dùng Verilog” Bài viết này sẽ giúp chúng ta hiểu một cách tổng quan nhất
về HDL, VHDL, Verilog và biết cách thiết kế bộ đếm đến 8 sử dụng Verilog,thông qua phần mềm Quatus II
Trang 2PHẦN I: TỔNG QUAN VỀ HDL VERILOG 5
1.1.GIỚI THIỆU VỀ HDL VÀ VERILOG : 5
1.1.1.Lịch sử phát triển HDL: 5
1.1.2.Giới thiệu về HDLs: 6
1.1.3.Verilog HDL: 6
1.2.N GÔN NGỮ ĐẶC TẢ PHẦN CỨNG (HDL): 7
1.3.P HƯƠNG PHÁP LUẬN THIẾT KẾ HDL: 8
1.3.1.Design spelification ( thiết kế ý niệm): 9
1.3.2.Thiết kế phân hoạch ( design partition): 10
1.3.3.Design Entry: 11
1.3.4.Mô phỏng và kiểm tra chức năng ( Simulation and function verification) 12
1.3.5.Thiết kế tích hợp và kiểm tra ( design integration and verification) 12
1.3.6.Presynthesis Sign – off: 12
1.3.7.Tổng hợp mức cổng và ánh xạ công nghệ (Gate – level synthesis and technology mapping) 13
1.3.8.Thiết kế sau tổng hợp ( Post – synthesis design validation): 13
1.3.9 Kiểm tra thời gian sau tổng hợp ( Post – synthesis timing verification): 15
1.3.10.Kiểm tra sản phẩm và mô phỏng lỗi ( test generation and fault simulation) 15
1.3.11.Sắp đặt và nối dây ( placement ang routing) 15
1.3.12 Kiểm tra vật lý và điện ( Physical and electrical design rule checks) 16
1.3.13.Loại bỏ ký sinh ( Parasitic extraction) 17
1.3.14.Design sign – off: 17
1.4.M Ô HÌNH CẤU TRÚC VÀ MÔ HÌNH HÀNH VI TRONG HDL S : 17
1.5.N HỮNG NGUY HIỂM TRONG THIẾT KẾ V ERILOG : 18
1.6.M Ô HÌNH CẤU TRÚC CHO MẠCH LUẬN LÝ TỔ HỢP : 19
1.6.1.Mô hình mạch tổ hợp 19
1.6.2.Mô hình cấu trúc mạch tổ hợp 19
1.6.3.Verilog primitives 20
1.6.4.Mô hình cấu trúc trong Verilog 21
1.6.5.Module ports 22
1.6.6.Quy tắt trong Verilog 22
1.6.7.Thiết kế từ trên xuống (top-down) 23
1.6.8.Binary full adder 23
Trang 31.6.9.Thiết kế phân cấp và tổ chức mã nguồn 24
1.6.10.Mạch cộng 16-bit ripple carry 24
1.6.11.Cây phân cấp mạch cộng 16-bit ripple carry 25
1.6.12.Hiện thực mạch cộng 16-bit ripple carry 25
1.6.13.Vectors trong Verilog 25
1.7.M Ô PHỎNG LUẬN LÝ , KIỂM CHỨNG THIẾT KẾ VÀ PHƯƠNG PHÁP LUẬN KIỂM TRA 26
1.7.1.Các giá trị luận lý trong Verilog 26
1.7.2.Phương pháp luận kiểm tra 26
1.8.T HỜI GIAN TRỄ TRUYỀN LAN 27
1.8.1.Thời gian trễ truyền lan 27
1.8.2.Các loại trễ lan truyền 28
1.9.M Ô HÌNH BẢNG SỰ THẬT CHO MẠCH LUẬN LÝ TỔ HỢP VÀ TUẦN TỰ VỚI VERILOG 29
1.9.1.Bảng sự thật trong verilog 29
PHẦN II: TỔNG QUAN VỀ VHDL 31
2.1 G IỚI THIỆU VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL 31
2.2 C ẤU TRÚC MỘT MÔ HÌNH HỆ THỐNG MÔ TẢ BẰNG VHDL 33
2.2.1 Thực thế (entity) của mô hình 33
2.2.2.cấu trúc (Arrchitecture) 35
2.2.3 Cấu hình 37
2.2.4 Môi trường kiểm tra 37
2.3 M Ô TẢ HÀNH VI 38
2.4 MÔ TẢ LUỒNG DỮ LIỆU 40
2.5.C HƯƠNG TRÌNH CON VÀ GÓI 41
2.5.1 Thủ tục 41
2.5.2 hàm 44
2.5.3 gói 44
2.6.Đ ỐI TƯƠNG DỮ LIỆU , KIỂU DỮ LIỆU 47
2.6.1 Đối tượng dữ liệu 47
2.6.2 Hằng 47
2.6.3 Biến 47
2.6.4 Tín hiệu 48
2.7 K IỂU DỮ LIỆU 49
2.7.1 Các kiểu dữ liệu tiền định nghĩa 49
Trang 42.7.2 Các kiểu dữ liệu vô hướng 50
2.7.3.Kiểu liệt kê 50
2.7.3.1.Kiểu số nguyên 51
2.7.3.3.Kiểu số thực 51
2.7.3.4.Kiểu giá trị đại lượng vật lý 51
2.7.4 Dữ liệu phức hợp 52
2.8 T OÁN TỬ VÀ BIỂU THỨC 52
2.8.1 Toán logic 52
2.8.2.Các phép toán quan hệ 53
2.8.3 Các phép toán dịch 53
2.8.4 Các phép toán cộng trừ và hợp 53
2.8.5.Các phép dấu 54
2.8.6.Các phép toán nhân chia ,lấy dư 54
2.8.7 Các phép toán khác 55
CHƯƠNG 3: TỔNG QUAN VỀ FPGA 56
3.1.FPGA LÀ GÌ? 56
3.2 LỊCH SỬ RA ĐỜI FPGA: 58
3.3.ỨNG DỤNG 59
3.4.A I SẢN XUẤT FPGA: 59
3.4.1 ALTERA: 60
3.4.2 Lattice, Actel, Quicklogic 60
3.4.3 Đặc điểm của FPGA 60
3.4.4 FPGA HOẠT ĐỘNG NHƯ THẾ NÀO 61
3.4.5 Các chân tính năng đặc biệt 62
3.4.6 Các chân dành cho người sử dụng 62
3.4.7 Khối logic bên trong 63
3.4.8.RAM nội : 63
3.5 CẤU TRÚC MỘT FPGA 63
3.5.1 Khối logic FPGA 64
3.6 C ÁC PHẦN TỬ TÍCH HỢP SẴN 65
3.6.1.Mô tả ban đầu về thiết kế 66
3.6.2.Thực thi 68
3.6.3 Quá trình Nạp (download) và lập trình (program) 69
Trang 5PHẦN I: TỔNG QUAN VỀ HDL VERILOG.
1.1.Giới thiệu về HDL và verilog:
1.1.1.Lịch sử phát triển HDL:
ISP (circa 1977) – dự án nghiên cứu CMU (Carnegie Mellon University)
Mô phỏng nhưng không tổng hợp
Abel (circa 1983) – được triển bởi Data-I/O
Mục tiêu dùng cho các thiết bị luận lý khả lập trình
Không tốt cho máy trạng thái
a) Verilog ( circa 1985) – phát triển bởi Gateway ( now Cadence)
Đặc tả được đưa ra từ 1985
Ban đầu được phát triển cho mô phỏng, tương tự C và Pascal
Hiệu quả và dễ viết
Berkeley phát triển công cụ tổng hợp vào thập niên 80
Được IEEE chuẩn hóa
Verilog standardized (Verilog-1995 standard)
Trang 6 Verilog-2001 standard
b) VHDL (circa 1987) - DoD sponsored standard
Dưa trên VHSIC phát triển bởi DARPA
Tương tự như Ada (Nhấn mạnh vào tái sử dụng và bảo trì)
Ngữ nghĩa phỏng mô rõ ràng
Rất tổng quát nhưng dài dòng
Được IEEE chuẩn hóa
Biên dịch để kiểm tra cú pháp (syntax)
Mô phỏng để kiểm tra chức năng của mạch
Trang 71.1.3.Verilog HDL:
a) Verilog là một ngôn ngữ lớn
Có nhiều tính năng cho tổng hợp và mô phỏng phần cứng
Có thể biểu diễn những đặc trưng mức thấp
Transistor
Có thể hoạt động như ngôn ngữ lập trình
Cấu trúc lặp
Cấu trúc điều khiển…
b) Các công cụ mô phỏng chấp nhận toàn bộ khái niệm của Verilog
c) Các công cụ tổng hợp công chỉ chấp nhận một phần các khái niệm của
Verilog
d) Chỉ tập trung nghiên cứu một phần
Sử dụng ở một mức thích hợp
Tập trung trên những cấu trúc tổng hợp được
Tập trung tránh những cấu trúc gây khi tổng hợp
1.2.Ngôn ngữ đặc tả phần cứng (HDL):
Là ngôn ngữ thuộc lớp ngôn ngữ máy tính ( computer language)
Dùng để miêu tả cấu trúc và hoạt động của một vi mạch
Dùng mô phỏng, kiểm tra hoạt động của vi mạch
Biểu diễn hành vi theo thời gian và cấu trúc không gian của mạch
Trang 8 Bao gồm những ký hiệu biểu diễn thời trang và sự đồng thời ( time andconcurrence).
Được sử dụng rộng rãi trong công nghiệp
Theo chuẩn IEEE (Institute of Electrical and ElectronicsEngineerings)
Được hỗ trợ bởi các công cụ tổng hợp ASIC (appilcationspecificintegrated circuits) và FPGA (field-programmable gate arrays)
Trang 91.3.Phương pháp luận thiết kế HDL:
Kiểm tra: thiết kế đã đúng yêu cầu chưa?
Timing: Waveform Behavior
Dưới đây là lưu đồ thiết kế ASICs bằng HDL:
Trang 101.3.1.Design spelification ( thiết kế ý niệm):
Trang 11 Biểu diễn:
Đồ thị trạng thái ( state transation graph)
Máy trạng thái (algorithmic state machine)
Ngôn ngữ cấp cao: system C , superLog…
1.3.2.Thiết kế phân hoạch ( design partition):
Mạch lớn được phân chia thành các mạch nhỏ hơn
Mỗi mạch nhỏ này được đặc tả bằng HDL
Mỗi mạch nhỏ có thể được tổng hợp trong thời gian chấp nhận được
Phương pháp thiết kế từ trên xuống ( top – down design/ hierarchicaldesign)
Trang 121.3.3.Design Entry:
Đặc tả thiết kế theo một dạng chuẩn
Ngày nay dùng HDL
Mô hình hành vi (behavioral modeling)
Được sử dụng nhiều trong công nghiệp
Chỉ ra mạch sẽ thực hiện chức năng gì
Không cần chỉ ra xây dựng phần cứng như thế nào
Các bước thiết kế dùng mô hình hành vi:
Tạo hành vi nguyên mẫu cho thiết kế
Trang 13 Kiểm tra chức năng: Sử dụng những công cụ tổng hợp tối ưu vàánh xạ thiết kế vào một công nghệ.
1.3.4.Mô phỏng và kiểm tra chức năng ( Simulation and function verification).
Quay về bước 3 nếu phát hiện lỗi
Ba bước tiến hành kiểm tra
Lập kế hoạch kiểm tra: chức năng nào cần kiểm tra và kiểm ra thếnào?
Thiết kế mẫu kiểm tra ( testbench)
Thực hiện kiểm tra
1.3.5.Thiết kế tích hợp và kiểm tra ( design integration and verification).
Các mạch nhỏ được tích hợp lại và kiểm tra
Trang 141.3.6.Presynthesis Sign – off:
Bảo đảm tất cả các chức năng được thể hiện trong testbench
Bảo đảm những khác biệt giữa các chức năng biểu diễn bằng mô hình hành
vi và thiết kế được giải quyết hoàn toàn
Sign – off được thực hiện sau khi tất cả các lỗi chức năng đã giải quyếtxong
1.3.7.Tổng hợp mức cổng và ánh xạ công nghệ (Gate – level synthesis and
1.3.8.Thiết kế sau tổng hợp ( Post – synthesis design validation):
Bộ so sánh được thực hiện bằng phần mềm hoặc bằng đồ họa
Trang 15 Tìm hiểu và giải quyết sự khác biệt một cách cẩn thận.
Verilog behavioral description: Phần mô tả hành vi của verilog
Logic Synthesis: logic tổng hợp
Gate – level description: Phần mô tả mức cổng
Stimulus generation: máy kích thích
Testbench for post – synthesis design validation: Mẫu kiểm tra cho thiết kếsau tổng hợp
Trang 16 Response Comparation: Đáp ứng lại sự so sánh.
Check signal: Kiểm tra tín hiệu
1.3.9 Kiểm tra thời gian sau tổng hợp ( Post – synthesis timing verification):
Thời gian trên mạch phải phù hợp với thiết kế trên những đường then chốt(critical path)
Bước này được lặp lại sau bước loại bỏ điện dung không mong muốn( parasitic extraction)
Thực hiện tổng hợp lại nếu thời gian không phù hợp với thiết kế
Thay đổi kích thước transitor
Thay đổi kiến trúc mạch
Thay đổi công nghệ
1.3.10.Kiểm tra sản phẩm và mô phỏng lỗi ( test generation and fault
Trang 171.3.11.Sắp đặt và nối dây ( placement ang routing).
Sắp xếp các linh kiện (cell) lên một vùng giới hạn và kết nối các đường tínhiệu giữa chúng
Chèn tín hiệu clock vào mạch sao cho không xảy ra lệch xung clock ( clockskew)
1.3.12 Kiểm tra vật lý và điện ( Physical and electrical design rule checks).
Layout vật lý của thiết kế phải được kiểm tra các ràng buộc
Độ dày vật liệu ( material width)
Chồng lấp ( overlap)
Tách biệt ( separation)
+ Kiểm tra điện:
Fan – out
Trang 18 Các tín hiệu không trỗn lẫn với nhau (compromise).
Nhiễu
Tiêu hao năng lượng
1.3.13.Loại bỏ ký sinh ( Parasitic extraction)
Điện dung ký sinh ( Parasitic capacitance)
Không có trong thiết kế
Ảnh hưởng xấu đến hoạt động của mạch
Làm giảm băng thông
Sử dụng phần mềm để tạo ra các kiểm tra chính xác về các đặc tính điện vàthời gian ( electrical characteristics and timing performance)
1.3.14.Design sign – off:
Các ràng buộc được thỏa mãn
Đặc tả bao gồm hình dạng hình học cho quá trình sản xuất
Các tài nguyên được mở rộng để chip sản xuất ra thỏa mãn thiết kế vềhiệu suất và chức năng
Trang 191.4.Mô hình cấu trúc và mô hình hành vi trong HDLs:
a) Cấu trúc (Structural) chỉ tra cấu trúc phần cứng thật sự của mạch
Mức trừu tượng thấp
Các cổng cơ bản ( ví dụ and, or, not)
Cấu trúc phân cấp thông qua các module
Tương tự lập trình hợp ngữ
b) Hành vi (Behavioral) chỉ ra hoạt động của mạch
c) trên các bits
Mức trừu tượng cao hơn
Biểu diễn bằng các biểu thức (ví dụ out = (a & b) | c)
Không phải tất cả các đặc tả hành đều tổng hợp được
Không sử dụng: + - * / % > >= < <= >> <<
1.5.Những nguy hiểm trong thiết kế Verilog:
Chương trình tuần tự, bộ tổng hợp có thể sẽ phải thêm phần nhiều chi tiết cứng
Trang 20 Tạo ra nhiều trạng thái không dự dịnh trước
Các biểu thức Boolean đơn giản
Mô hình chuyển đổi mức thanh ghi ( Register Transfer Level – RTL)
Một giải thuật
Trang 21 Primitives là các đối tượng cơ bản có thể được sử dụng trong thiết kế
26 đối tượng chức năng được định nghĩa trước
Trang 221.6.4.Mô hình cấu trúc trong Verilog.
Module
Ví dụ:
Trang 231.6.5.Module ports.
a) Giao tiếp với “môi trường” bên ngoài
b) Kiểu của port quyết định chiều truyền liệu
Trang 24c) Kiểu của module port phải được khai báo tường minh và không cần theo thứ tự xuất hiện trong port list
1.6.6.Quy tắt trong Verilog
Phân biệt chữ hoa thường (Case sensitive)
Identifier: a-z, A-Z, 0-9, ‘_’ và ‘$’
Tên biến không được bắt đầu bằng ‘$’ hay ký số và có thể tối đa là 1024 kýtự
Có thể viết các phát biểu trên một dòng hay nhiều dòng
1.6.7.Thiết kế từ trên xuống (top-down)
a) Hệ thống phức tạp được phân chia thành những đơn vị chức năng nhỏ hơn
Dễ thiết kế
Dễ kiểm tra
b) Các module lồng nhau trong Verilog hỗ trợ thiết kế từ trên xuống
c) Module tham khảo đến module khác được gọi là module “cha”, moduleđược module khác tham khảo đến gọi là module “con”
d) Độ sâu của các module lồng nhau không giới hạn
Trang 25e) Mỗi module con phải có tên duy nhất trong phạm vi module cha (trừ cácprimitives)
1.6.8.Binary full adder
1.6.9.Thiết kế phân cấp và tổ chức mã nguồn
Top-level module là module ở cấp cao nhhất
Module ở mức thấp nhất
Chứa các primitives
Các module không phân chia nhỏ hơn
Tất cả các module được đặt trong một hay nhiều tập tin khác nhau
Trang 26 Công cụ mô phỏng tích hợp các module từ các tập tin
1.6.10.Mạch cộng 16-bit ripple carry
Trang 271.6.11.Cây phân cấp mạch cộng 16-bit ripple carry.
1.6.12.Hiện thực mạch cộng 16-bit ripple carry.
1.6.13.Vectors trong Verilog.
Một vector được biểu diễn bằng ngoặc vuông chứa dãy liên tiếp các bit
sum[3:0] vector sum kích thước 4 bit
Trang 28 Bit trái nhất là MSB
Bit phải nhất là LSB
Có thể truy xuất từng bit hay từng dãy bit trong vector
sum[1] bit thứ 2 từ phải sang của sum
sum[2:1] bit thứ 2 và 3 từ phải sang của sum
sum[4] giá trị x (không xác định)
Có thể gán, so sánh 2 vector với nhau
1.7.Mô phỏng luận lý, kiểm chứng thiết kế và phương pháp luận kiểm tra
1.7.1.Các giá trị luận lý trong Verilog.
Trang 291.7.2.Phương pháp luận kiểm tra.
a) Kiểm tra mạch thực hiện đúng chức năng
Kiểm tra ngẫu nhiên phức tạp và không chính xác
Cần lập kế hoạch kiểm tra tỉ mỉ
Kiểm tra mạch lớn
b) Kiểm tra tất cả các trường hợp
Mạch cộng 16 bit cần kiểm tra 223 trường hợp
Kiểm tra phân cấp
half_adder
full_adder
Add_rca_4 cần kiểm tra 29 trường hợp
Chọn một số trường hợp để kiểm tra kết nối của các
Add_rca_4 trong Add_rca_16
Kiểm tra theo chiều ngược so với cây phân cấp thiết kế
1.8.Thời gian trễ truyền lan.
1.8.1.Thời gian trễ truyền lan.
Ngõ vào thay đổi ngõ ra không thay đổi ngay lập tức
Các phần tử cơ bản của verilog có thời gian trễ là 0
Các vi mạch thực tế được sản xuất dựa trên các thư viện chuẩn được định nghĩa trước
Trang 30 Người thiết kế chỉ quan tâm đến tính đúng đắn của mạch
Sử dụng các công cụ tổng hợp để hiện thực các thiết kế thỏa mãn các ràng buộc thời gian
‘timescale <time_unit base>/<precision base>
Chỉ thị biên dịch
Chỉ ra đơn vị thời gian và độ chính xác thời gian trễ
Phải được khai báo trước khi các module
Ví dụ: Timecase
Trang 311.8.2.Các loại trễ lan truyền.
Trễ quán tính (inertial delay)
Trễ truyền (transport delay)
Gây ra do các dây nối
Trang 32 Dùng kí hiệu ‘?’ thay cho 0, 1, x
Thứ tự các cột trong <input_list> tương ứng với thứ tự trong khai báo input của module
Mạch tổ hợp
<input_list>:<output>
Mạch tuần tự
<input_list>:<state>:<output/next_state>
Ngõ ra phải được khai báo kiểu thanh ghi
Dùng kí hiệu ‘-’ biểu diễn ngõ ra không thay đổi
Trang 33PHẦN II: TỔNG QUAN VỀ VHDL
2.1 Giới thiệu về ngôn ngữ mô tả phần cứng VHDL
VHDL là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tốc độcao, là một loại ngôn ngữ mô tả phần cứng được phát triển cho chươngtrình VHSIC ( Very High Speed Itergrated 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 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ế
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ế trongkhi chỉ sử dụng một ngôn ngữ duy nhất Và khi đem so sánh với các ngônngữ mô phỏng phần cứng khác đã kể ra ở trên 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ự
Trang 34hỗ 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ápthiế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ó VHDLcũng hỗ trợ cho nhiều loại công cụ xây dựng mạch như sử dụng côngnghệ đồng bộ hay không đồng bộ, sử dụng ma trận lập trình đượchay 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 tuỳthuộc công nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụngngay 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ộtbản thiết kế bao gồm cả các hệ con được mô tả chi tiết
Trang 35 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ể đượctrao đổi giữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưngcù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 giacủ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à chia sẻ thiết kế Và nó cũng cho phépdùng lại các phần đã có sẵn
2.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ếntrúc và các cấu hình Đôi khi ta xử dụng các gói( packages) và mô hìnhkiểm tra hoạt động của hệ thống( testbench)
Trang 362.2.1 Thực thế (entity) của mô hình
Phần khai báo thực thể chỉ rõ TÊN của thực thể và liệt kê các lối vào và ra
và có dạng chung như sau
Entity tên_thực_thể is
Generic (khai báo generic);
Port (khai báo các tín hiệu vào ra);
End tên_thực_thể;
Một thực thể luôn bắt đầu với từ khóa entity, theo sau là tên của thực thể và
từ khóa is Rồi đến các khai báo cổng với từ khóa port Một thực thể luônkết thúc với từ khóa end và tên của thực thể
Tên thực thể là tên của thực thể do người dùng đặt
Các tín hiệu vào ra: tên của các tín hiệu do người dung đặt, ngăn cách vớinhau bởi dấu phẩy, chỉ ra các tín hiệu nối với bên ngoài
Các chế độ của tín hiệu khai báo trong “port”: chỉ ra chiều của tín hiệu, cócác mode sau:
in: chỉ ra rằng tín hiệu là một tín hiệu vào.
out: chỉ ra rằng tín hiệu là một tín hiệu ra khỏi thực thể và chỉ các thực thể
khác dùng đến tín hiệu này mới có thể đọc giá trị của nó