1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng VHDL trong thiết kế số thiết kế vi mạch (IC) dùng điều khiển đèn giao thông

120 1,8K 4
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 120
Dung lượng 4,51 MB

Nội dung

Có hai loại PROM cơ bản, loại thứ nhất là Mask-Programmable là loại lập trình bởi nhà sản xuất và loại thứ hai là Field- Programmable PROM có thể lập trình bởi nhà sử dụng.Đối với loại P

Trang 1

BỘ GIÁO ĐỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP.HCM

KHOA ĐIỆN - ĐIỆN TỬ

NGÀNH ĐIỆN TỬ - VIEN THONG

DEN GIAO THONG

GVHD: KS.TRUGNG NGOC BAO SVTH : NGUYEN THANH QUANG MSSV : 02DHDT158

Trang 2

Tế VỤ cực tp i pp ay aa tap ie te ie app pa se at Ö

LOT BAN ON

Trong thời gian thực hiện để tài, các thầy cô trong khoa Điện- Điện

Tử, đặc biện là thây hướng dẫn: K.s Trương Ngọc Bảo đã giúp đỡ em rất

nhiệt tình Với một lượng kiến thức nhất định, nếu không có những sự

giúp đỡ đó em đã không thể hoàn thành được luận văn của mình, vì vậy

em xin được nói lời cảm ơn chân thành nhất đến các thầy cô

Em cũng xin gởi lời cảm ơn tới văn phòng khoa Điện- Điện Tử đã

tạo mọi điều kiện tốt nhất để giúp sinh viên có thể hoàn thành luận văn

Trang 3

ĐÔ ĐˆĐ©Ð6AÔ00060000000A®006000000006000000000000000060000000000000000000000000000000000000000090000000690009e0©e-0e 651 1966%6%096®%®66® P9 PĐbbe0000090000006009000000000600000000000000600000000000000000000000000000G00000000000900000000000060009600609000900©ee®® ĐĐ20ÔÂAĐĐe0Đ00600000400000000000000000000000000000000000000000000000000000000000000000000000900660000060600060061516060990906669%96®®66® ĐÔÖÐĐÔĐ000b006600000000000000000000000000000000000000000000000000000000000000000000000000000000006060000060000000009560060606006

ĐC ĐĐ”»ĐĐG00006000000009090000000000000000 060000000000 00000000000600009600000000000000000000000900909009060006090e0096°091ee°066®686

“ĐA ĐĐ00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900009060060”e°e09090®606e6® Đ00000000000009000000000000090000000000000000600000000000000000000000000900000000000000000000000000000006060606699ee.e009060666 ĐÔĐE00AĐAAGOeÔ00000000000000000000000000000006000000000000000000000090000000000000000000000000000060060000006060060000e.e°666® ĐÔĐeĐeĐĐĐ0Đ06000600000000000000000000000000000000000060000000006000009000000000000000000000000000000000060000000000eeee6618 6 ÓĐÔĐÐĐACbĐĐĐĐÔĐ0000%060000000000600000000006000000000000000000000000000000000000000000000000000900000066000000060000006000560606606 ẺAEÔĐĐĐĐ©ĐĐĐĐeG000000000000000000000000600000000000000000000000000000000000000000000000000009000000000000006900960609001® 666 ĐÔĐĐĐĐGÔÉЮР000 0006000000000006600000000000000000000000000000000000000000900000G00000000000009000000000000600606009e9e0.e9906®66® Đ»ĐôĐĐĐĐĐ0600006000000020000000906090060000000000000000006000000000000000000000000000000000009600000900000900900600069606000169®9600%®ee9® ĐÔôĐĐôÔPObĐbee006000000000000000000000000000900000000060000000000000000000600000000000000000090900000060006 SOS BOOS BOOS SHES PTUTTETITITITTT TITS TTT TTT rrr

ĐẺĐĐĐĐĐĐĐĐĐeĐÓ000000000006000000000000000000000000000000000000000000000000000000000000000000000006000006960060000960e.e.6601966 ĐẺÔSÔ6G0A0060000040000000000009600000090600000000000000000000606000000900000000000000000000000000000909000009600066060Đ%06001%%96006616

Trang 4

‹{°ợ⁄9 i9 9 9 919 000006 000010.000406 060 00000090009009960009090000000000 00060 0000090000000990 090000960000 00960900/0096 00069960006 6660606 ĐÔ» Đ©tÓ00006000600000000000000000009000900000000000000000000600000000000000000000000000000000000000000000090004e00.6000e”eeeÓ®ee66

ĐÓ ĐÓ ĐA” ^^ 2006 000900660000000000000000000600000000000000000000000000000000000000000090000000000000®0660”e90069690600009606® ĐÓ0ĐAeÔbÐ0Đ00000000000600000000000000000000060000000000000000090000000000000000000000000600069.e0e0000900000061860600Đ%1%660060666666% ĐÔẺĐĐÔÔ@0bPeEbbb0000060000600000000000000000060600000000000000000000000000000000000000000000000090006000000006060000600001916°009©60666 ĐẺĐôÔBbECÔĐCĐb0000000000000600000000000000000000000000600000000000000000000000000000000000000000000900000000096000606006000900665 6660 ÓêĐĐeẺÔAĐ0000000000060000000000090000060600000000000000000000000000000000006000000000000000000060000000006400006969699ee900®660% ĐÔbĐÓCôbĐĐ000000900009600069000000000000006006000000060000000000000000000000090000000000009006000000000000606606000000cv600960066°066% ĐôAôÔeeeÐPObd000000000000606000000006000000000000000000000000000000000000000000000000000000069000000000006000000096000909601060690606°e6 ĐÔ@AĐĐĐOĐĐĐ0600600000000000000000000000000060000000000000000090000000000000000000000000000000000000000906060060060000600900606®6666 ĐôÔBSbÐebebÔbbnĐebÐBEĐĐEDĐAG000000000000000000060000000000000000000000000000000060000606000000900000000000090006000000600e-e.so-e0s0e666% ĐẺÔĐBEGPGCebbĐĐ0000600000000000000600000000000000000000000000090000000000009000000000000000060009060060000600600ee00e°e6061606060906096% 66% ĐẺAĐOBObÔoDPbbDbĐ00800000006000000000600000000000000000000000600000000060000000000000000000000000000900009000000606©01”°°-e1"ee°e°ee® ˆÝ“ HP b2 0000 0000400000000000000000000000000000000090000000000000000000000000 00000000 000000000000000069096060090000%6606%66966 ĐÔÔôOĐeGGƠÔb00%0000000006000000000000000000000000000660000000000000000000000000000000000000000090990000090006006060606906 1000969960656

ĐÓ 0 Đo ủ" Đo b1 ĐĐĐ0 0000 00699 000000000060000000000000006000000000000000000009000009000000009000000000000900090009006000e9 6 s961e® 696 ÔĐĐĐG000600000000000000000000000000000000000000000000000000000000900000000000000000000000000000090000090006060090©e°ee60 0%

Ô©Ôe°eÐeeẢed°eesee©o09000000600000000000000000006060000000000000000000000000000000940000000000000000600000000009000606090600006906696®606006

ĐHKTCN,Ngày tháng năm 2007 Giáo viên phản biện

Trang 5

BỘ GIÁO DỤC VÀ ĐÀO TẠO _ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

*x‡w*+**#*+*

NHIỆM VỤ ĐỎ ÁN TÓT NGHIỆP

(Sinh viên phải đóng bản nhiệm vụ này vào trang thứ nhất của đô án)

UNG DUNG VHDL TRONG THIET KE SO THIET KE VI MACH (IC) DUNG DIEU KHIEN DEN GIAO THONG

2 Nhiệm vụ đồ án tốt nghiệp (Yêu cầu về nội dung và số liệu ban đầu):

- Tìm hiểu tổng quan về CPLD và FPGA

- Tìm hiểu phần mềm MaxPluslI lập trình cho vi mạch FPGA

- Thiết kế, lập trình chức năng điều khiển cho vi mạch FPGA

- Thực hiện mô phỏng trên PC, mỉnh họa cho các chức năng của vỉ mạch

3 Ngày giao nhiệm vụ đồ án : 02/10/2006

Nội dung và yêu cầu của ĐATN đã được thông qua

Ngày.⁄Ô tháng 21Onăm 2006

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

Trang 6

MỤC LỤC

Li Gi 000008 1

HO 18 c0 PB 2

30118090) 0i, 07 2

Phan Il: Thue hi6n oo 2

Từ khoá sử dụng, _— 2

PHẦN I: CƠ SỞ LÝ THUYẾT dc HH Ki TK ch n3 4 10 3 CHUONG 0: TONG QUAN e0 07.0 ec 0n 4

TL Téng quan a9 4

Il Tổng quan vé EPGA ì.eeieierrrrrrrrrrrrrrrrrrrrrrrrrrrrrrre 4 CHƯƠNGI: MÔ TẢ PHẦN CỨNG VÀ CÔNG NGHỆ FPGA - 6

I Giới Thiệu Về Quá Trình Tự Động Hoá Thiết Kế - - 6

Il Sự phát triển của các thiết bị lập trình -ccccsrerererrrrrri 6 Ill Giới thiệu sơ lược về các công nghệ lập trình -s 8

IV Các công cụ phần mềm hổ trƠ - 5-5-5522 tteerrrrrrrrrrrrrre 9 CHƯƠNG II: NGÔN NGỮ LẬP TRÌNH VHDIL -. 65-5 5+2 2>czzxze+ereee 11 1 608i 0 11

II —- Khai bdo thute thé voce cccccccccecesecsceceeseecseaeeeecseaeneseeenesstereeeesenens 13 II) hi ca 7a 13

ILI1 Đặt tả cấu trúc của mô hình . - 22+ + nierrsreerrerrere 14 IMH.2 Đặt tả mô hình dòng dữ liệu 2-5 ee eee e entree renee ee taeees 15 IH.3 Đặt trưng mô hình mô tả hành vi - 2s eects eee eee eneees 16 IH.4 Kiểu hỗn hợp của mô hình . recess eee eeereeteeeesneeeeeeesees 19 in 14/0, (ii na he 20

hi T40 c0 an ae 22

im vy 0.0 24

II.§ Kiểu phân tích cà HH re 25 086 ,0050.1 25

CHƯƠNG III: CAC PHAN TU NGON NGU CO BAN . -c5c-+2 27 I e0 01 ccce ec ccc cece ccc cseecssececceceenenseeceteeeccecescueesaneeseseeseeecenesaeeneneces 27 I 211016/0158:18:/1) 008 28

TED HAN g —= .,Ô 28 II :›r.EHdẶẮÃẶỶÃẮ 28

Trang 7

li a4 i87 1 30

IL4.5 Các cách khác để khai báo đối tượng -s> 30 TH Các loại đữ liệu - 5 ẶSsnnhhhhnhhhhHtrrrrdhrreihihthiee 31 IIẶN con e 32

TH.2 G00 717875 32

THD.3 ‹ 1 51a 35

II3.1 Kiểu Array type -. -o- nen con 36 I6 {con 37

HL4 Kiểu truy cập -5Ặ Set 37 II.5 Kiểu incomplete type -5- + cnennrrrrtrrrrrrtrtirrrrreirrirrrree 39 II ca 39

1 Š.ðẻ an 4 40

là NH0: 0 40

lv 0ï 0 1 a 40 Hi co 0 .ố.ố ố 41 TV.4 Todi tt CONG .ố 42 II bì ải 8 42

là 1 NuY ó1 43

'9?(8/900/€50/2968):7.) 2012:0007 44

I HH Yỗ ho ng ôn 44

LL Khai Báo Thực ThỂ St 22tr 44 y8 <0 45

I9) 0ì 8 ẽ 46 1.4 Lénh Gar na 41

L5 Phép Gán Tín Hiệu nen HhưHưhthre 49 I1 .Đ 49

cm 0 50

I.§ Lệnh Case - 2 sS.S In Hư th Hà HH 10 1111111 51 L9 Lệnh Null 2-5522 1S ghi Hư 52 I.10 Lệnh LLOOp - + như tr th HH Hi hit 52 LIL L@nh Exit o ccccc 52

IV 00 i1 53

Trang 8

II Mô hình mô tả luồng dữ liệu - 5-5 ccsstertrrrerrrrrrrrrrrrrim 54

II.1 Phát biểu gán tín hiệu đồng thời -. -ssserrirrrrrrrrree 55 IL.2 Phat biểu gán tín hiệu tuần tự -. -++eneserrerrrerrrrrrrrrre 56

I4 Phép gán tín hiệu có sự lựa chọn -. -srerhrerrrrtrrrrrrrrre 57

088.4 ï0 11.0) 1 58

IV Định cấu hình và khai báo cấu hình -+ scsenhrertrrrrrrrrrrtr 60

TV.2.Dat t& CHU WIND .ố 61

Xã: 65

VILL Khai b&0 KGL 71 VI2.Khai báo thân khối -snsccennreerrrrrrrrtrrtrtrrtrrrrrrrrrrrrr 71

CHƯƠNG V: PHẪN MÊM MAX+PLUS II -. -+-°5+>tsenserrrrrrrerrrrre 77

VI Tổng hợp cho chức năng mô phồng - -5 52->+snsrerttrrrerrrrrerrte 79

IX Thiết lập và xem các tầm mô phỏng thời gian -+-cccsrrrrn 81

XI Mô phỏng eerenrrrrrrrrrrrrrrrrrrdtrrdrrrrdtrrrrern 83

PHẦN II: THIẾT KẾ VÀ MÔ PHỎNG 5-22-22 2222 trtrrtrrrrrrrrrirrre 85

Trang 10

Lời nói đầu

LỜI NÓI ĐẦU

VHDL là một ngôn ngữ mô tả phần cứng rất mạnh, hỗ trợ cho các vi mạch lập trình như các họ CPLDs, FPGAs Được phát triển từ thập niên 70, với khả năng

mềm dẻo, cấu trúc ngôn ngữ lập trình của VHDL gần giống với ngôn ngữ tự nhiên

đã giúp cho người thiết kế rất dễ dàng linh hoạt các thiết kế của mình Cấu trúc cú

pháp trong ngôn ngữ VHDL tương tự như các ngôn ngữ cấp cao như C++, Pascal, Java nên người thiết kế rất dễ dàng làm quen, vận dụng vào các thiết kế cụ thể Tuy ngôn ngữ VHDL xuất hiện trên thế giới đã lâu nhưng nó vẫn còn là khá

mới mẽ so với Việt Nam nhất là đối với sinh viên Với mong muốn các bạn sinh

viên tiếp cận được những kỹ thuật tiên tiến của thế giới và giúp các bạn có thêm một công cụ hữu ích trong học tập, tôi đưa ra để tài “Ứng dụng ngôn ngữ VHDL

trong thiết kế số, thiết kế vi mạch (IC) dùng điều khiển đèn giao thông”, mô phỏng trên phần mềm Max+plus II Để tài được trình bày theo quá trình nghiên cứu

của tôi

Trang 11

PHAN II: THỰC HIỆN

Viết chương trình VHDL thiết kế (IC) điều khiển đèn giao thông

Mô phỏng kết quả trên phần mềm MAXPLUS H

Từ khoá sử dụng:

Trang 12

Phân] Cơ sở lý thuyết

PHANI:

CƠ SỞ LÝ THUYẾT

Trang 13

Chương 0 : Tổng quan về CPLD, FPGA

CHƯƠNG 0: TỔNG QUAN VỀ CPLD, FPGA

là PAL, like boclk

CPLD 1a ho vi mach co nhiều ngõ vào và nhiều ngõ ra Nó có nhiều khối mạch trên các chip các khối nối dây bên trong kết nối với các khối mạch

Các CPLD thương mại có kích thước từ chỉ 2 khối giống PAL đến 100 khối giống PAL.Một khi CPLD được lặp trình thi no sé giữ trạng thái được lập trình đó ngay ca khi không mất nguồn Tính chất này gọi là lập trình nonvolatile

Il TONG QUAN VE FPGA

FPGA gém mét day cac phan tử rời rạc có thể được kết nối với nhau theo một cách chung Giống như PLD các kết nối giữa các phan tử là có thể lập trình được

FPGA 1a chip co dung lugng kha lớn, các FPGA hoàn toàn khác với các CPLD không chứa các mặt phẳng AND,OR mà FPGA cung cấp các khối logic để cài đặt các hàm mong

muốn

Trang 14

Từ mô hình lý thuyết của một FPGA ta thấy nó bao gồm một dãy hay nhiều các khối

logic (logic block) cé thể được kết nối bằng các nguồn kết nối chung (tài nguyên kết nối), được tổ chức tạo thành các kênh dẫn Bên trong các kết nối là các chuyển mạch lập trình được (/O cell) dùng để kết nối các logic block với các đoạn dây, hoặc dùng để nối các đoạn dây với nhau theo nhiều cách

Mạch logic được cài đặt trong FPGA bằng cách ánh xạ logic vào các logic block riêng lẽ và sau đó nối các logic block cần thiết qua các chuyển mạch

Công nghệ FPGA là một thiết bị cấu trúc logic cho phép người sử dụng lập trình trực tiếp mà không phải thông qua bất kỳ một công cụ chế tạo nào do đó nó cho phép chế tạo nhanh và giá thành sản phẩm được giảm đáng kể và đây là ưu điểm lớn nhất của công nghệ này và hiện nay đang được sử dụng rộng rãi và phổ biến

Trang 15

CHƯƠNG I: MÔ TẢ PHẦN CỨNG VÀ CÔNG NGHỆ FPGA

I Giới thiệu về quá trình tự động hoá thiết kế:

Để quá trình thiết kế hệ thống số được đễ dàng hơn, người ta dùng các công cụ CAD

(computer aided design:công cụ thiết kế trợ giúp bởi máy tính ) Thông thường thì

các công cụ: nhập yêu cầu thiết kế, tổ hợp , tối ưu hoá, mô phỏng và thiết kế vật lý

Có 3 phương pháp để nhập yêu câu thiết kế:dùng các bàng chân trị, dùng cách vẽ sơ

mạch hoặc dùng các ngôn ngữ mô tả phần cứng (HDL: hardware decription languages) HDL (hardware decription languages): tương tự các ngôn ngữ lập trình thông thường

trên máy tính nhưng HDL được dùng để mô tả phần cứng hơn là thực thi chương trình

trên máy tính

Sau khi các mô hình phần cứng HDL được mô phỏng, kiểm tra, tổng hợp sẽ được ánh

xạ công nghệ vào các thiết bị lập trình

Công nghệ mạch tích hợp cao (VLSI) có thể cho phép ta chế tạo các mạch số phức

tạp giá thành thấp với số lượng transistor trên một chip Tuy nhiên các công nghệ này cần có chi phí ban đầu cao và thời gian sản xuất lâu làm cho giá thành của mỗi đơn vị sản phẩm cao

II Sự phát triển của các thiết bị lập trình:

Các thiết bị lập trình được đóng vai trò quan trọng lâu dài trong thiết kế các phần cứng số Chúng là các chip đa dụng có thể được cấu hình theo nhiều cách cho nhiều ứng dụng

Loại đầu tiên của thiết bị có thể lập trình ứng dụng rộng rãi là PROM(programmable

read only memory).PROM là thiết bị lập trình chỉ một lần gồm một dãy các ô nhớ chỉ

đọc PROM có thể thực hiện bất kỳ hàm logic theo bang sy that nao bằng cách sử dụng các đường địa chỉ như các ngõ nhập và ngõ xuất được xác định bởi nội dung các ô nhớ

Có hai loại PROM cơ bản, loại thứ nhất là Mask-Programmable (là loại lập trình bởi nhà sản xuất) và loại thứ hai là Field- Programmable (PROM có thể lập trình bởi nhà sử dụng).Đối với loại PROM được lập trình bởi nhà sản xuất có ưu điểm là có hiệu suất tốc

độ cao vì các kết nối bên trong của thiết bị này được thực hiện bằng phần cứng khi sản xuất , ngược lại các kết nối của Field- “Programmable luôn cần đến một số loại chuyển mạch lập trình được do đó tốc độ kết nối bị chậm hơn so với Mask-Programmable

e Các chip Eield-Programmable: rẽ hơn các loại chip Mask-Programmable khi sản xuất với số lượng nhỏ

Trang 16

e_ Các chip Field-Programmable: có thể lập trình nhanh trong vài phút, trong khi các chip Mask-Programmable khi san xuất phải hàng tuần hoặc hàng tháng

Hai biến thể của Field-Programmable của PROM là Erasable Programmable Read- Only Memory (EPROM) Electrically Programmable Read-Only Memory (EEPROM) cung cấp thêm một ưu điểm khác: cả hai loại PROM này có thể xoá và lập trình nhiều lần

Một loại thiết bị lập trình khác được thiết kế đặc biệt để thực hiện các mạch logic là Programmable Logic Deevice (PLD) Một PLD thông thường gồmmột dãy các cổng AND được nối với một dãy các cổng OR Mạch logic có thể được thực hiệntrong PLD dưới dạng tổng các tích (sum of products) Loại cơ bản nhất là Progarmmable Array Logic (PAL) PAL gồm một khối các cổng AND lập trình được nối đến một khối các cổng OR cố định Một loại khác linh hoạt hơn là Progarmmable Logic Array (PLA).PLA

cũng có cấu trúc giống như PAL nhưng kết néi 1a Jap trinh dudc, PLA 6 ca hai loại là

Mask và Field Programmable

Cả hai loại PLD cho phép thực hiện các mạch logic có tốc độ cao, tuy nhiên cấu trúc

của các mạch này đơn giản (các mạch logic nhỏ)

Loại thiết bị lâp trình tổng quát nhất gồm một dãy các phần tử rời rạc có thể được kết

nối với nhau theo mô tả của người sử dụng Loại thiết bị này được gọi là Mask- Programmable Gate Array (MPGA) Các MPGA phổ biến nhất gồm các hang transistor

có thể được kết nối để thực hiện các mạch logic Cáckết nối do người dùng định nghĩa có

thể có cả trong các hàng và cột Ưu điểm lớn nhất của MPGA so với cấu trúc cha PLD la

nó cung cấp một cấu trúc tổng quát cho phép thực hiện với những mạch logic lớn hơn Vì cấu trúc kết nối của nó có thể mở rộngcủa cùng với số lượng logic Fleld-Programmable Gate Array (FPGA) kết hợp khả năng lập trình củaPLD và cấu trúc kết nối có thể mở

rộng của MPGA Các thiết bị lập trình loại này có mật độ tích hợp logic cao, logic vào các logic block riêng lẽ và sau đó nối các logic block cần thiết qua các chuyển mạch

Điểm bắt đầu cho quá trình thiết kế là mạch logic ban đầu cần thiết Bước này đòi một sơ dé biểu diễn mạch hay một mô tả VHDL hoặc đặt tả các biểu thức Boolean Các biểu thức Boolean sau đó được rút rgọn bằng công cụ tối ưu logic nhằm tối ưu

về mặt diện tích và tăng tốc độ của mạch Các biểu thức Boolean được tối ưu hoá sẽ được truyền tới mạch logic block của FPGA bằng cách ánh xạ công nghệ (techonology mapping)

Khối logic tối thiểu số khối được dùng tức giảm tối đa về mặt diện tích hoặc giảm

các đường kết nối kết nối để tăng tốc độ cho mạch

Trang 17

Chương I : Mô tả phần cứng và công nghệ FPGA

Sau khi đã có được số khối cần thiết thì chương trình placement sẽ quyết định đặt các

khối này ở đâu trong FPGA, có nhiều giải thuật đặt ra cho chương trình placement này

Bước cuối cùng của quá trình thiết kế hệ thống số là chương trình routing nhằm tạo

ra các đoạn dây FPGA và chọn các chuyển mạch có thể lập trình được phù hợp với các nối khối logic Sau khi thực hiện thành công các bước routing và placement, ngõ ra của

hệ thống CAD được nạp vào các đơn vị lập trình tạo ra chip FPGA cuối cùng Toàn bộ quá trình cài đặt mạch trong FPGA chỉ mất khoảng vài phút đến một giờ, phụ thuộc vào loại FPGA đang dùng

IIL Giới Thiệu Sơ Lược Về Các Công Nghệ Lập Trình:

Prog.trans lớn

giữa các khối logic của FPGA và thông thường thì một FPGA có thể lớn hơn 100.000

phần tử lập trình

e Chiếm càng ít diện tích của chip càng tốt

e Có trở kháng thấp khi ở trạng thái ON và trở khángcao ở trang thái OFF

e C6 dién dung ký sinh thấp khi nối các đoạn dây

Trang 18

Chương I :

Tùy thuộc vào ứng dụng của EPGA các phần tử lập trình có thể có các đặc tính khác

một chip

Mô tả phần cứng và công nghệ FPGA

nhau Ví dụ như các phần tử bay hơi có thể lập trình đuợc

Các loại FPGA trên thị trường :

e_ Có thể chế tạo một cách tin cậy số lượng lớn phần tử lập trình trên

Có rất nhiều hãng đầu tư nghiên cứu và ứng dụng ngôn ngữ VHDL để thiết kế

các mạch lập trình theo nhiều tiêu chuẩn công nghệ khác nhau Một số phần mềm thông dụng của các hãng như: Exemplar Logic's Leonardo, Synopsys FPGA

Exeoress, Synplify, Max+Plusll

Trang 19

Trong đó Max+PlusIl là phần mêm đa chức năng thực tiễn thiết kế, tổng hợp

mạch cho một số loại FPGA của hãng Altera

Max+PluslI hỗ trợ biên dịch, mô phỏng, phân tích định thời và tổng hợp cho một

số thiết bị: EPM7128LC84-7,EPF10K20RC240-4 Và đây là phần mềm được sử dụng trong luận văn này để hỗ trợ cho phần thiết kế

Trang 20

-10-Chương II: Ngôn ngữ lập trình VHDL

CHUONG II: NGÔN NGU LAP TRINH VHDL

Một ý tưởng phân cứng của hệ thống số được gọi là một thực thể và việc mô tả

kết cấu của mô hình phần cứng được gọi là kiến trúc (architecture) Một thực thể X

, khi được sử dụng trong một thực thể khác (thực thể Y) thì nó trở thành một thành phần / hợp phần (component) của thực thể Y Do đó một thành phần cũng là một thực thể, thực thể này còn phụ thuộc vào cấp độ của mô hình thiết kế

Đối với quá trình mô tả một thực thể VHDL cung cấp 5 loại cấu trúc cơ bản khác nhau được gọi là các đơn vị thiết kế gốc (design units) bao gồm:

Thực thể (entity): được mô hình hoá bằng cách sử dụng sự khai báo một thực

thể và ít nhất là phần thân kiến trúc (architecture)

Sự khai báo thực thể mô tả hình dáng bên ngoài của thực thé

Thân kiến trúc (architecture body): mô tả cấu trúc, kết cấu bên trong của một

thực thể

Ví dụ: một tập hợp các mối liên kết giữa các thành phẩn: là biểu hiện cho việc mô

tả cấu trúc của thực thể đó,hoặc là một tập hợp các lệnh gán tín hiệu đồng thời hay các lệnh tuần tự để mô tả hành vi cho thực thể Mỗi cách mô tả thực thể có thể

được mô tắ trong một thân kiến trúc khác nhau hoặc tổng hợp nhiều thân kiến trúc

khác nhau, hoặc tổng hợp nhiều thân kiến trúc đơn Thực thể là một mô hình có thể tồn tại dưới dạng sau:

Trang 21

Thân kiến trúc( architectare bodies)

Khai báo cấu hình (configuration): được dùng để tạo cấu hình cho thực thể Nó

mô tả mối liên kết của một thân kiến trúc từ thân kiến trúc bất kỳ có thể liên kết

với thực thể đó

Nó cũng dùng để mô tả các kết nối của thành phần (component) trong việc

chọn một thân kiến trúc cho các thực thể khác Một thực thể có thể có một số cấu hình khác nhau

Khai báo khối (package) tập hợp các khai báo liên hệ nhau như là: khai báo

kiểu, khai báo kiểu con và khai báo chương trình con , các khối khai báo này có thể được dùng chung cho nhiều đơn vị thiết kế đơn vị thiết kế riêng biệt

Thân khối (package body): bao gồm những định nghĩa của các khai báo cho chương trình con chứa đựng bên trong khai báo khối

Khi một thực thể được khai báo, nó cần một hệ thống VHDL công nhận Hệ

thống VHDL tiêu biểu là quá trình phân tích và mô phỏng

Phân tích (analyzer): là đọc một hay nhiễu bản thiết kế bao gồm file riêng và

file dịch này sang thư viện khác của chúng sau khi kiểm tra lỗi cú pháp và ngữ nghĩa Thư viện thiết kế là vùng trong môi trường chủ (hệ thống VHDL, hỗ trợ cho môi trường chủ) tại đây lưu trữ các bản thiết kế đã được biên dịch

Quá trình mô phỏng (simulator): là mô phỏng một thực thể được mô tả bằng cặp thực thể- kiến trúc (entity-architecture) , hoặc cấu hình (configuration) bằng cách đọc bản biên dịch từ thư viện thiết kế và quá trình thực hiện bao gồm các bước sau:

Trang 22

Il KHAI BAO THUC THỂ:

Khai báo thực thể là xác định tên thực thể được mô hình hoá và tập hợp các cổng của nó (ports) Ports là nơi xác nhận và truyền đi các tính hiệu để mô hình thực thể có thể trao đổi thông tin với các mô hình khác ở môi trường trong môi trường thiết kế

Sau đây là đoạn khai báo thực thể half-adder

liệt kê bao gồm bai loại ký tự :”0” và “1”

Từ thí dụ trên ta thấy khai báo nbmô hình thực thể không có xác định được những cấu trúc bên trong của thực thể ( nó chỉ cung cấp một cái nhìn tổng quát về bên ngoài của một mô hình hoá trong ngôn ngữ của VHDL) tức là chỉ khai báo tên

và các cổng giao tiếp của thực thể

Il THAN KIEN TRUC (ARCHITECTURE BODY):

Chỉ tiết bên trong của một thực thể được khai báo bởi thân kiến trúc bằng cách

dùng một vài mô hình sau:

1 Tập hợp các kết nối bên trong các thành phần (mô tả cấu trúc)

2 Tập hợp các phát biểu gán đồng thời (mô tả dòng đữ liệu)

3 Tập hợp các phát biểu gán tuần tự (mô tả hành vì)

4 Sự kết hợp các dạng trên

Trang 23

II Đặt tả cấu trúc của mô hình (structural) :

Trong đặt tả cấu trúc của mô hình , một thực thể (entity) được mô tả bằng một tập hợp các kết nối bên trong các thành phần (compoment)

Ví dụ: đặc tả cấu trúc cho mô hình thực thể bộ cộng HALF-ADDER:

khai báo thực thể bộ cong HALF—ADDER:

Entity HALF—-ADDER is

Port (A,B:in BIT; SUM,CARRY: out BIT);

End HALF-ADDER;

đặc tả thân kiến trúc cho bộ cộng HALF-ADDER;

Architecture HA-STRUCTURE of HALR-ADDER is

X1:XOR2 port map (A,B,SUM);

A1:AND2 port map (A,B,CARRY):

End HA-STRUTURE;

Tên của thân kiến trúc là HA-STRUTURE: được khai báo cho thực thé HALF-

ADDER thì chỉ ra các cổng giao diện cho thân kiến trúc này

Thân kiến trúc bao gồm hai phần : Phân khai báo( trước từ begin) và phần phát biéu (sau tif begin) , hai khai báo hợp phân (compoment) được thể hiện ở phân khai

Trang 24

báo của thân kiến trúc Những khai báo hợp phần (XOR và AND) mô tả giao điện

bên ngoài các hợp phần (compoment) được sử dụng trong thân kiến trúc đó Cả hai hop phan này có thể là đã có sẵn trong thư viện hoặc nếu chúng không có ,

chúng phải được liên kết (pind) đến một thành phân khác trong thư viện

XI và AI là các nhãn của thành phân cụ thể Trong phát biểu đầu tiên nhãn XI chỉ ra tín hiệu A và B (các cổng vào của HALF-ADDER) được nối kết với các cổng

X và Y (là các cổng vào) của hợp phần XOR2, trong khi đó cổng ouiput Z của hợp phân này được kết nối tới cổng output SUM của thực thể HALF- ADDER Tương tự

phần AND2, còn cổng N liên kết tới cổng ra CARRY của HALF-ADDER

Chú ý trong trường hợp này các tín hiệu trong port map (ánh xạ cổng) của đối tượng thành phần này và các tín hiệu cổng trong thành phần khai báo phải được liên kết theo vị trí Mô tả cấu tric cho HALF-ADDER 14 chưa mô tả đến bất kì chức năng của nó

Một mô hình thực thể chuyên biệt sẽ được dùng để mô tả cho compoment XOR2 và AND2, do đó mỗi một thành phần sẽ có phần khai báo thực thể và một thân kiến trúc riêng của nó

Sự khai báo các thành phân được tạo nấc (phân cấp) trong phần phát biểu của

thân kiến trúc bằng cách sử dụng các phát biểu đối tượng thành phần Các phát biểu đối tượng thành phần là các phát biểu đồng thời , vì thế thứ tự phát biểu của chúng là không quan trọng Một mô hình thực thể cấu trúc chỉ để dùng cho mô tả các kết nối của các hợp phần, nó không mô tả hành vi cho các hợp phần hay thực thể nào

II.2 Đặt tả mô hình dòng dữ liệu (data flow):

Đặt trưng của mô hình này là dòng dữ liệu qua entity là được mô tả là chủ yếu bằng cách sử dụng các phát biểu gán tín hiệu đồng thời Cấu trúc của thực thể không được mô tả chi tiết trong mô hình loại này

Ví dụ :thân kiến trúc cho thực thể HALF-ADDER theo mô hình dòng dữ liệu là:

Architecture HA-CONCURRENT of HALF-ADDER is begin

SUM <=A xor B after 8 ns ;

CARRY<= A and D AFTER 4 ns;

Trang 25

Một mô hình dòng đữ liệu của thực thể HALF-ADDER được mô tả bằng cách

sử dụng hai phát biểu gán tín hiệu đồng thời Trong phép gan tín hiệu đồng thời thì

tín hiệu “<=” là chỉ ra giá trị được gán cho tín hiệu

Gia trị của biểu thức ở bên tay phải của phát biểu được tính toán được gán vào tín hiệu ở phần bên trái, gọi lá tin hiéu dich ( target signal) Phép gan tín hiệu đồng

thời được thi hành khi xuất hiện 1 sự kiện tín hiệu của biểu thức bên phải, giá trị

của tín hiệu được thay đổi

Thông tin trì hoãn ( delay) thêm vào trong phát biểu gán tín hiệu bằng cách dùng mệnh để after Nếu 2 tín hiệu A và B xuất hiện tại thời điểm T thì khi đó cả 2 biểu thức bên phải của phép gán tín hiệu được tính toán Tín hiệu SUM được gắn giá trị mới sau 8 ns, đồng thời tín hiệu CARRY cũng được gán giá trị mới sau 4 ns

Do đó khi mô phỏng tới thời điểm (T+4) ns CARRY sẽ được gán giá trị mới , và tại thời điểm (T+8) ns thì SUM sẽ được gan gan giá trị mới Vì vậy cả hai phát

biểu gán được phát biểu đồng thời

Các phát biểu gán tín hiệu đồng thời cũng là các phát biểu đồng thời, do đó thứ

tự các phát biểu trong architecture là không quan trọng , ngoài ra trong architecture HA-CONCURRENT còn có sự liên kết đến khai báo của entity HALF-ADDER HI.3 Đặt trưng mô hình mô tả hành vi (behavioral style oŸ moding):

Một mô hình mô tả hành vi tương phản với mô hình mô tả hành vi data của thực thể, mô hình mô tả hành vi bao gồm một tập hợp thứ tự cáv phép gán tín hiệu tuần

tự được khai báo trong phát biểu process Nó chỉ đơn thuần mô tả chức năng của

thực thể chứ không mô tả chỉ tiết cho cấu trúc của thực thé

Một phát biểu process là một phát biểu đồng thời có thể thêm vào architecture

Ví dụ hành vi cho thực thể DECODER 2x4 bao gồm:

Giả sử ta đã có một entity DECODER2x4 đã được khai báo, ta mô tả thân kiến trúc của nó theo kiểu hành vi:

Architecture DEC-SEQUENTIAL of DECODER2X4 is Begin

Process (A,B,ENABLE)

Trang 26

-16-Chuong IT: Ngôn ngữ lập trình VHDL

Variable ABAR, BBAR:BIT;

Z(0) <= not (ABAR and BBAR);

Z(2) <=not (A and BBAR);

Z(1) <= not (ABAR and B);

Một phát biểu process có 1 phần khai báo (trước từ begin) và một phần phát

biểu (giữa từ begin và end process) Các phát biểu được đưa vào phân phát biểu là các phát biểu tuần tự và sẽ được thực thi 1 cach tuần tự

Danh sách các tín hiệu trong hoặc sau từ process thiết lập danh sách 1 cách có tuần tự phát biểu process thực thi khi có một sự kiện trên bất kỳ tín hiệu nào trên danh sách xuất hiện

Trong ví dụ trên khi có một sự kiện xảy ra trên tín hiệu A, B hoặc ENABLE thì các phát biểu trong process sẽ thực thi một cách tuần tự

Khai báo biến (bắt đầu bằng từ khoá variable) trước từ begin : ta khai báo 2

biến ABAR và BBAR, biến khác với tín hiệu là nó luôn được gán giá trị ngay tức khắc và toán tử cho phép gán tín hiệu, ký hiệu “ :=” Trong khi đó tín hiệu thường được gán giá trị sau của biểu thức được gán sau khoảng thời gian được trì hoãn delay ( được xác định do người sử dụng hoặc mặc định là khoảng delta)

Trang 27

Biến được khai báo trong process ( hoặc chương trình con) thì chỉ có ảnh hưởng trong phạm vi khai báo mà thôi (khai báo biến cục bộ) Ngoài ra biến có thể khai báo ở bên ngoài lệnh process hoặc chương trình con thì có ảnh hưởng toàn cục và được gọi là biến chung (shared variable)

Chú ý tín hiệu không được khai bao trong process

Các phát biểu gán tín hiệu xuất hiện trong process được gọi là phát biểu gan tin hiệu tuần tự, kể cả phát biểu gán biến ( phát biểu đồng thời), sẽ thực hiện tuần tự độc lập với việc xuất hiện các sự kiện trên mỗi tín hiệu trong biểu thức bên tay phải, khác với việc thực thi của các phát biểu gán tín hiệu đồng thời trong phần

trước

Trong kiến trúc dec-sequential, nếu l sự kiện xuất hiện trên tín hiệu A,B hoặc

ENABLE, thì phát biểu thứ nhất được thực thi , sau đó phát biểu thứ hai mới được

thực thi và cứ thế tiếp tục.Với phát biểu thứ 3 (lệnh ¡f) được điều khiểu bởi giá trị

của tín hiệu ENABLE, nếu ENABLE lên “1” thì 4 phép gán tín hiệu kế tiếp được

thực hiện và gán các giá trị một cách độc lập khi tín hiệu À,B ,ABAR,BBAR thay đổi tín biệu đích sẽ được gán cho chúng từng giá trị sau khoảng delay Nếu ENABLE là “0” thì giá trị “1” được gán cho mọi phan ti output trong day Z Khi thực hiện xong process , process ở trong trạng thái treo và đợi đến khi có sự kiện khác xuất hiện

Có tổn tại phát biểu case hoặc loop trong process , thì ngữ nghĩa và cấu trúc của phát biểu này cũng giống như trong ngôn ngữ cấp cao khác là C hoặc Pascal Có

thể sử dụng phát biểu wait trong process Nó có thể sử dụng để chờ cho một giá trị

thời gian, cho tới khi điểu kiện thành true, hoặc đến khi có một sự kiện xuất hiện trên tín hiệu.Process này không có trong danh sách độ nhạy bởi vì xuất hiện của phat biéu wait trong process (tương đương với một độ nhạy của danh sách độ nhạy ) Đồ là điểu quan trọng để nhớ rằng trong process không bao giờ kết thúc Tất cả các process thực hiện suốt quá trình mô phỏng cho đến khi có trạng thái treo

Trang 28

-18-Chương II : Ngôn ngữ lập trình VHDL

Begin

Process(D,CLK) Begin

If CLK =’1’ then

Q<=D End if;

End process;

End LS-DFF-BEH, Process dudc thực hiện khi có 1 sự kiện trên tín hiệu D hoặc CLK Nếu CLK='1' thì giá trị của D được gán cho Q Nếu CLK='0' thì không thực hiện phép gán Trong khi CLK=”1” thì mọi thay đổi trên D đều xuất hiện trên Q, chỉ khi

CLK='0' thì giá trị Q vẫn không đổi

I4 Kiểu hỗn hợp của mô hinh :( mixed style modeling)

Có thể trộn lẫn 3 kiểu trên trong 1 architecture , với architecture này thì chúng ta có thể sử dụng các phát biểu đối tượng hợp phần đó là biểu hiện

structure(compoment instantiation), phat biéu gán tín hiệu đồng thời ( biểu hiện đataflow) và phát biểu process (biểu hiện hành vì)

Ví dụ: kiểu hỗn hợp cho 1 bit FULL-ADDER

Entity FULL-ADDER is Port (A,B , CIN :in BIT; SUM, COUT: out BIT);

-19-

Trang 29

Chú ý rằng bản thân của phát biểu processs là 1 phát biểu đồng thời , còn các phát

biểu bên trong được thực thi 1 cách tuần tư

HI.5 Khai báo định dạng (configuration)

Khai báo định dạng là dùng để chọn một trong những thân kiến trúc (mô tả cấu trúc cho một thân kiến trúc ) mà entity đã có và liên kết các thành phần với thực thể bằng cặp “ entity-architecture” hoặc bằng cấu hình “ configuration” tất cả có

trong một thư viện thiết kế

Sau đây là một khai báo cấu hình cho thực thể HALF-ADDER:

Library CMOS-LIB, MY-LIB;

Configuration HA-BINDING of HALF-ADDER is For HA-STRUCTURE

For X1:XOR2

Trang 30

Architecture này gồm 2 component, 2 component bắt buộc phải có

Phát biểu đầu tiên (for XI End for), liên kết giữa đối tượng thành phần cụ thể của nhãn XI tới thực thể được mô tả trong cặp entity-architecture ,( thực thể XOR-GATE va than kiến trúc dataflow và chúng đã có trong thư viện thiết kế CMOS-LIB)

Tương tự với hợp phần cụ thể của nhãn A1 được liên kết với một thực thể đã được định nghĩa bằng cấu hình AND-CONFIG (AND-CONFIG có trong thư viện

MY-LIB)

Không có hành vi hoặc ngữ nghĩa mô phỏng kết hợp với khai báo configuration

Nó đơn thuần mối liên kết được dùng để liên kết các hợp phân với 1 entity Khi

Vi du : architecture DEC-DATDFLOW c6 thể chọn thực thể DECONER2x4 để

khai báo cấu hình :

Configuration DEC-CONFIG of DECONDER 2x4 is For DEC-DATAFLOW

Trang 31

Chương lÏ : Ngôn ngữ lập trình VHDL

Khai báo cấu hình DEC-CONFIG đó được chọn thân cấu trúc DEC- DATAFLOW cho thực thể Cấu hình DEC-CONFIG được thay trong entity

DECODER2x4, nó có thể được mô phỏng tại thời diém hién tai

MI.6 Khai Báo Khối (paskage):

Một khai báo khối được đùng để lưu trữ những khai báo chung

Ví dụ : component , các type, các procedure, và các function Các khai báo này

có thể đưa váo đơn vị thiết kế khác bằng cách sử dụng mệnh đề USE

Sau đây là ví dụ cho khai báo pakage:

Function INT2BIT-VEC (INT-VALUE : INTEGER)

Gia sử pakage này đã được biên dịch vào thư viện thiết kế tên là DESIGN-LIB, các mệnh để sau kết nối tới khai báo entity

Library DESIGN-LIB;

Use DESIGN-LIB.EXAMBLE-PACK.aH;

Trang 32

Architecture RX-STRUCTURE of RX is

Hai mệnh để Use dùng cho 2 khai báo component là: D-FLIP-FLOP và hằng PIN2PIN-DELAY có thể được nhìn thấy trong thân kiến trúc

Tương tự trong khi chọn khai báo từng phần trong pakage bằng các tên chọn

Ví dụ :

Library DESIGN-LIB;

Package ANOTHER-PACKAGE is Function POCKET-MONEY

la deferrend constant Gia trị của constant thay đối theo pakage tương ứng

-23-

Trang 33

HI.7 Thân khối (pakage body):

Thân khối được dùng để chứa những định nghĩa của function và procedure,

chúng được khai báo trong pakage tương ứng và khai báo thời hằng trì hoãn xuất

hiện trong khai báo pakage Thân khối luôn gắn liễn với khai báo khối , 1 khai báo

khối duy nhất chỉ có một thân khối liên kết với nó Điễu này khác với sự liên kết

architecture và entity vì nhiễu architecture có thể liên kết với 1 khai báo entity

Ngoài ra thân khối có thể chứa các khai báo khác

Đây là thân khối của khai báo pakage EXAMBLE-PACK cho ví dụ trước :

Pakage body EXAMBLE-PACK is Function INT2BIT-VEC (INT-VALUE:INTEGER) Return BIT-VECTOR is

Begin

Behavior of function described here

End INT2BIT-VEC;

End EXAMBLE-PACK;

Tên của pakage body phải trùng với tên của khai báo pakage body mà nó liên

kết Đó là điểu quan trọng, chú ý thân khối chỉ không cần thiết nếu như trong khai

báo pakage tương ứng không có các function, procedure và thời hằng trì hoãn Sau

đây là pakage body liên kết với gói ANOTHER-PACK trong phần trước:

Pakage body ANOTHER-PACK 1s

Constant TOTAL-ALU:INTEGER:=10;

Function POCKET-MONEY (MONTH:DESIGN-LIB.EXAMBLE-PACK.SUMER) Reture INTEGER is

Trang 34

When JƯNISEP=> RETURN 6;

When others =>return 2;

End case;

End POCKET-MONEY;

End ANOTHER-PACK;

HI.§ Kiểu phân tích (Analysis):

Để một thực thể được mô tả trong VHDL nó phải được xác nhận trong VHDL

bằng cách phân tích và mô phỏng chúng Bước đầu tiên để có quá trình xác nhận là

sự phân tích

Phân tích tạo 1 file bao gồm 1 hoặc nhiều đơn vị thiết kế và chúng được biên

dịch vào trong form trung gian của ngôn ngữ cấp thấp và cấp cao Hình thức mô tả

quá trình dịch trung gian này không định nghĩa trong ngôn ngữ

Thư viện thiết kế với tên gọi là STD được định nghĩa trước của ngôn ngữ trong

môi trường VHDL Thư viện này có 2 pakage STANDARD và TEXTIO Pakage STANDARD gôm những khai báo cho tất cả kiểu định nghĩa trước của ngôn ngữ (BIT,TIME,INTEGER ) ,pakage TEXTIO bao gồm các procedure và các functon

cần thiết để đọc và viết trong quá trình hoạt động

Ở đây còn có IEEE pakage chuẩn , gọi STD-LOGIC-1164, pakage nay dOinh nghĩa 1 nine-value của kiểu logic, gọi là STD-ULOGIC và các kiểu con của nó điều khiển các function và các tiện ích khác Tiêu chuẩn này gọi là IEEE.STD- 1164.1993

111.9 M6 phong ( simulation ):

Mô tả mô hình thành công là đưa kết quả biên địch vào trong một hoặc nhiều

thư viện thiết kế , bước kế tiếp của quá trình thực hiện là mô phỏng

Sự mô phỏng có thể thực hiện 1 trong 2 mô hình sau:

e Mot khai bdo entity va architecture body

e MéO6t configuration

Elaboration phase: trong phan nay phan cap entity 1a m6 rong va lién kết ,các

component liên kết đến các entity trong thư viện và thực thể mức cao sẽ tạo nên mạng hành vi để đọc cho quá trình mô phỏng Ngoài ra còn cung cấp vùng lưu trữ cho các tín hiệu , các biến và hằng trong đơn vị thiết kế Gía trị ban đầu gán cho

Trang 36

-26-Chương III : Các phần tử ngôn ngữ cơ ban

——

CHƯƠNG IIH:CÁC PHẦN TỬ NGÔN NGỮ CƠ BẢN

Cũng như các ngôn ngữ lập trình cấp cao khác như: C, PASCAL, VISUAL

BASIC HGDL cũng có tử cơ bản của ngôn ngữ cẩu nó Những phần tử cơ bản này

bao gồm các đối tượng dữ liệu , các phân tử này cũng mô tả những giá trị hằng số,

các toán tử của đối tượng data

Mỗi đối tượng dữ liệu phụ thuộc vào kiểu đặc trưng Những cú pháp và các loại

data khác nhau do những kiểu đặc trưng này được người sử dụng qui định Phần

cũng mô tả phương pháp làm thế nào để kết hợp kiểu với đối tượng bằng cách sử

dụng những khai báo đối tượng

Một việc rất quan trọng là hiểu được những lưu ý về kiểu dữ liêu và đối tượng

Vì VHDL là ngôn ngữ kiểm tra kiểu chặt chẽ Do đó những toán tử và các phép

gán hợp lệ trong ngôn ngữ khi kiểu của toán hạng và kiểu kết quả tính toán trả về

phải phù hợp với những qui tắc đã xác định trướ, nó không cho phép đối tượng và

literals của những kiểu khác nhau được trôn lẫn tự do trong biểu thức

I DANH HIỆU (identifiers):

Có hai loại danh hiệu trong VHDL gỗm : danh hiệu cơ bản và danh hiệu mở

rong

Một danh hiệu cơ bản trong VHDL bao gồm những phối hợp của một hoặc nhiều kí

tự Những ký tự cho phép là một ký tự hoa (A Z), một ký tự thường( a z), một số

digit (0 9) hoặc ký tự gạch đưới (-) Ký tự đầu tiên trong một danh hiệu cơ bản

phải là một ký tự và ký tự cuối cùng có thể không là ký tự gạch dưới Chữ hoa và

chữ thường được xem như đồng nhất khi sử dụng trong một danh hiệu cơ bản

Ví dụ : Count, COUNT, CouNT tất cả đều được xem như nhau trong danh hiệu

cơ bản Tương tự, hai ký tự gạch dưới không thể xuất hiện liên tiếp nhau

Ví dụ : cho identifiers cơ bản:

DRIVE-BUS Selectsignal RAM-ADDRESS SET-CK-HIGH CONST32-59 r2d2

Một danh hiệu mở rộng là phối hợp của những ký tự được viết giữa hai dấu (//),

có thể sử dụng các ký tự bất kỳ bao gồm những ký tự như:,!, ®, “, and $ Trong một danh hiệu mở rộng , ký tự hoa và ký tự thường được phân biệt là khác nhau rõ ràng

Lời chú giải phải được đặt trước bằng hai dấu (-) liên tiếp nhau, lời chú thích thường đặt ở cuối dòng hoặc đặt tại một vị tr1i bất kỳ

-27-

Trang 37

Ngoài ra VHDL cũng dành ra một số từ được khai báo trước dùng để làm các từ

khóa cho ngôn ngữ ( process, library, type )

Il ĐỐI TƯỢNG DỮ LIỆU (data objects):

Một đối tượng dữ liệu giữ một giá trị của một dữ liệu cụ thể Nó được tao ra bởi

ý nghĩa của một khai báo đối tượng

Ví dụ như:

Variable COUNT:INTEGER;

Kết quả này trong phần tạo ra của một đối tượng đữ liệu gọi là COUNT, nó có

thể giữ giá trị nguyên Đối tượng COUNT cũng được khai báo là lớp biến

Mỗi một đối tượng dữ liệu phụ thuộc vào trong một bốn lớp sau:

H.1 Constant (hing):

Một đối tượng của lớp constant c6 thé giữ một giá trị duy nhất của kiểu đã cho

Gía trị này được gán cho một constant trước khi bắt đầu và giá trị này không thể

thay đổi trong suốt quá trình mô phỏng Để khai báo một constant trong một

subprogram, giá trị sẽ được gán cho constant 6 mỗi thời điểm chương trình con

được gọi

H2 Variable ( biến ) :

Một đối tượng của lớp constant có thể giữ một giá trị duy nhất của kiểu đã cho

Tuy nhiên trong trường hợp này giá trị khác nhau có thể được gán vào biến tại

những thời điểm khác nhau

H.3 Signal ( tín hiệu ):

Một lớp đối tượng phụ thuộc vào lớp tín hiệu giữ một loạt các giá trị , những giá trị này bao gồm giá trị hiện hành của tín hiệu và một tập hôp các giá trị tương lai có

thể có.Những giá trị tương lai có thể được gán cho tín hiệu bằng cách sử dụng một

phép gán tín hiệu Tín hiệu được dùng cho việc truyển các giá trị có thể có trong các hợp phần (components) théng qua cac céng (port)

IL4 File (tap tin):

Một đối tượng tuỳ thuộc vào lớp tap tin Bao gdm những giá trị liên tiếp nhau

Những giá trị có thể được đặt hoặc viết vào file sử dụng cho những chương trình con đọc và những chương trình con viết tương ứng

-28-

Trang 38

Tín hiệu có thể xem như là dây dẫn trong mạch điện , trong khi các biến và

hằng thì tương tự như các biến và hằng trong các ngôn ngữ khác : C, PASCAL, tín hiệu được dùng như một mô hình dây dẫn và các flip-flop, trong khi biến và hằng

được dùng như là mô hình hành vi của mạch Một tập tin được dùng như là một tập tin trong môi trường chủ

Biến hằng thứ hai được khai báo là BUS-WIDTH, với kiểu số nguyên, có giá trị

là 8

11.4.2 Khai báo biến số:

Cú pháp khai báo cho biến số:

Variable variable-name: type-name [:=value] ; Thí dụ khai báo biến như sau:

Variable CTRL-STATUS:BIT-VECTOR (10 downto 0);

Variable SUM:INTEGER range 0 to 100 :=10;

Khai báo đầu tiên chỉ rõ là một đối tượng biến CTRL-STATUS là một dãy có

11 phần tử, với mỗi phần tử trong dãy có kiểu 1a BIT

Trong khai báo thứ hai giá trị đầu thể hiện được gán vào biến SUM Nều

không có giá trị đầu rõ ràng cho mọi biến Gía trị mặt định sẽ được sử dụng như

một giá trị khởi đầu

Gia trị mặt định này la T’LEFT Khi T là đối tượng được khai báo và “LEFT là thuộc tính được xác định trước của kiểu được đặt ra cho giá trị cực trái trong tẬp hợp giá trị phụ thuộc có kiểu T

Trang 39

11.4.3 Khai Bao Tin Hiéu:

Cú pháp khai báo cho tín hiệu:

Signal signal-name: type-name [:=value];

Sau đây là những ví dụ khai báo tín hiệu:

Signal CLOCK: BIT;

Signal DATA-BUS :BIT-VECTOR(0 to 7);

Signal GATE-DELAY : TIME:=10ns, Khai báo tín hiệu đầy tiên là khai báo tín hiệu CLOCK của kiểu BIT và lấy giá

11.4.4 Khai bao file:

Một file được khai báo sử dụng khai báo filevới cú pháp khai báo file là:

File file-name : file-type-name [[open mode] is string-expression ];

Chuỗi biểu thức được giải thích rõ bởi môi trường chủ là tên vật lý của file

Open mode chỉ ra cho file ở chế độ mở, đóng , hay đọc

Thí dụ:

File STIMULUS : TEXT open READ-MODE is “ usr/home/jiames/add.vec ”; IL4.5 Các cách khác để khai báo đối tượng :

Không có đối tượng nào trong một mô tả VHDL được tạo ra rõ ràng để sử dụng

cho khai báo đối tượng , các đối tượng khác được khai báo bằng một trong những

cách sau:

1 Những cổng thực thể, tất cả cổng là đối tượng tín hiệu

2 Generic của thực thể , chúng là đối tượng không đổi

3 Thông số hình thức của hàm và thử tục thông số hàm là hằng số hoặc tín hiệu „ trong khi thông số thủ tục có thể phụ thuộc vào bất kỳ đối tượng nào

Trang 40

Các khai báo trên là các khai báo đối tượng rõ ràng Ngoài ra ta còn có loại

khai báo đối tượng ẩn

Thí dụ khai báo ẩn trong một phát biểu lặp for:

For COUNT in 1 to 10 loop SUM:=SUM+COUNT;

End loop;

Trong phát biểu lặp for này, COUNT là một hằng được khai báo ẩn kiểu

COUNT được tạo ra khi vòng lặp đầu tiên và không còn tổn tại khi thoát khỏi vòng lặp

Il CÁC LOẠI DỮ LIỆU (Data type):

Mỗi đối tượng dữ liệu trong VHDL có thể giữ một giá trị phụ thuộc vào tập giá trị Những giá trị này được xác định bởi việc sử dụng một khai báo kiểu Một kiểu

là một tên kết hợp với một tập hợp giá trị và một tập tác vụ Những kiểu nào đó và những tác vụ được trình bày trong đối tượng của kiểu đó thì được định nghĩa trước trong ngôn ngữ

trong phạm vi khai báo được cung cấp bởi hệ thống VHDL Vùng tối thiểu phải được cung cấp là —(2 -1) đến (2-1)

Các tác vụ thường xuyên sử dụng là '+` cho phép cộng, “-“ cho phép trừ, “* cho phép nhân, “/ cho phép chia, và những toán tử được định nghĩa trước là : and,

or, not

Boolean cũng là loãi được định nghĩa trước : có hai giá trị ‘true’ va ‘false’

Khai báo cho 1 kiểu định nghĩa trước được khai báo trong gói chuẩn

STANDAR Những toán tử cho những kiểu này được định nghĩa trước trong ngôn ngữ

Ngoài ra ngôn ngữ VHDL cũng cung cấp cho ta những loại đối tượng data mới bằng cách dùng khai báo kiểu và cũng như định nghĩa một tập các toán tử trong một loại mới này bằng cách viết hàm và trả về giá trị của loại mới đó Các loại

đối tượng thường được phân thành 4 loại chính

1 Kiểu vô hướng (scalar type) : những giá trị phụ thuộc vào những kiểu

xuất hiện theo thứ tự liên tục

Ngày đăng: 02/07/2014, 02:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w