Thiet ke mach dien bang may tinh - Pdf 18

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG
Bài giảng:
THIẾT KẾ MẠCH ĐIỆN BẰNG MÁY TÍNH
(Tài liệu lưu hành nội bộ)
THÁI NGUYÊN - 2009
MỤC LỤC
1
Chương 1.....................................................................................................................8
GIỚI THIỆU VỀ PHƯƠNG PHÁP THIẾT KẾ SỐ .................................................8
BẰNG NGÔN NGỮ MÔ TẢ PHẦN CỨNG.............................................................8
1.1. CÁC PHƯƠNG PHÁP THIẾT KẾ TRUYỀN THỐNG.....................................9
1.1.1. Phương pháp thiết kế dùng hàm Boolean
9
1.1.2. Phương pháp thiết kế dựa trên sơ đồ
9
1.1.3. Nhược điểm của các phương pháp thiết kế truyền thống
10
1.2. PHƯƠNG PHÁP THIẾT KẾ SỐ BẰNG NGÔN NGỮ MÔ TẢ PHẦN CỨNG
...................................................................................................................................10
1.3. CÁC QUÁ TRÌNH THỰC HIỆN THIẾT KẾ SỐ BẰNG NGÔN NGỮ MÔ TẢ
PHẦN CỨNG TRÊN FPGA....................................................................................12
Chương 2...................................................................................................................17
GIỚI THIỆU VỀ VI MẠCH LOGIC KHẢ TRÌNH ................................................17
VÀ GIẢI PHÁP CỦA XILINX................................................................................17
2.1. GIỚI THIỆU VỀ VI MẠCH LOGIC KHẢ TRÌNH..........................................17
2.1.1. Mảng logic khả trình (PLA)
17
2.1.2. Logic mảng khả trình (PAL)
18
2.1.3. Vi mạch logic khả trình phức hợp (CPLD)

42
3.2.2. Các biến (Variables)
42
3.2.3. Các kiểu tín hiệu (Signals)
42
3.3. CÁC KIỂU DỮ LIỆU........................................................................................43
3.3.1. Các kiểu liệt kê (ENUMERATION)
43
3.3.2. Kiểu nguyên
44
3.3.3. Các kiểu dữ liệu tiền định nghĩa trong VHDL
3
44
3.3.4. Kiểu mảng
45
3.3.5. Kiểu Record
46
3.3.6. Các kiểu STD_LOGIC
46
3.3.7. Các kiểu dữ liệu có dấu và không dấu
47
3.3.8. Các kiểu con
47
3.4. CÁC TOÁN TỬ.................................................................................................48
3.4.1. Các toán tử Logical
49
3.4.2. Các toán tử quan hệ
49
3.4.3. Các toán tử dịch bit
49

3.6. CÁC PHÁT BIỂU TUẦN TỰ (SEQUENTIAL STATEMENTS)....................55
3.6.1. Phát biểu gán biến
56
3.6.2. Phát biểu gán tín hiệu
58
3.6.3. Phát biểu IF
62
3.6.4. Phát biểu CASE
64
3.6.5. Phát biểu NULL
65
3.6.6. Phát biểu xác nhận ASSERTION
65
3.6.7. Phát biểu Loop
66
5
3.6.8. Phát biểu NEXT
67
3.6.9. Phát biểu EXIT
68
3.6.10. Phát biểu WAIT
68
3.6.11. Các lời gọi chương trình con
70
3.7. CÁC PHÁT BIỂU ĐỒNG THỜI......................................................................70
3.7.1. Phát biểu Process
71
3.7.2. Các phép gán tín hiệu đồng thời
72
3.7.3. Các phép gán tín hiệu có điều kiện và các phép gán tín hiệu được chọn lựa

93
4.1.6. Công cụ phần mềm nhúng
93
4.2. Đăng ký và cài đẶt vỚi ISE WebPACK...........................................................93
4.3. ThiẾt kẾ ban đẦu trên ISE WebPACK.............................................................95
4.3.1. Thiết kế Module bằng ngôn ngữ mô tả phần cứng
95
4.3.2. Thiết kế Module bằng lưu đồ trạng thái
103
4.3.2. Thiết kế mức đỉnh bằng ngôn ngữ mô tả phần cứng
109
4.3.3. Thiết kế mức đỉnh bằng sơ đồ nguyên lý
117
4.4. ThỰc thi thiẾt kẾ.............................................................................................124
4.4.1. Thực thi thiết kế trên CPLD
124
4.4.1.1. Tổng hợp.........................................................................................................124
7
4.4.1.2. Chỉnh sửa các ràng buộc.................................................................................126
4.4.1.3. Thực thi với CPLD.........................................................................................131
4.4.1.4. CPLD Reports.................................................................................................132
4.4.1.5. Mô phỏng thời gian.........................................................................................134
4.4.1.6. Cấu hình..........................................................................................................135
4.4.2. Thực thi thiết kế trên FPGA
136
4.4.2.1. Thay đổi dự án từ CoolRunner-II thành Spartan-3E......................................137
4.4.2.2. Tổng hợp.........................................................................................................138
4.4.2.3. File ràng buộc thiết kế....................................................................................140
4.4.2.4. FPGA Reports.................................................................................................144
4.4.2.5. Tải cấu hình vào FPGA..................................................................................144

9
là phương pháp được sử dụng chủ yếu trong ngành công nghiệp chế tạo phần cứng
số.
1.1.3. Nhược điểm của các phương pháp thiết kế truyền thống
Mặc dù có ưu điểm là dễ hiểu và dễ sử dụng, phương pháp thiết kế dùng hàm
Boolean và phương pháp thiết kế dựa trên sơ đồ có một số nhược điểm. Nhược điểm
lớn nhất của các phương pháp này là chúng chỉ mô tả hệ thống dưới dạng mạng các
phần tử nối với nhau. Nhìn vào một hệ thống được mô tả bằng hai phương pháp trên
(dưới dạng hàm Boolean hay dạng sơ đồ) ta không thể lập tức chỉ ra được các chỉ
tiêu và chức năng chung nhất của hệ thống. Ðể thiết kế một hệ thống bằng phương
pháp truyền thống, người thiết kế cần phải đi qua hai bước thực hiện hoàn toàn thủ
công đó là: Chuyển từ các yêu cầu về chức năng của hệ thống sang biểu diễn hệ
thống bằng hàm Boolean, sau đó chuyển từ hàm Boolean sang sơ đồ mạch của hệ
thống. Cũng tương tự khi cần hiểu được một hệ thống, người ta cần phân tích sơ đồ
mạch của hệ thống chuyển nó thành các hàm Boolean sau đó mới lập lại được các
chức năng, hoạt động của hệ thống. Các bước nói trên hoàn toàn phải thực hiện thủ
công không có bất kỳ sự trợ giúp nào của máy tính. Ở đây người thiết kế chỉ có thể
sử dụng máy tính làm công cụ hỗ trợ trong việc vẽ sơ đồ mạch của hệ thống (dùng
công cụ CAE – Computer Aided Tool) và chuyển từ sơ đồ mạch sang công cụ tổng
hợp mạch vật lý.
Một nhược điểm khác của phương pháp thiết kế truyền thống là sự giới hạn trong
độ phức tạp của hệ thống. Phương pháp dùng hàm Boolean chỉ có thể dùng để thiết
kế các hệ thống lớn nhất biểu diễn bởi vài trăm hàm. Phương pháp dựa trên sơ đồ chỉ
có thể dùng để thiết kế lớn nhất chứa tới 6000 phần tử.
1.2. PHƯƠNG PHÁP THIẾT KẾ SỐ BẰNG NGÔN NGỮ MÔ TẢ PHẦN
CỨNG
Ngôn ngữ mô tả phần cứng giải quyết được nhược điểm lớn nhất của các phương
pháp thiết kế trước đây. Nếu các phương pháp cũ đòi hỏi phải chuyển đổi từ mô tả
hệ thống (các chỉ tiêu về chức năng của hệ thống) sang tập hợp các hàm logic bằng
tay thì bước chuyển đổi đó hoàn toàn không cần thiết khi dùng ngôn ngữ mô tả phần

Đầu tiên là bộ nhân 16×16:
entity MULT is
port(A,B:in std_logic(15 downto 0);
Y:out std_logic(31 downto 0));
end MULT;
architecture BEHAVE of MULT is
begin
Y <= A * B;
end BEHAVE;
Sau đó được sửa thành bộ nhân 32 x 32:
entity MULT is
port(A,B:in std_logic(31 downto 0);
Y:out std_logic(63 downto 0));
end MULT;
architecture BEHAVE of MULT is
begin
Y <= A * B;
end BEHAVE;
1.3. CÁC QUÁ TRÌNH THỰC HIỆN THIẾT KẾ SỐ BẰNG NGÔN NGỮ MÔ
TẢ PHẦN CỨNG TRÊN FPGA
Phương pháp thiết kế số bằng ngôn ngữ mô tả phần cứng thể hiện nhiều ưu điểm
hơn so với phương pháp thiết kế số truyền thống. Sau đây, chúng ta sẽ tìm hiểu các
bước chính để thực hiện thiết kế số dùng ngôn ngữ mô tả phần cứng trên FPGA.
Hình 1.3 thể hiện quá trình thiết kế số trên FPGA.
12
Hình 1.3: Quá trình thiết kế số trên FPGA.
Quá trình 1: Mô tả ban đầu về thiết kế (Specification). Khi xây dựng một chip
khả trình (FPGA) với ý nghĩa dành cho một ứng dụng riêng biệt, vì xuất phát từ mỗi
ứng dụng trong thực tiễn cuộc sống, sẽ đặt ra yêu cầu phải thiết kế IC thực hiện tối
ưu nhất những ứng dụng đó. Bước đầu tiên của quy trình thiết kế này có nhiệm vụ

công cụ phân tích, xác định các kết nối không thỏa mãn về thời gian. Tùy theo
nguyên nhân dẫn đến không thỏa mãn mà ta có thể viết lại mã và tiến hành lại
tổng hợp logic hoặc hiệu chỉnh lại các ràng buộc.
14
Quá trình 2: Thực thi (Implementation). Ta đã có sơ đồ bố trí netlist mô tả tổng
thể thiết kế tại mức cổng (chỉ gồm các cổng logic cơ bản). Quá trình này sẽ đặt sơ đồ
netlist này lên chip, gọi là quá trình thực thi (Device Implementation). Quá trình này
gồm các bước:
• Ánh xạ (mapping): Chuẩn bị dữ liệu đầu vào, xác định kích thước các khối.
Các khối này sẽ phải phù hợp với cấu trúc của một tế bào cơ bản của FPGA
(gồm nhiều cổng logic) và đặt chúng vào các vị trí tối ưu cho việc chạy dây.
Hình 1.5: Mapping.
• Đặt khối và định tuyến (Place & Route): Đặt khối tức là đặt các khối ánh xạ
vào các tế bào (cell) ở vị trí tối ưu cho việc chạy dây.
Hình 1.6: Placing.
15
Định tuyến tức là thực hiện việc nối dây các tế bào.
Hình 1.7: Routing.
Để thực hiện việc này, chúng ta cần có các thông tin sau:
- Các thông tin vật lý về thư viện tế bào, ví dụ kích thước tế bào, các điểm để
kết nối, định thời, các trở ngại trong khi đi dây.
- Một netlist được tổng hợp sẽ chỉ ra chi tiết các instance và mối quan hệ kết
nối bao gồm cả các đường dẫn bị hạn chế trong thiết kế.
- Tất cả các yêu cầu của tiến trình cho các lớp kết nối, bao gồm các luật thiết
kế cho các lớp chạy dây, trở kháng và điện dung, tiêu thụ năng lượng, các luật
về sự dẫn điện trong mỗi lớp.
Quá trình 3: Nạp (download) và lập trình (program). Sau quá trình thực hiện, thiết kế
cần được nạp vào FPGA dưới dạng dòng bit (bit stream). Quá trình nạp thiết kế vào FPGA
thường nạp vào bộ nhớ bay hơi, ví dụ như SRAM. Thông tin cấu hình sẽ được nạp vào bộ
nhớ. Dòng bit được truyền lúc này sẽ mang thông tin định nghĩa các khối logic cũng như kết

• Một mảng khả trình AND và một mảng OR cố định.
• Kết hợp có hạn của các cổng AND và OR.
• Mật độ logic trung bình.
• Ít cầu chì hơn, và nhanh hơn PLA.
• Logic mảng khả trình.
Hình 2.2 mô tả kiến trúc của PAL.
Hình 2.2: Kiến trúc của PAL.
Kiến trúc này có một mạng lưới kết nối ngang và dọc. Ở mỗi kết nối có một cầu
chì. Với sự trợ giúp của công cụ phần mềm, người thiết kế có thể lựa chọn kết nối
nào không được nối bằng cách phá vỡ tất cả các cầu chì không được kết nối (việc
này được thực hiện bằng một bộ nạp, nhưng bây giờ thường làm bằng công nghệ
ISP).
Công nghệ PLD đã phát triển từ những ngày đầu tiên cho đến bây giờ bởi những
công ty như Xilinx đang sản xuất những vi mạch trên công nghệ CMOS tiêu thụ
năng lượng cực nhỏ, dựa trên công nghệ lưu trữ flash. PLD dựa trên flash cho phép
khả năng lập trình lại nhiều lần, lập trình và xóa bằng điện.
18
2.1.3. Vi mạch logic khả trình phức hợp (CPLD)
CPLD (Complex PLD) mở rộng mật độ của SPLD (Simple PLD), CPLD có một
vài khối PLD hay còn gọi là macrocells trong một linh kiện vi điện tử, với mạng kết
nối nằm ở giữa. Các khối logic đơn giản có thể được thực hiện với một khối đơn lẻ
còn các khối logic tinh vi hơn yêu cầu nhiều khối và sử dụng với mạng kết nối
chung. CPLD có đặc điểm sau:
• Mạng kết nối trung tâm.
• Định thời trước, đơn giản.
• Định tuyến dễ dàng.
• Tác động nhanh.
Hình 2.3 mô tả kiến trúc của CPLD.
Hình 2.3: Kiến trúc CPLD.
Các CPLD rất thích hợp trong việc thực hiện các thiết kế phức tạp với tốc độ làm

• Chi phí của người sử dụng: Chi phí người sử dụng có thể định nghĩa như là
chi phí để bảo dưỡng, sửa chữa hoặc bảo hành sản phẩm. Bởi vì CPLD có khả
năng tái lập trình, không đòi hỏi phải tái lập lại phần cứng, như vậy chi phí rất
ít để thay đổi thiết kế sử dụng chúng.
• Độ tin cậy: Có độ tin cậy cao bởi việc sử dụng công suất nhỏ dẫn đến giảm
sự tiêu thụ năng lượng và giảm nhiệt.
2.1.4. Mảng cổng cho phép lập trình được (FPGA)
Năm 1985, Xilinx giới thiệu một ý tưởng mới: Đó là sự kết hợp giữa việc điều
khiển của người dùng và thời gian tiếp cận thị trường của các PLD cùng với mật độ
tích hợp và giá của các ma trận cổng. Điều này đã cho ra đời vi mạch FPGA và cho
đến nay Xilinx vẫn là nhà cung cấp số một về FPGA trên thế giới.
FPGA (Field Programmable Gate Array) thường là cấu trúc của các tế bào logic
(Logic Cell hay module) và các liên kết hoàn điều khiển được. Điều này có nghĩa là
ta có thể thiết kế, lập trình và thay đổi bất cứ lúc nào ta muốn. FPGA ngày nay đang
vượt qua giới hạn 10 triệu cổng và ta có thể thực hiện những tham vọng cho những
thiết kế lớn. Hình 2.5 là kiến trúc của một vi mạch FPGA.
20
Hình 2.5: Kiến trúc của FPGA.
Từ khi giới thiệu dòng Spartan đến giờ Xilinx đã hoàn thiện mảng cổng về mọi
khía cạnh - giá cả, cổng, số các đầu vào ra cũng như hiệu năng và chi phí.
Cơ bản thì có hai loại FPGA: Loại khả trình dựa trên SRAM và loại lập trình một
lần (One Time Programmable). Hai loại FPGA này khác nhau về việc thực hiện các
logic cell và cơ cấu sử dụng để tạo nên kết nối trong linh kiện. Với FPGA dựa trên
SRAM thì SRAM xác định các kết nối và các khối logic trong bảng tìm kiếm (Look
Up Table). Với FPGA lập trình chỉ một lần thì các liên kết là các cầu chì và các khối
Logic là các cổng truyền thống.
Loại ưu thế hơn cả là loại dựa trên SRAM vì nó có thể lập trình lại nhiều lần.
Thực tế thì một SRAM FPGA được nạp cấu hình lại mỗi khi được khởi động, bởi vì
FPGA loại này thực chất là một chíp nhớ theo ý muốn. Điều này giải thích tại sao
cần có một số PROM nối tiếp hay hệ thống nhớ với mọi SRAM FPGA. Chúng ta hãy

CoolRunner. Hai loại này tập trung chủ yếu là hai dòng phổ biến nhất đó là
XC9500XL và CoolRunner-II.
- XC9500XL với tính năng tốc độ cao, chi phí thiết kế thấp.
- CoolRunner-II thì tiêu thụ năng lượng cực thấp, dẫn đầu trong các thiết bị cầm
tay. Với dòng tiêu thụ ở trạng thái nghỉ dưới micro ampe và tối thiểu năng lượng
tiêu thụ khi hoạt động. CoolRunner-II đặc biệt phù hợp với các ứng dụng cầm tay
chạy pin, hay những ứng dụng mà tiêu thụ nguồn là vấn đề cần phải quan tâm.
Để lựa chọn được vi mạch tốt nhất cho các tiêu chuẩn thiết kế của mình, ta cần
chú ý tới các chi tiết thiết kế và đặc điểm sản phẩm để có những thông tin về vi mạch
mình dùng trong thiết kế như:
• Mật độ: Mỗi phần đều có một lượng cổng hay ước lượng mật độ logic mỗi
phần.
• Số lượng thanh ghi: Đếm số thanh ghi cần cho bộ đếm, các máy trạng thái,
các thanh ghi và các bộ chốt. Số lượng các macrocell cần thiết trong một vi
mạch.
• Số lượng chân vào/ra: Mạch thiết kế cần bao nhiêu lối vào và bao nhiêu lối
ra.
• Tốc độ: Cần phải xác định tốc độ lớn nhất để lựa chọn vi mạch cho phù hợp
với thiết kế của mình.
23
• Đóng gói: Tác động của các điều kiện điện cơ, các kiểu đóng gói khác nhau
cho phù hợp với thiết kế của mình.
• Công suất nhỏ: Thiết kế có yêu cầu công suất thấp nhất có thể không? Có
quan tâm đến vấn đề giảm nhiệt lượng cho thiết bị không?
Giới thiệu CPLD công suất nhỏ CoolRunner-II:
• Dòng CoolRunner-II của CPLD kết hợp giữa nguồn tiêu thụ rất thấp và tốc độ
cao, nhiều cổng vào ra trên một vi mạch. Dòng CoolRunner-II có từ 32 đến
512 Macrocell. CoolRunnerII-CPLD là nét đặc biệt của công nghệ
RealDigital cho phép các thiết bị gần như không tiêu thụ nguồn ở chế độ chờ.
Điều này khiến nó trở nên lý tưởng cho các mảng thị trường của các thiết bị

xe hơi.
25

Trích đoạn Khai báo Entity Các đóng gói (Packages) Định cấu hình (Configurations) Các hằng (Constants) Chỉnh sửa các ràng buộc
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status