Bài giảng VHDL

MỤC LỤC

CHƢƠNG 1 : GIỚI THIỆU TẬP LỆNH TRONG NGÔN NGỮ VHDL .1

1.1 Những phần tử ngôn ngữ cơ bản :.1

1.1.1 Lời chú thích : .1

1.1.2 Những điều cần biết về ngôn ngữ VHDL :.1

1.1.3 Đối tượng dữ liệu : .1

1.1.4 Loại dữ liệu :.2

1.2 Toán tử dữ liệu :.4

1.3 Entity (thực thể):.6

1.4 Architecture (cấu trúc) : .6

1.4.1 Cú pháp cho dataflow model : .6

1.4.2 Cú pháp cho behavioral model : .7

1.4.3 Cú pháp của structural model : .7

1.5 Generic : .8

1.5.1 Cú pháp trong khai báo ENTITY :.8

1.5.2 Cú pháp trong khai báo component : .9

1.5.3 Cú pháp trong thuyết minh component : .9

1.6 Package (gói) :. 10

1.6.1 Cú pháp khai báo PACKAGE: . 10

1.6.2 Cú pháp khai báo thân chính Package:. 11

1.7 Những câu lệnh đồng thời theo cấu trúc Dataflow :. 12

1.7.1 Gán các tín hiệu đồng thời :. 12

1.7.2 Gán tín hiệu có điều kiện :. 12

1.7.3 Gán tín hiệu được chọn lựa :. 13

1.7.4 Ví dụ cho kiểu dataflow : . 13

1.8 Những câu lệnh tuần tự theo cấu trúc Behavioral :. 14

1.8.1 Process :. 14

1.8.2 Những phép gán tín hiệu tuần tự :. 14

1.8.3 Phép gán biến :. 15

1.8.4 Wait : . 15

1.8.5 If then else :. 15

1.8.6 Case: . 16

1.8.7 Null :. 16

1.8.8 For : . 16

1.8.9 While : . 17

1.8.10 Loop : . 17

1.8.11 Exit : . 17

1.8.12 Next : . 17

1.8.13 Function (hàm) :. 17

1.8.14 Procedure (thủ tục) :. 19

1.8.15 Ví dụ về kiểu Behavioral : . 20ii

1.9 Các câu lệnh kiểu Structural :. 21

1.9.1 Khai báo Component :. 21

1.9.2 Port map :. 21

1.9.3 Open : . 22

1.9.4 Generate :. 22

1.9.5 Ví dụ về cách viết đoạn mã theo kiểu Structure: . 23

1.10 Các thủ tục chuyển đổi : . 25

1.10.1 Conv_integer ( ) : . 25

1.10.2 Conv_Std_Logic_Vector (,): . 25

CHƢƠNG 2 : DÙNG NGÔN NGỮ VHDL MÔ TẢ CÁC MẠCH SỐ CƠ BẢN. 27

2.1 Ngôn ngữ VHDL mô tả các cổng logic cơ bản: . 27

2.1.1 Đoạn mã VHDL mô tả cổng NAND 2 ngõ vào:. 27

2.1.2 Ngôn ngữ VHDL mô tả cổng NOR 3 ngõ vào: . 28

2.1.3 Dùng ngôn ngữ VHDL mô tả một hệ thống báo động cho xe hơi:. 29

2.2 Bộ giải mã LED 7 đoạn:. 31

2.2.1 Xây dựng cấu trúc bộ giải mã LED 7 đoạn: . 31

2.2.2 Ngôn ngữ VHDL mô tả mạch giải mã LED 7 đoạn: . 34

2.2.3 Cấu trúc structural biểu diễn giải mã số thập phân ra Led 7 đoạn:. 35

2.2.4 Cấu trúc dataflow biểu diễn giải mã số thập phân ra Led 7 đoạn:. 37

2.2.5 Cấu trúc behavioral biểu diễn giải mã số thập phân ra Led 7 đoạn: . 38

2.3 Bộ cộng:. 38

2.3.1 Bộ cộng toàn phần (FA): . 38

2.3.2 Bộ cộng toàn phần hai số nhị phân có nhiều hơn 1 bit: . 40

2.3.3 Bộ cộng hai số nhị phân nhiều bit cho kết quả hiển thị nhanh: . 41

2.4 Bộ trừ: . 42

2.4.1 Bộ trừ một bit:. 42

2.4.2 Sự tích hợp cả hai bộ cộng và bộ trừ trong cùng một mạch số:. 43

2.5 Thành phần thực hiện các phép toán logic số học (ALU): . 45

2.6 Bộ giải mã:. 49

2.7 Bộ mã hóa:. 52

2.8 2.8 Bộ ghép kênh:. 53

2.9 Bộ đệm ba trạng thái: . 57

2.10 Bộ so sánh:. 58

2.11 Bộ dịch và bộ xoay (shifter / Rotator): . 60

2.12 Bộ nhân: . 62

2.13 Máy trạng thái hữu hạn FSM: . 64

2.13.1 Mô hình máy trạng thái hữu hạn FSM (Finite-State-Machine): . 65

2.13.2 Phương trình kích thích (Excitation Equation): . 67

2.13.3 Phương trình trạng thái tiếp theo (Next-state Equation): . 67

2.13.4 Bảng trạng thái tiếp theo (Next-state Table): . 68iii

2.13.5 Ví dụ phân tích 1 Moore FSM: . 70

2.13.6 Ví dụ phân tích Mealy FSM: . 76

2.14 Các linh kiện tuần tự: . 80

2.14.1 Các thanh ghi (Registers): . 80

2.14.2 Thanh ghi tập tin (Register Files): . 82

2.14.3 Bộ nhớ truy xuất ngẫu nhiên (Random Access Memory): . 85

2.15 Bộ đếm (Counters):. 88

2.15.1 Bộ đếm lên nhị phân (Binary Up Counter):. 89

2.15.2 Mã VHDL cho bộ đếm lên 4 bit: . 90

2.15.3 Bộ đếm lên xuống nhị phân (Binary Up-Down Counter): . 91

2.15.4 Mã VHDL cho 1 bộ đếm lên xuống 4 bit như sau:. 92

2.15.5 Bộ đếm lên xuống đọc song song : . 93

2.15.6 Bộ đếm lên xuống BCD (BCD Up-Down Counter): . 95

2.16 Thanh ghi dịch (Shift registers):. 95

2.16.1 Thanh ghi dịch nối tiếp ra song song: . 96

2.16.2 Thanh ghi dịch nối tiếp ra song song và song song ra nối tiếp:. 97

CHƢƠNG 3 : TÌM HIỂU KIT FPGA SPARTAN 3. 100

3.1 Tổng quan kit FPGA Spartan 3 : . 100

3.2 SRAM bất đồng bộ : . 101

3.3 Led 7 đoạn:. 105

3.4 Các công tắc trƣợt (SW), các nút ấn (PB) và các Led : . 107

3.5 Cổng VGA :. 107

3.6 Cổng PS/2 Mouse và Keyboard :. 108

3.6.1 Bàn phím :. 109

3.6.2 Mouse : . 109

3.6.3 Nguồn cấp áp: . 110

3.7 Cổng nối tiếp RS-232 : . 110

3.8 Các nguồn xung clock :. 111

3.9 Cách thiết lập các mode hoạt động cho FPGA : . 111

3.10 Thiết lập cách lƣu trữ cho Platform :. 112

3.10.1 Default Option : . 113

3.10.2 Flash Read option :. 113

3.10.3 Disable Option : . 114

3.11 Sự kết nối các board mở rộng vào kit Spartan 3 : . 114

3.11.1 Port mở rộng A1: . 115

3.11.2 Port mở rộng A2 :. 116

3.11.3 Port mở rộng B1 :. 117

CHƢƠNG 4 : CÁC CỔNG GIAO TIẾP DÙNG TRÊN BOARD SPARTAN 3 . 119iv

4.1 Giao tiếp RS232 (cổng COM) :. 119

4.2 Giao tiếp bàn phím PS/2 :. 122

4.2.1 Sơ đồ chân kết nối:. 122

4.2.2 Các tín hiệu của PS/2 : . 122

4.2.3 Nguyên tắc truyền dữ liệu : . 122

4.2.4 Mã quét bàn phím (Scancode) : . 124

4.3 Giao tiếp VGA : . 125

4.3.1 Sơ đồ chân kết nối :. 125

4.3.2 Các tín hiệu của VGA : . 125

4.3.3 Nguyên tắc tạo hình :. 125

4.3.4 Nguyên tắc quét tín hiệu điện để tạo ảnh : . 125

4.3.5 Một vài chuẩn Video điển hình cho TV và PC :. 126

4.3.6 Giản đồ thời gian cho các tín hiệu của chuẩn VGA :. 127

CHƢƠNG 5 : CÁC ỨNG DỤNG ĐÃ THỰC HIỆN. 128

5.1 Đồng hồ và đếm sản phẩm :. 129

5.2 Giao tiếp PS/2 :. 129

pdf137 trang | Chuyên mục: Mạch Điện Tử | Chia sẻ: tuando | Lượt xem: 593 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng VHDL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
232. 
Trong hình 3.1 DTE thường là một máy tính (PC) còn DCE thường là một modem hay 
một thiết bị thu phát dữ liệu được kết nối với PC thong qua cổng COM (cổng RS-232). 
Trong quy định về cơ, chuẩn EIA-232 định nghĩa giao tiếp như là sợi cáp 25 dây với các 
đầu nối đực và cái DB-25. Chiều dài cáp không nên vượt quá 15m (50 feet). Một cách 
thực hiện kết nối khác của EIA-232 là dùng cáp 9 dây với các đầu nối đực và cái DB9. 
Chỉ có 4 dây trong 25 dây giao tiếp được dùng cho các chức năng dữ liệu. 21 dây còn 
lại được dùng cho các chức năng khác như điều khiển, điều hòa thời gian, đất và kiểm 
tra. Trong chuẩn giao tiếp EIA-232, một tín hiệu về điện cũng tương tự như đường dữ 
liệu, một tín hiệu được gọi là ON nếu nó phát điện áp ít nhất +3V và OFF nếu nó phát 
điện áp với giá trị nhỏ hơn -3V. 
Toàn bộ các chân chức năng được diễn tả cho các loại connectors DB25 và DB9 được 
mô tả chi tiết trong hình 3.2 và hình 3.3. 
Chương 4 : Các cổng giao tiếp được sử dụng trên Kit FPGA Spartan 3 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 120 
Hình 4. 2 : Các chân chức năng của DB25 và DB9 loại đầu đực. 
Chương 4 : Các cổng giao tiếp được sử dụng trên Kit FPGA Spartan 3 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 121 
Hình 4. 3 : Các chân chức năng của DB25 và DB9 loại đầu cái. 
DB25: thứ tự và chúc năng được trình bày trong hình 3.3, mỗi đầu nối cái sẽ là ảnh 
gương của đầu đực. Như vậy mỗi chân chức năng đều có ảnh hoặc chiều trả lời theo 
hướng ngược lại để cho phép hoạt động song công. Tuy nhiên không phải chân nào 
cũng có chức năng ví dụ chân số 9 và 10 còn dùng để dự phòng và chân số 11 chưa 
được gán chức năng. 
DB9: nhiều chân của DB25 không cần thiết cho kết nối đơn bất đồng bộ cho nên có thể 
giảm xuống còn 9 chân. 
Chúng ta phải lưu ý về chức năng chân của đầu nối đực và đầu nối cái trong 2 loại cáp 
DB25 và DB9. Ta hãy chú ý các chân thứ 2, 3, 4, 5, 13, 14, 16 và 19 của đầu nối đực và 
đầu nối cái trong loại kết nối DB25 mặc dù có số thứ tự giống nhau nhưng đảm nhận hai 
quá trình trái ngược nhau trong truyền và nhận dữ liệu. Ví dụ chân số 2 của đầu đực là 
Chương 4 : Các cổng giao tiếp được sử dụng trên Kit FPGA Spartan 3 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 122 
truyền dữ liệu thì chân số 2 của đầu cái đóng vai trò là chân nhận dữ liệu, tương tự như 
vậy cho các chân vừa nêu. 
Hình 4. 4 : Nghi thức truyền và nhận dữ liệu giữa DTE và DCE. 
4.2 Giao tiếp bàn phím PS/2 : 
4.2.1 Sơ đồ chân kết nối: 
Hình 4. 5 : Chân kết nối của chuẩn PS/2 loại 5 chân và 6 chân. 
4.2.2 Các tín hiệu của PS/2 : 
Bàn phím AT có chân kết nối tới 4 tín hiệu : Clock, Data, +5V, GND . Nguồn +5V 
được tạo bởi PC và mass GND cũng kết nối với mass của PC. Tín hiệu Clock và Data là 
kiểu “Open Collector ”. Cả bàn phím và máy tính đều có điện trở kéo lên cho Clock và 
Data lên nguồn 5V. 
4.2.3 Nguyên tắc truyền dữ liệu : 
Chương 4 : Các cổng giao tiếp được sử dụng trên Kit FPGA Spartan 3 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 123 
Khi nhấn 1 phím, bộ xử lý bàn phím gửi đến PC mã quét (scan-code) của phím được 
nhấn. Khi phím được nhấn, mã này gọi là make-code. Khi phím được nhả, mã này gọi 
là break-code. 
Break-code gồm 2 byte: byte đầu là F0 (đối với bàn phím mở rộng), byte kế là mã 
make-code. 
Scan code có 3 tiêu chuẩn: set 1, set 2, set 3. Bàn phím hiện nay thường sử dụng set 2. 
Ví dụ: 
Nhấn SHIFT: make-code = 12 . 
Nhấn A: make-code = 1C 
Nhả A: break-code = F0, 1C . 
Nhả SHIFT: break-code = F0, 12 . 
Bàn phím PS2 giao tiếp bằng giao thức nối tiếp bất đồng bộ 2 chiều .Xung clock được 
phát bởi bàn phím, tần số khoảng 10-16.7kHz .Các trạng thái hoạt động: 
Data=high, clock=high: trạng thái rảnh . 
Data=high, clock=low: trạng thái cấm giao tiếp . 
Data=low, clock=high: trạng thái máy chủ được yêu cầu truyền dữ liệu . 
4.2.3.1 Truyền dữ liệu từ bàn phím về máy chủ . 
Các bước thực hiện: 
Kiểm tra bus đang ở trạng thái rảnh . 
Clock ở mức cao ít nhất 50us trước khi bàn phím gửi data . 
Bàn phím gửi data từng khung dữ liệu 11 bit . 
Dữ liệu được đọc tại cạnh xuống của clock . 
Máy chủ có thể cấm giao tiếp bằng cách kéo clock xuống thấp . 
Khi clock được giải phóng, bàn phím lại truyền tiếp dữ liệu chưa hoàn chỉnh . 
Mã được truyền nối tiếp từng byte, với khung truyền 11bit. Gói dữ liệu gởi từ 
Keyboard theo thứ tự sau: 
1 start bit = 0; 
8 data bits (LSB truyền trước); 
1 parity bit (if number of ones is even, then parity bit = 1); 
1 stop bit = 1. 
Chương 4 : Các cổng giao tiếp được sử dụng trên Kit FPGA Spartan 3 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 124 
Hình 4. 6 : Thứ tự truyền data từ Keyboard đến Host. 
4.2.3.2 Truyền dữ liệu từ máy chủ đến bàn phím : 
Các bước thực hiện: 
Máy chủ cấm truyền từ bàn phím đến bằng cách kéo clock xuống thấp. 
Máy chủ kéo data xuống thấp và giải phóng clock báo hiệu bàn phím phát xung 
clock bắt đầu truyền dữ liệu. 
Dữ liệu được đọc tại cạnh lên của clock . 
Sau khi bàn phím nhận stop bit Keyboard sẽ truyền tín hiệu ACK đến máy chủ 
kết thúc quá trình truyền dữ liệu. 
Data được truyền theo khung dữ liệu gồm 11-12bit như sau: 
1 start bit = 0 . 
8 data bit (LSB truyền trước) . 
1 parity bit . 
1 stop bit = 1 . 
1 acknowledge bit (host only) . 
Hình 4. 7 : Thứ tự truyền data từ Host đến Keyboard. 
4.2.4 Mã quét bàn phím (Scancode) : 
Hình 4. 8 : Mã Scancode của Keyboard. 
Chương 4 : Các cổng giao tiếp được sử dụng trên Kit FPGA Spartan 3 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 125 
4.3 Giao tiếp VGA : 
4.3.1 Sơ đồ chân kết nối : 
Hình 4. 9 : Chân kết nối của chuẩn VGA. 
4.3.2 Các tín hiệu của VGA : 
Red , Green , Blue : 3 tín hiệu màu cơ bản . 
Horizontal Sync : xung đồng bộ quét ngang để tạo thành các dòng hình. 
Vertical Sync : xung đồng bộ quét dọc để tạo thành các frame hình. 
4.3.3 Nguyên tắc tạo hình : 
Đèn điện tử quét các tia điện tử theo hướng từ trái sang phải , từ trên xuống dưới để tạo 
hình ảnh. Một bức ảnh được đưa lên trên màn hình TV hay máy vi tính bằng cách : 
quét 1 tín hiệu điện theo phương nằm ngang đi qua màn hình, mỗi dòng quét 1 lần . Ở 
cuối của mỗi dòng, có một tín hiệu được quét ngược về bên trái của màn hình (tín hiệu 
xóa ngang) và sau đó bắt đầu quét dòng tiếp theo. Tập hợp các dòng hoàn chỉnh tạo 
thành 1 tấm ảnh (còn gọi là 1 frame). Mỗi khi có 1 ảnh được quét xong thì có tín hiệu 
điện khác (tín hiệu xóa dọc) được quét quay ngược lên trên màn hình và bắt đầu ảnh 
(frame) tiếp theo . Chuỗi này được lặp lại ở một tốc độ đủ nhanh để các ảnh được hiển 
thị có sự chuyển động liên tục. 
4.3.4 Nguyên tắc quét tín hiệu điện để tạo ảnh : 
Có 2 nguyên tắc quét ảnh khác nhau : quét xen kẻ và quét liên tục . 
Các tín hiệu TV sử dụng kiểu quét xen kẽ cổ điển, còn máy tính sử dụng kiểu quét liên 
tục (không xen kẽ). Hai 2 dạng quét này không phù hợp với nhau. 
Quét xen kẽ thì mỗi ảnh (frame) được chia thành 2 ảnh con (còn gọi là mành). 2 mành 
làm thành 1 ảnh. Ảnh quét xen kẽ được vẽ trên màn hình trong 2 lần quét : đầu tiên quét 
Chương 4 : Các cổng giao tiếp được sử dụng trên Kit FPGA Spartan 3 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 126 
hàng ngang của mành 1 và sau đó quay ngược lên trên quét tiếp các dòng của mành 2 . 
Mành 1 gồm các dòng từ 1 đến 262 ½ , mành 2 gồm các dòng từ 262 ½ đến 525. 
Hình 4. 10 : Tín hiệu quét xen kẽ . 
Quét liên tục , ảnh được tạo trên màn hình bằng cách quét tất cả các dòng trong 1 lần 
quét từ trên xuống dưới . 
Hình 4. 11 : Tín hiệu quét liên tục . 
4.3.5 Một vài chuẩn Video điển hình cho TV và PC : 
Video Format NTSC PAL HDTV/SDTV VGA (PC) XGA (PC) 
Vertical 
Resolution Format (số 
dòng trên 1 frame) 
Gần 480 
dòng (tổng 
số 525 
dòng) 
Gần 575 
dòng (tổng 
số 625 
dòng) 
1080 or 720 
or 480 (18 
định dạng 
khác nhau ) 
480 768 
Horizontal 
Resolution Format (số 
pixel trên 1 dòng) 
Xác định 
bởi băng 
thông từ 320 
đến 650 
Xác định 
bởi băng 
thông từ 320 
đến 650 
1920 or 704 
or 640 (18 
định dạng 
khác nhau ) 
640 1024 
Horizontal Rate(KHz) 15.734 15.625 33.75-45 31.5 60 
Vertical Rate (Hz) 30 25 30-60 60-80 60-80 
Chương 4 : Các cổng giao tiếp được sử dụng trên Kit FPGA Spartan 3 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 127 
4.3.6 Giản đồ thời gian cho các tín hiệu của chuẩn VGA : 
Tần số xung clock chính (tần số để hiển thị 1 pixel ) là f = 25 Mhz = 0.04 µs . 
Do màn hình VGA loại CRT có kích thước theo tỉ lệ wide/high = 4/3 . Do đó độ phân 
giải màn hình VGA nên chọn theo tỉ lệ 4/3 tức là : 512/384 ; 640/480 ; 800/600 ; 
1024/768.(để mỗi pixel được vuông hình ảnh không bị kéo dãn ra hay nén lại) . 
Tần số làm tươi màn hình (tần số quét dọc ) fV = 60 Hz , tần số quét ngang fH = 31250 
Hz . 
Hình 4. 12 : Thời gian thực hiện của tín hiệu Vertical Sync và Horizontal Sync. 
Hình 4. 13 : Giản đồ thời gian của tín hiệu Vertical Sync và Horizontal Sync 
Chương 5 : Sơ đồ khối và lưu đồ giải thuật 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 128 
CHƢƠNG 5 : SƠ ĐỒ KHỐI CỦA CÁC CORE VÀ LƢU 
ĐỒ GIẢI THUẬT THỰC HIỆN CÁC CORE 
Sơ đồ khối 
Chương 6 : Các ứng dụng đã thực hiện 
Thiết kế các ứng dụng trên Kit FPGA Spartan III 129 
CHƢƠNG 6 : CÁC ỨNG DỤNG ĐÃ THỰC HIỆN 
Các ứng dụng đã thực hiện sử dụng các tài nguyên trên Kit FpGA Spartan 3 gồm : 
 Các công tắc trượt (SW0 đến SW6) . 
 Nút ấn Pushbutton (PB0) . 
 4 Led 7 đoạn . 
 Giao tiếp PS/2 . 
6.1 Đồng hồ và đếm sản phẩm : 
SW0 : làm công tắc cho phép đếm . 
SW1 : công tắc để reset toàn bộ đồng hồ và đếm sản phẩm . 
SW2 : chọn chế độ hiển thị đồng hồ hoặc đếm sản phẩm . 
SW3 : chọn mode hiển thị giờ / phút hoặc phút /giây . 
SW4 : chọn mode hiển thị đếm sản phẩm tự động hoặc bằng tay (dùng nút ấn PB0) . 
SW5 : chọn mode để hiện thị đồng hồ dịch từ phải qua trái để hiển thị giờ / phút /giây . 
6.2 Giao tiếp PS/2 : 
SW6 : chọn mode để cho phép nhập từ bàn phím chuỗi ký tự để hiển thị Led và thực 
hiện dịch chuỗi ký tự này từ phải qua trái . 

File đính kèm:

  • pdfbai_giang_vhdl.pdf