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 cửa xe garage xe

108 470 0
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

Tiêu đề Ứng dụng VHDL trong thiết kế số thiết kế vi mạch (IC) dùng điều khiển cửa xe garage xe
Tác giả Lờ Phước Thọ
Người hướng dẫn Ks. Trương Ngọc Bảo
Trường học Trường Đại học Kỹ thuật Công nghệ TP.HCM
Chuyên ngành Điện tử - Viễn Thông
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2007
Thành phố Hồ Chí Minh
Định dạng
Số trang 108
Dung lượng 3,69 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tuy nhiên vì là một ngôn ngữ mô tả phần cứng nên nó đòi hỏi người thiết kế cần có sự hiểu biết nhất định về kỹ thuật số, VHDL có thể được ví như một ngôn ngữ thực hành, sử dụng ngôn ngữ

Trang 1

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

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

NGANH DIEN TU - VIEN THONG

LUAN VAN TOT NGHIEP

DE TAI:

ỨNG DỤNG VHDL TRONG THIẾT KẾ SỐ

THIET KE VI MACH (IC) DUNG DIEU KHIỂN CUA GARAGE XE

GVHD : Ks TRUGNG NGOC BAO

SVTH : LÊ PHƯỚC THỌ MSSV : 02DHDT192 LỚP :02DT1

Trang 2

Eh Np EER xà in Sa RES AY A xà 0c AES cà a TS Ao ER Aes i aie i A a Ne AO eR i he ee i ch Ee

" SII, -LÁo li & sa, 56 -hạyg địm, chai Í8u, ưấc

Trang 4

LỜI CẢM ƠN !

Để hoàn thành luận văn tốt nghiệp này, thầy hướng

dẫn, các thầy cô trong phòng thí nghiệm về tất cả các bạn đã

giúp đổ em rất nhiều, đặc biệt là thầy hướng dẫn

Tôi xin chân thành ghỉ nhớ ơn của Trương Ngọc

Bảo,Thầy đã rất nhiệt tình giúp đỡ em trong suốt quá

trình nghiền cứu và làm luận văn Em xin cắm ơn các

thầy cô trực các phòng thí nghiệm, đã tạo mọi điều kiện

cho em trong những buổi cân chỉnh mạch Tôi xin cắm

ơn tất cả các bạn cách này cách khác đã giúp đỡ tôi, góp

phần làm cho đề tài tôi được phong phú hơn

Một lần nữa em xin chân thành cám ơn Trương

Ngọc Bảo, các Thầy cô và toàn thể các bạn

Lê Phước Thọ

Trang 5

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐHDL KỸ THUẬT CÔNG NGHỆ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN - ĐIỆN TỬ - 0O -

k#**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)

Họ và tên SV : Lê Phước Thọ MSSV :

1 Đầu đề đồ án tốt nghiệp:

ỨNG DỤNG VHDL TRONG THIẾT KÉ SÓ THIẾT KÉẺ VI MẠCH (IC) DÙNG ĐIÊU KHIỂN CỬA GARAGE XE

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ề GAL, PAL và FPGA

- Tìm hiểu phần mềm MaxPlusII lập trình cho vi mach 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, minh 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

4 Ngày hoàn thành đồán : 30/01/2007

1/ Ks Trương Ngọc Bảo l/ Toàn bộ

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

Ngàyvh tháng AQ nim 2006

Trang 6

LỜI NÓI ĐẦU

Các Ngôn ngữ lập trình hiện nay như : Visual Basic, C++, Pascal đã trở thành

những ngôn ngữ lập trình chủ yếu trong máy vi tính, tính linh hoạt, mềm dẻo và

gần với ngôn ngữ tự nhiên của con người đã cho phép người lập trình ngày càng tạo

ra nhiều sản phẩm trên phần mềm ứng dụng Tuy nhiên, các ngôn ngữ trên chủ yếu

ứng dụng cho máy vi tính Đối với ngành điện tử, các ngôn ngữ trên đôi khi không

thật sự hiệu quả, do đặc thù xây dựng các phần cứng, nên một ngôn ngữ lập trình

dùng cho phần cứng sẽ thật sự hiệu quả hơn

VHDL là một ngôn ngữ mô tả phần cứng rất mạnh, hỗ trợ các vi mạch lập trình

cho các họ như CPLDs, FPGAs 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 Tuy nhiên vì là một ngôn ngữ

mô tả phần cứng nên nó đòi hỏi người thiết kế cần có sự hiểu biết nhất định về kỹ

thuật số, VHDL có thể được ví như một ngôn ngữ thực hành, sử dụng ngôn ngữ này

đòi hỏi người thiết kế phải đọc đi đọc lại rất nhiễu lần mới có thể hiểu, nhưng khi

đã nắm vững các cú pháp ngôn ngữ này thì nó cho phép người thiết kế biết những

khả năng mô tả phần cứng tuyệt vời

Ngôn ngữ mô tả phần cứng VHDL và các vi mạch có khả năng lập trình với mật

độ tích hợp cổng logic bên trong rất cao như các họ IC theo công nghệ CPLDs,

FPGAs cho phép giải quyết những bài toán lớn đã xuất hiện trên thị trường Việt

Nam nhiều năm nay nhưng chúng vẫn chưa được những người thiết kế các vi mạch

khai thác, điều này một phần là do đây là các vi mạch tương đối mới, thêm vào đó

là do ngôn ngữ VHDL vẫn chưa phổ biến rộng rãi Chính vì thế đã làm cho việc

vận dụng khả năng tuyệt vời của ngôn ngữ VHDL vào trong các thiết kế số vẫn còn

hạn chế

Chính vì những yếu tố trên nên em quyết định tìm hiểu và chọn để tài “Ứng

dụng VHDL trong thiết kế số, thiết kế vi mạch (IC) dùng điều khiển cửa garage

xe” để có cơ hội tiếp cận kỹ thuật thiết kế mới

Trang 7

TÓM TẮT NỘI DUNG CỦA ĐỀ TÀI

Dé tài đã khảo sát cấu trúc và chức năng của vi mạch số lập trình FPGA, sử

dụng phần mềm MaxPluxII cuả ALTERA lập trình cho vi mạch FPGA, từ đó ứng

dụng VHDLằ trong thiết kế vi mạch (IC) điều khiển cửa garage xe

Đề tài được chia làm 2 phần:

Phan 2: THIET KE VA MO PHONG

Viết chương trình VHDL thiết kế (IC) diéu khién Garage xe

Mô phỏng trên phần mềm MAXPLUS II

Trang 8

MỤC LỤC

Lời nói đầu

Tóm tắt nội dung của để tài

PHẨNI: CƠ SỞ LÝ THUYẾT

CHUONG I: TONG QUAN VE PAL, GAL, FPGA ———

L1 Logic lập trình được (PAL) . c5-

II Tổng quan về FPGA .S22Stt 2222225 EEcecee

CHUONG II: TONG QUAN VE VHDL

I Cac dac diém chinh cia ng6n ngif VHDL eeccececccececcceeees

L1 Đặc tính tổng quát 2c s22 xe crec

L2 Hỗ trợ phân cấp thiết kế 72s secscnceccscc

L4 Có lệnh tuần tự - -QSc SH S2Tnen ng ngan,

L5 Thiết kế tương thích chung 2+2 csvzcz c5:

L6 Khai báo kiểu và cách đùng c.ccccec

L8 Điều khiển định thời - 2-22scccccccccreree

L9 Đặc tả cấu trÚc + s- chen nghe

II Cac cong cu phan mém AG trd eeeeeeesceesseceeseceseeeseseeseeeees

CHƯƠNG III: CẤU TẠO CUA MOAT CHUONG TRINH VHDL

I, TẨY Đà HH HH HT HT HH TH KHE KT nàng

I ATChIt€CEUC€ QC HH n1 HH TH HH TH HH ờy

IL1 Gán tín hiệu đồng thời - 22 Ss St nen sec:

H2 Thiết kế cấu trÚc - + + sec Stvx 2323 cEsEcEcsseceea

I3 Kiến trúc tuẫn tự

HH Phát biểu Process Q2 SH

IH.1 Danh sách cảm nhận -Q St TH nen re

IH.2 Vùng khai báo Process Sc cv

HI.3 Vùng phát biểu Process -.s ccccss se căc

IV Các phát biểu tuần tự trong Process sccccccscccccez

IV.I Phát biểu [F cu re

IV.2 Phát biểu Case s son tre sec,

IV.3 Phát biểu Loop T on non ngoc

Trang 9

IV.3.2 Vòng lặp For -S-

IV.4 Phátbiểu wait

IV.4.1 Walton signal <S2

V PaCKaB€ eeeccecsecssecseccseeesessseeessessccssessscssecssessecsacees

V.1 Khai báo góI - c2 SH,

CHUONG IV: DOI TUGNG CUA VHDL

CHƯƠNG V:_ CÁC KIỂU DỮ LIỆU c-c-s ccc

L Kiểu vô hướng -L.k tt TT 1112111211111 xe

L1 Kiểu nguyên Sàn TH tre

I2 Kiểu thực

I3 Kiểulệtkê

L4 Kiểu vật lý - - cs s HH HT 2211 treo

H Kiểu kếthợp St HH nen TH

II Kiểu mắng ghi G5 St SE SE E112 cEcrcey

IV KiỂucon Ăn SH HH ra

CHƯƠNG VI: CHƯƠNG TRÌNH CON -c-s<cccsee

Ill Khai bao chương 000)0809: 0 4

CHƯƠNG VII: PHẪN MỀM MAX+PLUS lI c-cccccce

L Bắt đầu với Project mới ¿+ s2 tt 21x xe re

H Mở một project đang tỔn tại cv serxrseereee

I Mở bắt đầu từ một file nguồn VHDL - cccsczscscc

IV Nhap source VHDL vào trong project -s<s<cs+

V Tạo mới một file source VHDL mới cho Project

VI Tổng hợp cho chức năng mô phỏng 2: 2z 22222

VIH Thiết lập tín hiệu ngõ vào - S22 212x211 cret

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

Trang 10

X Gán giá trị cho các tín hiệu ngõ vào - cào 71

ILI Giải thích thiết kế 2252 css¿ 76

IL2 Sơ đồ khối - + «sec rcrsez 77

I3 Mô tả VHDIL 52-22222225 22z2cze2 T1

H4 Kết quả m6 phong .- 82

J 72M ':°ô 0e a a4ă 83

CHƯƠNG II: BỘ ĐIỀU KHIỂN CỔNG CHẮN BÃI DAU XE 84

L Mô hình và sơ đổ khối - + 5 cà k kg ngay 84

Ll Mô hình 2-22 Et22E52 22522552 EEczse2 84 L2 Sơ đỗ khối -2 2-22 222n SE 2x2 csrsrse2 84

L3 Lưu đồ ASM csccececckeesei 85

I — Giải thích thiGt KE oes cecceccccccccccscssccseessecssessecssesuvessesssecseessseen 86

IH — Chương trình VHDIL o G5555 S5 5 9956068056555 88 87

KẾTT LUẬN 2 ©C2e+E2s€ESE+sd€tEEZeeEESssevEEvessvtvvzseerrcse 97

TÀI LIỆU THAM KHẢO 2° < << s9SSSsE se vsese eesessesssse 98

Trang 11

Phan II Thiết kế và mô phỏng

PHAN II:

THIET KE VA MO PHONG

Trang 74

Trang 12

Chương I Tổng quan về PAL, GAL và FPGA

CHUONG I: TONG QUAN VE PAL, GAL VA FPGA

I TONG QUAN VE PAL VA GAL

I.1 Logic dãy lập trình được (PAL-Programmable Array Logic)

PAL là trường hợp đặc biệt của PLA mà trong đó dãy AND lập trình

được và dãy OR là cố định Cấu trúc cơ bản của PAL thì giống như PLA ở hình

1-18 Bởi vì chỉ có đãy AND là lập trình được, do đó PAL ít mắc tiền hơn các

PLA tổng quát hơn, và dễ lập trình PAL hơn Vì lý do này, các nhà thiết kế

logic thường sử dụng các PAL để thay thế các cổng logic khi phải cài đặt nhiều

Trang 13

Chương I Tổng quan về PAL, GAL va FPGA

Phần lớn các nhà sản xuất PAL có chỉ ra thiết kế nội của PAL ở ký hiệu tên

của nó Thí dụ: PAL16L8B4 có 16 là số ngõ vào; L chỉ cấu trúc ngõ ra (tích cực

thấp); 8 là số ngõ ra; B là tốc độ và 4 chỉ tiêu tán công suất

+ Với cấu trúc ra, thí dụ như :

H: (High) chỉ ngõ ra tích cực cao (acitve high)

L: (Low) chỉ ngõ ra tích cực thấp (active low)

C : (Complement) chỉ ngõ ra có cả 2 đường tích cực cao và thấp

+ Tốc độ : A = tốc độ cao; B = tốc độ rất cao; và D = tốc độ cực cao

+ Tiêu tán công suất: để trống chỉ day đủ; 2 chỉ 1/2; 4 chỉ 1/4

OE OE

Registered Active Low Registered Active High

Combinatorial I/O Active Low Combinatorial /O Active High

Trang 14

Chương I Tổng quan về PAL, GAL và FPGA

L2 GAL:

GAL, 16V8 có hình dạng 20 chân ,vi mạch này có 8 tổ hợp ngõ ra, mỗi

ngõ ra được đảo với 7 tích số ngõ vào, 6 trong 8 ngõ ra được hồi tiếp với mảng

AND.Cho phép các chân này được sử dụng với chức năng I/0.Do GAL16V8 có

ngõ ra tác động mức thấp nên có thể kết hợp với các IC khác cùng một mức tác

động Các vi mạch GAL đều hổ trợ các thanh ghi “Preload” điều này có ích cho

việc kiểm tra vi mạch

Trang 4

Trang 15

DIP & PLCC Package Pinouts

ES

0LRIE

SOR 2061

16

tiêu

OLMC

SOR.2023 1-2135

DLME

XOEF 4 1-2123

13

nag

OLMC

sR es ẨI;1.2127

Sơ đồ logic GAL 16V8

Trang 5

Trang 16

Chương Ï Tổng quan về PAL, GAL và FPGA

II TONG QUAN FPGA:

FPGA 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ách chung Giống như PLD các kết nối giữa các phần tử là có thể lập

trình được

FPGA được giới thiệu đầu tiên bởi công ty Xilinx vào năm 1985, kể từ

đó có nhiều loại FPGA đã được nhiễu công ty phát triển: Actel, Altera,

Crosspoint, Solutions

Từ mô hình lý thuyết của một FPGA tas 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 (I/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 day 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

Để tính toán mức độ tích hợp, người ta thường dùng đơn vị cổng tương

đương (nghĩa là cổng NAND 2 ngõ vào), khi đó CPLD cứ mỗi macrosell biểu

diễn 20 cổng tương đương và một PAL tiêu biểu với 8 macrosell có thể dùng để

thực hiện mạch cần 160 cổng Với CPLD có 1000 macrosell có thể cài đặt các

mạch lên đến khoảng 20.000 cổng tương đương

Theo tiêu chuẩn hiện đại thì một mạch logic với 20.000 cổng thì không

lớn Để cài đặt mạch lớn hơn người ta dùng một loại chip khác có dung lượng

logic lớn hơn, đó là FPGA Họ FPGA được Signetic giới thiệu vào năm 1977

được sử dụng để thay thế cho những cổng nhiều ngõ vào tiêu chuẩn, cấu trúc

của nó bao gồm một mảng AND lập trình, với lập trình cực tính ở ngõ ra Chỉ

với một cổng AND có thể biến đổi thành cổng NAND hay cổng OR Mỗi cổng

AND trong FPGA có thể biến đổi thành các cổng logic khác nhau

FPGA 1a chip c6 dung lượng khá 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

(logic block) để cài đặt các hàm mong muốn

FPGA có thể được dùng để cài đặt các cổng logic có hơn vài trăm ngàn

cổng tương đương

Trang 6

Trang 17

Chương II Tổng quan về VHDL

CHUONG IL: TONG QUAN VE VHDL

VHDL (VHSIC Hardware Description Language) là một ngôn ngữ chuẩn

trong công nghiệp, được sử dụng để mô tả phần cứng từ mức trừu tượng tới mức

cụ thể VHDL đã nhanh chóng trở thành một ngôn ngữ được sử dụng rộng rãi

trên thế giới cho những thiết kế có độ phức tạp trung bình Các thiết kế sử dụng

VHDL được hỗ trợ bởi máy tính, FPGA, các tiêu chuẩn trên VHDL được hỗ trợ bởi các công cụ của nó, các công cụ này bao gồm: công cụ mô phỏng, tổng hợp, định đường đi

VHDL là một nhánh của chương trình “ Very High Speed Integrated Circuit( VHSIC) ”, được phát triển bởi Department of Defense vào cuối thập niên 70, đầu thập niên 80 Mục tiêu của chương trình VHSTIC là tạo ra những mạch điện được tích hợp thông dụng mới Những người tham gia vào chương trình này muốn đẩy mạnh hơn nữa việc các giới hạn của công nghệ trong mỗi

giai đoạn thiết kế và sản xuất ra các vi mạch tích hợp

Chương trình đã đạt được những thành công đáng ngạc nhiên, nhưng trong

quá trình phát triển những mạch điện có độ phức tạp lớn, người thiết kế căn cứ

vào những công cụ đã được sử dụng để tạo ra những thiết kế lớn thì không có đầy đủ, các công cụ hỗ trợ cho người thiết hầu hết ở mức cổng Tạo ra một thiết

kế sử dụng hàng trăm ngàn cổng mà sử dụng mức cổng thì that sự là một nhiệm

vụ cực kỳ khó khăn nếu không muốn nói là không thể Chính vì vậy một

phương pháp mô tả mới đã được ra đời, đó là VHDL Ban đầu VHDL được thiết

kế như một ngôn ngữ dùng để cung cấp các tài liệu và mô phỏng Sau đó VHDL

đã bao gồm các công cụ tổng hợp để mô tả các thiết kế ở mức thanh ghi (

Register Transfer Level)

Vào năm 1981, một ngôn ngữ mô tả phần cứng đã được đề nghị và được gol

la VHSIC Hardware Description Language va ngày nay chúng ta gọi là VHDL

Mục đích của ngôn ngữ mới này bao gồm 2 phần: Đầu tiên người thiết kế muốn

có một ngôn ngữ giúp họ có thể vận dụng để mô tả các mạch điện phức tạp, kế

tiếp họ muốn ngôn ngữ đó trở thành một chuẩn để tất cả mọi người là việc

trong chương trình VHSIC có thể phân phối các thiết kế của họ tới những người khác trong một định dạng chuẩn Từ những chương trình con có thể sắp xếp để

tạo thành một chương trình chính với một định dạng chuẩn duy nhất

Trang 7

Trang 18

Vào năm 1986, VHDL đã để ra một chuẩn gọi là IEEE, chuẩn này đã qua

một số lần thay đổi, sửa chữa và đã được công nhận là chuẩn IEEE 1076 vào

thang 12 nam 1987

I CAC ĐẶC ĐIỂM CHÍNH CỦA NGON NGU VHDL

VHDL có thể được sử dụng để lập tài liệu thiết kế, thiết kế mức độ cao,

mô phỏng, tổng hợp và kiểm tra phần cứng, nó cho phép mô tả phần cứng từ

mức hệ thống tới mức cổng Hỗ trợ tính đồng thời, nghĩa là các hợp phần từ nhỏ

đến lớn hoạt động tại mọi thời điểm

L2 Hỗ trợ phân cấp thiết kế:

Khi thiết kế bằng VHDL người thiết kế có thể phân bài toán lớn thành

những bài toán nhỏ hơn sao cho có thể giải quyết và quản lý dễ dàng Đây là

đặc tính thiết yếu của ngôn ngữ phần cứng đa cấp, thiết kế chứa một mô tả giao

diện và một số phần độc lập để mô tả hoạt động Hoạt động của hệ thống có thể

được đặc tả dựa trên cấu trúc của của những hợp phần nhỏ hơn của chúng, đặc

tả cấu trúc có thể thực hiện ở tất cả các cấp thiết kế

Ngôn ngữ VHDL cung cấp cơ chế để truy cập tới nhiều thư viện khác nhau, thư

viện không những chỉ chứa đặc tả giao diện thiết kế, mà còn chứa một số đặc tả

hoạt động của hệ thống, các đặc tả và các mẫu có thể dựa vào thư viện để sau

khi dịch bởi chương trình dịch Với đặc điểm này người thiết kế có thể tạo ra

những thư viên riêng có chứa các thành phần cần cho những thiết kế sau này

mà không cần phải thiết kế lại, điều này cho phép người thiết kế rút ngắn thời

gian thiết kế và quá trình thiết kế sẽ trở nên đơn giản hơn rất nhiều

L4 — Có lệnh tuần tự:

Khi người thiết kế phân chia hệ thống thành những hợp phần đồng thời

hay những phần con, tiếp đó người thiết kế có thể mô tả chi tiết hoạt động bên

trong bằng những cấu trúc ngôn ngữ lập trình tuân tự như: case, if- then — else,

loop các lệnh tuần tự cung cấp phương pháp đơn giản để tạo ra các hợp phần

phần cứng dựa trên chức năng của chúng Với các lệnh tuần tự người thiết kế có

thể mô tả hệ thống một cách dễ dàng và linh hoạt, ngoài ra còn giúp cho những

người làm việc chung trong một nhóm có thể dễ dàng hiểu được ý tưởng thiết

kế của nhau để có sự phối hợp tốt hơn

Trang 8

Trang 19

L5 Thiết kế tương thích chung:

Để thiết kế tổng quát, ngôn ngữ VHDL cho phép người thiết kế đặt cấu hình mô tả hợp phần có thông số chung trong thiết kế, mô tả tương thích chung

có thể thay đổi kích thước, đặc tính vật lý, định thời , đặc tính tải, và môi trường hoạt động của thiết kế

L6 Khai báo kiểu và cách dùng:

Ngôn ngữ VHDL cho phép mô tổ các biến số ở các kiểu như: bịt, boolean, integer, floating point, kiểu liệt kê, kiểu dãy, bản ghi, ngoài ra còn hỗ

trợ các kiểu do người thiết kế định nghĩa, VHDL cũng cho phép người thiết kế

định nghiã các loại toán tử cho riêng mình để phục vụ cho quá trình thiết kế linh hoạt hơn

VHDL cho phép sử dụng các hàm, thủ tục, chương trình con có thể sử dụng để biến đổi kiểu, định nghĩa đơn vị luận lý, định nghĩa lại các toán tử, định

nghĩa toán tử mới, với đặc điểm này ngôn ngữ VHDL sẽ trợ giúp cho người

thiết kế trong việc linh hoạt các thiết kế của mình

I8 Điều khiển định thời:

Một đặc điểm đặc biệt của ngôn ngữ VHDL, là cho phép đặc tả định thời

ở tất cả các cấp, nó cho phép người thiết kế đặt giá trị của tín hiệu với thời gian

giữ chậm, định nghĩa tín hiệu đồng bộ, đặt độ rộng xung, các ràng buộc thời

gian khác người thiết kế có thể căn cứ vào đặc điểm này để định các giá trị

tín hiệu sao cho phù hợp với các thiết kế cho phần cứng

Trang 20

Il CAC CONG CU PHAN MEM HO TRO

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 được theo nhiều tiêu chuẩn công nghệ Một số

phần mềm của các hãng lớn như:

Exemplar Logic°s Leonardo là một công cụ tổng hợp, tối ưu hóa và phân tích rất linh hoạt và mềm dẻo Nó được sử dụng để thiết kế các vi mạch ASICs, FPGÁ, CPLDs Người thiết kế có thể thực hiện nhiều mức thiết kế

trên một bản thiết kế, lưu trữ và điều chỉnh bằng tay các cấp thiết kế, sử dụng ngôn ngữ mô tả phần cứng để cài đặt thiết kế Leonardo cung cấp một môi

trường thiết kế Top - Down bắt đầu từ VHDL hay Verilog, có khả năng thông

báo kết quả bằng việc sử dụng tập tin định thời SDF va thu viện mô phỏng

Vital Leonardo được tích hợp đầy đủ môi trường mô phỏng các kiểu công

nghệ Công cụ tổng hợp Exemplar giải quyết các mức tổng hợp tới cổng logic,

tối ưu hóa tốc độ và điện tích, ánh xạ tới một loại công nghệ cụ thể

Snopsys FPGA Express có các chức năng chuyển ngôn ngữ VHDL thành

các khối luận lý Tối ưu hóa các khối đó bằng một phương pháp tối ưu Anh

xạ các cấu trúc luận lý vào thư viện cong nghệ đặc biệt FPGA

Synplify là phần mềm tổng hợp mạch dùng ngôn ngữ VHDL và Verilog

có ưu điểm là rất dễ sử dụng, tốc độ tổng hợp rất nhanh so với các công cụ tổng hợp khác Ngõ ra là sơ đỗ liên kết mức cổng cung cấp cho các công cụ place và route FPGA sử dụng

MAX + PLUS II là phần mềm đa chức năng thực hiện thiết kế tổng hợp

mạch cho một số loại CPLDs và FPGAs của hãng Altera Nó hỗ trợ biên dịch,

mô phỏng, phân tích, định thời và tổng hợp mạch cho một số thiết bị như:

EPM7128LC84-7, EPF1OK20RC2404

Cypress Semiconductor Warp là chương trình dịch cho thiết kế CPLDs

và FPGAs, Warp nhận đầu vào là tập tin VHDL, nó sẽ tổng hợp và tối ưu

thiết kế để tạo ra phần cứng Warp xuất ra sơ đỗ liên kết QDIF cho việc place

và route Công cụ SpDE trong Warp thực hiện tối ưu hóa, sắp xếp và đi dây

cho loai vi mach FPGA Pasic80

Mentor Graphic 14 hang phan mém lớn chuyên cung cấp các công cụ

tổng hợp phức tạp để thiết kế phần cứng cho các loại thiết bị CPLDs và

FPGAs

Trong khuôn khổ đề tài, em tập trung sử dụng phần mền Max+plus II vì

những ưu điểm của nó

Trang 10

Trang 21

Chương II Cấu tạo của một chương trình VHDL

CHƯƠNG II : CAU TAO CUA MOT CHUONG TRINH VHDL

Tất cả các thiết kế (design) được biểu diễn ở hình thức ENTITY

ENTITY là khối xây dựng cơ bản nhất của một thiết kế Tất cả các thiết kế

được tạo ra bằng cách sử dụng một hoặc nhiều ENTITY ENTITY mô tả Sự giao

tiếp với mô hình VHDL ENTITY chỉ ra sự giao tiếp với thế giới bên ngoài Nó

chỉ ra các PORT, hướng của PORT

Một ENTITY gồm có 3 phần : ENTITY_NAME; PORTS và các thông

tin liên quan đến ENTITY Xét ví dụ sau :

ENTITY là từ khoá chỉ ra sự bắt đầu của một phát biểu ENTITY

ENTITY_name 14 mux; cac PORT 18 a, b, c, d, sO, sl va x

ARCHITECTURE mô tả chức năng nằm bên dưới của ENTITY và nó

chứa các phát biểu trình bày hành vi của ENTITY Một ARCHITECTURE luôn

liên hệ với một ENTITY và mô tả hành vi của ENTITY đ Sau đây là một

ARCHITECTURE cho một ENTITY mux ở trên

ARCHITECT

URE dataflow of mux IS

SIGNAL sel : INTEGER;

BEGIN

sel <= 0 WHEN s0 = '0' AND s1 ='0' ELSE

1 WHEN sO ='l' AND s1 ='0' ELSE

2 WHEN sO ='0' AND s1 ='1' ELSE

Trang 11

Trang 22

x<= a AFTER 0.5 NS WHEN sel =0 ELSE

b AFTER 0.5 NS WHEN sel =1 ELSE

c AFTER 0.5 NS WHEN sel =2 ELSE

d AFTER 0.5 NS;

END dataflow;

ARCHITECTURE 1a ti khóa chỉ ra rằng phát biểu ARCHITECTURE là

của một ENTTTY nào đó

Tén cia ARCHITECTURE 1a dataflow

ARCHITECTURE dang mé ta cho ENTITY cé6 tén 14 mux OF mux 14 su kết nối giữa ARCHITECTURE với ENTITY có tên là mux

Cấu trúc của một ARCHITECTURE :

khai OF ENTITY _name IS

báo

Các BEGIN

phát

Trong phần khai báo ta khai báo các tín hiệu nội bộ và các thành phần cho sử dụng sau này Ví dụ :

ARCHITECTURE dataflow OF mux IS SIGNAL sel : INTEGER ; khai báo 1 tín hiệu sel

Trang 12

Trang 23

H.1 Gán tín hiệu đồng thời (concurrent signal asignment architecture) :

Trong kiến trúc VHDL không có thứ tự cho các phép gán Thứ tự thực

hiện độ nhất được chỉ ra bởi các sự kiện trên các tín hiệu mà các phát biểu gán

bị ảnh hưởng Ví dụ :

sel <= 0 WHEN s0 = '0' AND s1I ='0' ELSE

1 WHEN s0 ='1!' AND s1 ='0 ELSE

2 WHEN s0 ='0 AND s1 ='1' ELSE

3;

Sự kiện trên tín hiệu là sự thay đổi giá trị của tín hiệu đó

Một phép gán tín hiệu bị ảnh hưởng bởi sự thay đổi của các tín hiệu nằm bên phải dấu <=

Ở ví dụ trên tín hiệu sel được gán một giá trị phụ thuộc vào giá trị sÖ và s1 Việc gán này xảy ra bất kỳ lúc nào có một sự kiện xảy ra trên s0 hoặc sĨ

Tất cả phát biểu gán khác trong ví dụ này bị ảnh hưởng bởi tín hiệu sel

Kiến trúc gán tín hiệu đồng thời còn gọi là kiến trúc luồng dữ liệu Cấu

trúc luồng đữ liệu nó không có cấu trúc, không có thành phần làm sẵn trong

kiến trúc

Vấn để gán tín hiệu đồng thời : khi người thiết kế dùng phát biểu gán tín

hiệu gặp phải một vấn để đó là giá trị được gán vào phát biểu sau cùng không

xuất hiện tức thì Làm cho hành vi của mô hình bị lỗi nếu người thiết kế đang

phụ thuôc vào giá trị mới này

Ví dụ :

LIBRARY IEEE;

USE IEEE.Sdt_logic _1164.ALL;

ENTITY mux4_la is Port (10, il, 12, 13, a, b : IN std_logic;

q : out std_logic);

END mux4_la;

Trang 13

Trang 24

Chương II Cấu tạo của một chương trình VHDL

architecture Behavioral of mux4_la is

SIGNAL sel : INTEGER;

BEGIN

PROCESS (40, il, 12, 13, a, b) BEGIN

Mô hình này viết cho mux 4:1 Phụ thuộc vào giá trị a, b một trong 4 ngõ

vào được đưa đến ngõ ra ARCHITECTURE bắt đầu PROCESS bằng việc khởi

Trang 14

Trang 25

Chương IH Cấu tạo của một chương trình VHDL

tao tín hiệu nội bộ sel = 0; dựa vào giá trị a và b Giá trị 1 hoặc 2 được cộng vào

sel để chọn ngõ vào Phát biểu CASE được chọn bởi giá trị của sel Tuy nhiên

ARCHITECTURE không làm việc đúng vì giá trị của sel không bao giờ được

khởi tạo bởi dòng đầu tiên sel <= 0 cho đến khi PROCESS hoàn tất lần đầu

tiên Chúng ta có 2 cách để khắc phục : cách một Chèn một phát biểu wait sau

mỗi phép gán tín hiệu tuần tự

LIBRARY IEEE;

USE IEEE.Sdt_logic _1164.ALL;

ENTITY mux4_la is Port (10, il, i2, 13, a, b : IN std_logic;

q : out std_logic);

END mux4_ la;

architecture Behavioral of mux4_la is

SIGNAL sel : INTEGER;

Trang 26

q : out std_logic);

END mux4_la;

architecture Behavioral of mux4_la is

BEGIN PROCESS (i0, il, 12, 13, a, b) VARIABLE sel : INTEGER RANGE 0 TO

Trang 27

Khi sel được khai báo là biến thì việc gán xảy ra tức thì Nên các phát

biểu sau sử dụng giá trị đúng

IL2 Thiết kế cấu trúc (netlist design) :

Một cách khác để viết thiết kế mux ở trên là ta sử dụng các thành phần

con (subcomponent) Mỗi thành phần con thể hiện một thao tác nhỏ hơn của mô

Trang 28

U3 : andgate (a, sO_inv, s1_inv, x1);

U4 : andgate (b, sO, sl_inv, x2);

U5 : andgate (c, sO_inv, sl, x3);

U6 : andgate (d, sO, sl, x4);

U7: orgate (x2 => b, xl => a, x4 => d, x3 =>

Cách này dùng cho một số thành phần mức cổng (gate-level) để mô hình

hóa hành vi của thiết bị Mỗi thành phần cổng được khai báo trong phần khai

báo ARCHITECTURE Phần này nằm giữa phát biểu ARCHITECTURE và từ

khóa BEGIN

Các tín hiệu cục bộ được dùng để kết nối các thành phần để hình thành

nên mô tả kiến trúc Các tín hiệu này được khai báo sử dụng khai báo SIGNAL

Vùng phát biểu kiến trúc được đặt sau từ khoá BEGIN

Đối với ví dụ trên các phát biểu được đánh nhãn u1 — u7 Phát biểu ul thuyết minh cho thành phần inverter, phát biểu này nối port sO tới ngõ đầu tiên

Trang 18

Trang 29

của thành phần ¡nverter Kết quả là ngõ in1 của inverter được nối đến ngõ s0

cia ENTITY mux và ngõ x được nối với tín hiệu nội bộ s0_inv

Phát biểu lý thuyết minh cho cổng orgate x => x nghĩa là nối ngõ ra x của cổng or với ngõ ra x của ENTITY

IL3 Kiến trúc tuần tự (sequential architecture) :

Cách thứ 3 để mô tả chức năng của ARCHITECTURE đó là dùng phát biểu PROCESS để mô tả chức năng được thể hiện ở dạng thuật toán (

algorithmic ) Xét vi du :

ARCHITECTURE sequential OF mux IS

BEGIN

PROCESS (a, b, c, d, sO, s1)

VARIABLE sel : INTEGER ; BEGIN

Trang 30

Chương II Cấu tạo của một chương trình VHDL,

END sequential;

ARCHITECTURE nay chi chifa mét phát biểu được gọi là phát biểu

PROCESS Nó bắt đầu với từ khóa PROCESS và kết htúc ở dòng END

PROCESS; Tat cd các phát biểu giữa 2 dòng này được xem là phần của

PROCESS

Trong 1 ARCHITECTURE cho một ENTITY tất cả các phát biểu là

đồng thời Như vậy phát biểu tuần tự nằm ở đâu? Có một phát biểu PROCESS

nó chỉ chứa các phát biểu tuần tự Bảng thân phát biểu PROCESS là phát biểu đồng thời Một phát biểu PROCESS có thể tổn tại trong một ARCHITECTURE

Một phát biểu PROCESS gồm có 3 phần : danh sách cảm nhận, khai báo

PROCESS và phần phát biểu PROCESS

HH.1 Danh sách cảm nhận(sensitivity lis) :

Là một danh sách gồm các tín hiệu được đặt trong dấu ngoặc sau từ khoá

PROCESS Danh sách nàyliệt kê chính xác các tín hiệu mà nó làm cho phát

biểu PROCESS thực thi Chỉ có những sự kiện xảy ra trên các tín hiệu trong danh sách cảm nhận mới làm cho các phát biểu trong PROCESS thực thi

IH.2 Vùng khai báo PROCESS :

Vùng nằm giữa kết thúc danh sách cảm nhận và từ khoá BEGIN khai

báo các biến, hằng, khai báo kiểu, khai báo chương trình con

IH.3 Vùng phát biểu PROCESS:

Trang 20

Trang 31

Vùng này bắt đầu với từ khóa BEGIN và kết thúc với dòng END

PROCESS Tất cả các phát biểu được bao trong vùng này là các phát biểu tuần

tự ( IF, ELSE, LOOP ) Thứ tự thực thi là thứ tự các phát biểu trong

PROCESS với danh sách cảm nhận là

VARIABLE temp : std_logic; Khai bao 1

biến temp BEGIN

temp := NOT(a AND b); phat biéu 1

IF (temp ='l') THEN , phát biểu tuần

Trang 32

Chương II Cấu tạo của một chương trình VHDL,

c <=temp AFFER 6 ns;

END IF;

END PROCESS;

END behavial;

IV Các phát biểu tuần tự trong PROCESS

IV.1 Phat biéu IF :

Phát biểu IF bắt đầu với từ khóa IF và kết thúc với từ khóa END IF, Có 2

mệnh đề tùy chọn trong phát biểu IF : ELSIF và ELSE Mệnh để ELSIF có thể

lập lại nhiều hơn 1 lần, còn mệnh để ELSE thì chỉ có 1 Điểu kiện trong tất cả

các trường hợp là biểu thức Boolean Bất kỳ khi nào giá trị của biểu thức là

đúng thì phát biểu theo sau được thực thi, Nếu không có điều kiện đúng thì phát

biểu theo sau mệnh để ELSE được thực thi nếu nó tôn tại

Ví dụ l1 :

IF (X < 10) THEN

A:=b;

END IF;

Phát biểu bắt đầu với từ khóa IF tiếp theo là điều kiện ( X < 10) và theo

sau là từ khóa THEN Nếu điều kện là đúng X < 10 thì phát biểu giữa THEN và

END IF được thực thi Trong ví dụ này phát biểu gán a := b được thực thi, nếu

X >=l0 thì điều kiện sai Trong ví dụ này không có mệnh đề ELSE Vì vậy

không có phát biểu được thưc thi, điều khiển được chuyển đến sau END IE

Trang 33

Trong ví dụ này có 2 biến weekend và weekday Nó được thiết lập phụ

thuộc vào tín hiệu day Weekday = true bất kỳ khi nào day = Sunday hoặc day

= Saturday Ngoài ra biến weekday = true Việc thực thi phát biểu IF được bắt

đầu bằng việc kiểm tra xem biến day = cái gì Nếu day = Sunday thì phát biểu

theo sau được thi thi và điều khiển được chuyển đến phát biểu sau END IF Nếu

điều kiện của IF không đúng thì điều kiện được chuyển đến phát biểu ELSIF và

day được kiểm tra cho Saturday Nếu day = Saturday thì phát biểu theo sau

được thực thi và điều khiển được chuyển đến phát biểu sau END IF Cuối cùng

nếu day không bằng Sunday hoặc Saturday thì phát biểu ELSE được thực thi

IV.2 Phát biểu CASE :

Phát biểu CASE được dùng bất kỳ khi nào giá trị biểu thức được dùng để

Phát biểu được thực thi phụ thuộc vào giá trị của biểu thức instruction

Nếu giá trị của instruction là một trong các lựa chọn được đưa ra sau WHEN thì

phát biểu của giá trị đó được thực thi Ngoài ra, phát biểu sau mệnh để

OTHERS được thực thi Chương trình sẽ bị lỗi nếu không có mệnh đề OTHERS,

vì các lựa chọn của chúng ta không bao hàm hết mọi giá trị của 1nstruction

Ví dụ 2:

TYPE vectype IS ARRAY (0 TO 1) OF BIT

Trang 23

Trang 34

Trong ví dụ này phát biểu CASE không cần mệnh để OTHERS vì tất cả

các giá trị có thể của bit_vec đã được đưa ra

IV.3 Phát biểu LOOP :

Phát biểu này được dùng bất kỳ khi nào một thao tác cần được lặp lại

Có kiểu phát biểu LOOP

IV.3.1 Vòng lặp WHILE LOOP :

WHILE condition LOOP : vòng lặp này được thực thi với số lần lặp không biết trước miễn là điều kiện còn đúng Ví dụ :

WHILE (day- weekday) LOOP

Day: = get- net- day (day);

Trang 35

Chương II Cấu tạo của một chương trình VHDL

kiểm tra trở lại, nếu đúng vòng lặp lại được thực thi, nếu sai điểu khiển được

chuyển tới phát biểu sau mệnh đề End Loop

Vòng lặp được thực thi 10 lần bắt kỳ khi nào vòng lặp được thực thi Chỉ

số ¡ bắt đầu từ giá trị bên trái nhất của tầm và được tăng dân lên phía biến phải

Một điểm cần lưu ý về phát biểu For Loop là giá trị chỉ số ¡ được khai

báo nội bộ bởi phát biểu FOR Nếu một biến khác cùng tên tổn tại trong

Process, Function, Proceddure, thì hai biến này được đối xử như là hai biến tách

biệt nhau và được truy xuất bởi ngữ cảnh

Khi ¡ trong danh sách được cảm nhận thay đổi giá trị thì phát biểu x«i+

1 được thực thi Tiếp theo với vòng lặp FOR được thực thi, giá trị chỉ số ¡ không

giống với giá trị ¡ được dùng để tính giá trị cho x hai đối tượng này tách biệt

nhau, chúng được truy xuất bởi ngữ cảnh Bên trong vòng lặp LOOP, khi một sự

tham chiếu đến I thì chỉ số nội bộ được lấy lại Nhưng bên ngoài vòng lặp FOR,

khi tham chiếu đến ¡ giá trị của ¡ trong danh sách cảm nhận của PROCESS được

Trang 25

Trang 36

Chương II Cấu tạo của một chương trình VHDL

s* Ghỉ chú: Giá trị được chỉ ra tầm của vòng lặp FOR không cần thiết phải

là giá trị INTEGER Tầm này có thể là một tầm riêng biệt bất kỳ Hãy xem một

Sun <mov- lawn;

ELSIF i= Sun THEN Church <= family;

Khoảng của tầm được chỉ ra là kiểu Bằng việc chỉ ra kiểu như là tầm,

trình biên dịch xác định rằng giá trị bên trái nhất là Sun và giá trị bên phải nhất

là sat Do đó tầm xác định là Sun to Sat

Chúng ta có thể tạo một tầm giảm dần bằng mệnh để Downto

Trang 37

Với x, y khác nhau ta có một tầm khác nhau

IV.4 Phat biéu wait:

Phát biểu wait cho phép người thiết kế khả năng treo (suspend) việc thực

thi tuần tự của PROCESS hoặc một Subprogram Điều kiện để khôi phục việc

thực thi PROCESS hoặc subprogram bị treo có thể chỉ ra bởi ba cách khác nhau

Wait On signal Changes Wait Until an expression is true Wait for a specfic amount of time Phát biểu wait được dùng cho một số các mục đích khác nhau, vệc sử

dụng phổ biến nhất ngày nay là chỉ ra các ngõ vào clock cho Synthesis tool

Phát biểu wait chỉ ra clock cho một phát biểu process mà nó được đọc bởi

synthesis tool để tạo ra logic tuần tự chẳng hạn như thanh ghi hay Flip- Flop

Các sử dụng khác là làm trễ việc thực thi process mét khỏang thời gian hoặc để

chỉnh sửa động danh sách cảm nhận của PROCESS

Sau đây là phát biểu của process với một phát biểu wait được dùng để tạo logic

tuần tự

PROCESS Begin

Wait untill Clock= ‘1’ and clock Event;

q <d;

End process;

PROCESS nay dudc dùng để tạo một FF mà nó đưa giá trị của d ra q khi

ngõ vào clock có một cạnh lên Thuộc tính EVENT được buộc với ngõ vào

clock có một sự kiện trong suốt delta timepoint hiện tại Việc kết hợp nhìn vào

giá trị 1 và 1 sự thay đổi trên clock tạo ra một chức năng cân thiết để nhìn vào

cạnh lên của ngõ vào clock Kết quả là PROCESS bị treo tại phát biểu wait cho

đến khi clock có một cạnh lên thì giá trị hiện tại của d được gán cho q

Để một FF có ngõ vào không đồng bộ reset cho FF trên ta có thể làm như sau :

PROCESS

Trang 27

Trang 38

Chương HI Cấu tạo của một chương trình VHDL

Begin

Wait until clock= ‘1’ and clock EVENT;

IF (reset= ‘1’) THEN

qed END IF;

END process;

Khi clock xảy ra, tín hiệu reset được kiểm tra đầu tiên, nếu nó tích Cực

thì “o' được gán cho q ngoài ra ngõ vào q được gán= d

Một FF có ngõ vào reset như sau :

PROCESS BEGIN

IF (reset= ‘1’) THEN

q=’0’

ELSIF clock Event and clock = ‘1’ THEN

qed END IF;

wait on reset, clock

END PROCESS;

Phát biểu process chứa một phát biểu wait on, làm cho process treo viéc

thực thi cho đến khi một sự kiện xảy ra trên ngõ vào reset hoặc clock, phát biểu

LF sau đó được thực thi và nếu reset tinh cuc, FF bi reset vé ‘o’ ngoai ra clock

được kiểm tra cạnh lên thì nó chuyển ngõ vaò d sang ngõ ra q

Phát biểu wait cũng được dùng để điều khiển các tín hiệu một process

hoặc một subprogram bị ảnh hưởng tại bất kỳ điểm nào trong việc thực thi xét

Trang 39

Chương IH Cấu tạo của một chương trình VHDL,

Wait ON b; 2

End process;

Việc thực thi các phát biểu trong phát biểu PROCESS tiếp tục cho đến

điểm 1, phát biểu wait làm cho process treo việc thực thi tại điểm này Process

không tiếp tục thực thi cho đến khi một sự kiện xảy kiện xảy ra trên tín hiệu a

Do đó process bị ảnh hưởng bởi sự thay đổi trong tín hiệu a Khi có một sự kiện

xảy ra trên tín hiệu a, việc thực thi bắt đầu trở lại tại phát biểu ngay sau phát

biểu wit tại điểm 1 Việc thực thi tiếp tục cho đến khi bắt gặp phát biểu wait tại

điểm 2 Một lần nữa, việc thực thi bị treo, bà PROCESS bây giờ bị ảnh hưởng

bởi tín hiệu b Do đó, bằng việc thêm vào 2 phát biểu wait, chúng ta có thể thay

đổi danh sách cảm nhận của PROCESS một cách linh động

Ta có 3 lựa chọn cho phát biểu wait : Wait on signal, wait until

expression, wait for time expression

IV.4.1.Wait on signal [, signal] :

Loại nay chỉ ra 1 danh sách các tín hiệu mà phát biểu wait sẽ đợi sự

kiện trên chúng Nếu có bất kỳ sự kiện nào xảy ra trên danh sách tín hiệu này

thì việc thực thi tiếp tục với phát biểu theo sau phát biểu wait

WAITT ON a, b; Khi có sự kiện xảy ra trên a hoặc b, PROCESS bắt đầu

lại việc thực thi với phát biểu sau phát biểu wait

IV.4.2 Wait untill expression :

Mệnh để này treo việc thực thi PROCESS cho đến khi biểu thức trả về

giá trị đúng Phát biểu này tạo ra một danh sách cảm nhận các tín hiệu ẩn tàng

được sử dụng qua các biểu thức Khi có bất kỳ tín hiệu nào trong biểu thức xây

ra sự kiện, biểu thức được định giá Khi biểu thức trả về một giá trị đúng, việc

thực thi tiếp tục với phát biểu theo sau phát biểu wait, nhoài ra PROCESS tiếp

tục bị treo

Trang 29

Trang 40

Chương IH Cấu tạo của một chương trình VHDL

|

WAIT UNTIL ((x*10) < 100); Khi gid tri của x lớn hơn hoặc bằng 10 thì

PROCESS vẫn còn bị treo, cho đến khi x < 10 thì PROCESS được thực thi tại

phát biểu sau phát biểu wait

IV.4.3.Wait for time expression :

Ménh dé WAIT FOR time — expression treo việc thực thi PROCESS

trong một khoảng thời gian được chỉ ra trong biểu thức thời gian Sau khoảng

thời gian được chỉ ra trong biểu thức trôi qua, việc thực thi được tiếp tục ở phát

biểu theo sau phát biểu wait Ví dụ :

WAIT FOR 10ns; PROCESS bi treo 10ns Sau 10 ns viéc thuc thi tiếp

;tục ở phát biểu sau WAIT

WAITT FOR (a*(b+c)); Biểu thức thời gian trước hết phải được tính toán

để trả về 1 giá trị thời gian, sau khi giá trị này được tính, phát biểu sử dụng giá

trị này là khoảng thời gian phải chờ

Multiple WAIT condition: ching ta có thể ding | phát biểu WAITT với

nhiều điều kiện

Ví dụ :

WAIT ON nmi, interrupt UNTILL (nmi = TRUE) or (interrupt = TRUE)

FOR 5 Hs ; Chỉ khi có sự kiện xảy ra trén nmi, 1ntrrupt hoặc nmi = true hoặc

interrupt = true hoặc 5 Hs trôi qua thì phát biểu sau WAIT mới được thực thi

Trong một phát biểu WAIT dùng với nhiều điểu kiện thì phải đảm bảo

rằng ít nhất một trong các giá trị của biểu thức phải là tín hiệu để đảm bảo rằng

lên WAIT khong bi chd mai mii

Vidu:

WAIT UNTILL interrupt = true) OR (old_clk = ‘1’);

WAIT time_out : Có 1 số trường hợp , ta không biết chắc rằng điều kiện

của phát biểu wait có thể được đáp ứng hay không Để tránh phát biểu wait chờ

mãi mãi ta thêm vào mệnh để time_out Mện để này cho phép việc thực thi

được tiếp tục sau khoảng thời gian time_out bất chấp điều kiện có được đáp ứng

hay không

Trang 30

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

HÌNH ẢNH LIÊN QUAN

Hình  1.21  Một  đoạn  PAL - Ứng dụng VHDL trong thiết kế số thiết kế vi mạch (IC) dùng điều khiển cửa xe garage xe
nh 1.21 Một đoạn PAL (Trang 12)
Hình  1.22  Thứ  dụ  một  số  cấu  trúc  ngõ  ra - Ứng dụng VHDL trong thiết kế số thiết kế vi mạch (IC) dùng điều khiển cửa xe garage xe
nh 1.22 Thứ dụ một số cấu trúc ngõ ra (Trang 13)
Hình  dưới  đây - Ứng dụng VHDL trong thiết kế số thiết kế vi mạch (IC) dùng điều khiển cửa xe garage xe
nh dưới đây (Trang 78)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w