Tải bản đầy đủ (.doc) (46 trang)

Tổng quan về HDL, VHDL, Verilog và thiết kế bộ giải mã dùng verilog

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 (1.08 MB, 46 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT CÔNG NGHIỆP
KHOA ĐIỆN - ĐIỆN TỬ
YYYYY YYYYY
THỰC TẬP NÂNG CAO HDL
Đề Tài: Tổng quan về HDL, VHDL, Verilog và thiết kế
bộ giải mã dùng verilog
Giảng viên hướng dẫn : Chử Đức Hoàng
Sinh viên thực hiện : Phạm Tiến Đại
Vũ Xuân Đạo
Lê Tuấn Đạt
Đinh Công Đạt
Phùng Tiến Đạt
Trần Hữu Long
Lớp : Điện Tử 2AHN
Nhóm : 6
1
Hà Nội 01- 2012
MỤC LỤC
LỜI NÓI ĐẦU........................................................................................................................................3
TỔNG QUAN VỀ HDL, VHDL, VERILOG VÀ THIẾT KẾ BỘ GIẢI MÃ DÙNG VERILOG..............................4
PHẦN I: TỔNG QUAN VỀ HDL VERILOG...........................................................................................4
1.6.7.Thiết kế từ trên xuống (top-down)...................................................................................20
PHẦN II: TỔNG QUAN VỀ VHDL............................................................................................28
2.1. Giới thiệu về ngôn ngữ mô tả phần cứng VHDL. ..................................................................28
2.2. Cấu trúc một mô hình hệ thống mô tả bằng VHDL................................................................30
2.2.1. Thực thế (entity) của mô hình. .....................................................................................30
2.2.2. Kiến trúc của mô hình. ...................................................................................................32
PHẦN III: THIẾT KẾ BỘ GIẢI MÃ DÙNG VERILOG................................................34
3.1. Ví dụ 1: Thiết kế mạch giải mã 3 sang 8...........................................................................34
3.2. Ví dụ 2 : Thiết kế mạch giải mã 4 sang 16..........................................................................41


KẾT LUẬN...........................................................................................................................................46
2
LỜ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ạch truyề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.
3
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ống hoà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ình phầ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ụng hai 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ộ giải mã 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ế một bộ giải mã sử
dụng Verilog, thông qua phần mềm Quatus II.
TỔNG QUAN VỀ HDL, VHDL, VERILOG VÀ
THIẾT KẾ BỘ GIẢI MÃ DÙNG VERILOG
PHẦ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:
4
a) ISP (circa 1977) – dự án nghiên cứu CMU (Carnegie Mellon
University)
 Mô phỏng nhưng không tổng hợp

b) 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
c) 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)
• Verilog-2001 standard
d) 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
• VHDL standardized (’87 and ’93)
 Cấu trúc nghiêm ngặt
1.1.2. Giới thiệu về HDLs:
a) HDLs (Hardware Description Languages)
 Không là một ngôn ngữ lập trình
 Tựa C
 Thêm những chức năng mô hình hóa, mô phỏng chức năng.
 Verilog vs. VHDL
b) Các bước thiết kế bằng HDL
 Mô tả mạch từ khó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
1.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
5
• 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.
 Bao gồm những ký hiệu biểu diễn thời trang và sự đồng thời ( time
and concurrence).
 Ưu điểm:
 Dễ quản lý những mạch lớn và phức tạp.
 Uyển chuyển và độc lập với công nghệ.
 Cho phép tái sử dụng những thiết kế đã có sẵn.
 Mạch có thể dược tổng hợp tự động từ đặc tả.
 VerilogTM & VHDL.
 Được sử dụng rộng rãi trong công nghiệp.
 Theo chuẩn IEEE (Institute of Electrical and Electronics

Engineerings).
 Được hỗ trợ bởi các công cụ tổng hợp ASIC
(appilcationspecific integrated circuits) và FPGA (field-
programmable gate arrays).
6
1.3. Phương pháp luận thiết kế HDL:
Kiểm tra: thiết kế đã đúng yêu cầu chưa? Ánh xạ đặc tả thành các hiện
thực
Chức năng: Hành vi I/O
Mức thanh ghi (Kiến trúc)
Mức lý luận (Cổng)
Mức transistor (Điển tử)
Timing: Waveform Behavior
7
 Dưới đây là lưu đồ thiết kế ASICs bằng HDL:
1.3.1. Design spelification ( thiết kế ý niệm):
 Đặc tả chi tiết:
8
 Chức năng.
 Thời gian.
 Năng lượng tiêu hao.
 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/ hierarchical

design).
9
1.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ế.
 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).
10
 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
 Chức năng:
 Cần có các testbench riêng kiểm tra chức năng ngõ nhập – xuất
hoạt động của bus…
 Đây là bước quyết định và phải được thực hiện hoàn hảo để đảm
bảo tính đúng đắn của quá trình tổng hợp.
1.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.
11
 Sign – off được thực hiện sau khi tất cả các lỗi chức năng đã giải
quyết xong.
1.3.7. Tổng hợp mức cổng và ánh xạ công nghệ (Gate – level synthesis and
technology mapping)
 Sử dụng công cụ tổng hợp để tạo ra biểu diễn luận lý tối ưu và thực
hiện theo một công nghệ hiện có.
 Công cụ tối ưu loại bỏ những dư thừa và giảm diện tích mạch logic
cần dùng để thực hiện.
 Kết quả sẽ được ánh xạ vào một FPGA:
 Netlist.
 Cơ sở dữ liệu.
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.
 Tìm hiểu và giải quyết sự khác biệt một cách cẩn thận.
12
 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.
 Response Comparation: Đáp ứng lại sự so sánh.
 Check signal: Kiểm tra tín hiệu.
13
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
simulation).
 Sau khi chế tạo mạch tích hợp phải được kiểm tra tính đúng đắn ( lỗi
sản xuất – không phải lỗi thiết kế).
 Có thể dùng lại những mẫu kiểm tra mô hình hành vi để kiểm tra sản
phẩm sau khi chế tạo.
 Mô phỏng lỗi là quyết định một tập hợp các mẫu dùng để kiểm tra có
các lỗi này hay không -> sử dụng phần mềm tạo thêm các mẫu thử.
1.3.11. Sắp đặt và nối dây ( placement ang routing).
14
 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ín hiệ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
( clock skew).
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

 Các tín hiệu không trỗn lẫn với nhau (compromise).
15
 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.
1.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
trên các bits
16
 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
 Cần một bộ priority encoder
 Nếu song song những chương trình song, có thể có trạng thái không
xác định
 Nhiều khối “always”, khối nào thực thi trước?
 Tạo ra nhiều trạng thái không dự dịnh trước
if (x == 1) out = 0;
if (y == 1) out = 1; // else out retains previous state?
R-S latch!
 Không tính trước được số phần tử phần cứng
 x = x + 1 có thể cần RẤT NHIỀU phần tử phần cứng
1.6. Mô hình cấu trúc cho mạch luận lý tổ hợp:
1.6.1. Mô hình mạch tổ hợp
 Một mô hình Verilog của một mạch tóm tắt các mô tả chức năng bằng
góc nhìn cấu trúc hay hành vi trên những mối quan hệ ngõ vào-ngõ ra
 Một mô hình cấu trúc là một cấu trúc kết nối (netlist) chứa
• Các cổng
• Các khối chức năng
 Một mô hình hành vi là
• 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
1.6.2. Mô hình cấu trúc mạch tổ hợp
 Thiết kế cấu trúc tương tự như tạo ra một sơ đồ (schematic)
 Schematic
• Hình biểu diễn cổng logic,
17
• Ngõ vào ra,
• Các đường kết nối giữa các cổng.

• Mô hình cấu trúc HDL
• Danh sách các cổng cơbản và kết nối giữa chúng
• Các phát biểu chỉ ra ngõ vào-ra
1.6.3. Verilog primitives
 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
18

×