Giáo trình Điện tử số: Tập 2

218 15 0
Giáo trình Điện tử số: Tập 2

Đ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

Tần số của mạch dao động chỉ phụ thuộc vào tinh thể thạch anh mà không phụ thuộc vào giá trị các tụ điện và điện trở trong mạch.. Hình 6.6: M ạ ch dao độ ng đ a hài th ạ ch anh.[r]

(1)

ThS h

(TẬP 2)

(2)

Cùng với tiến khoa học công nghệ, thiết bịđiện tửđã, tiếp tục ứng dụng ngày rộng rãi mang lại hiệu cao hầu hết lĩnh vực kinh tế kỹ thuật đời sống xã hội

Việc xử lý tín hiệu thiết bị điện tử đại dựa sở nguyên lý số Bởi việc nắm vững kiến thức điện tử

số yêu cầu bắt buộc kỹ sư điện, điện tử, viễn thông CNTT Kiến thức vềĐiện tử số cần thiết kỹ sư ngành kể mà cần thiết nhiều cán kỹ

thuật chuyên ngành khác có ứng dụng điện tử

Nhằm giới thiệu cách hệ thống khái niệm vềđiện tử số, cổng logic, phần tử bản, mạch số chức điển hình, phương pháp phân tích thiết kế mạch logic Học viện Cơng nghệ Bưu Viễn thông phối hợp với Nhà xuất Thông tin Truyền thơng xuất sách “Giáo trình Đin t s” (02 tập)

Giáo trình bao gồm kiến thức sở đại số logic, mạch cổng logic, mạch logic tổ hợp, trigơ, mạch logic tuần tự, mạch phát xung tạo dạng xung, nhớ thơng dụng Giáo trình cịn bao gồm kiến thức cấu kiện logic khả trình ngơn ngữ mơ tả phần cứng VHDL Đây ngôn ngữ phổ biến dùng

để mô tả cho mô thiết kế hệ thống số Nội dung giáo trình gồm 02 tập có chương: chương đầu ThS Trần Thị

Thúy Hà biên soạn, chương cuối ThS Đỗ Mạnh Hà biên soạn Trước sau chương có phần giới thiệu phần tóm tắt để

(3)

Tp gm:

Chương 1: Hệđếm Chương 2: Đại số Boole

Chương 3: Cổng logic TTL CMOS Chương 4: Mạch logic tổ hợp

Chương 5: Mạch logic Tp gm:

Chương 6: Mạch phát xung tạo dạng xung Chương 7: Bộ nhớ bán dẫn

Chương 8: Cấu kiện logic khả trình (PLD) Chương : Ngôn ngữ mô tả phần cứng VHDL

Trên sở kiến thức bản, giáo trình cố gắng tiếp cận vấn đề đại, đồng thời liên hệ với thực tế kỹ thuật Tuy nhiên thời gian biên soạn có hạn nên giáo trình cịn thiếu sót, mong bạn đọc góp ý Các ý kiến xin gửi Bộ môn Kỹ thuật Điện tử - Khoa Kỹ thuật Điện tử - Học viện Công nghệ

Bưu Viễn thơng

Xin trân trọng giới thiệu!

(4)

ALU Arthmetic Logic Unit Đơn vị tính logic số học ANSI American National Standards

Institude

Viện tiêu chuẩn Quốc gia Hoa Kỳ

ASIC Application Specific Integrated

Circuit Mạch tích hợp ứng dụng đặc biệt BCD Binary Coded Decimal Số thập phân mã hóa theo nhị phân Bit Binary Digit Số nhị phân

Byte Một nhóm gồm bit C, CLK Clock Xung đồng hồ (Xung nhịp) Cache Bộ nhớ trung gian CAS Column Address Select Chọn địa cột

CLR Clear Xóa

CMOS Complementary Metal Oxide

Semiconductor NMOS PMOS mVật liệu bán dẫn gồắm hai linh kic tổ hợp vớệi n

CPU Central Processing Unit Đơn vị xử lý trung tâm CPLD Complex Programmable Logic

Device Cấu kiện logic khả trình phức tạp Crumb bit

CS Chip Select Chọn chíp

DDL Diode-Diode Logic Cổng logic chứa điốt

Deckle 10 bit

(5)

DTL Diode Transistor Logic Cổng logic chứa điốt tranzito

Dynner 32 bit

ECL Emitter Couple Logic Cổng logic ghép cực Emitơ EEPROM Electrically Erasable ROM ROM lập trình xóa

bằng điện

EPROM Erasable ROM ROM lập trình xóa tia cực tím

FET Field Effect Transistor Tranzito hiệu ứng trường FPGA Field Programmable Gate Array Ma trận cổng lập trình theo

trường

H High Mức logic cao

I2L Integrated Injection Logic Mạch logic tích hợp phun IC Integrated Circuit Mạch tích hợp

IEEE Institude of Electrical and Electronics Engineers

Viện kỹ thuật Điện điện tử

ISP In System Programming Lập trình hệ thống L Low Mức logic thấp

Latch Bộ chốt

LCD Liquid Crystal Display Hiển thị tinh thể lỏng LED Light Emitting Diode Điốt phát quang LSB Least Significant Bit Bit có ý nghĩa bé LUT Look Up Table Bảng ánh xạ

Maxterm Thừa số lớn Minterm Số hạng nhỏ

MOSFET Metal Oxide Semiconductor FET FET có cực cửa cách ly lớp ôxít kim loại

MROM Mask ROM ROM chế tạo phương pháp che mặt nạ

(6)

MSI Medium Scale Integrated Mức độ tích hợp trung bình MUX Multiplexer Bộ ghép kênh

Nibble bit

NMOS N – chanel MOS Tranzito trường kênh dẫn N PAL Programmable Array Logic Logic mảng khả trình PLA Programmable Logic Array Mảng logic khả trình PLD Programmable Logic Device Cấu kiện logic khả trình Playte 16 bit

PLS Programmable Logic Sequence Logic khả trình PMOS P – chanel MOS Tranzito trường kênh dẫn P

PRE Preset Tái lập

PROM Programmable ROM ROM khả trình

RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên RAS Row Address Select Chọn địa hàng

RBI Riple Blanking Input Đầu vào xóa nối tiếp RBO Riple Blanking Output Đầu xóa nối tiếp ROM Read Only Memory Bộ nhớ chỉđọc

RTL Resistance Transistor Logic Cổng logic dùng điện trở tranzito RTL* Register Transfer Level

(*Chương 9)

Mức luồng liệu

SPLD Simple Programmable Logic

Device Cấu kiện logic khả trình đơn giản SRAM Static RAM RAM tĩnh

(7)

i

Lời nói đầu 13

Thuật ngữ viết tắt 15

Chương 6: MẠCH PHÁT XUNG VÀ TẠO DẠNG XUNG 369

6.1 Mạch phát xung 370

6.1.1 Mạch dao động đa hài cổng NAND TTL 371

6.1.2 Mạch dao động đa hài vòng RC 374

6.1.3 Mạch dao động đa hài thạch anh 375

6.1.4 Mạch dao động đa hài CMOS 376

6.2 Trigơ SCHMIT 378

6.3 Mạch đa hài đợi 379

6.3.1 Mạch đa hài đợi CMOS 380

6.3.2 Mạch đa hài đợi TTL 383

6.4 IC định thời 385

6.4.1 Mạch điện IC 555 .385

6.4.2 Một vài ứng dụng IC định thời 555 387

6.5 Một số IC thông dụng .394

6.5.1 IC 54/74120 394

6.5.2 IC 54/74121 395

6.5.3 IC 54/74123 397

6.5.4 Trigơ Schmitt .398

Tóm tắt 399

(8)

ii

7.1 Khái niệm chung 405

7.1.1 Khái niệm 405

7.1.2 Những đặc trưng nhớ 406

7.1.3 Phân loại 407

7.1.4 Tổ chức nhớ 408

7.2 Bộ nhớ cốđịnh - ROM 410

7.2.1 Cấu trúc chung ROM 411

7.2.2 MROM 420

7.2.3 PROM 422

7.3 Bộ nhớ bán cốđịnh 423

7.3.1 EPROM (Erasable PROM) 423

7.3.2 EEPROM (Electrically Erasable PROM) 424

7.5 Một số IC thường gặp 425

7.4.1 EPROM xóa tia cực tím 425

7.4.2 PROM 427

7.4 EEPROM 428

7.5 RAM 429

7.5.1 Cấu trúc khối RAM 429

7.5.2 Cấu tạo DRAM 432

7.5.3 SRAM 437

7.5.4 Một số IC SRAM 440

7.6 Đĩa cứng Silicon - Bộ nhớ Flash 442

7.7 Bộ nhớ Cache 444

Tóm tắt 445

(9)

iii

8.1 Giới thiệu công nghệ logic số 447

8.1.1 Công nghệ logic chuẩn (Standard logic) 448

8.1.2 Công nghệ ASIC 449

8.1.3 Cơng nghệ logic khả trình (Programmable Logic) 450

8.1.4 Công nghệ thiết kế vi mạch số mật độ tích hợp lớn (Full Custom VLSI Design) 451

8.2 Cấu kiện logic khả trình (PLD) 453

8.2.1 SPLD 454

8.2.2 CPLD (Complex PLD) 456

8.2.3 FPGA 458

8.3 Giới thiệu phương pháp thiết lập cấu hình choCPLD/FPGA 461

8.3.1 Phương pháp dùng sơđồ mô tả 462

8.3.2 Phương pháp dùng ngôn ngữ mô tả phần cứng (HDL) 463

8.4 Yêu cầu chung thiết kế với CPLD/FPGA 464

8.4.1 Chọn vi mạch CPLD FPGA phù hợp 464

8.4.2 Chọn giải pháp cấu hình cho CPDL/FPGA 465

8.4.3 Chọn công cụ phần mềm phù hợp 469

8.5 Lưu đồ thiết kế cho CPLD/FPGA 470

8.5.1 Lưu đồ thiết kế cho CPLD 470

8.5.2 Lưu đồ thiết kế cho FPGA 475

Tóm tắt 476

Câu hỏi ơn tập 477

Chương 9: NGƠN NGỮ MÔ TẢ PHẦN CỨNG VHDL 479

9.1 Lịch sử phát triển VHDL 482

(10)

iv 9.3.1 Đối tượng V

HDL 487

9.3.2 Kiểu liệu VHDL 490

9.3.3 Các phép toán VHDL 502

9.3.4 Các đơn vị thiết kế VHDL 510

9.3.5 Cấu trúc chung chương trình mơ tả VHDL 518

9.3.6 Mơi trường kiểm tra “testbench” 521

9.3.7 Các cấu trúc lệnh song song 524

9.3.8 Cấu trúc lệnh 531

9.3.9 Hàm thủ tục 539

9.4 Các mức độ trừu tượng phương pháp mô tả hệ thống phần cứng số 546

9.4.1 Phương pháp mơ tả theo mơ hình cấu trúc logic 548

9.4.2 Phương pháp mơ tả theo mơ hình hành vi (Behavioral) 553

9.4.3 Phương pháp mô tả theo mơ hình luồng liệu RTL 554

9.4.4 Phương pháp mơ tả theo mơ hình đồ hình trạng thái (máy trạng thái - State Machine) 561

Tóm tắt 569

Câu hỏi ơn tập 570

(11)

TO DNG XUNG

GIỚI THIỆU

Hầu hết hệ thống kỹ thuật số yêu cầu vài loại dạng sóng định thời, ví dụ nguồn xung dao động cần thiết cho tất hệ thống định thời Trong hệ thống kỹ thuật số, dạng sóng xung vuông thường sử dụng Sự tạo dạng sóng xung vng gọi đa hài

Có ba loại đa hài:

- Bộ dao động đa hài (chạy tự do) - Bộ đa hài đơn ổn (một nhịp)

- Bộ đa hài hai trạng thái ổn định (trigơ)

Một dao động đa hài dao động để tạo dạng xung Nó có hai trạng thái chuẩn mà khơng u cầu kích hoạt từ bên Bộ thường dùng làm xung điều khiển cho mạch

Một đa hài đơn ổn có trạng thái ổn định, tức điều kiện trạng thái ổn định đầu cố định Đầu trạng thái thấp trạng thái cao Mạch cần xung kích khởi từ bên ngồi mạch chuyển sang trạng thái khác Mạch giữ nguyên trạng thái cũ khoảng thời gian, khoảng thời gian phụ thuộc vào thành phần dùng mạch Trạng thái mạch xem trạng thái ổn định phục hồi trở trạng thái ổn định mà không cần xung kích hoạt từ

C

(12)

bên ngồi Độ rộng xung kích hoạt nhỏ, độ rộng xung đầu phụ thuộc vào khoảng thời gian mà mạch giữ lại trạng thái ổn định Mạch gọi mạch nhịp (one-shot) xung kích hoạt tạo xung có độ rộng khác Mạch hữu dụng tạo xung tương đối dài (hàng chục mili giây - ms) từ xung hẹp, cịn gọi giảm xung (pulse stretcher)

Ví dụ, vi xử lý phát tín hiệu cho thiết bị bên để in nội dung cách truyền qua xung Thiết bị đầu nói chung có tốc độ chậm vi xử lý, yêu cầu xung tín hiệu khoảng thời gian lâu Điều đạt mạch giao tiếp có chứa đa hài đơn ổn

Một mạch đa hài hai trạng thái ổn định gọi mạch đa hài hai trạng thái ổn định hay trigơ Mạch thực việc chuyển tiếp từ trạng thái ổn định sang trạng thái ổn định khác lúc xung kích khởi áp vào Mạch thường dùng làm thành phần nhớ hệ thống kỹ thuật số thảo luận chương

Chương tập trung vào sơ đồ, nguyên tắc hoạt động, ứng dụng mạch dao động đa hài, mạch dao động đa hài đợi, trigơ Schmitt dựa cổng TTL, CMOS IC định thời 555 Sau chương bạn đọc tự thiết kế mạch dao động theo yêu cầu cho ứng dụng khác

6.1 MẠCH PHÁT XUNG

(13)

- T: Chu kỳ xung Đó khoảng thời gian xung liền loạt xung trùng lặp

- f T

= : Tần số xung Đó số xung đơn vị thời gian

- TW: Độ rộng xung Đó khoảng thời gian từ sườn trước đến sườn sau xung, tính từ mức 0.5Vm

- Vm: Biên độ xung Đó biên độ lớn điện áp xung - tr: Sườn trước Đó khoảng thời gian sườn trước tăng từ 0.1Vm đến 0.9Vm

- tf: Sườn sau Đó khoảng thời gian sườn sau giảm từ 0,9Vm đến 0,1Vm

0,9Vm

0,5Vm

0,1Vm

tr tf

Vm

TW

T

Hình 6.1: Đặc trưng kỹ thuật xung vng

Do vai trị quan trọng xung đồng hồ nên yêu cầu với chúng chặt chẽ Người ta đánh giá xung đồng hồ qua tiêu: Độ ổn định tần số (hay độ không ổn định tương đối tần số

f f

(14)

6.1.1 Mạch dao động đa hài cổng NAND TTL

Cổng NAND làm việc vùng chuyển tiếp khuếch đại mạnh tín hiệu đầu vào Nếu cổng NAND ghép điện dung thành mạch vòng hình 6.2 ta dao động đa hài VK đầu vào điều khiển, mức cao mạch phát xung mức thấp mạch ngừng phát

I II

VK

Rf1 Rf2

C2

C1

Vi1 Vo1 Vi2 Vo2

Hình 6.2: Bộ dao động đa hài cấu trúc cổng NAND

Nếu cổng I II thiết lập điểm công tác tĩnh vùng chuyển tiếp VK = 1, mạch phát xung nối nguồn Nguyên tắc làm việc mạch sau: Giả sử tác động nhiễu làm cho Vi1 tăng chút, xuất trình phản hồi dương sau:

(15)

Kết trình là: Cổng I nhanh chóng ngắt cịn cổng II thơng bão hồ, mạch điện bước vào trạng thái tạm ổn định Lúc C2 nạp điện C1 phóng Vi1 ngưỡng thơng VT làm xuất trình phản hồi dương đưa mạch trạng thái ổn định ban đầu Mạch không ngừng dao động, bỏ qua điện trở đầu cổng NAND, dựa vào hình 6.3a giản đồ xung mạch thể hình 6.3b

Vì thời gian nạp điện nhanh thời gian phóng, nên thời gian trì trạng thái ổn định tạm thời phụ thuộc vào thời gian nạp điện hai tụ điện C1 C2 Từ hình 6.2 ta có thời gian nạp điện tụ C1 τ1 = (Rf2 // R1) C1, thời gian để Vi2 nạp điện đến VT là:

( ) OH ( T OL)

M2 f 1

OH T

2V V V

t R / /R C ln

V V

− +

=

− (6.1)

Nếu Rf1 = Rf2 = Rf, C1 = C2 = C, VOH = 3V, VOL = 0,35V, VT = 1,4V ta có:

( f 1)

T R / /R C≈ (6.2)

(16)

Hình 6.3a: Mạch vịng nạp phóng điện tụ C1, C2

(17)

trên mạch dao động đa hài 6.1.2 Mạch dao động đa hài vòng RC

Hình 6.4: Bộ dao động vịng dạng sóng

Bộ dao động vịng có cấu trúc gồm cổng NAND mắc nối tiếp hình 6.4

Do có phản hồi dương từ Vo đến Vi1 làm cho mạch khơng có trạng thái ổn định Tần số tín hiệu đầu phụ thuộc vào thời gian trễ cổng NAND điều chỉnh tần số Tần số mạch phát điều chỉnh mạch trễ RC mắc thêm vào mạch hình 6.5 Tần số dao động mạch điều chỉnh thông qua giá trị tụ điện C điện trở R

Hình 6.5: Bộ dao động đa hài có mạch RC 6.1.3 Mạch dao động đa hài thạch anh

(18)

đa hài điển hình sử dụng tinh thể thạch anh Tần số mạch dao động phụ thuộc vào tinh thể thạch anh mà không phụ thuộc vào giá trị tụ điện điện trở mạch

Hình 6.6: Mạch dao động đa hài thạch anh

Bộ tạo dao động đa hài thạch anh thiết lập cách thay tụ điện đa hài xét thạch anh

Thạch anh có tính chất áp điện, tương đương khung cộng hưởng

Kí hiệu, sơ đồ tương đương điện thạch anh trình bày hình 6.7

(19)

o B o A A

B

a) b)

o o

rq Cp

Lq

cq

Hình 6.7a: Kí hiệu thạch anh;

b) Sơđồ tương đương điện áp thạch anh

Trong hình 6.6, tụ C1 tụ biến đổi để thay đổi tần số cộng hưởng thạch anh phạm vi hẹp

Tại tần số cộng hưởng nối tiếp thạch anh fq, trở kháng thạch anh nhỏ, tín hiệu có tần số fqđi qua thạch anh dễ dàng Nên tần số dao động mạch định tần số cộng hưởng nối tiếp thạch anh fq mà không phụ thuộc vào giá trị RC mạch

6.1.4 Mạch dao động đa hài CMOS

Hình 6.8a mạch dao động đa hài sử dụng hai cổng NOR CMOS linh kiện định thời trở tụ

Giản đồ xung mạch thể hình 6.8b Chu kỳ dao động mạch tính gần sau:

D D

1

D T T

E E

T T T RCln

E V V

⎛ ⎞

= + = ⎜ + ⎟

⎝ ⎠ (6.3)

Nếu giả thiết VT = ED/2 T1 = T2,

(20)

a)

= RC T

ED

0 ED

0 ED

0 V0

Vi2

Vi1 ET= ED/2

T1 T2

b)

(21)

6.2 TRIGƠ SCHMITT

Hình 6.9: Sơđồ nguyên lý trigơ Schmitt

Hình 6.9 sơ đồ nguyên lý trigơ Schmitt, hay gọi đảo pha trigơ Schmitt Nó gồm phần: mạch đầu vào, mạch Schmitt tầng công suất đầu Nguyên tắc làm việc mạch sau: Nếu VB1 mức thấp T1 ngắt, T2 thơng bão hoà ngược lại VB1 mức cao T1 thơng bão hồ, T2 ngắt Khi VB1 tăng từ mức thấp lên mức cao đến trị số VBE1 = VB1 - ILR3 = 0,5V T1 bắt đầu chuyển từ trạng thái ngắt vào trạng thái khuếch đại Do VB1 tiếp tục tăng nên VCE1 = VBE2 giảm xuống Sau T2 rời khỏi trạng thái bão hoà mà VB1 tiếp tục tăng xảy trình phản hồi dương sau:

(22)

Kết mạch điện nhanh chóng lật sang trạng thái T1 ngắt, T2 thơng bão hồ Chúng ta gọi giá trị điện áp đầu vào VI trình tăng lên đạt đến ngưỡng làm lật mạch Schmitt để đầu từ mức cao xuống mức thấp ngưỡng VT+ giá trị ngược lại ngưỡng trigơ Schmitt VT- (hình 6.10) Hiệu điện áp tương ứng với ngưỡng ngưỡng gọi độ chênh lệch điện áp chuyển mạch ΔV = VT+ - VT-

Hình 6.10: Dạng sóng đầu vào Vi đầu Vo trigơ Schmitt Trigơ Schmitt thực chất so sánh hai ngưỡng nên dùng ứng dụng khác như: Các mạch dao động, mạch so sánh, lọc nhiễu

6.3 MẠCH ĐA HÀI ĐỢI

(23)

6.3.1 Mạch đa hài đợi CMOS

6.3.1.1 Mch đa hài đợi kiu vi phân

Hình 6.11 sơ đồ nguyên lý mạch đa hài đợi kiểu vi phân Tại trạng thái ổn định, VI = Vo1 = ED, Vi2 = ED, Vo2 = Khi có xung kích thích đầu vào làm cho cổng nhanh chóng cấm đầu 0, xem giản đồ 6.12

Hình 6.11: Đa hài đợi kiểu vi phân dùng cổng NOR CMOS

Mạch điện RC nạp điện cho tụ điện C Trong trình nạp, điện áp Vi2 tăng dần đến ngưỡng VT làm cổng đóng, điện áp Vo2 = Khi đó, cổng nhanh chóng chuyển trạng thái cấm làm cho mạch đa hài đợi trở trạng thái ổn định

(24)

Độ rộng xung đầu mạch xác định công thức sau:

( ) D

W

D T E

T R R C ln

E V

= + ∗

− (6.5)

trong R0 điện trở đầu cổng 1, VT = ED/2 thì:

( )

W

T =0,7 R R C+ (6.6)

6.3.1.2 Mch đa hài đợi kiu tích phân

Hình 6.13: Đa hài đợi kiểu tích phân dùng cổng NOR CMOS

Hình 6.13 biểu diễn sơ đồ nguyên lý mạch đa hài đợi kiểu tích phân

D E

I

V

O1

V I2

V

O

V

W T

T

V

Hình 6.14: Dạng sóng mạch đa hài đợi kiểu tích phân

(25)

và đồng thời mạch RC bắt đầu tích điện cho tụ điện C, điện áp Vi2 = VT điện áp đầu Vo2 chuyển xuống trạng thái Sau hết xung đầu vào tụ điện phóng điện thơng qua trở R mạch trở trạng thái ổn định

Độ rộng xung đầu mạch đa hài đợi (hình 6.14) tính theo cơng thức:

( ) D

W

D T E

T R R C ln

E V

= + ∗

− (6.7)

trong R0 điện trở đầu cổng 1, VT = ED/2 thì:

( )

W

T =0,7 R R C+ (6.8)

6.3.1.3 Mch đa hài đợi dùng trigơ Schmitt

Dựa vào đặc tính so sánh trigơ Schmitt, mạch nguyên lý hình 6.15 đa hài đợi

+ T V

W T Hình 6.15: Sơđồ nguyên lý giản đồ thời gian

mạch đa hài dùng trigơ Schmitt

Độ rộng xung đầu phụ thuộc vào ngưỡng trigơ Schmitt giá trị tụ điện C điện trở R theo công thức sau:

D W

D T E T RC ln

E V+

= ∗

− (6.9)

(26)

6.3.2 Mạch đa hài đợi TTL

Hình 6.16 sơ đồ nguyên lý mạch đa hài đợi họ TTL, cổng 1, 2, cấu trúc lên mạch flip-flop, cổng 4, mạch tạo dạng xung Các cổng thuộc họ TTL nên có mức logic 3,6V logic 0,3V Đầu vào V2 biểu thị sử dụng mạch đảo Mạch đảo thông bão hồ V2 ~ 0,7V, cịn ngưỡng thơng cỡ 0,6V

Tại trạng thái ổn định P = P’ = Mạch đảo đầu vào V2 khuếch đại tranzito emitơ chung trạng thái bão hồ V2 = 0,7V, V3 = , V1 = 1, Q = 0, Q =

Khi có xung dương tác động đầu vào P = 1, P’ = 1, V1 = 0, Q = 1, Q = 0, mạch trạng thái tạm ổn định Do Q = khoá cổng 4, nên sau bị kích thích sườn dương xung P mạch bị cách ly khỏi xung P

Hình 6.16: Sơđồ nguyên lý mạch đa hài đợi họ TTL

Vì điện áp tụ C khơng tăng đột biến nên V1 từ mức cao 3,6V đột biến xuống 0,3V V2 từ mức 0,7V đột biến xuống -2,6V Bắt đầu trình nạp điện tụ điện C V2 tăng dần lên Khi V2 Tăng lên đến ngưỡng thơng 0,6V sinh q trình phản hồi sau:

2

(27)

Q trình làm mạch nhanh chóng trở trạng thái ổn định ban đầu V3 = , V1 = 1, Q = 0, Q = Tiếp tụ điện C phóng điện, V2 hồi phục 0,7V Hình 6.17 giản đồ xung mạch đa hài đợi họ TTL với giả thiết thời gian trễ truyền đạt cổng đảo pha tpd

Hình 6.17: Giản đồ xung mạch dao động đa hài đợi TTL với giả thiết độ trễ cổng tpd

(28)

6.4 IC ĐỊNH THỜI

6.4.1 Mạch điện IC 555

Bộ định thời 555 sử dụng rộng rãi dao động đa hài, đa hài đợi so sánh Hình 6.18 sơ đồ khối nguyên lý IC định thời này, chức chân bảng sau:

Bảng 6.1: Bảng mô tả chức chân IC

Chân Chức Chân Chức

1 Đất – GND Điện áp điều khiển Chân kích thích Chân ngưỡng Đầu Đầu phóng điện Xố – Reset Nguồn – Vcc

Sơ đồ nguyên lý IC 555, gồm mạch phân áp với điện trở R (100kΩ) nối với chân Ở chân bao gồm nguồn nuôi so sánh cổng logic mạch

-+

+ -100K

100K

100K So sánh

1

3

8

5

2

So sánh

S R

Q

Q

(29)

Điện áp +EC nối với chân có giá trị từ +5V ÷ +25V tuỳ theo mức biên độ xung đầu

Mạch gồm hai so sánh (1) (2) Điện áp đầu vào đảo so sánh thứ có mức điện áp 2EC

3 , điện áp đầu vào thuận so sánh thứ hai C

1 E

Hình 6.19: Sơđồ chân IC LMC555

Đầu hai so sánh nối với đầu vào Trigơ RS,

Trigơ RS sử dụng mạch dùng cổng NOR, mức tích cực mức cao Chân nối với đầu vào cổng NOR thơng qua cổng NOT có tác dụng điều khiển hoạt động trigơ, điện áp chân mức cao (mức “1”) trigơ hoạt động bình thường, cịn điện áp chân mức thấp (mức “0”) cấm trigơ hoạt động Đầu Q trigơ RS đưa qua cổng NOT tới đầu chân 3, đồng thời

Q nối với tranzito T để tạo đầu phóng điện

Bảng chức IC 555 bảng 6.2

Bảng 6.2: Bảng chức IC 555

TH TRIG R OUT DIS

X X L L Thông

C

E

> 1EC

(30)

TH TRIG R OUT DIS C

2 E

< >13EC H Không đổi Không đổi

X >13EC H H Ngắt

6.4.2 Một vài ứng dụng IC định thời 555

6.4.2.1 Trigơ Schmitt

Hình 6.20 sơ đồ nguyên lý trigơ Schmitt dùng IC 555 Với sơ đồ ngưỡng

T C1

V += ∗E ngưỡng T C1 V − = ∗E Độ chênh lệch điện áp

T T C1

V V + V − E

Δ = − = ∗ Nếu đưa điện áp vào đầu vào C-V điều chỉnh VT+, VT- ΔV

i V

Hình 6.20: Mạch trigơ Schmitt dùng IC 555 6.4.2.2 Mch đa hài đợi

(31)

Hình 6.21: Mạch đa hài đợi dùng IC 555

Trong sơ đồ hình 6.21, tụ C1 tác dụng điện trở R (trong sơ đồ ngun lý hình 6.18) tạo thành mạch lọc thơng thấp

Giả sử lúc đầu tụ C chưa tích điện nên VC = Khi đóng mạch nguồn điện, tụ C tích điện, mạch tích điện từ +EC qua R, qua C xuống đất Tụ C tích điện, điện áp uC tăng lên, uC 2EC

3

≥ , điện áp so sánh (1) R = 0, dẫn đến Q = Vì Q = nên cho tranzito T mở, tụ C phóng điện qua R, qua tranzito xuống đất Tụ C phóng điện đến uC = Đây trạng thái ổn định bền (trạng thái đợi) mạch

Khi có xung vng đưa tới đầu vào, biên độ xung vào đủ lớn, điện áp so sánh (2) S = 1, Q = Q = 0, bắt đầu thời gian kéo dài xung đầu Vì Q = nên T cấm, tụ C tích điện, mạch tích điện từ +EC, qua R, qua C xuống đất, tụ C nạp điện với số thời gian:

n R.C

(32)

Tụ C tích điện, điện áp uC tăng, C C

u E

3

≥ , so sánh (1) điện áp R = 0, dẫn đến Q = 1, chấm dứt thời gian kéo dài xung đầu Vì Q = 1, T mở , tụ C phóng điện, qua R, qua T xuống đất, uc= 0, trở lại trạng thái ban đầu

Khi tụ C tích điện, điện áp tụ C tăng theo quy luật hàm mũ:

C C

nap t u E exp

t ⎡ ⎛ ⎞⎤ = ⎢ − ⎜⎜− ⎟⎟⎥ ⎢ ⎝ ⎠⎥ ⎣ ⎦ (6.12)

Thời gian tụ nạp từ điện áp 0V đến 2EC

3 trình bày sau: x

t

C C C

u E e E

3 − τ ⎛ ⎞ = ⎜ −⎜ ⎟ =⎟ ⎝ ⎠ (6.13) Suy ra: x nap t e − τ − = hay là: x nap t e − τ = ; x nap t eτ =3 tx = τnạpln3 = 1,1τnạp

x

t =1, 1RC (6.14)

(33)

Hình 6.22: Giản đồđiện áp - thời gian mạch đa hài đợi dùng IC 555

/

C

2E

0

TW

VC

0 Vi

Vo

EC

EC

(34)

Hình 6.23 sơ đồ nguyên lý giản đồ thời gian mạch đa hài đợi dùng IC 555, RC mạch định thời Độ kéo dài xung đầu xác định công thức:

W

T RCln 1,1RC (6.15)

Mạch dao động đa hài đợi yêu cầu độ rộng xung đầu vào nhỏ độ rộng xung đầu ra, lớn u cầu dùng thêm mạch vi phân đầu vào

6.4.2.3 Mch đa hài

Sơ đồ nguyên lý mạch đa hài dùng IC 555 trình bày hình 6.24 555 C E C o V 0,01 Fμ

C V R R

Hình 6.24: Mạch đa hài dùng IC 555

Lúc đầu đóng mạch nguồn ni chiều, tụ C chưa kịp nạp điện, điện áp tụ UC = 0, điện áp so sánh (1) R = 0, điện áp so sánh (2) S = 1, dẫn đến Q = 1, Q = T cấm Tụ C tích điện, mạch tích điện từ +EC, qua R1, R2, qua C xuống đất, tụ C nạp điện với số thời gian: nạp= (R1+ R2).C Tụ C nạp điện, điện áp tụ C tăng lên, uC 2EC

3

(35)

Q = 1, dẫn đến tranzito T thơng, tụ C phóng điện, mạch phóng điện từ cực dương tụ C, qua R2, qua T xuống đất đến cực âm tụ C Tụ C phóng điện đến điện áp tụ uC 1EC

3

≤ , điện áp so sánh (2) R = 0, dẫn đến Q = 1, Q = Do Q = nên tranzito T bị cấm, tụ C lại nạp điện, trình lặp lại cũ Hiện tượng tiếp diễn liên tục tuần hoàn

Lưu ý:

Khi đóng điện nguồn tụ C nạp từ 0V đến 2EC

3 , sau tụ phóng điện từ 2EC

3 xuống C

E

3 , lại nạp từ C

E

3 đến C

E Thời gian nạp phóng tụ tính theo cơng thức (6.16) (6.17)

+ Thời gian nạp: tnạp = τnạp ln

tnạp=0,7 (R1+R )C2 (6.16)

+ Thời gian phóng:

ph ph

t = τ ln 0,7R C≈ (6.17)

+ Chu kỳ xung đầu ra:

T = tnạp + tph = 0,7(R1 + 2R2)C (6.18) Dạng tín hiệu cực mạch trình bày hình 6.25

(36)

0 EC/3

VC

2EC/3

Vo

tnạp

tph

T

Hình 6.25: Dạng điện áp chân mạch đa hài dùng IC 555

1

1 1, 43 f

T (R 2R )C

= =

+ (6.19)

C

E

0,01 Fμ

C

V

Hình 6.26: Mạch đa hài điều chỉnh độ lấp đầy xung dùng IC 555

(37)

Hình 6.26 sơ đồ nguyên lý mạch đa hài dùng IC 555 mà độ lấp đầy thay đổi

6.5 MỘT SỐ IC THÔNG DỤNG 6.5.1 IC 54/74120

Hình 6.27 sơ đồ chân IC 54/74120 IC54/74120 IC điều khiển/đồng xung kép

1S1 1S2 1R 1Y

2S1 2S2 2R 2Y

Hình 6.27: Sơđồ chân IC54/74120

Loại IC phát xung dãy xung đồng nhờ chức điều khiển IC hữu dụng mạch điều khiển đồng Nó có chức chốt trạng thái hoạt động để xung đầu không bị cắt

Các xung đồng đơn thiết kế để đồng tín hiệu không đồng Các đầu vào S1, S2 R cho phép tạo xung Đầu vào điều khiển M xác định xem dãy xung vào hay xung vào qua mạch Khi lệnh dừng xung điều khiển đồng hồ tiếp tục cho xung đồng hồ qua mạch miễn đầu vào điều khiển chế độ mức thấp Khi đầu vào điều khiển chế độ mức cao có xung qua

(38)

Bảng 6.3: Bảng chức IC 74120

Đầu vào Chức R S1 S2

X L X Cho phép xung X X L Cho phép xung L H H Cấm xung H ↓ H Bắt đầu cho xung H H ↓ Bắt đầu cho xung ↓ H H Dừng không cho xung H H H Tiếp tục ↑

H: Mức cao; L: Mức thấp

↓: Chuyển trạng thái từ H xuống L

↑: Bắt đầu hoạt động chuyển đổi trạng thái ↓ cuối

6.5.2 IC 54/74121

Q

Hình 6.28: Sơđồ chân IC 54/74121

IC 54/74121 IC đơn ổn (đa hài đợi) có đầu vào trigơ Schmitt Hình 6.28 giới thiệu sơ đồ chân IC

Độ rộng xung IC điều khiển được: + Với Rint … 35ns

(39)

Bảng chức IC 54/74121 bảng 6.4.  

Bảng 6.4: Bảng chức IC 54/74121

Đầu vào Lối

A1 A2 B Q Q

L X H L H

X L H L↑ H↑

X X L L↑ H↑

H H X L↑ H↑

H ↓ H ⊓ ⊔

↓ H H ⊓ ⊔

↓ ↓ H ⊓ ⊔

L X ↑ ⊓ ⊔

X L ↑ ⊓ ⊔

↓: Chuyển trạng thái từ H xuống L

↑: Tín hiệu đầu vào A B thiết lập đủ dài để hoàn thành xung tới trước bắt đầu lại

Đặc điểm IC có hai đầu vào hoạt động mức tích cực âm đầu vào hoạt động mức tích cực dương Các đầu vào sử dụng đầu vào khống chế

Trigơ Schmittt xuất đầu vào B cho phép tín hiệu dao động tự với tốc độ thấp cỡ 1V/s qua Do mạch hoạt động với mức nhiễu cho phép 1,2V

Độ rộng xung thay đổi từ 40ns đến 28s cách chọn tham số định thời Nếu khơng có linh kiện định thời (Rint nối với VCC; Cext Cext/Rext để hở) độ rộng xung đạt 30÷35ns

(40)

Hình 6.29 sơ đồ logic IC 54/74121

Q

Hình 6.29: Sơđồ logic IC 54/74121 Lưu ý:

+ Khi nối tụ phụ bên ta nối tụ Cext Rext/Cext

+ Để sử dụng điện trở định thời bên IC ta nối điện trở Rint với VCC Để thay đổi độ rộng xung cách xác tuần hồn, ta nối điện trở phụ bên nằm Rext/Cext VCC, điện trở Rint để hở

6.5.3 IC 54/74123

IC 54/74 123 bao gồm hai dao động trạng thái ổn định độc lập Cả hai kích khởi lại

(41)

2

Q

1

Q

Q

Q

Hình 6.30: Sơđồ logic IC 54/74123

Bảng 6.5 bảng chức IC 54/74123

Bảng 6.5: Bảng chức IC 54/74121

Lối vào

A B CLR Đáp ứng

X X L Khơng kích khởi L X Khơng kích khởi H H Kích khởi H X Khơng kích khởi L H Kích khởi L H Kích khởi

Độ rộng xung lựa chọn điện trở Rx tụ Cx tính cơng thức (tụ Cx > 1000pF):

TW≈ 0,28RxCx(1+0,7/Rx)

6.5.4 Trigơ Schmittt

IC HEF 40106B bao gồm sáu cổng đảo Schmittt

(42)

Sự sai khác điện áp ngưỡng cộng (VP) ngưỡng trừ (VN) điện áp trễ (VH)

Hình 6.31 6.32 sơ đồ chân sơ đồ logic IC HEF 40106B

Hình 6.31: Sơđồ chân IC 40106B

Hình 6.32: Sơđồ logic IC 40106B TÓM TẮT

Trong chương tìm hiểu mạch tạo xung Mạch dao động xung tự kích khơng cần tín hiệu ngồi đưa vào; sau cấp nguồn chiều mạch tự động sinh xung vuông Thuộc loại dao động tự kích có mạch: dao động đa hài cổng NAND họ TTL, dao động vòng, dao động thạch anh, dao động đa hài CMOS

(43)(44)

CÂU HỎI ÔN TẬP

1. Trong mạch dao động đa hài dùng cổng NAND họ TTL, hình BT 6.1, giá trị điện trở Rf1 = 5*Rf2 = 10 kΩ, giá trị C1 = C2 = 1μF mạch có hoạt động nào? Dạng tín hiệu tương đối đầu nào?

Hình BT 6.1: Bộ dao động đa hài cấu trúc cổng NAND 2. Với câu hỏi câu giả thiết R1 = kΩ, tính tần số dao động

của mạch vẽ dạng sóng đầu

3. Đặc điểm bật mạch dao động đa hài dùng thạch anh gì?

4. Trong mạch dao động đa hài dùng thạch anh hình BT 6.4, khơng có tụ C1, đầu thạch anh nối trực tiếp với đầu vào cổng NAND thứ hai mạch hoạt động ?

(45)

5. Đặc điểm quan trọng trigơ Schmitt gì?

6. Mạch có sơ đồ ngun lý hình BT 6.6 có chức nào?

Hình BT 6.6

7. Với mạch điện câu hỏi 6, tín hiệu đầu vào có dạng tín hiệu hình BT 6.7, tín hiệu đầu nào?

Hình BT 6.7 8. Chức mạch đa hài đợi gì?

(46)

Hình BT 6.9

10.Trong mạch đa hài hình BT 6.10, điện trở R2 bị nối tắt mạch hoạt động nào?

C

E

O

V 0,01 Fμ

C

V

1

R

2

R

(47)

B NH BÁN DN

GIỚI THIỆU

Bộ nhớ bán dẫn thay loại nhớ vật liệu từ Các tiến công nghệ bán dẫn thời gian gần cung cấp nhiều mạch nhớ loại MSI LSI có độ tin cậy cao giá thành hạ Vào đầu thập kỷ 60 kỷ XX, giá thành thương phẩm bit nhớ vào khoảng 2USD Đến (những năm đầu kỷ XXI), giá thương phẩm 128 Mbyte vào khoảng 20 USD Như giá thành thương phẩm bit nhớ sau khoảng 40 năm giảm khoảng 105.106 lần Bộ nhớ bán dẫn điển hình có tế bào nhớ sắp xếp theo hình chữ nhật, gắn khối hộp nhỏ nhựa dạng DIP (Dual in line package) Tế bào nhớ mạch trigơ, tranzito hay mạch có khả tích trữđiện tích, tế bào nhớ dùng để lưu trữ bit thông tin

Trong phần giới thiệu số nhớ bán dẫn 7.1 KHÁI NIỆM CHUNG

7.1.1 Khái niệm

Bộ nhớ thiết bị có khả lưu trữ thông tin (nhị phân) Muốn sử dụng nhớ, trước tiên ta phải viết liệu thơng tin cần thiết vào nó, sau lúc cần thiết phải lấy liệu viết trước

(48)

7.1.2 Những đặc trưng nhớ 7.1.2.1 Dung lượng ca b nh

Dung lượng nhớ số bit thông tin tối đa lưu trữ Dung lượng biểu thị số từ nhớ nbit T nh nbit số bit (n) thông tin mà ta có thểđọc viết đồng thời vào nhớ Ví dụ: Một nhớ có dung lượng 256bit; có cấu trúc để truy nhập lúc 8bit thơng tin, ta biểu thị

dung lượng nhớ 32 từ nhớ x 8bit = 32byte 7.1.2.2 Cách truy nhp thông tin

Các nhớ có hai cách truy nhập thông tin Truy nhp trc tiếp hay gọi truy nhập ngẫu nhiên (random access) Ở cách này, không gian nhớ chia thành nhiều ô nhớ Mỗi ô nhớ chứa từ nhớ nbit có địa xác

định, mã hoá số nhị phân kbit Như vậy, người sử dụng

truy nhập trực tiếp thơng tin nhớ có địa nhớ Mỗi nhớ có kbit địa có 2k nhớ viết 2k từ nhớ

nbit

Truy nhp liên tiếp (serial access) hay gọi kiểu truy nhập Các đĩa từ, băng từ, trống từ, ghi dịch… có kiểu truy nhập Các bit thơng tin đưa vào lấy cách 7.1.2.3 Tc độ truy nhp thông tin

Đây thơng số quan trọng nhớ Nó đặc trưng thời gian cần thiết để truy nhập thông tin

Thời gian truy nhập thông tin nhớ truy nhập kiểu trực tiếp gồm thời gian tìm địa nhớ thời gian đọc/viết thơng tin Thời gian truy nhập thông tin phụ thuộc chủ yếu vào công nghệ chế tạo Với cơng nghệ MOS thời gian truy nhập khoảng 30

(49)

Ở nhớ truy nhập kiểu tuần tự, thời gian truy nhập phụ

thuộc vào vị trí thơng tin cần truy nhập tập tin (file) Đối với băng từ, đĩa từ thời gian truy nhập định nghĩa thời gian trung bình cực truy nhập thông tin nằm khoảng vài ms đến nhiều s

7.1.3 Phân loại

Dựa thời gian viết cách viết, chia thành nhớ cố định, nhớ bán cốđịnh nhớđọc/viết Bộ nhớ có nội dung

được viết sẵn lần chế tạo gọi nhớ cốđịnh ký hiệu ROM (Read Only Memory) Sau viết (bằng mặt nạ-mask) từ nhà máy ROM loại khơng viết lại

đó MROM PROM dạng khác, bit có thểđược viết thiết bị viết người sử dụng lần (Programmable ROM)

Bộ nhớ bán dẫn

Bộ nhớ cố định ROM

Bộ nhớ bán cốđịnh

Bộ nhớđọc/ viết RAM

MROM PROM EPROM EEPROM SRAM DRAM

Hình 7.1: Sơđồ phân loại nhớ bán dẫn

Bộ nhớ đọc/viết nhiều lần gọi RAM (Random Access Memory) gồm hai loại: nhớ RAM tĩnh-SRAM (Static RAM) thường xây dựng mạch điện tử trigơ RAM

(50)

EEPROM (Electric EPROM) xố dịng điện Các loại gọi nhớ bán cố định Các nhớ DRAM thường thoả mãn yêu cầu cần nhớ có dung lượng lớn; khi cần có tốc độ truy xuất lớn phải dùng nhớ

SRAM có giá thành đắt Nhưng hai loại có nhược

điểm thuộc loại “bay hơi” (volatile), thông tin bị nguồn nuôi bị ngắt Do vậy, chương trình dùng cho việc khởi động PC BIOS thường phải nạp nhớ ROM

7.1.4 Tổ chức nhớ

Bộ nhớ thường tổ chức gồm nhiều vi mạch nhớđược ghép lại để có độ dài từ tổng số từ cần thiết Những chip nhớ thiết kế cho có đầy đủ số chức nhớ như:

- Một ma trận nhớ gồm ô nhớ, ô nhớứng với bit nhớ - Mạch logic giải mã địa ô nhớ

- Mạch logic cho phép đọc nội dung ô nhớ - Mạch logic cho phép viết nội dung ô nhớ

- Các bộđệm vào, bộđệm mở rộng địa

Cách tổ chức đơn giản tổ chức theo từ (word organized) với chọn tuyến tính Một ma trận nhớ có độ dài cột số lượng từ (W) độ dài hàng số lượng bit (B) từ Bộ chọn từ phải giải mã từ (W), nghĩa giải mã để có

đầu cho từ nhớ Phương pháp có thời gian truy nhập ngắn cần giải mã lớn tổng số từ lớn, làm tăng giá thành sản phẩm

(51)

một lúc Cần hai giải mã: giải mã hàng để chọn từ vật lý giải mã cột gồm có vài mạch hợp kênh chọn từ

logic từ từ vật lý chọn Một từ vật lý chia thành S từ

logic Bộ giải mã hàng giải mã chọn từ W mà B = W/S

chọn cột chứa B hợp kênh đường từ S

Ví dụ: Sơ đồ ROM dung lượng 2048 x (2048 từ, từ chứa 8bit) tổ chức giải mã hai bước hình 7.2

Ma trận nhớ 128 x 128, có 128 = 27 từ vật lý Một từ vật lý chọn đường địa từ A0 đến A6 Bộ giải mã hàng chọn hàng từ 128 hàng Một từ vật lý chia thành 128/8 = 16 nhóm 8bit Nhóm thứ chứa bit có trọng số cao 16 từ logic Nhóm thứ hai chứa bit cao 16 từ

logic…Nhóm cuối chứa bit thấp 16 từ logic,

đó S = 16 Như vậy, giải mã cột gồm hợp kênh

đường từ 16 đường để cung cấp từ locgic 8bit Những địa

từ A7 đến A10 điều khiển giải mã cột Trường hợp đặc biệt số phần tử từ vật lý số bit từ vật lý nhớ tổ chức theo bit có nghĩa từ logic có độ dài 1bit

CS

(52)

Các đệm đảm bảo mức logic mong muốn cung cấp

đủ dịng điện, ngồi cịn có đầu colectơ hở trạng thái cho phép nối chung đầu vài chip với Bộđệm

điều khiển hay nhiều đầu vào chọn mạch CS (Chip Select), cho phép mở CE (Chip Enable) hay cho phép mởđầu ba trạng thái OE (Output Enable)

7.2 BỘ NHỚ CỐĐỊNH - ROM

Để máy tính điện tử tiến hành hoạt động bình thường dù

đơn giản hay phức tạp cần phải cung cấp cho máy trước tiên lệnh bước tiến hành Tập hợp danh sách lệnh gọi chương trình Việc nhập chương trình từ đĩa hay từ bàn phím vào máy tính phải tuân theo sựđiều khiển chương trình

đặc biệt: Chương trình khởi động thường trú máy Chương trình cài sẵn nhớ đọc (ROM) Bộ nhớ ROM có thuộc tính sau:

+ Chỉ cho phép đọc nội dung viết sẵn từ trước chứa Nội dung người điều hành thiết kế lập trình sẵn viết vào phương pháp đặc biệt

+ Người sử dụng nguyên tắc khó thay

đổi nội dung thơng tin viết nhớ ROM

+ Nội dung viết ROM có tính chất cốđịnh, khơng bị

mất theo thời gian hay nguồn lượng cung cấp cho tồn hệ thống số có ROM

Do thuộc tính nên ROM dùng khi:

+ Chứa chương trình vận hành máy tính, chương trình hỗ trợ

việc lập trình hay chương trình giám sát việc điều hành theo bước nghiêm ngặt cốđịnh

(53)

do cơng nghệ tựđộng hóa địi hỏi (ví dụ: tựđộng điều khiển động

cho ô tô…)

+ Lưu giữ bảng biểu quan trọng sử dụng thường xun cơng cụ cho việc tính tốn, xử lý máy tính thiết bị liên quan

7.2.1 Cấu trúc chung ROM

ROM bao gồm khối bản:

+ Bộ nhớ chứa ô nhớ ô nhớ từ nhớ + Mạch điều khiển tiếp nhận tín hiệu vào từ kênh điều khiển + Bộ giải mã địa dùng đểđịnh vị ô nhớ

+ Mạch dùng để đưa nội dung ô nhớ tới thiết bị có liên quan cần tiếp nhận nội dung

(54)

7.2.1.1 Khi nh

Mỗi nhớ nhị phân có chức lưu giữ hai trạng thái Tập hợp nhóm nhớ xếp theo hàng tạo thành vị trí nhớ có khả lưu giữ từ nhị phân 8bit 16bit… Kiểu xếp gọi cấu trúc nhớ kiểu mảng (array) tuyến tính Hình 7.4 biểu diễn cấu trúc nhớ kiểu mảng tuyến tính với dung lượng x

(55)

Trình tựđọc từ nhớ sau:

+ Kích hoạt đầu vào điều khiển WE (Word Enable) (tích cực

mức thấp hay cao tùy theo cấu tạo ô nhớ) Đây đầu giải mã địa

+ Các ô nhớ phải có đầu thuộc loại Colectơ hở đầu trạng thái Tất ô nhớ cột xác định có đầu nối chung với đầu liệu Trong ví dụ từ nhớ có 3bit nên có

đầu D2D1D0 tương ứng với cột, hàng tương ứng từđược điều khiển theo xung WE0 WE1 WE2 WE3 Điều có nghĩa từ nhớ phải có đầu điều khiển WE riêng Đây hạn chế cấu trúc mảng tuyến tính số lượng địa tăng lên với nhớ dung lượng lớn cấu trúc giải mã địa phức tạp

Dạng cấu trúc thứ hai nhớ tổ chức theo kiểu ma trận, thích hợp với nhớ có dung lượng lớn (hình 7.5)

22

12

02

21

11

01

20

10

00 Y2

Y1

Y0

X2

0

0

Điều khiển X

X1 X0

0

Hình 7.5a) Cấu trúc nhớ kiểu ma trận hướng bit

Hình 7.5a kết cấu mảng ma trận (3 x 3) nhớ Ví dụ

(56)

có ký hiệu từ X0đến Xm-1 Vậy nhớ có dung lượng (mxn)bit nhớ Mỗi nhớ ma trận có hai đầu vào cho phép Khi chúng đồng thời trạng thái tích cực nhớ xuất (đọc) bit lưu Ví dụđể kích hoạt nhớ có ký hiệu 20 đầu X0 Y2 phải trạng thái tích cực, ví dụ tích cực cao (X0 = Y2 = 1), lúc giá trị đầu cho phép phải tổ hợp: X2X1X0 = 001 Y2Y1Y0 = 100 Với hai tổ hợp cho phép hàng Yi cột Xj cho nhớ có địa (i j) chuyển lên trạng thái tích cực

Hình 7.5b) Tín hiệu điều khiển SENSE tìm đến điểm nút ma trận ô nhớđơn lẻ

(57)

dây SENSE Mỗi ô nhớ phải cổng trạng thái hở colectơ (trạng thái 0, trạng thái trạng thái trở kháng cao)

ROM

1k x ROM 21k x ROM 31k x ROM 41k x A9

A0

Bus

đị

a ch

Bus điều khiển

Bus d

li

u

CE1 CE2 CE1 CE2 CE1 CE2 CE1 CE2

Hình 7.6a) Mở rộng độ dài từ cho ROM từ 1k x thành 1k x

(58)

Dung lượng nhớ hình 7.5b x (nghĩa có từ

nhớ, từ dài 1bit) Muốn tạo từ 4bit ta phải nối mảng ma trận song song với hình 7.6a Ởđây, mảng ma trận chứa 1024 ô nhớ, nên dung lượng tổng cộng (1k x 4)bit Hình 7.6b minh họa cách mở rộng dung lượng nhớ từ (1k x 8)bit thành (2k x 8)bit

7.2.1.2 B gii mã địa ch

Bộ giải mã địa giao diện kênh địa khối nhớ Nó có khả truyền nhiều địa số đường truyền

Địa nhị phân phải giải mã trước tác động tới mảng ô nhớ + Trường hợp cấu trúc nhớ dạng mảng tuyến tính:

Ví dụ với giải mã địa vào A1, A0 đầu vào

địa chỉ, đầu giải mã đầu cho phép (WE) (hình 7.7) Tức ứng với tổ hợp mã A1A0 có đầu WE trạng thái tích cực

(59)

+ Trường hợp nhớ có cấu trúc dạng ma trận việc tổ chức mạch giải mã địa theo hàng cột ma trận đơn giản nhiều Ví dụ với giải mã địa vào 16 : với việc chọn 2bit địa

A1A0 cho địa cột ma trận 2bit lại A3A2 cho địa hàng ma trận Như cần cổng NOT tạo địa

hàng i cột j xác định tương ứng với ô nhớ ma trận (hình 7.8) Ví dụ A3A2 A1A0 = 1001, vị trí hàng 10, cột 01 (hàng cột biểu diễn thập phân i, j), tức 21 chọn (chuyển lên trạng thái tích cực)

Hình 7.8: Bộ giải mã địa cho mảng ma trận ô nhớ (4 x 4t)bit 7.2.1.3 Mch ca b nh

(60)

với mục đích ngắt kết nối nhớ với kênh liệu nhớ

trạng thái không tích cực (tức khơng làm việc), cổng trạng thái phải có hệ số tải cao đủđể ghép kênh liệu với vô số tải khác nối với kênh

Hình 7.9: Cổng trạng thái dùng làm mạch đầu ROM

Tín hiệu CE từ bộđiều khiển cho phép hay không cho phép kết nối nhớ với Bus liệu

7.2.1.4 Mch điu khin ROM

Mạch điều khiển ROM có chức đơn giản Ví dụ

hình 7.3 cấu trúc nhớ có đầu điều khiển CE1, CE2 CE3 (Chip Enable) hay cịn gọi CS (Chip Select) Khi tín hiệu tích cực ROM phép hoạt động (cần cổng AND hay cổng NAND đầu vào tùy tính chất mạch) Tín hiệu CE

thực nhiệm vụ sau:

+ Chọn chip cần đọc (khi nhớ có nhiều chip ghép song song) + Định cho phép kết nối ROM với kênh liệu

(61)

Ví dụ hình 7.10 minh họa chức điều khiển mà tín hiệu CE tham gia:

Hình 7.10: Dùng đầu vào điều khiển CE để chọn chip

(62)

chỉ từ A0đến A9 nối song song giải mã đồng thời bên hai chip Tuy nhiên, có chip có ba đầu CE

trạng thái tích cực cho phép xuất liệu (ví dụ hình 7.10, bit A10 định chip sẽở trạng thái tích cực) Chip B0 có khối địa nhị phân 11bit, từ 00000 00000 đến 11111 11111, chip B1 có mã địa ô nhớ từ 00000 00000 đến 11111 11111 Hệ thống địa có cho hai chip B0 B1 với

điều kiện bit địa có trọng số cao A10 (ví A11 ÷A15) phải trạng thái khơng tích cực Trong hình 7.10 cổng NOR đảm nhận nhiệm vụ CE2 tích cực địa thừa 0, địa trạng thái tích cực CE2 khơng tích cực, nghĩa chip B0 B1 không chọn để tham gia trình xử lý Với 16bit địa có tối đa 26.210 = 64k hay 64 chip 1k được gán địa Các bit từ A10 đến A15 tổ hợp để chọn 64 chip 1k lên trạng thái tích cực để xuất liệu, địa từ

A0đến A9 dùng để chọn vị trí địa ô nhớ cụ thể chip

được chọn Đầu điều khiển CE3 dùng để định hoạt động cho ROM, tín hiệu MEM R xuất liệu chọn quyền xuất Bus liệu

7.2.2 MROM

ROM lập trình theo kiểu mặt nạ gọi MROM Nó chế tạo phiến silic theo số bước xử lý quang khắc khuếch tán để tạo tiếp giáp bán dẫn có tính dẫn điện theo chiều (nhưđiốt, tranzito trường)

(63)

R4 R3 R2 R1

+5V

Các dây từ (i)

Các dây bit (j) WE0

WE1

WE2

WE3

D3 D2 D1 D0

Nhớ bit

Nhớ bit

Hình 7.11: MROM dùng điốt

Chỗ giao dây từ (hàng) dây bit (cột) tạo nên phần tử nhớ (ô nhớ) Một điốt đặt (hình 7.11)

cho phép lưu trữ liệu “0” Ngược lại vị trí khơng có điốt cho phép lưu trữ liệu “1” (hoặc ngược lại có điốt nhớ bit 1, khơng có nhớ bit 0-tùy tính chất mạch) Trong trường hợp hình 7.11, đọc từ liệu thứi ROM, giải mã sẽđặt dây từ xuống mức logic thấp, dây lại mức cao Do

những điốt nối với dây phân cực thuận, dẫn làm cho điện thếđầu dây bit tương ứng mức logic thấp, dây bit lại giữở mức cao

Cả hai công nghệ MOS lưỡng cực dùng để chế tạo MROM Thời gian truy nhập nhớ lưỡng cực khoảng từ 50 - 90ns, nhớ MOS lâu khoảng 10 lần Do ROM lưỡng cực nhanh có khả kích hoạt tốt mạch nhớ

(64)

7.2.3 PROM

Để khắc phục nhược điểm MROM tính động thời gian chế tạo phụ thuộc vào thời gian đặt hàng, không thay đổi nội dung, giá thành tương đối cao nên người ta sử dụng loại ROM lập trình – PROM

PROM gồm có điốt nhưở MROM chúng có mặt

đầy đủ vị trí giao dây từ dây bit (hình 7.12) Mỗi

điốt nối với cầu chì Bình thường chưa lập trình, cầu chì cịn ngun vẹn, nội dung PROM toàn Khi định vịđến bit cách đặt xung điện ởđầu tương ứng, cầu chì bị đứt bit Bằng cách ta lập trình toàn bit PROM Như vậy, việc lập trình có thểđược thực người sử dụng lần nhất, sửa đổi

(65)

7.3 BỘ NHỚ BÁN CỐĐỊNH 7.3.1 EPROM (Erasable PROM)

Dữ liệu vào viết vào xung điện lưu giữ theo kiểu khơng bay Đó loại ROM lập trình xóa Hình 7.13 cấu trúc tranzito dùng để làm ô nhớ gọi FAMOST (Floating gate avalanche injection MOS tranzito)

Trong ô nhớ dùng tranzito này, cực cửa nối với đường từ, cực máng nối với đường bit cực nguồn nối với nguồn chuẩn coi nguồn cho mức logic Khác với tranzito MOS bình thường, tranzito loại cịn có thêm cửa gọi cửa

(floating gate); vùng vật liệu thêm vào vào lớp cách điện cao nhưở hình 7.13 Nếu cửa khơng có điện tích khơng ảnh hưởng đến cực cửa điều khiển tranzito hoạt động

bình thường Tức dây từ kích hoạt (cực cửa có điện

dương) tranzito dẫn, cực máng nguồn nối với qua kênh dẫn dây bit có mức logic Nếu cửa có điện tử

đó với điện tích âm chúng ngăn trường điều khiển cực cửa dù dây từ kích hoạt khơng thể phát trường đủ

mạnh với cực cửa điều khiển để làm thông tranzito Lúc đường bit không nối với nguồn chuẩn ô nhớ coi nhưđược giữ giá trị

Việc nạp điện tử vào vùng cửa nổi, tức tạo ô nhớ

mang giá trị thực xung điện có độ dài cỡ 50ms độ

lớn + 20V đặt cực cửa cực máng Lúc điện tích mang lượng lớn qua lớp cách điện đế cửa Chúng tích tụ vùng cửa giữởđây sau xung lập trình tắt Đó cửa cách điện cao với xung quanh

(66)

Để xố thơng tin, tức làm điện tích điện tử vùng cửa nổi, phải chiếu ánh sáng tử ngoại UV vào chíp nhớ Lúc này, điện tử hấp thụđược lượng nhảy lên mức lượng cao rời khỏi cửa giống cách mà chúng thâm nhập vào Trong chip EPROM có cửa sổ làm thuỷ tinh thạch anh chỉđể cho ánh sáng tử ngoại qua cần xoá liệu nhớ

0

v v1

D I

GS v Hình 7.13: Cấu trúc tranzito dùng làm nhớ EPROM 7.3.2 EEPROM (Electrically Erasable PROM)

Cửa sổ thạch anh có giá thành đắt không tiện lợi nên năm gần xuất chip PROM xố liệu phương pháp điện Cấu trúc ô nhớ giống hình 7.14

Việc nạp điện tử cho cửa thực cách

EPROM Bằng xung điện tương đối dài, điện tích mang lượng cao phát đế thấm qua lớp cửa ơxit tích tụ

trong cửa Để xố EEPROM, lớp kênh màng mỏng ơxit vùng cửa trải xuống đế cực máng giữ vai trò quan trọng Các lớp cách điện khơng thể lý tưởng được, điện tích

thấm qua lớp phân cách với xác suất thấp Xác suất tăng lên bề dày lớp giảm điện hai điện cực hai mặt lớp cách điện tăng lên Muốn phóng điện tích vùng cửa

(67)

này điện tử âm cửa chảy cực máng qua kênh màng mỏng ôxit liệu lưu giữ xoá Điều lưu ý phải cho dịng điện tích chảy khơng q lâu khơng vùng cửa lại trở nên tích điện dương làm cho hoạt động tranzito khơng trạng thái bình thường (mức nhớ 1)

Hình 7.14: Cấu trúc ô nhớ EEPROM

Các chip ROM có thời gian truy nhập từ 120ns đến 150ns dài nhiều thời gian chip nhớ RAM

7.4 MỘT SỐ IC THƯỜNG GẶP 7.4.1 EPROM xóa tia cực tím

(68)

2764 (64kbit) VCC

15 18 17 16 21 20 19

23 22 24

A9 DE A10 CE D7 D6 D5 D4 D3 A8 25 26 27 28 A11 NC PGM

A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND 10 11 12 13 14 Upp A12

27128 (128kbit)

A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND

1 10 11 12 15

14 13 18 17 16 21 20 19

23 22 24

A9

Upp

A10 CE D7 D6 D5 D4 D3

DE A8 VCC 25 26 27 28 A12 A11 PGM A13

(69)

Trong IC có:

+ Chân Upp dùng đểđặt điện áp cao viết (nạp liệu) + Tương thích với TTL, thường sử dụng CPU

+ 27xx(x): hay số số 27 dung lượng nhớ Ví dụ

2764 nghĩa nhớ có dung lượng 64kbit

7.4.2 PROM

Hai loại IC PROM điển hình 7603 7611.b

E E1 E2

Hình 7.16: Sơđồ chân IC PROM

IC 7603 có dung lượng 32 x 8bit, tương thích với TTL IC có đầu vào địa từ A1đến A16, đầu liệu từ Q1đến Q8 Khi E = IC cho phép xuất liệu, E = đầu Q bị thả

nổi, nguồn +5V nạp liệu cách đốt cháy cầu chì loại đầu cổng trạng thái

IC7611 có dung lượng 256 x 4bit, tương thích với TTL IC có đầu vào địa từ A1đến A128, đầu liệu từ Q1đến Q4 (loại cổng trạng thái) Khi E1=E2=0thì IC cho phép xuất liệu,

1 2

(70)

7.4.3 EEPROM

IC M28010 nhớ có dung lượng 128k x 8bit, có cơng suất thấp, nạp song song Nguồn cấp cho IC 5V, 3V, 2V phụ

thuộc vào ứng dụng chọn Đối với loại M28010 có nguồn nằm dải 4,5V ÷5,5V, loại M28010-W có nguồn nằm dải 2,7V ÷3,6V, loại M28010-R có nguồn nằm dải 1,8V ÷ 2,4V

Bảng 7.1 bảng mô tả chức chân IC

Bảng 7.1: Bảng mô tả chức chân IC

Chân Chức

A0 ÷ A16 Đầu vào địa

DQ0 ÷ DQ7 Đầu vào/ra liệu W Cho phép viết

E Chọn chip (khiE = cho phép đọc/viết )

G Cho phép (điều khiển bộđệm đầu ra, sử dụng để thiết lập chếđộđọc) VCC Nguồn cung cấp

VSS Đất

(71)

7.5 RAM

RAM có khả cho phép viết lưu trữ liệu thông tin tạm thời thời gian, sau lại đọc thơng tin để tiếp tục xử lý cần thiết nên có tên nhớđọc/viết Một đặc tính quan trọng khác RAM liệu RAM có tính chất tạm thời, dễ

bị xóa nguồn lượng cấp cho nên cần phải phịng bị

cho nguồn phụ nhằm tránh tượng nguồn đột ngột, trình xử lý chưa kết thúc, thơng tin RAM cịn có ích

7.5.1 Cấu trúc khối RAM

RAM

Bộ giải mã

địa

Bộđiều khiển

Địa chỉđược chọn R/W

Mạch vào/ra Khối nhớ

A9

A0

Kênh

địa

Kênh

điều khiển

CE1

R/W CE2

Bus vào/ra liệu D7 D0

RE/WE

Di

CE

Hình 7.18: Cấu trúc khối RAM có 8bit liệu 8bit địa chỉ

Cũng ROM, RAM có phần mơ tả hình 7.18 Điểm khác biệt là:

(72)

+ Mạch đầu có khả kiểm soát hai chiều trước cho phép giao tiếp với kênh liệu Quá trình tuân theo nguyên tắc: (đồng với việc điều khiển R/W) nhớ đọc khơng

được viết ngược lại; trạng thái thứ ba chờ định 7.5.1.1 Mch vào/ra ca RAM

Mạch vào RAM phức tạp ROM Hình 7.19 mô tả dạng mạch vào/ra với bốn liệu từ D0đến D3

Các liệu kênh liệu G0, G1, G2 G3 viết vào nhớ tín hiệu cho phép viết WE = Khi có tín hiệu điều khiển cho phép đọc RE = cổng G’0, G , 1' G 2' G'3được điều khiển mở (đây cổng trạng thái) để xuất liệu kênh

Một điều cần ý thao tác phải đồng với việc chọn xong địa viết hay đọc nhớ

Hình 7.19: Mạch vào/ra 4bit liệu RAM

(73)

trạng chờ: không cho liệu không thực viết liệu vào Lúc toàn liệu cách ly khỏi kênh liệu cho an toàn

7.5.1.2 Mch điu khin ca RAM

Hình 7.20 mơ tả dạng mạch đơn giản đưa tới RAM chếđộ

hoạt động khác từ đầu vào điều khiển CE1, CE2 R/W Ở thời điểm có ba chếđộđược thiết lập:

+ Khi chếđộđọc, xung R/W mức logic Đồng thời tín hiệu cho phép chọn CE1, CE2 kích hoạt mức nên lúc RE = 1, tức chế độ đọc thiết lập Khi tín hiệu R / W = nên tín hiệu cho phép viết WE (cấm viết)

+ Khi chếđộ viết, xung R/W mức logic 0, R / W = 1, đồng thời tín hiệu cho phép chọn CE1, CE2được kích hoạt mức nên lúc WE = 1, tức chếđộ viết Khi tín hiệu R/W = nên tín hiệu cho phép đọc RE (cấm đọc)

Hình 7.20: Mạch điều khiển RAM có chếđộ: đọc/viết/chờ

+ Tín hiệu tích cực đồng thời CE1 = CE2 = hai chếđộđọc viết phải chuyển lúc tới mảng ô nhớ nhằm thông báo việc xuất (khi đọc) hay việc nhập (khi viết) liệu tới địa ô nhớđã

được mạch giải mã chọn

(74)

sang chế độ chờ (Standby) bất chấp tín hiệu R/W có tích cực hay khơng, lúc RE = WE =

7.5.2 Cấu tạo DRAM

7.5.2.1 Cu to ca mt ô nh

Các ô nhớđược xếp theo hàng cột ma trận nhớ

Địa ô nhớ chia thành hai phần: địa hàng cột Hai địa đọc vào bộđệm cách Xử lý kiểu gọi hợp kênh, lý để giảm kích thước giải mã, tức giảm kích thước giá thành vi mạch Quá trình dồn kênh địa

điều khiển tín hiệu RAS (Row Access Strobe) CAS (Column Access Strobe)

Nếu RAS ở mức tích cực thấp DRAM nhận địa chỉđặt vào sử dụng nhưđịa hàng

Nếu CAS ở mức tích cực thấp DRAM nhận địa chỉđặt vào sử dụng nhưđịa cột

Một nhớ DRAM gồm có tranzito trường MOS có trở đầu vào lớn tụđiện C linh kiện lưu trữ bit thơng tin tương ứng với hai trạng thái có khơng có điện tích tụ

Hình 7.21: Cấu tạo ô nhớ DRAM

Tranzito hoạt động công tắc, cho phép nạp hay phóng

(75)

tranzito nối với dây hàng (còn gọi dây từ-WL-Word Line) cực máng (Drain) nối với dây cột (còn gọi dây bit BL BL - Bit Line), cực nguồn (Source) nối với tụđiện Điện áp nạp tụ tương đối nhỏ, cần sử dụng khuếch đại nhạy mạch nhớ

7.5.2.2 Nguyên lý hot động ca tế bào DRAM

Như mục ta biết tế bào DRAM có cấu tạo đơn giản Phần tử lưu giữ bit liệu điện dung C, thường tạo thành điện dung tiếp giáp MOSFET, có điện dung nhỏ, khoảng vài pF Do đó, thể tích tế bào DRAM bé nhiều so với tế bào RAM tĩnh (SRAM) Nhờ thế, nhớ DRAM có dung lượng nhớ lớn giá thành thấp Tuy nhiên, nhược điểm loại tụ điện giữđược lượng nạp lâu dài Trong DRAM ln xảy tự phóng điện (dịng rò) Hiện tượng làm

điện áp tụ giảm dần theo thời gian gọi tự bay Vì sau ms, khơng nạp bồi liệu Để trì liệu cần phải định nạp bồi Quá trình gọi làm tươi (refresh) DRAM

Hình 7.22 trình bày sơđồ logic phần tử nhớ RAM động Trong mạch T1 T2 ghép chéo Dữ liệu (điện tích) lưu giữ tụ C1 C2 Điện áp C1 C2 điều khiển T1, T2 thông ngắt Khi C1 nạp điện tích (điện áp C1 lớn điện áp cắt T1), C2 khơng nạp điện tích (điện áp tụ C2 nhỏ điện áp cắt T2) T1 thông T2 ngắt, tương ứng với trạng thái phần tử nhớ Khi C2 nạp điện tích C1 khơng nạp điện tích T1 ngắt T2 thơng, tương

ứng trạng thái phần tử nhớ

Tranzito T3, T4 làm nhiệm vụ điều khiển nối thông phần tử nhớ dây bit

(76)

Khi bắt đầu truy nhập, truy xuất nhớ cực cửa T5 T6 có xung nạp trước nên T5, T6 nối thơng, dây bit B B có mức điện áp cao nối với nguồn ED

B

D

Hình 7.22: Phần tử nhớđộng MOS

Sau kết thúc xung nạp trước T5 T6 ngắt, dây bit cách ly khỏi nguồn ED Nhưng tác dụng điện dung phân bố CB, C Khi B

đó mức điện áp cao dây bit trì thêm thời gian Trong thời gian này, giả sử tiến hành đọc liệu, dây X có mức cao T3 T4 thơng, giả sử phần tử nhớ có trạng thái D (T1 thơng T2 ngắt) lúc CB phóng điện qua T1 T3, dây bit B biến thành mức thấp

(77)

Tác dụng mạch nạp trước dây bit: Trong thời gian T3, T4 thông, dây bit khơng nạp điện trước mức cao có dây B tụ C1 phóng qua T4 nạp vào C Do vB ậy, điện tích C1 bị suy giảm, C có giá trB ị chí lớn C1 (vì có nhiều phần tử nối vào dây bit) Vì vậy, G1 (cực cửa T1) không giữ nguyên

được mức cao sau lần đọc tức liệu bị Nhờ có mạch điện nạp trước, điện dây bit B cịn cao điện G1 chút Vì đọc liệu, điện tích C1 khơng bị suy giảm mà

được làm tươi nhờ nạp điện thêm cho C1 qua T4

Khi tiến hành viết, đầu vào liệu RAM làm thay đổi trạng thái phần tử nhớ, thông qua dây liệu dây bit, tức đưa

liệu vào lưu trữ phần tử nhớ 7.5.2.3 Mt s IC DRAM

Một số loại chip DRAM thường gặp là: TMS 4116: có dung lượng 16k x 1bit; IC 41256 có dung lượng 256k x 1bit Thời gian truy nhập thông tin khoảng 150ns, công suất tiêu thụ khoảng 280mW làm việc (khi chờ = 28mW)

Hình 7.23 sơđồ chân sơđồ khối IC TMS 4116

E

W

RAS

CAS

RAS

CAS

E

W

(78)

IC TMS 4116 loại MOS có dung lượng 16k x 1bit có 214 = 16384 ô nhớ, số đường địa chỉ yêu cầu 14 Thực theo phương pháp chọn kênh địa chỉ cần dùng đường chứa thông tin hàng sau lại chứa thơng tin cột Muốn người ta sử dụng hai tín hiệu RAS CAS tương ứng: Khi RAS = thơng tin đường địa mở qua mạch chốt địa hàng

CAS = mở mạch địa cột Cấm trạng thái RAS = CAS = tín hiệu làm rối loạn việc xác định địa ô nhớ Khi đường WE = cho phép viết để thơng tin Din nhập vào địa chỉđã chọn Khi đọc đường WE = 1: Từ địa ô nhớ chọn thơng tin sẽđược xuất đường Dout

1 16 15 14 13 12 11 10 A8 Din WE RAS A0 A2 A1 +5V GND CAS Dout A6 A3 A4 A5 A7

Hình 7.24: Sơđồ chân IC DRAM 41256

Hình 7.24 vỏ IC 41256 dung lượng 256k x 1bit Mạch cần 18bit địa chỉđể mã hoá cho địa hàng cột; vỏ

có đường địa từ A0đến A8

(79)

7.5.3 SRAM

7.5.3.1 Cu to chung ca SRAM

Một ô nhớ SRAM giữ thông tin trạng thái mạch trigơ Thuật ngữ “tĩnh” nguồn ni chưa bị cắt thơng tin nhớ giữ nguyên Khác với ô nhớ DRAM, nhớ trigơ cung cấp tín hiệu số mạnh nhiều có tranzito nhớ, chúng có khả khuếch đại tín hiệu

đó cấp trực tiếp cho đường bit Trong DRAM, khuếch

đại tín hiệu khuếch đại cần nhiều thời gian thời gian truy nhập dài Khi định địa trigơ SRAM, tranzito bổ sung cho trigơ, giải mã địa chỉ… địi hỏi nhưở DRAM

Hình 7.25: Cấu tạo ô nhớ SRAM DRAM

Như DRAM, cực cửa tranzito ô nhớ SRAM nối với đường từ cực máng nối với cặp đường bit Nếu liệu đọc từ nhớ, giải mã hàng kích hoạt đường dây từ WL tương ứng Hai tranzito T dẫn nối trigơ nhớ với cặp dây bit Như hai đầu Q Q nối với đường bit tín hiệu truyền tới khuếch đại cuối đường dây Vì điện

(80)

khơng cần thực phân kênh địa hàng cột Sau

liệu ổn định, giải mã cột chọn cột phù hợp cho tín hiệu

liệu tới bộđệm liệu tới mạch

Viết liệu thực theo cách ngược lại Qua đệm vào giải mã cột, liệu viết đặt vào khuếch đại phù hợp Cùng lúc giải mã hàng kích hoạt đường dây từ làm tranzito T dẫn Trigơ đưa liệu lưu trữ vào cặp dây bit Tuy vậy, khuếch đại nhạy tranzito nên cấp cho đường bit tín hiệu phù hợp với liệu viết Do đó, trigơ chuyển trạng thái phù hợp với liệu giữ giá trị lưu trữ phụ

thuộc vào việc liệu viết trùng với liệu lưu trữ hay không 7.5.3.2 Nguyên lý hot động

7.5.3.2.1 Phần tử nhớ RAM tĩnh dùng NMOS

Hình 7.26 trình bày sơđồ phần tử nhớ RAM tĩnh

D B

(81)

Trong mạch T1 T2 làm thành đảo pha, T3 T4 làm thành bộđảo pha khác Hai bộđảo pha có đầu vào đầu nối chéo tạo trigơ RS bản, cấu trúc thành phần tử nhớ T1 thông T3 ngắt trạng thái 0, T1 ngắt T3 thông trạng thái Dây Xiđiều khiển T5, T6 thông ngắt, điều khiển nối đầu trigơ với dây bit

Khi Xi = T5, T6 thơng, trigơ nối với dây bit Xi = T5, T6 ngắt, trigơ ngắt khỏi dây bit T7, T8điều khiển nối, ngắt dây bit dây liệu, tín hiệu dây Yj Khi Yj = T7, T8 thơng dây bit nối với dây liệu D … D , Yj = T7, T8 ngắt dây bit khơng nối với dây liệu

Không phải phần tử nhớ có dùng T7, T8; mà T7, T8 dùng chung cho cột phần tử nhớ

Vậy phần tử nhớ mà giá trị Xi, Yj

được nối thơng với dây liệu, nghĩa có thểđọc viết với phần tử nhớđó

Bất kì thời điểm có Xi mức Yj mức

7.5.3.2.2 Phần tử nhớ dùng tranzito lưỡng cực

Hình 7.27 sơđồ phần tử nhớ dùng tranzito lưỡng cực

B

(82)

Một phần tử nhớ gồm tranzito nhiều emitơ điện trở, cấu trúc nên trigơ Một đầu emitơ nối với dây X, đầu emitơ lại nối riêng rẽ vào dây bit B, Ở trạng thái lưu giữ liệu, điện dây X cỡ 0,3V, điện dây bit cỡ 1,1V Khi dịng điện tranzito thông qua dây X, lớp tiếp giáp bán dẫn nối với dây bit phân cực ngược làm hở mạch dây bit trigơ

Trạng thái “phần tử nhớ (T1 thơng, T2 ngắt) (T1 ngắt, T2 thơng)

Khi phần tử nhớ chọn (đểđọc viết liệu), điện

dây X có mức cao cỡ 2,2V, điện dây bit nhỏ nên dịng

điện qua tranzito thơng chạy dây bit

7.5.4 Một số IC SRAM

Một số IC SRAM thường gặp IC 2148, 2114-2 hãng Intel Dung lượng 1k x 4bit Thời gian truy nhập thông tin khoảng 200ns, công suất tiệu thụ 525mW

IC TMS 4016 dung lượng 2k x 8bit Hình 7.28 sơđồ chân IC này:

CE

W G

(83)

Bảng 7.2 bảng chức IC

Bảng 7.2: Bảng chức IC TMS 4016

Phương thức hoạt động W CE G D1−D8

Viết L L X Dữ liệu xác định

Đọc H L L Dữ liệu

Cấm chip X H X Trở kháng cao Cấm H L H Trở kháng cao

IC HM 6116, họ CMOS, dung lượng 2kbyte, thời gian truy nhập 120ns, công suất tiêu thụ làm việc P = 180mW (khi chờ

≈μW) Hình 7.29 giới thiệu IC 6264, dung lượng 8kbyte bảng điều kiện thao tác

(84)

Bảng 7.3: Bảng chức IC 6264

Phương thức hoạt động CS CS WE OE

Không chọn H X X X

Đọc L H H L

Đọc không xuất liệu L H H H

Viết L H L L

7.6 ĐĨA CỨNG SILICON- BỘ NHỚ FLASH

Trong năm gần đây, loại nhớ không bay

đã xuất thị trường, thường sử dụng thay cho ổ đĩa mềm cứng máy tính Đó nhớ flash Cấu trúc chúng EEPROM, có lớp kênh ơxit nhớ

mỏng Do cần điện cỡ 12V cho phép thực 10.000 chu trình xố lập trình Bộ nhớ flash hoạt động gần mềm dẻo DRAM SRAM lại khơng bị liệu bị cắt điện Hình 7.30 sơđồ khối

Phần mạng nhớ bao gồm ô nhớ FAMOST nhưđược mô tả mục Giống SRAM, nhớ flash không dồn phân kênh địa Các giải mã hàng cột chọn đường từ nhiều cặp đường bit Dữ liệu đọc đưa đệm

liệu I/O viết vào ô nhớ định địa đệm qua cổng I/O Xử lý đọc thực với điện MOS thông thường 5V Để lập trình nhớ, đơn vịđiều khiển flash đặt xung điện ngắn cỡ 10μs 12V gây nên chọc thủng thác lũ

vào tranzito nhớ để nạp vào cửa Một chip nhớ flash 1Mbit lập trình khoảng 2s, khác với EEPROM việc xoá

được thực chip Thời gian xố cho tồn bộ nhớ flash khoảng 1s Xử lý đọc, lập trình xố điều khiển lệnh có

(85)

Mục đích sử dụng nhớ flash để thay cho

ổđĩa mềm ổđĩa cứng dung lượng nhỏ Do mạch tích hợp nên có ưu điểm kích thước nhỏ tiêu thụ lượng thấp, không bị ảnh hưởng va đập Các đĩa cứng chất rắn dựa sở

nhớ flash có lợi cơng suất tiêu thụ giá thành có dung lượng tới vài MB Các card nhớ loại có ưu điểm khơng gặp phải vấn đề thông tin trường hợp RAM CMOS pin Ni-Cd bị

hỏng Thời gian lưu trữ thông tin nhớ flash 10năm, thơng thường 100 năm, với khoảng thời gian đĩa mềm cứng bị hỏng

Nhược điểm nhớ flash xố theo kiểu chip trang

PP

V

WE CE OE

(86)

7.7 BỘ NHỚ CACHE

Với máy tính có tốc độ nhanh (trên 33MHz), cần phải xen trạng thái đợi truy xuất liệu tới DRAM rẻ tiền có thời gian thâm nhập chậm (60-120ns) Điều làm giảm hiệu suất máy Có thể giải cách dùng SRAM có thời gian thâm nhập ngắn (20-25ns, chí 12ns) giá thành lại

đắt Bộ nhớ Cache kết hợp lợi điểm nhanh SRAM rẻ

của DRAM Giữa CPU nhớ DRAM, người ta xen vào nhớ SRAM nhanh có dung lượng nhỏ 1/10 1/100 lần nhớ gọi cache; sựđiều khiển mạch điều khiển cache, nhớ lưu trữ tạm thời liệu thường gọi cung cấp cho CPU thời gian ngắn

Cache chứa thông tin vừa CPU sử dụng gần Khi CPU đọc liệu đưa địa tới bộđiều khiển cache Sau hai q trình sau xảy ra:

Cache hit: địa chỉđó có sẵn RAM cache

Cache miss: ngược lại, địa khơng có sẵn RAM cache

(87)

Như vậy, cache hit tỷ lệ với truy xuất thơng tin có sẵn

nhớ cache SRAM, cache miss lại tỷ lệ với truy xuất thơng tin có nhớ DRAM

TÓM TẮT

Trong chương trình bày ngun lý cấu tạo, tính loại nhớ bán dẫn: ROM, PROM, EPROM, EEPROM, SRAM, DRAM, FLASH, CACHE

Các chip RAM khơng thích hợp cho chương trình khởi động thơng tin bị tắt nguồn Do phải dùng đến ROM, liệu cần lưu trữ viết lần theo cách không bay để nhằm giữđược

Trong năm gần đây, loại nhớ không bay

đã xuất thị trường, thường sử dụng thay cho ổ đĩa mềm cứng máy tính Đó nhớ flash Cấu trúc chúng EEPROM, có lớp kênh ôxit ô nhớ

(88)

CÂU HỎI ÔN TẬP

1 Bộ nhớ ROM khác nhớ RAM ởđiểm gì? Linh kiện lưu giữ bit thông tin DRAM linh kiện gì? Linh kiện lưu giữ bit thơng tin SRAM linh kiện gì? Linh kiện lưu giữ bit thông tin EPROM linh kiện gì?

5 Trong EPROM, việc nạp điện tích vào vùng cửa có nghĩa làm cho nó?

6 SRAM 6264: Cần bit địa cho dung lượng 2048 từ x 8bit? Nó nhớ từ 32byte? Nếu ghép song song IC dung lượng nhớ tổng cộng bao nhiêu? Làm tươi nhớ DRAM gì? Tại phải làm tươi DRAM? Một DRAM có dung lượng nhớ 64kbit cần đầu

(89)

TRÌNH (PLD)

GIỚI THIỆU

Trong chương trước ngồi lý thuyết phân tích, thiết kế hệ

mạch số, giới thiệu ví dụ dùng cơng nghệ logic số sử dụng IC có chức cố định để thiết kế mạch số Chương trình bày tổng quan cơng nghệ logic số phổ biến có thểđược sử

dụng thực tế để xây dựng mạch, hệ thống số Đặc biệt chương trình bày kỹ cơng nghệ logic khả trình với cấu kiện logic khả trình cho phép người dùng lập trình lại cấu hình để

có chức Hai loại cấu kiện logic khả trình CPLD, FPGA sử dụng phổ biến giúp phát triển nhanh ứng dụng từ đơn giản đến phức tạp Lưu đồ thiết kế cho chúng trình bày chương

8.1 GIỚI THIỆU VỀ CÔNG NGHỆ LOGIC SỐ

Ngày công nghệ logic số phát triển mạnh mẽ công nghệ chủ đạo việc phát triển sản phẩm điện - điện tử

(90)

Hình 8.1: Phân loại cơng nghệ logic số 8.1.1 Công nghệ logic chuẩn (Standard Logic)

Đây cơng nghệ logic truyền thống gồm có IC số chức cốđịnh, cơng nghệ có họ cấu kiện logic điển hình TTL 74xx CMOS 4xxx Chức cấu kiện cố định nhà sản xuất tạo ra, người sử dụng thực kết nối chúng với để

(91)

Ưu điểm việc sử dụng công nghệ logic chuẩn là:

- Thực thiết kếđơn giản - Chi phí phát triển ứng dụng thấp - Thay đổi nhanh thiết kế - Tương đối dễ thử nghiệm mạch

Nhược điểm:

- Các yêu cầu kích thước bảng mạch lớn - Khó chế tạo mạch ứng dụng phức tạp - Yêu cầu vềđiện lớn

- Thiếu tính bảo mật (các bảng mạch bị chép)

- Các yêu cầu chi phí bổ sung, khoảng trống, điện… cần thiết

để chỉnh sửa thiết kế bổ sung tính khác

8.1.2 Công nghệ ASIC

Để khắc phục nhược điểm việc thiết kế cách sử

dụng IC chức cố định, mạch tích hợp chuyên biệt ứng dụng (ASIC - Application Specific IC) phát triển Các ASIC

đã thiết kếđểđáp ứng yêu cầu chuyên biệt mạch

được giới thiệu nhà sản xuất IC Các thiết kế phức tạp thực cách sử dụng IC chức cốđịnh Người sử dụng thiết kế cấu hình chúng theo chức mong muốn, cần thực công đoạn sản xuất cuối nhà máy

để tạo lại IC chuyên dụng cho mục đích riêng người sử

dụng Hiện công nghệ ASIC gồm loại là: Gate Arrays (mảng cổng) Standard Cell (tế bào chuẩn)

(92)

để thực tạo lớp kết nối logic cell theo mẫu kết nối

được tạo người sử dụng thực thiết kế xác định Cấu kiện Standard Cellkhơng có cấu trúc cốđịnh, nhà sản xuất tạo mặt nạ riêng để xây dựng IC dựa vào lựa chọn linh kiện người sử dụng điều khiển, ALU, RAM, ROM, vi xử

lý từ thư viện standard cell mà nhà sản xuất đưa Các lớp mặt nạ sẽđược thực trình sản xuất nhà máy

Ưu điểm việc sử dụng công nghệ ASIC là:

- Giảm thiểu kích thước thơng qua việc sử dụng mức tích hợp cao

- Giảm thiểu yêu cầu vềđiện

- Nếu sản xuất theo quy mơ lớn chi phí giảm đáng kể - Việc thiết kế thực dạng hồn tồn khơng thể chép

Nhược điểm:

- Chi phí phát triển ban đầu lớn

- Các phương pháp thử nghiệm phải phát triển điều làm gia tăng chi phí cơng sức

8.1.3 Cơng nghệ logic khả trình (Programmable Logic)

(93)

Các PLD có ưu điểm sau:

- Thời gian thiết kếứng dụng ngắn - Chi phí phát triển thấp

- Giảm thiểu yêu cầu khoảng trống bảng mạch - Giảm thiểu yêu cầu vềđiện

- Bảo đảm tính bảo mật thiết kế - Tốc độ chuyển mạch nhanh - Mật độ tích hợp cao

- Chi phí sản xuất số lượng lớn thấp

- PLD cho phép nhà thiết kế có nhiều phương tiện linh

động để thử nghiệm với thiết kế chúng có thểđược cấu hình lại vài giây

Với nhiều ưu điểm nên có số lượng lớn PLD nhà sản xuất IC tạo với nhiều tính đa dạng nhiều tuỳ chọn có sẵn để nhà thiết kế mạch sử dụng cách phổ biến

Một số cấu trúc PLD như: Mảng logic khả trình (PLA), logic mảng khả trình (PAL), Cấu kiện logic khả trình đơn giản (SPLD) Mảng cổng lập trình theo trường (FPGA) đề cập kỹ

hơn phần sau

8.1.4 Công nghệ thiết kế vi mạch số mật độ tích hợp lớn (Full Custom VLSI Design)

(94)

thiết kế người sử dụng chương trình hố cài đặt vào thiết bị nhớ Nhiệm vụ việc thiết kế lập trình cho vi xử lý theo toán đặt Việc thay đổi thiết kế dễ dàng thích hợp với tốn ứng dụng có thuật tốn phức tạp Tuy nhiên với nhiều ứng dụng thiết kế logic số cần phải ghép nối vi xử

lý với nhiều cấu kiện số khác, việc thiết kế mạch phức tạp Đa phần hoạt động vi xử lý tiến trình tuần tự, với

ứng dụng địi hỏi tốc độ cao, xử lý song song việc sử dụng vi xử lý khó khăn

CPLD /FPGA SPLD ASIC Full Custom VLSI Design

Giá thành thời gian phát triển sản phẩm

M ậ t độ tích h ợ p, m ứ c độ ph ứ c t p, th ị tr ườ ng ứ ng d ụ ng

Hình 8.2: Sự cân việc ứng dụng công nghệ logic số Sự phức tạp sử dụng, thời gian thiết kế, độ phức tạp ứng dụng khác loại công nghệ logic số Biểu đồ cân mật độ tích hợp, mức độ phức tạp, thị

trường ứng dụng công nghệ logic số giá thành

thời gian phát triển sản phẩm đưa hình 8.2 Việc sử

(95)

mất tới vài năm cho việc thiết kế kiểm tra Do cơng nghệ phù hợp cho việc phát triển loại cấu kiện có số lượng cao nhất, hiệu cao nhất, đa dụng ví dụ vi xử lý, nhớ sử dụng máy tính Giá thành thời gian phát triển sản phẩm dùng ASIC giảm công nghệ thiết kế VLSI, cần thời gian chi phí phát triển cho cơng đoạn sản xuất cuối nhà máy Việc kiểm tra thực người sử dụng sau công đoạn sản xuất cuối đó, nên có lỗi thiết kế dẫn đến việc tăng thời gian giá thành phát triển Cơng nghệ thích hợp với phát triển sản phẩm có số lượng thời gian sống lớn Cơng nghệ logic khả trình mà điển hình CPLD FPGA thích hợp cho yêu cầu phát triển sản phẩm nhanh, số lượng không lớn có mật độ tích hợp độ phức tạp không lớn đặc biệt tiện lợi giai

đoạn nghiên cứu phát triển, chế tạo thử sản phẩm Tuy nhiên cân hiệu tính kinh tế ASIC, CPLD, FPGA liên tục thay đổi với hệ cấu kiện cơng cụ thiết kế

Tóm lại số công nghệ logic số nay, công nghệ

logic khả trình lựa chọn thích hợp cho việc phát triển hệ

thống số không phức tạp, với số lượng không lớn, thời gian phát triển nhanh, nước có công nghiệp điện tử sản xuất vi mạch phát triển Việt Nam

8.2 CẤU KIỆN LOGIC KHẢ TRÌNH (PLD)

(96)

AND cổng OR, đồng thời cho phép nhiều cổng OR sử dụng chung cổng AND Kiến trúc linh hoạt, thời điểm

đó, trễ lan truyền từ đầu vào tới đầu (Tpd) cao (do cấu trúc 10µm) nên thiết bị hoạt động tương đối chậm Và dạng công nghệ

logic khả trình xuất SPLD Sau cơng nghệ

CPLD FPGA đời có mật độ tích hợp cao hơn, cấu trúc linh hoạt cho phép tạo nhiều mạch logic phức tạp

Vi mạch lập trình, viết tắt PLD (Programmable Logic Device), loại cấu kiện điện tử có nhiều ưu điểm

được phát triển mạnh Về nguyên lý, chúng có cấu tạo giống với PROM Việc lập trình cho PLD thực công nghệ khác nhau, dựa sở bẻ cầu chì chuyển mạch Tuy nhiên, ứng dụng PLD lại khác với PROM Một PLD, tạo thành số cổng AND, OR, XOR trigơ,

thực nhiều hàm Boole khác

8.2.1 SPLD

SPLD - cấu kiện logic khả trình đơn giản Đây loại cấu kiện số có nhiều ưu điểm phát triển mạnh Về nguyên lý, chúng có cấu tạo giống với PROM Việc lập trình cho SPLD có thểđược thực công nghệ khác nhau, dựa sở thực kết nối cách sử dụng cầu chì chuyển mạch Một SPLD, tạo thành số mảng cổng AND, OR, XOR trigơ, thực nhiều hàm Boole khác

Các SPLD có cấu tạo dựa hai dạng cấu trúc chính: mảng logic khả trình PLA (Programmable Logic Array) logic mảng khả trình PAL (Programmable Array Logic)

(97)

cầu chì đóng, điểm có kết nối hàng cột, cầu chì ngắt, khơng có kết nối Việc đóng ngắt cầu chì thực phần mềm (do lập trình viên sử dụng cơng cụ lập trình hệ

thống (ISP: In- System Programming)

Cấu trúc PLA tạo tổ hợp tùy ý cổng AND OR, cho mật độ logic cao tốc độ chậm, số lượng cầu chì lớn Vì vậy, sau người ta đưa kiểu kiến trúc khác logic mảng khả trình PAL (Programmable Array Logic)

Hình 8.3: Kiến trúc PAL

Đầu vào

Đầu

(98)

Hình 8.4: Kiến trúc PLA

Cơng nghệ PLD xuất từ sớm với công ty Xilinx – sản xuất vi mạch CMOS công suất cực thấp dựa công nghệ Flash PLD dựa cơng nghệ Flash cho phép lập trình xố vi mạch nhiều lần điện, nhờ tiết kiệm thời gian so với xoá vi mạch tia cực tím

8.2.2 CPLD (Complex PLD)

CPLD thuộc dịng chip khả lập trình PLD thiết bị logic khả trình phức hợp (CPLD) có mật độ logic cao so với PLD

Đầu vào

Điểm kết nối

khả trình Đikhểm kả trình ết nối

(99)

đơn giản nhưđã xét (PLA PAL) CPLD bao gồm nhiều mạch logic, mạch coi SPLD Trong mạch đơn

thực chức logic đơn giản Các chức logic phức tạp cần số lượng khối nhiều hơn, sử dụng ma trận liên kết chung khối để tạo kết nối CPLD thường dùng để điều khiển ghép cổng phức hợp tốc độ cao (5ns, tương đương với 200MHz) Kiến trúc CPLD minh hoạ hình 8.5

Hình 8.5: Kiến trúc chung CPLD

CPLD có cấu trúc đồng gồm nhiều khối chức "Function Block" kết nối với thông qua ma trận kết nối trung tâm "Interconnect Array". Mỗi khối chức gồm có khối logic (logic block) - gồm hạng tích AND hạng tổng OR xếp giống PLA PAL, cho phép thực hàm logic tổ hợp nhiều khối MC (Macrocell) có chứa tài nguyên Trigơ

(100)

Với cấu trúc đồng nhất, giá thành rẻ, tính mạnh, dễ sử

dụng CPLD sử dụng rộng rãi thực tế, giúp cho nhà sản xuất phát triển nhanh sản phẩm với giá thành rẻ

Đặc biệt hãng phát triển họ CPLD với tính mạnh, cơng suất tiêu thụ thấp, chúng sử dụng nhiều

để phát triển sản phẩm điện tử, viễn thông, công nghệ thông tin, thiết bị cầm tay, di động…

Trong thực tế có nhiều loại CPLD khác nhau, hãng khác phát triển với nhiều chủng loại, hệ CPLD khác Cấu tạo, dung lượng, tính năng, đặc điểm, ứng dụng… loại CPLD khác Trong giáo trình khơng sâu trình bày cấu tạo cụ thể họ CPLD, mà trình bày kiến trúc chung đơn giản CPLD Khi sử dụng cụ thể loại CPLD nào, người học nên tham khảo tài liệu khác, tham khảo tài liệu kỹ thuật cung cấp kèm theo cấu kiện hãng đưa Các hãng điện tử tiếng giới sở hữu, phát triển, cung cấp loại cấu kiện CPLD Xilinx, Altera…

8.2.3 FPGA

FPGA (Field Programmable Gate Array - Ma trận cổng lập trình

được theo trường): có cấu trúc hoạt động phức tạp CPLD Nó thực chức phức tạp ưu việt CPLD Năm 1985, công ty Xilinx đưa ý tưởng hồn tồn mới, kết hợp thời gian hoàn thành sản phẩm khả điều khiển PLD với mật độ ưu chi phí GateArray Từđó, FPGA đời Hiện nay, Xilinx nhà sản xuất chip FPGA số giới

(101)

FPGA có mật độ cao, lên tới hàng trăm tỷ cổng cấu trúc

đa dạng, phức tạp Nhiều chức phức tạp tích hợp sẵn để tăng hiệu sử dụng FPGA Ví dụ tế bào logic, nhiều họ FPGA tích hợp thêm khối chức khác nhân cứng, khối nhớ, PLL, chí vi xử lý mạnh…

Hình 8.6: Kiến trúc chung FPGA

Có hai loại FPGA bản: Loại lập trình lại được, dựa cơng nghệ SRAM loại lập trình lần

Loại lập trình lại (dựa SRAM): - SRAM xác định kết nối

- SRAM định nghĩa hàm logic bảng ánh xạ (LUT - Look Up Table)

Loại lập trình lần: - Kết nối dạng bẻ cầu chì

(102)

Hình 8.7:Cấu trúc tế bào logic đơn giản

Hai dạng khác quy trình thực tế bào logic

chếđược sử dụng để tạo kết nối thiết bị

Chip FPGA lập trình lần sử dụng phương pháp bẻ cầu chì (kết nối tạo cách đóng cầu chì) để tạo kết nối tạm thời chip, không cần SPROM phương tiện khác để

nạp chương trình vào FPGA Tuy nhiên, lần thay đổi thiết kế, phải bỏ hoàn toàn chip cũđi Tế bào logic OTP tương tự PLD với cổng trigơđịnh trước

Dạng FPGA quan trọng dùng phổ biến dạng lập trình lại được, dựa SRAM Trên thực tế, FPGA SRAM

(103)

Trong tế bào logic SRAM, thay cổng thơng thường, người ta sử dụng bảng ánh xạ (LUT) Bảng xác định giá trị đầu dựa giá trị đầu vào, sử dụng để xây dựng hàm logic tổ

hợp Trong sơđồ “Tế bào logic SRAM” minh hoạở hình vẽ 8.7, 16 tổ

hợp khác đầu vào xác định giá trị đầu ra) Các ô nhớ

SRAM sử dụng đểđiều khiển kết nối

Bảng 8.1: So sánh CPLD FPGA

CPLD FPGA

- Cấu trúc theo mảng hạng tích - Cấu trúc dựa vào LUT - Mảng kết nối trung tâm - Ma trận kết nối chiều X-Y - Mật độ tích hợp trung bình - Mật độ tích hợp cao

- Tỷ lệ số chân I/O microcell lớn - Tỷ lệ số chân I/O microcell nhỏ

- Cấu hình lưu lại điện khơng thay đổi trình hoạt động

- Cấu hình nạp vào SRAM, điện

khơng cịn, cần có nhớ cấu hình PROM, cấu hình có thểđược nạp tựđộng q trình hoạt động

- Cấu trúc đồng – Cấu trúc không đồng

– Nhiều tài nguyên: DLL (Delay Locked Loop: Vịng khố pha trễ ), nhớ, nhân – Ứng dụng: Mã hoá giải mã logic,

các máy trạng thái hay giao diện bus chuẩn (SPI, I2C, SMBus ), ưu

điểm bật thiết kế mạch logic nhiều đầu vào

- Ứng dụng: PCI (Peripheral Component Interface: Giao diện thành phần ngoại vi), giao tiếp nối tiếp tốc độ cao vi xử lý nhúng, ưu bật thiết kế phức tạp, cần nhiều tài nguyên

8.3 GIỚI THIỆU PHƯƠNG PHÁP THIẾT LẬP CẤU HÌNH CHO CPLD/FPGA

(104)

8.3.1 Phương pháp dùng sơđồ mô tả

Sơđồ mô tả phương pháp truyền thống người thiết kế sử dụng

để xác định ma trận cổng cấu kiện logic khả trình, cho phép xác định xác cổng cách kết nối cổng để thiết kế mong muốn Phương pháp sử dụng sơ đồ mơ tả gồm bước sau:

Bước 1: Chọn thư viện cấu kiện cơng cụ mơ tả thiết kế Sau

đó, chọn cổng cần cho thiết kế từ thư viện, kết hợp tuỳ ý cổng với Ở bước này, phải lựa chọn họ cấu kiện sử dụng, chưa phải định sử dụng cấu kiện cụ thể họđể đáp ứng yêu cầu tốc độ kích thước

Bước 2: Thực kết nối cổng với nhau, sử dụng lưới dây nối Người thiết kế có thểđiều chỉnh kết nối cổng tuỳ ý theo mục đích thiết kế

Bước 3: Gắn thêm phân bố đệm đầu vào đầu Các bộđệm xác định chân I/O cho thiết bị

Bước 4: Bước cuối tạo Netlist Netlist file mô tả mạch số

dưới dạng text, tạo công cụ thiết kế Bản mô tả thiết kế giúp chương trình khác nắm cổng logic có mạch, cách kết nối cổng số chân I/O Chuẩn để viết file Netlist phổ

biến dạng EDIF (Electronic Digital Interchange Format: Định dạng trao đổi điện tử số)

Phương pháp thiết kế dùng sơ đồ mơ tả có hai nhược điểm chính:

- Khi thiết kế trở nên phức tạp dùng nhiều cổng hơn, việc sử

(105)

- Một nhược điểm khác phương pháp thiết kế theo sơ đồ khó thay đổi công nghệ hay nhà cung cấp Giả sử ban đầu, sử dụng chip FPGA nhà sản xuất X để thiết kế mạch 10 000 cổng, sau chuyển sang sử dụng ma trận cổng, phải thay đổi tồn trang sơđồ có sử dụng ma trận cổng thư viện nhà sản xuất X

8.3.2 Phương pháp dùng ngôn ngữ mô tả phần cứng (HDL) Để khắc phục nhược điểm trên, người ta dùng phương pháp dùng ngơn ngữ mơ tả phần cứng (HDL) Có hai ngơn ngữ mơ tả

phần cứng phổ biến nhất: VHDL Verilog

Trong phương pháp này, thay dùng sơđồ mơ tả kết nối, người lập trình dùng ngơn ngữ mơ tả phần cứng để mơ tả tính hoạt động phần hệ thống Các bước để

thiết lập cấu hình cho PLD sau:

Bước 1: Dùng ngôn ngữ mô tả phần cứng (HDL) để mơ tả tính hoạt động phần hệ thống Đồng thời dùng ngơn ngữ mơ tả phần cứng HDL mô tả kết nối phần hệ thống Đầu trình file dạng text

Bước 2: Dùng công cụ synthesis (tổng hợp) để tạo file Netlist từ file Công cụ synthesis xác định cổng sử dụng dựa mơ hình hoạt động (trong phương pháp thiết kế truyền thống, người thiết kế phải thực thao tác này) Vì Netlist đặc trưng cho họ

thiết bị nhà sản xuất, nên phải sử dụng thư viện nhà sản xuất tương ứng Hầu hết công cụ thiết kếđều cung cấp tên nhà sản xuất mảng cổng, FPGA CPLD

Ngoài ra, lựa chọn hay xếp mức cổng, người sử dụng tối ưu hố thiết kếđể số lượng cổng sử dụng nhất; tối ưu hố phần thiết kếđể tăng tốc độ; sử dụng cấu hình cổng phù hợp để

(106)

Người thiết kế thử nghiệm với nhiều nhà cung cấp khác nhau, nhiều họ thiết bị khác nhau, nhiều phương pháp tối ưu khác nhau, từ có nhiều giải pháp thiết kế thay có giải pháp với phương pháp sơđồ

Một ưu điểm phương pháp dùng ngôn ngữ mô tả phần cứng dễ nâng cấp hệ thống Sử dụng ngôn ngữ HDL rút ngắn thời gian thiết kế thay đổi thiết kế đơn giản Người thiết kế chọn thư viện thông số tối ưu (về tốc độ, diện tích,…), cơng cụ synthesis xác định kết Người thiết kế lựa chọn phương án thiết kế tối ưu sau thử phương án khác

Sau tạo file Netlist, để lập trình chip PLD dựa cấu hình thiết lập, người lập trình cần dùng cơng cụ khác Ngồi ra, người lập trình chạy mơ kiểm tra thiết kế

của Các vấn đề sẽđược đề cập rõ chương sau 8.4 YÊU CẦU CHUNG KHI THIẾT KẾ VỚI CPLD/FPGA

(Ví dụ với CPLD/FPGA Xilinx)

8.4.1 Chọn vi mạch CPLD FPGA phù hợp

Khi phát triển hệ thống số sử dụng CPLD/FPGA bước cần thực phân tích tốn, lựa chọn vi mạch CPLD FPGA phù hợp Việc chọn vi mạch, công nghệ phù hợp cho tiêu chuẩn thiết kế, tiến hành theo yêu cầu sau:

Mt độ: Là mật độ logic dự tính linh kiện, đặc trưng khái niệm "số lượng cổng"

S lượng ghi: Phải tính số ghi cần cho đếm, máy trạng thái, ghi chốt Số lượng macrocell vi mạch tối thiểu phải số ghi cần có

(107)

Yêu cu v tc độ: Tuyến tổ hợp nhanh xác định tpd (trễ truyền vi mạch, tính theo ns) Mạch nhanh xác

định tần số tối đa vi mạch (fmax)

Đóng v: Phải xác định vi mạch cần gọn hay sử dụng dạng QFP (Quad Flat Package: Kết hợp sơ đồ bên trong) thông thường Hoặc vi mạch thiết kế thuộc dạng có lắp chân cắm, trường hợp vi mạch PLCC (Programmable Logic Controller Circuit)

Công sut thp: Phải xác định sản phẩm sử dụng nguồn pin hay lượng mặt trời, thiết kế có u cầu cơng suất tiêu thụ thấp hay khơng, vấn đề tổn hao nhiệt có quan trọng hay không?

Chc năng cp h thng: Phải xác định bo mạch có bao gồm nhiều vi mạch đa mức điện áp hay không, vi mạch có phải chuyển mức hay khơng, có u cầu sửa dạng xung đồng hay khơng, có u cầu giao tiếp nhớ vi xử lý hay khơng?

8.4.2 Chọn giải pháp cấu hình cho CPDL/FPGA

8.4.2.1 Lp trình h thng

Các CPLD FPGA hãng nói chung, Xilinx nói riêng lập trình hệ thống (vi mạch hàn vào mạch ứng dụng) thông qua giao thức JTAG (Joint Test Advisory Group) tích hợp sẵn IC Người thiết kế sử dụng cáp nạp

để nạp cấu hình cho CPLD FPGA Xilinx đưa số chuẩn cáp nạp sau:

(108)

3,3V; 2,5V Và thiết kế để hỗ trợ phần mềm gỡ rối phần cứng trước kia, chúng trở lên lỗi thời có đời công cụ gỡ rối phần cứng ChipScope ILA

+ Parallel Cable IV:Cáp nạp sử dụng cổng giao tiếp song song máy tính, phát triển để thay cho chuẩn cáp nạp Parallel Cable III cho phép tăng tốc độ lên 10 lần hỗ trợ cho tất các vi mạch sử dụng mức điện áp I/O từ 5V xuống 1,5V Hiện chuẩn cáp nạp dùng phổ biến

8.4.2.2 Lp trình bên ngồi

Các CPLD FPGA Xilinx có thểđược lập trình bên ngồi lập trình chip HW130 Xilinx lập trình nhà phát triển khác Điều thuận tiện cho việc sử

dụng chip lập trình trước thời gian sản xuất

Cấu hình CPLD nạp vào FLASH nên điện cấu hình khơng bị đi, cấu hình hoạt động FPGA

được ghi vào SRAM nên mất điện, cần sử dụng FPGA kết hợp với EEPROM lưu cấu hình phù hợp, bật nguồn, cấu hình nạp tựđộng từ PROM vào FPGA Có thể sử dụng EEPROM nối tiếp song song, nhiên loại EEPROM nối tiếp hay sử dụng Khi thiết kế cần chọn loại EEPROM có dung lượng phù hợp với mật độ loại FPGA khác

(109)

8.4.2.3 Nhóm cu hình h thng ACE

Giải pháp cấu hình đại nhóm cấu hình Hệ thống ACE Với giải pháp Hệ thống ACE, người thiết kế dễ dàng sử

dụng giao diện vi xử lí Hệ thống ACE để trực tiếp phối hợp cấu hình FPGA theo yêu cầu hệ thống Giải pháp nhóm Hệ thống ACE CF, cung cấp cơng nghệđiều khiển ổđĩa “Microdrive” kích thước inch “CompactFlash”

lưu trữ cấu hình có dung lượng 8Gbit Ngoài ra, Hệ thống ACE CF thiết kế trước, cung cấp đặc tính tận dụng khả cấu hình lại linh hoạt FPGA, bao gồm:

- Cấu hình multi-board từ nguồn - Quản lý luồng bit đa cấu hình

- Nâng cấp cấu hình qua mạng (IRL) - Hot-swapping

- Khởi tạo trung tâm xử lí lưu trữ phần mềm - Mã hóa

Với hệ thống ACE CF, người thiết kế thực gần toàn yêu cầu cấu hình cho FPGA Các khả bổ trợ hệ

thống cho phép người thiết kế sử dụng FPGA thỏa mãn yêu cầu định trước mặt thiết kế thời gian xử lí lỗi Ngồi ra, cổng vi xử lí cổng kiểm tra JTAG cịn cho phép tích hợp Hệ thống ACE hệ thống

Một sốđặc điểm giải pháp cấu hình hệ thống ACE:

- Độ linh hot: Với hệ thống ACE CF, sử dụng thiết kế cho nhiều ứng dụng khác nhau, nhờ giảm đáng kể thời gian hồn thành sản phẩm Thay thiết kế vài bo mạch tương tự phù hợp với chuẩn khác nhau, người thiết kế phải thiết kế

một bo mạch với nhiều cấu hình lưu trữ nhớ

(110)

các chuẩn khác cách khởi tạo giá trị mặc định tương ứng

được lưu nhớ ACE Hệ thống cho phép lưu nhiều cấu hình cho thiết kế hệ thống ACE CF đơn Ví dụ

trong q trình thiết kế mẫu, người thiết kế lưu cấu hình hoạt động, cấu hình kiểm tra cấu hình gỡ rối nhớ ACE,

đồng thời chọn cấu hình khác để chạy thử thiết kế

Để hỗ trợ quản lý nhiều luồng bit tích hợp điều khiển cấu hình FPGA với hoạt động hệ thống, hệ thống ACE có cổng vi xử lí hệ thống Cổng cho phép xử lí hệ thống thay

đổi cấu hình mặc định, cấu hình lại trigơ, cấu hình lại FPGA nhóm FPGA, truy nhập vào file khơng cấu hình lưu khối CompactFlash dùng khối CompactFlash làm

nhớ chung cho hệ thống

Với FPGA có trung tâm xử lí kèm theo, hệ thống ACE CF cung cấp giải pháp để quản lý phần cứng phần mềm Hệ

thống ACE CF cấu hình khung FPGA, khởi tạo trung tâm vi xử

lí cung cấp ứng dụng phần mềm cho trung tâm cần mà thêm thiết bị phần cứng

+ Mt độ: Với mật độ logic cao chưa thấy (trên 8Gbit), Hệ thống ACE CF cấu hình cho hàng trăm FPGA thay cho mảng EEPROM cấu hình Người thiết kế lưu số lượng lớn thiết kế khác cho mảng FPGA khối nhớ Hệ thống ACE CF sử dụng hệ thống file FAT (File Allocation Table: bảng xếp file tiêu chuẩn), người thiết kế

có thể lưu file không dạng luồng bit sử dụng nhớ

thừa làm nhớ chuẩn cho hệ thống

(111)

phép đơn giản hóa q trình quản lý nâng cấp cấu hình Để thay đổi hay nâng cấp cấu hình hệ thống, người thiết kế vào khối nhớ, thực thay đổi cần thiết hình máy tính, chỉnh lại nội dung hệ thống qua cổng vi xử lí; tải cấu hình qua mạng, sử dụng IRL

8.4.3 Chọn công cụ phần mềm phù hợp

Xilinx cung cấp cơng cụ thiết kế điện tử hồn chỉnh, cho phép thực thiết kế thiết bị logic khả trình Xilinx Các cơng cụ kết hợp công nghệ tiên tiến với giao diện đồ họa linh hoạt, dễ sử dụng để người thiết kế có thiết kế tối ưu Bộ công cụ

phần mềm sử dụng rộng rãi ISE với phiên 11.1 (27/4/2009)

Xilinx cung cấp ISE dạng gói phần mềm có cấu hình khác với giá thành khác nhau:

+ ISE WebPACK: Bản miễn phí dùng để thiết kế cho tất họ CPLD Xilinx số loại FPGA dung lượng thấp trung bình

+ Gói phần mềm BASEX: Có thể thiết kế cho loại chip sau:

Virtex-4, FPGA LX15, LX25, SX25, FX12, Spartan-3 FPGA lên

đến 1.500 ngàn cổng tất họ CPLD

+ Gói phần mềm Foundation: Có thể thiết kế cho tất loại FPGA CPLD Xilinx

(112)

ISE hay dùng kết hợp với phần mềm mô ModelSim Mentor Graphics phiên XE phát triển riêng hỗ trợ cho họ CPLD/FPGA Xilinx

8.5 LƯU ĐỒ THIẾT KẾ CHO CPLD/FPGA 8.5.1 Lưu đồ thiết kế cho CPLD

Quá trình thiết kế cho CPLD chủ yếu thực công cụ phần mềm, lưu đồ thiết kế chung cho CPLD (Ví dụ sử dụng phần mềm ISE) hình 8.8, bao gồm bước sau:

Bước 1: Nhập thiết kế (Design Entry)

Đây bước quan trọng q trình thiết kế

cho CPLD Các cơng cụ thiết kế cho phép nhập thiết kế theo cách sau:

- Nhập thiết kế theo sơđồ nguyên lý Schematic, người thiết kế sử

dụng môđun có sẵn thư viện Schematic để ghép nối chúng với tạo thành thiết kế theo yêu cầu, cách

thực thiết kế nhanh khó khăn khơng tối ưu tài nguyên CPLD thiết kế phức tạp thiết kế không sử dụng sang công cụ thiết kế CPLD hãng khác Từ sơđồ nguyên lý thiết kếđược công cụ phần mềm chuyển đổi sang file ngôn ngữ mô tả phần cứng HDL, mà phổ biến VHDL Verilog

- Nhập thiết kế sử dụng ngôn ngữ mô tả phần cứng HDL

(VHDL, Verilog, ABEL, AHDL ) Người thiết kế sử dụng chương trình soạn thảo để thực việc mơ tả tồn thiết kế

của dạng ngơn ngữ HDL mà cơng cụ thiết kế

(113)

Hình 8.8:Lưu đồ thiết kế CPLD Design Entry

Schematic

ECS Verilog/VHDLLHDL State Machines StateCad

Design Verification Functional Simulation (ISE Simulator, ModelSim)

Design Synthesis Xilinx Synthesis Tool

(XST)

Download (iMPACTE) Design Implementation

Translate Map

Place and Route

Timing Simulation

Static Timing Analysis (ECS) ModelSim XE

(114)

Do người thiết kế cần thực phân tích tốn, tìm hiểu tài nguyên, cấu trúc CPLD, yêu cầu thời gian thiết kế để sử

dụng kiểu mô tả, mức độ trừu tượng phù hợp vừa đảm bảo yêu cầu

thời gian thiết kế vừa tối ưu việc sử dụng tài nguyên CPLD

- Nhập thiết kế dạng sơ đồ: Cơng cụ thiết kế cịn cho phép nhập thiết kế vào dạng sơ đồ mà điển hình đồ hình trạng thái, sau chúng chuyển đổi sang HDL

Việc nhập thiết kế linh hoạt, sử dụng cách để

thực phần khác thiết kế

Bước 2: Kiểm tra, mô thiết kế (Design Verification) Thực kiểm tra, mô chức hoạt động thiết kế

HDL tạo Các công cụ thiết kếđều hỗ trợ việc mô chức hoạt động thiết kế HDL theo mơ hình hoạt động (Behavioral Model), mức độ mơ độc lập với loại CPLD

được lựa chọn Bước khơng cần phải thực thiết kế

Bước 3: Tổng hợp thiết kế (Design Synthesis)

Sau hồn thành mơ thiết kế, bước tổng hợp có nhiệm vụ chuyển thiết kế dạng file vản HDL thành dạng file Netlist, thực mô tả mạch thực mức thấp dạng cổng logic kết nối chúng với Có thể sử dụng cơng cụ tổng hợp hãng khác

Mỗi công cụ tạo file Netlist theo định dạng riêng (ví dụ

(115)

Hình 8.9:Ví dụ tổng hợp file Netlist Bước 4: Thực thiết kế (Design Implementation)

Sau có file Netlist, bước thực thiết kế, nghĩa xây dựng cấu hình cho CPLD Bước sử dụng file Netlist file ràng buộc "constraints file" (mô tả nguyên tắc thiết kế, ràng buộc vật lý gán vị trí cho đầu vào/ra chip, ràng buộc tốc độ, thời gian, tần số…) để tạo thiết kế sử dụng tài nguyên có sẵn CPLD Bước bao gồm bước: Translate (biên dịch), Map (Phân bố thiết kế vào chip), Place and Route (Định vị

định tuyến kết nối)

* Translate (biên dịch)

Bước nhằm thực kiểm tra thiết kế đảm bảo file Netlist phù hợp với kiến trúc CPLD chọn, kiểm tra file ràng buộc "constraints file" người sử dụng để phát lỗi mâu thuẫn với tham số CPLD chọn Biên dịch thường bao gồm q trình: tối ưu hố, biên dịch thành thành phần vật lý cấu

A B P Q U4D U4C U4B U4A U3A U2A U1A

Chän c¸c cỉng Thùc hiƯn kÕt nèi

Ghép đệm

vμo/ra

T¹o Netlist U3A U2A U1A U3A U2A U1A

(116)

kiện; kiểm tra ràng buộc thiết kế Khi kết thúc bước biên dịch, có báo cáo chương trình sử dụng, danh sách cổng I/O cấu kiện sử dụng thiết kế, nhờ người thiết kế lựa chọn phương án thiết kế tối ưu

* Map

Tạo phân bố thiết kế tới tài nguyên cụ thể CPLD Nếu thiết kế lớn so với thiết bị chọn, quy trình khơng thể hồn thành nhiệm vụ Q trình Map có tham số

ràng buộc thiết kế, ví dụ tham số tốc độ, thời gian thiết kế

và định gắn thêm thành phần logic đểđáp ứng yêu cầu thời gian Map có khả thay đổi thiết kế xung quanh bảng ánh xạđể tạo khả thực tốt cho thiết kế Quy trình thực hồn tồn tựđộng cần tác động đầu vào từ người sử dụng Bước nhằm đưa mạch thiết kế vào thiết bị cụ thể Bước tạo báo cáo xác nhận tài ngun sử dụng chip, mơ tả xác phần thiết kếđược đặt

vị trí chip thực tế

* Place and Route (PAR - Định vị định tuyến kết nối) Place q trình lựa chọn vị trí phù hợp khối chức thiết kế đưa cổng logic phần vào khối logic hay môđun cụ thể CPLD sở tối ưu việc kết nối đảm bảo ràng buộc thời gian Những phần logic hoạt

động tốc độ cao sẽđược xếp cạnh để giảm độ dài đường kết nối Route trình tạo liên kết vật lý khối logic Hầu hết nhà sản xuất cung cấp công cụ Place and Route tựđộng cho người sử

dụng Ngồi cơng cụ tựđộng, người thiết kế tự Place and Route thiết kế Nhà sản xuất cung cấp công cụ,

(117)

Place and Route q trình phức tạp, chiếm thời gian nhiều Tuy nhiên, bước hoạt động tốt Chip chọn đáp ứng đủ tuyến liên kết cho thiết kế Nếu không, người thiết kế phải chọn chip có dung lượng lớn Sau bước tạo

được file cấu hình *.jed có thểđược nạp vào cho CPLD Bước 5:Timing Simulation(Mô định thời)

Sau bước Place and Route người thiết kế thực mơ thiết kếở mức cổng logic định vị trí định tuyến CPLD, phần mềm sử dụng file cấu hình tạo kết hợp với thư viện mơ hình thời gian họ CPLD (ví dụ ISE Xilinx dùng thư viện VITAL), để thực hiên mô hoạt động thiết kế mà có tính đến tham số thời gian trễ, thời gian thiết lập… cổng logic CPLD Bước quan trọng với thiết kế phức tạp, tốc độ lớn

Bước 6: Configuration (Cấu hình) hay bước nạp cấu hình (Download)

Gọi chương trình điều khiển việc nạp cấu hình, thực kết nối thiết bị nạp (cáp nạp) đến CPLD nạp file cấu hình cho CPLD Với CPLD hãng Xilinx, q trình lập trình thực hệ thống nhờ công cụ JTAG sử dụng lập trình thiết bị chun dùng, ví dụ cơng cụ JTAG Data I/O, theo chuẩn IEEE/ANSI 1149.1_1190 Công cụ JTAG nguyên tắc thiết kế, hỗ trợ

quá trình kiểm tra, lập trình cho thiết bị gỡ rối chip, bo mạch hệ thống Khả lập trình hệ thống ưu điểm CPLD, cho phép lập trình lại CPLD hàn trực tiếp lên PCB Nếu có thay đổi thiết kế, tháo thiết bị khỏi bo mạch, mà đơn giản phải lập trình lại hệ thống

8.5.2 Lưu đồ thiết kế cho FPGA

(118)

này, FPGA có thêm bước "Create Bit file" để tạo file "luồng bit" để nạp vào nhớ cấu hình FPGA thường nhớ tạm thời SRAM Dịng bit nạp mang tất thơng tin để định nghĩa hàm logic liên kết thiết kế Mỗi thiết kế khác có dòng bit khác Các thiết bị SRAM tồn

thơng tin ngắt nguồn, cần thiết phải nạp dịng bit cấu hình vào EEPROM (thường sử dụng EEPROM nối tiếp) Mỗi thiết bị bật nguồn file cấu hình từ EEPROM nạp tựđộng vào nhớ SRAM FPGA FPGA hoạt động theo cấu hình nạp

Hình 810: Lưu đồ thiết kế FPGA TĨM TẮT

Chương trình bày tổng quan công nghệ logic số,

đặc biệt cơng nghệ logic khả trình với hai họ cấu kiện phổ biến CPLD FPGA Giới thiệu phương pháp lập trình cấu hình cho CPLD/FPGA, vấn đề cần ý thiết kếứng dụng dùng CPLD/FPGA Lưu đồ thiết kế cho CPLD/FPGA trình bày chi tiết chương giúp bạn đọc hiểu toàn trình bước cần thực để thiết lập cấu hình cho CPLD/FPGA theo yêu cầu người thiết kế

Create Bit file Configuration

(119)

CÂU HỎI ÔN TẬP

1 Trình bày cơng nghệ logic số

2 Nêu đặc điểm phương pháp xây dựng mạch số sử dụng công nghệ logic chuẩn, logic khả trình, ASIC?

3 Trình bày cấu trúc PAL, PLA, lấy ví dụ xây dựng hàm logic sử dụng cấu trúc

4 Trình bày cấu tạo chung CPLD, FPGA so sánh

5 Trình bày phương pháp chung để thiết kế cho CPLD/FPGA Trình bày yêu cầu chung thiết kế với CPLD/FPGA

(120)

PHN CNG VHDL

GIỚI THIỆU

Ngày nay, mạch tích hợp có mật độ ngày lớn ngày thực nhiều chức năng, hệ thống điện tử nói chung, hệ

thống số nói riêng ngày trở nên phức tạp Do đó, vấn đề thiết kế mạch trở nên phức tạp Những phương pháp truyền thống dùng phương pháp tối thiểu hoá hàm Boolean hay dùng sơ đồ phần tử

không đáp ứng yêu cầu đặt thiết kế Nhược điểm lớn phương pháp chúng mô tảđược hệ thống dạng mạng nối phần tử với Người thiết kế cần phải qua hai bước thực hoàn toàn thủ cơng: chuyển từ u cầu chức hệ thống sang biểu diễn theo dạng hàm Boolean, sau bước tối thiểu hoá hàm ta lại phải chuyển từ hàm Boolean sang sơ đồ mạch hệ thống Cũng tương tự phân tích hệ

thống người phân tích cần phải phân tích sơđồ mạch hệ thống, chuyển thành hàm Boolean, sau lập lại chức năng, hoạt động hệ thống Tất bước nói hồn tồn phải thực thủ cơng khơng có trợ giúp máy tính Người thiết kế sử dụng máy tính làm công cụ hỗ trợ việc vẽ

(121)

phức tạp hệ thống thiết kế Phương pháp dùng hàm Boolean dùng để thiết kế hệ thống lớn biểu diễn vài trăm hàm Còn phương pháp dựa sơ đồ dùng để thiết kế hệ

thống lớn chứa khoảng vài nghìn phần tử

Nhờ trợ giúp đắc lực máy tính, phương pháp thiết kế, thử

nghiệm, phân tích hệ thống số sử dụng ngôn ngữ mô tả phần cứng bật lên với ưu điểm hẳn dần thay phương pháp truyền thống Sự đời ngôn ngữ mô phần cứng giải nhiều nhược điểm lớn phương pháp thiết kế trước đây: Nếu phương pháp cũđòi hỏi phải chuyển

đổi từ mô tả hệ thống (các tiêu chức năng) sang tập hợp hàm logic tay bước chuyển hồn tồn không cần thiết dùng HDL Hầu hết công cụ thiết kế dùng ngôn ngữ mô phần cứng cho phép sử dụng đồ hình trạng thái cho hệ thống cho phép sử dụng bảng chân lý cho hệ thống mạch tích hợp Việc chuyển đổi từ biểu đồ trạng thái hay bảng chân lý sang mã ngôn ngữ mô phần cứng thực hoàn toàn tự động nhờ phần mềm thiết kế máy tính

Nhờ tính dễ kiểm tra thử nghiệm hệ thống suốt trình thiết kế mà người thiết kế dễ dàng phát lỗi thiết kế

ngay từ giai đoạn đầu, giai đoạn chưa đưa vào sản xuất thử,

đó tiết kiệm lượng chi phí đáng kể từ ý tưởng thiết kếđến tạo sản phẩm mong muốn việc khó tránh khỏi khó khăn, thất bại

Khi lĩnh vực khoa học phát triển khơng ngừng phức tạp hệ thống điện tử ngày tăng theo gần

không thể tiến hành thiết kế thủ công mà trợ giúp loại máy tính đại Ngày nay, ngôn ngữ mô tả phần cứng HDL

(122)

từ loại đơn giản đến loại phức tạp FPGA, thiết kế hệ

thống VLSI

Trong toàn lưu đồ thiết kế cho CPLD FPGA, bước nhập thiết kế bước quan trọng tốn nhiều cơng sức nhất, định phần lớn đến kết công việc thiết kế Các công cụ thiết kế hỗ

trợ nhiều phương pháp nhập thiết kế khác nhau, nhiên phương pháp nhập thiết kế dùng ngôn ngữ mô tả phần cứng HDL ưu việt sử dụng chủ yếu trình thiết kế số nói chung thiết kế cho CPLD/FPGA nói riêng Hiện có nhiều ngơn ngữ

HDL sử dụng (như VHDL, Verilog, ABEL…), nhiên giáo trình giới thiệu phương pháp thiết kế dùng ngôn ngữ

VHDL giới thiệu đặc điểm VHDL khiến trở

thành ngơn ngữ HDL giảng dạy sử dụng

nhiều trường đại học giới mà sử dụng hãng điện tử lớn

Tóm lại người sử dụng dùng VHDL để mơ tả cấu trúc hoạt động mạch số, sau mã VHDL dùng để mơ hoạt động mạch số máy tính hay tổng hợp thành file netlist ánh xạ đến phần cứng thực dùng công nghệ

(123)

9.1 LỊCH SỬ PHÁT TRIỂN CỦA VHDL

VHDL ngôn ngữ mô tả phần cứng cho mạch tích hợp tốc

độ cao, loại ngôn ngữ mô tả phần cứng phát triển dùng cho trương trình VHSIC (Very High Speed Intergrated Circuit: Mạch tích hợp tốc độ cao) Bộ Quốc phòng Mỹ Mục tiêu việc phát triển VHDL có ngơn ngữ mơ phần cứng tiêu chuẩn thống cho phép thử nghiệm hệ thống số nhanh cho phép dễ dàng đưa hệ thống vào ứng dụng thực tế Ngôn ngữ VHDL ba công ty Intermetics, IBM Texas Instruments bắt đầu nghiên cứu phát triển vào tháng năm 1983 Phiên công bố vào tháng năm1985 Sau VHDL

được đề xuất để tổ chức IEEE xem xét thành tiêu chuẩn chung Năm 1987 IEEE đưa tiêu chuẩn VHDL đâu tiên (tiêu chuẩn IEEE-1076-1987) Từđó phiển tiêu chuẩn

đời Đa số phần mềm thiết kế hỗ trợ VHDL Tiêu chuẩn IEEE-1076-1987 quy định:

- Các kiểu liệu bản: số học (integer, real), kiểu logic (bit, boolean), kiểu ký tự (character), kiểu thời gian (time), mảng bit

Mã VHDL mô tả cấu trúc,

hoạt động mạch số

ENTITY full_adder IS PORT (a, b, cin: IN BIT; s, cout: OUT BIT); END full_adder;

ARCHITECTURE dataflow OF full_adder IS

BEGIN

s <= a XOR b XOR cin; cout <= (a AND b) OR (a AND cin) OR

(b AND cin); END dataflow;

Mạch số

(124)

(bit_vector), mảng ký tự (string), phép toán với kiểu

liệu

- Các cấu trúc lệnh song song - Các đơn vị thiết kế…

Để mơ tả tín hiệu logic nhiều trạng thái, IEEE bổ

sung tiêu chuẩn IEEE 1164 quy định kiểu liệu logic có tới trạng thái (std_ulogic kiểu mảng std_ulogic_vector) phép toán với kiểu liệu

Năm 1993, IEEE đưa phiên IEEE-1016-1993 bổ sung thêm nhiều cấu trúc, cú pháp cho phép việc đặt tên linh hoạt hơn, bổ

sung thêm lệnh XNOR, kiểu ký tự xuất máy in theo tiêu chuẩn ISO-8859-1…

Phiên tiêu chuẩn năm 2000 2002 bổ sung số ý tưởng VHDL hướng đối tượng (giống C++) bỏ số hạn chế

trong luật đặt tên cổng “port”

Ngoài tiêu chuẩn IEEE 1164, IEEE đưa số tiêu chuẩn bổ sung cho VHDL như:

+ IEEE 1076.1 (VHDL-AMS) tiêu chuẩn VHDL mở rộng cho mô tả mạch tương tự mạch tín hiệu hỗn hợp số - tương tự

+ IEEE 1076.2 bổ sung số kiểu liệu phức (complex), thực (real)

+ IEEE 1076.3 bổ sung số kiểu liệu có dấu (signed) khơng dấu (unsigned)

+ IEEE 1076.4 - VITAL ASIC (Application Specific Integrated Circuit) Modeling Specification bổ sung thư viện VITAL quy định

đặc tính mơ hình mạch ASIC

+ IEEE 1076.6 bổ sung thư viện cho phép tổng hợp hệ thống số

(125)

Năm 2006, Ủy ban kỹ thuật VHDL Accellera ủy nhiệm IEEE để thực cập nhật cho tiêu chuẩn

đưa phiên VHDL 3.0 (tiêu chuẩn VHDL-2006) việc giữ lại

đầy đủ phiên tiêu chuẩn cũ thực nhiều mở rộng cho phép việc viết quản lý mã VHDL dễ dàng Những thay đổi quan trọng kết hợp (IEEE 1164, IEEE 1076.2, IEEE 1076.3) thành tiêu chuẩn chung IEEE 1076 -2006, mở rộng cú pháp linh hoạt cho cấu trúc lệnh “case” lệnh “generate”, kết hợp VHPI (VHPI - interface to C/C++) tập PSL (Property Specification Language) Những thay đổi nâng cao chất lượng mã VHLD cho phép tổng hợp, thực viết testbench linh hoạt hơn, cho phép sử dụng rộng rãi việc sử dụng VHDL cho việc mô tả mức hệ thống

Năm 2008, Accellera đưa phiên VHDL 4.0 (tiêu chuẩn VHDL 2008), giải 90 vấn đề tồn phiên VHDL 2006 thêm vào kiểu generic nâng cấp phiên dự kiến đưa tiêu chuẩn IEEE 1076-2008

Như VHDL luôn chuẩn hóa, bổ sung, thay đổi, hồn thiện… để đáp ứng phức tạp, yêu cầu ngày cao hệ thống điện tử nói chung, hệ thống số nói riêng

Trong chương mã VHDL sử dụng chủ yếu theo tiêu chuẩn IEEE-1076-2002

9.2 NHỮNG ƯU ĐIỂM CỦA VHDL

VHDL phát triển để giải khó khăn việc mô phỏng, thiết kế, phát triển, thay đổi lập tài liệu cho hệ thống số Như ta biết, hệ thống số có nhiều tài liệu mơ tả Để

(126)

để mô hoạt động hệ thống Như ta xem xét tồn phần tử hệ thống hoạt động mô hình thống

VHDL phát triển ngôn ngữđộc lập không gắn với phương pháp thiết kế, mô tả hay công nghệ phần cứng Người thiết kế tự lựa chọn công nghệ, phương pháp thiết kế sử dụng ngôn ngữ Và

đem so sánh với ngôn ngữ mô phần cứng khác ta thấy VHDL có sốưu điểm hẳn ngôn ngữ khác:

+ Thứ tính cơng cộng: VHDL phát triển

bảo trợ phủ Mỹ tiêu chuẩn IEEE VHDL hỗ trợ nhiều nhà sản xuất thiết bị nhiều nhà cung cấp công cụ thiết kế mô hệ thống

+ Thứ hai khả hỗ trợ nhiều công nghệ phương pháp thiết kế VHDL cho phép thiết kế nhiều phương pháp, ví dụ

phương pháp thiết kế từ xuống hay từ lên dựa vào thư

viện sẵn có VHDL hỗ trợ cho nhiều loại công cụ thiết kế mạch sử dụng công nghệđồng hay không đồng bộ, sử dụng ma trận lập trình hay sử dụng mảng ngẫu nhiên

+ Thứ ba tính độc lập với cơng nghệ: VHDL hồn tồn độc lập với công nghệ chế tạo phần cứng Một mô tả hệ thống dùng VHDL thiết kế mức cổng logic chuyển thành tích hợp mạch khác tuỳ thuộc công nghệ chế tạo phần cứng đời có thểđược áp dụng cho hệ thống thiết kế

+ Thứ tư khả mô tả mở rộng: VHDL cho phép mô tả

hoạt động phần cứng từ mức hệ thống mức cổng logic VHDL có khả mơ tả hoạt động hệ thống nhiều mức sử dụng cú pháp chặt chẽ thống cho mức Như ta mơ thiết kế bao gồm hệ

(127)

+ Thứ năm khả trao đổi kết quả: Vì VHDL tiêu chuẩn chấp nhận, nên mô hình VHDL chạy mơ tảđáp ứng tiêu chuẩn VHDL Các kết mô tả hệ thống trao đổi nhà thiết kế sử dụng công cụ thiết kế

khác tuân theo tiêu chuẩn VHDL Cũng nhóm thiết kế trao đổi mơ tả mức cao hệ thống hệ thống lớn (trong hệ thiết kếđộc lập)

+ Thứ sáu khả hỗ trợ thiết kế mức lớn khả sử

dụng lại thiết kế: VHDL phát triển ngơn ngữ lập trình bậc cao, có thểđược sử dụng để thiết kế hệ thống lớn với tham gia nhóm nhiều người Bên ngơn ngữ

VHDL có nhiều tính hỗ trợ việc quản lý, thử nghiệm chia sẻ

thiết kế Và cho phép dùng lại phần có sẵn 9.3 CẤU TRÚC NGƠN NGỮ CỦA VHDL

VHDL ngôn ngữ cho phép mô tả thiết bị phần cứng số

trừu tượng, khơng dựa vào cơng nghệ thiết bị phần cứng số hay phương pháp sử dụng để thiết kế thiết bị số cụ thể Những khái niệm, mơ hình trừu tượng thiết bị phần cứng sốđược

đưa tảng ngôn ngữ Do dùng VHDL cho phép mơ tả hầu hết hệ thống phần cứng số Các mô hình trừu tượng gồm:

Mơ hình hành vi (a Model of Behavior) Mơ hình thời gian (a Model of Time) Mơ hình cấu trúc (a Model of Structure)

Để thực mô tả cho hệ thống số cần thực theo bước sau:

- Phân tích yêu cầu hệ thống số cần phải thiết kế cần phải mô tả

(128)

- Xác định mơ hình mơ tả phù hợp cho khối cho

hệ thống

- Sử dụng ngôn ngữ VHDL để mơ tả hệ thống số theo mơ hình xác định

Như việc nắm cấu trúc, cú pháp, mơ hình mơ tả ngơn ngữ quan trọng, định chủ yếu đến thành công việc mô tả hệ thống số cần thiết kế

VHDL có nhiều điểm giống ngơn ngữ lập trình bậc cao, có cấu trúc, có cú pháp riêng, có cách tổ chức chương trình, có từ khóa, có phương pháp biểu diễn số liệu riêng

Cấu trúc ngôn ngữ VHDL gồm:

Đối tượng: Quy định dạng tín hiệu cố định, tín hiệu, cổng

vào/ra hay tín hiệu đệm…

Các kiểu liệu: Quy định kiểu liệu có thểđược dùng

để gán cho đối tượng

Các phép toán: Quy định phép toán sử dụng cho loại liệu

Các đơn vị thiết kế: Các thành phần cấu trúc lên

chương trình mã mơ tả dùng VHDL

Các cấu trúc lệnh tuần tự: Cấu trúc câu lệnh thực theo tiến trình tuần tự, thường dùng mô tả cấu trúc mạch mạch số

Các cấu trúc lệnh song song: Cấu trúc câu lệnh thực song song, thường dùng mô tả cấu trúc mạch tổ hợp

Chú ý:

- Trong đoạn mã mô tả VHDL chương từ khóa

được in đậm

(129)

- Ghi VHDL dùng dấu “ “ ( Ghi chú) 9.3.1 Đối tượng VHDL

Trong ngôn ngữ VHDL gồm có đối tượng là: tín hiệu - signal, biến - variable, - constant, tham số chung – generic Mỗi đối tượng khai báo dựa vào từ khóa tương ứng chúng có mục

đích sử dụng khác 9.3.1.1 Tín hiu – Signal

Là đối tượng để biểu diễn đường kết nối cổng vào/ra thực thể (mạch số), cổng vào/ra khối thành phần phần cứng bên mạch số… Chúng phương tiện truyền liệu

động thành phần mạch số

Tín hiệu có tính tồn cục cao, chúng khai báo package (tín hiệu tồn cục, sử dụng số thực thể), khai báo thực thể - Entity (tín hiệu nội dùng thực thể, có thểđược tham chiếu kiến trúc thực thểđó), khai báo kiến trúc - Architecture (tín hiệu nội dùng kiến trúc, sử dụng cấu trúc lệnh kiến trúc) Các tín hiệu sử dụng không khai báo tiến trình - process, thủ tục - proceduce, hàm -

function, tiến trình thủ tục, hàm thành phần sở mơ hình chúng coi hộp đen

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

Signal tên_tín_hiệu {,tên_tín_hiệu}:kiểu_dữ_liệu [:=giá_trị_khởi_tạo];

Ví dụ: Signal a,b,c: Bit:=’1’; Giá trị khởi tạo ‘1’;

(130)

9.3.1.2 Biến - Variable

Là đối tượng cục sử dụng để chứa kết trung gian Biến khai báo sử dụng process procedure function

Cú pháp khai báo biến tương tự khai báo tín hiệu: variable tên_biến {,tên_biến}: kiểu_dữ_liệu

[:=giá_trị_khởi_tạo];

Ví dụ: variable x: Bit:=’1’;

variable Q: std_logic_vector(3 downto 0);

Nếu không khởi tạo giá trị ban đầu biến nhận giá trị ban

đầu giá trị thấp giá trị thuộc miền xác định kiểu liệu

Đối tượng tín hiệu - Signal chứa liệu trung gian chúng lại khơng sử dụng lý sau:

- Việc sử dụng biến hiệu giá trị biến gán process,trong tín hiệu chỉđược lập kế hoạch

để thực chỉđược cập nhật toàn sau kết thúc process - Trong q trình chạy mơ hay tổng hợp, biến chiếm

nhớ tín hiệu cần nhiều thơng tin để lập kế hoạch thực nhưđể chứa thuộc tính tín hiệu

- Sử dụng tín hiệu phải u cầu có lệnh wait để thực

đồng phép gán tín hiệu với phép lặp thực theo cách sử

dụng quen thuộc

ơ9.3.1.3 Hng - constant

Đối tượng gán cho giá trị cụ thể kiểu

(131)

thể khai báo package, entity, architecture, proceduce, function, process

Cú pháp khai báo hằng:

constant tên_hằng {,tên_hằng}:

kiểu_dữ_liệu:=giá_trị_khởi_tạo;

Ví dụ: constant GND: std_logic:=’0’;

constant PI: real:=3.1414;

constant datamemory: memory:= (('0','0','0','0'),

'0','0','0','1'), '0','0','1','1'));

9.3.1.4 Tham s chung - Generic

Dùng để khai báo tham số cho mơ hình mạch số khái báo phần Entity(Đề cập chi tiết phần 4.3.3)

Cú pháp khai báo tham số chung:

Generic(Tên_tham_số{,Tên_tham_số}: kiểu_dữ_liệu:=giá_trị_khởi_tạo);

Ví dụ:

entity Logic_AND is

generic(delay: Time:=1ns); port(A, B: in std_logic; X: out std_logic);

end Logic_AND;

Tóm li: Các đối tượng VHDL có mục đích sử dụng, phạm vi sử dụng khác nhau, chúng có cú pháp khai báo chung sau:

Đối_tượng tên_đối_tượng: kiểu_dữ_liệu

{:=giá_trị_khởi_tạo}

(132)

hợp với việc mô tả, thiết kế, mô hệ thống số khác thực tế

9.3.2 Kiểu liệu VHDL

Trong VHDL có dạng liệu:

Vơ hướng: gồm liệu có giá trị đơn bit, boolean, integer, real, physical, character, std_logic std_ulogic, enumerated (kiểu liệt kê)

Kiu ghép: các liệu dạng nhóm thành phần

mảng, bảng ghi (record) Bit_logic_vector, std_logic_vector String

đều dạng liệu ghép định nghĩa sẵn

Mng hai chiu (2-D Arrays): liệu có dạng mảng chiều,

được tạo nên từ mảng mảng chiều (hay ghi) Kiu d liu (Subtypes): tập liệu liệu có sẵn, người dùng tựđịnh nghĩa dựa dạng có sẵn

Các kiểu liệu định nghĩa gói liệu chuẩn thư viện chuẩn Standard Library VHDL là: bit, boolean, integer, real, physical, character, std_logic and std_ulogic, Bit_logic_vector, std_logic_vector String số kiểu liệu Do kiểu liệu định nghĩa thư viện chuẩn VHD nên sử dụng kiểu liệu cần khai báo thư viện tương ứng để sử dụng chúng phép toán tương ứng với chúng

Cú pháp chung định nghĩa kiểu liệu VHDL sau:

(133)

9.3.2.1 Kiu vô hướng

- Bit: Kiểu liệt kê với giá trị ‘0’ ‘1’, đặc trưng cho mức logic thấp cao Kiểu Bit định nghĩa sau:

Type Bit is (‘0’, ‘1’);

- Boolean: Kiểu liệt kê với giá trị false true Kiểu Boolean

được định nghĩa sau: Type Boolean is (false, true);

- Integer: Kiểu số nguyên với giá trị dương âm, độ lớn mặc định 32 bit với giới hạn giá trị: từ -2147483647 đến +2147483647 Khi sử dụng giới hạn miền xác định theo giới hạn giảm dần dùng từ khóa downto tăng dần dùng từ khóa to:

signal A: integer range to 7; A số nguyên bit

variable B: integer range 15 downto 0; B số nguyên bit signal C: integer range 15 downto -15; C số nguyên bit

Các cách biểu diễn số nguyên dạng thập phân: + digit[underline]digit,

Ví dụ: 0, 1, 123_456_789, -123_5678… + digit(E)digit,

Ví dụ:: 987E6 (=987.106)…

Các cách biểu diễn dạng số xác định: + base#based_integer#[exponent],

Ví dụ: 2#1100_0100#, 16#C4#, 4#301#E1, (=196)

- Real: Kiểu số thực có giới hạn từ -1.0E+38 đến 1.0E+38, khác với kiểu integer kiểu Real sử dụng thường định nghĩa thành kiểu liệu riêng có giới hạn miền xác định, ví dụ:

signal a: Real:=-123E-4;

type CAPACITY is range -25.0 to 25.0;

signal Sig_1: CAPACITY:= 3.0;

(134)

constant P: PROBABILITY:= 0.5; Các cách biểu diễn số thực:

+ Biểu diễn dạng thập phân: integer[.integer][exponent]

Ví dụ: 0.0, 0.5, 1.1234_5678, 12.4E-9… + Biểu diễn dạng số xác định:

base#based_integer[.based_integer ]#[exponent] Ví dụ: 2#1.111_1111_111#E+11 (=1,1023.103),

16#F.FF#E2 (=4095.0)

- Character: Kiểu ký tự - kiểu liệu liệt kê với miền xác định tập hợp ký tự ASCII Biểu diễn giá trị Character: ‘A’, ‘a’, ‘*’, ‘ ‘, NUL, ESC…

Kiu Vt lý - Physical:được sử dụng để biểu diễn đại lượng vật lý khoảng cách, điện trở, dòng điện, thời gian… Kiểu vật lý cung cấp đơn vị đơn vị định nghĩa theo đơn vị bản, đơn vị nhỏ biểu diễn đơn vị Trong thư viện chuẩn VHDL kiểu Time (kiểu liệu thời gian) kiểu vật lý định nghĩa

type Time is range <xác_định giới hạn> units

fs; Đơn vị ps = 1000 fs;

ns = 1000 ps; us = 1000 ns; ms = 1000 us; sec = 1000 ms; = 60 sec; hr = 60 min;

(135)

Ví dụ sử dụng:

constant Tpd: time:= 3ns;

Z <= A after Tpd;

- Std_logic Std_ulogic: kiểu liệu logic nhiều mức

định nghĩa gói std_logic_1164, so với kiểu Bit chúng

mơ tả xác chi tiết cho phần cứng số, chúng xác

định cường độ khác tín hiệu số Đây kiểu

liệu quan trọng thường sử dụng để mô tả cho tín hiệu hệ thống số cho mục đích thiết kế, tổng hợp, thực hệ

thống mạch cứng

type std_ulogic is

(U’, Uninitialize

‘X’, Forcing Unknown ‘0’, Forcing Zero ‘1’, Forcing One ‘Z’, High Impedance ‘W’, Weak Unknown ‘L’, Weak Zero ‘H’, Weak One

‘-‘ Don’t Care

) ;

type std_logic is

(U’, Uninitialize

‘X’, Forcing Unknown ‘0’, Forcing Zero ‘1’, Forcing One ‘Z’, High Impedance ‘W’, Weak Unknown ‘L’, Weak Zero ‘H’, Weak One

‘-‘ Don’t Care

) ;

Ý nghĩa mức logic sau: ‘U’, Uninitialize: Mức khởi tạo

‘X’, Forcing Unknown: Mức không xác định chiếm ưu ‘0’, Forcing Zero: Mức logic thấp chiếm ưu ‘1’, Forcing One: Mức logic cao chiếm ưu ‘Z’, High Impedance: Mức trở kháng cao

(136)

‘L’, Weak Zero : Mức logic thấp yếu ‘H’, Weak One : Mức logic cao yếu

‘-‘ Don’t Care : Không quan tâm đến mức logic Các mức logic chiếm ưu có cường độ lớn mức logic yếu, ví dụ đầu cổng logic có trạng thái cao nối với tín hiệu GND, trường hợp đầu mức logic cao yếu ‘H’ cịn tín hiệu GND có mức logic thấp chiếm

ưu ‘0’, mức trạng thái đầu bị kéo xuống mức logic chiếm ưu ‘0’, điều làm hỏng cổng logic

Hai kiểu liệu std_logic std_ulogic tương tự nhau, chúng khác chỗ kiểu std_ulogic khơng có hàm phân giải (unresolved), cịn kiểu std_logic có hàm phân giải – hàm định giá trị tín hiệu, có lỗi tín hiệu kiểu std_ulogic nối chung vào điểm Thư viện cung cấp hàm phát lỗi tín hiệu kiểu std_ulogic

Nếu khơng có ràng buộc đặc biệt thiết kế hệ thống số nên dùng kiểu std_logic Vì thực hệ thống số hay thiết kế

theo kiểu sử dụng bus tín hiệu chung, nên có nhiều tín hiệu khác khối khác nối chung vào bus

Ví dụ cách mơ tả sau cho ta thấy khác việc sử

(137)

(Ký hiệu “<=” dùng lệnh gán tín hiệu (sẽđược trình bày chi tiết phần sau) lệnh gán tín hiệu thực với liệu kiểu, độ lớn, giá trị tín hiệu bên phải sẽđược gán cho tín hiệu bên trái)

So sánh bảng chân lý sau để hiểu hàm phân giải:

Bảng 9.1: Bảng chân lý hàm AND phân giải ứng với Std_logic

U X Z W L H - U X Z W L H -

U U U U U U U U U U U U U U U U U

X U X X X X X X U X X X X X X X X

0 0 0 0 O 0 0 U X X 0 0 X

1 U X X X 1 U X X 1 1 X

Z U X X X X X Z U X Z W L H X

W U X X X X X W U X W W W W X

L 0 0 0 0 L U X L W L W X

H U X X X H U X H W W H X

- U X X X X X - U X X X X X X X X - Kiu d liu lit kê t định nghĩa: Kiểu liệu liệt kê, người sử dụng tự định nghĩa, cho phép mô tả rõ ràng linh hoạt cho mơ hình phần cứng số với mức độ trừu tượng cao Kiểu

liệu dùng nhiều mơ tả đồ hình trạng thái (máy trạng thái), hệ

thống phức tạp…

signal A,B,C,Res_Out: std_logic ;

signal Out_1: std_ulogic ; Out_1 <= A ;

Out_1 <= B ; Out_1 <= C ;

C 4

B A

Res_Out <= A; Res_Out <= B; Res_Out <= C;

Res_Out C

B A

ut_1

X

Có lỗi!!!

(138)

Ví dụ:

type My_State is ( RST, LOAD, FETCH, STOR, SHIFT);

signal STATE, NEXT_STATE: My_State;

Kiểu liệu My_State gồm giá trị RST, LOAD, FETCH, STOR, SHIFT Các chương trình phần mềm thiết kế thường mặc định mã hóa giá trị số nhị phân bit Tuy nhiên chương trình phần mềm thiết kế thường cho phép gán giá trị bit nhị phân tùy ý cho giá trị kiểu liệu liệt kê tựđịnh nghĩa

9.3.2.2 Kiu d liu ghép

Tương tự ngôn ngữ lập trình, VHDL có kiểu

liệu ghép nhóm phần tử liệu theo dạng mảng (array) bảng ghi (record)

+ Mảng – Array:

Mảng nhóm nhiều phần tử có kiểu liệu với thành đối tượng Mỗi phần tử mảng có thểđược truy cập nhiều số mảng Cú pháp định nghĩa kiểu

liệu mảng sau:

Type tên_mảng is array (khoảng _của _chỉ số) of

kiểu_của_phần_tử;

Ví dụ số cách khai báo sử dụng liệu mảng:

type WORD is array (3 downto 0) of std_logic ;

signal B_bus: WORD ;

type DATA is array (3 downto 0) of integer range to 9;

signal C_bus: DATA ;

Các kiểu liệu mảng định nghĩa thư viện chuẩn VHDL (các kiểu liệu vector) là:

(139)

Std_ulogic_vector (mảng liệu kiểu std_ulogic) String (mảng liệu kiểu Chacracter)

Ngồi có kiểu Signed(Kiểu logic có dấu)và Unsigned (Kiểu logic khơng dấu) định nghĩa thư viện std_logic_arith Chúng tương tự kiểu std_logic_vector Với Signed bit bit dấu số âm biểu diễn dạng mã bù Ví dụ “1101“ kiểu Unsigned có giá trị thập phân 13, cịn kiểu Signed có giá trị thập phân -3

Một số ví dụ sử dụng kiểu liệu vector sau:

signal My_BusA, My_BusB: bit_vector (3 downto 0);

signal My_BusC: bit_vector (0 to 3);

signal Data_Word: std_logic_vector (11 downto 0);

signal Data1: signed (0 to 7); signal Data2: unsigned (8 downto 1);

variable Warning2: string(1 to 30):= “ Unstable, Aborting Now” ;

constant Warning3: string(1 to 20):= “ Entering FSM State2”;

Một số phép toán thao tác với phần tử mảng:

- Phép gán cho mng: mảng phải kiểu, độ lớn, phép gán thực gán theo phần tử theo thứ tự từ trái sang phải:

Data_Word <= ”101001101111”; Data_Word <= X”A6F”;

3

My_BusA My_BusB My_BusB <= My_BusA ;

3

3

My_BusA My_BusB

My_BusC <= My_BusA ;

(140)

Data_Word <= O”5157”;

Data_Word <= B”1010_0110_1111”;

Cách biểu diễn số liệu bit_vector std_logic_vector: B|O|X ”giá_trị” (dùng dấu nháy kép) Trong B: Binary -Kiểu nhị phân, O: Octal - kiểu bát phân, X: hexadecimal

X”1AF”=B”0001_1010_1111”= B”000_110_101_111”=O”0657”

- Phép gp ( ): cho phép nhóm liệu vơ hướng liệu mảng để thuận tiện cho phép gán cho mảng:

signal H_BYTE, L_BYTE: std_logic_vector (0 to 7);

signal Q_Out: std_logic_vector (31 downto 0);

signal A, B, C, D: std_logic;

signal WORD: std_logic_vector (3 downto 0);

(A,B,C,D)<=WORD; A<=WORD[3], B<=WORD[2],

C<=WORD[1], D<=WORD[0]

Chú ý: Phép gộp vế bên trái dùng với kiểu liệu vô hướng

WORD <= ( => ‘1’, => D, others => ‘0’ ); WORD=”D100”

Q_Out <= (others => ‘0’);

WORD <= ( A, B, C, D );

H_Byte <= (7|6|0=>’1’, to => ‘0’ ); Bit 7, 6, H_Byte

gán ‘1’, từ bit đến bit gán ‘0’

L_Byte <= (3=>’1’, to => ‘0’, to => ‘1’);

Chú ý: “others” sử dụng gán mặc định, có ý nghĩa tất phần tử lại gán giá trị đó)

(141)

Bảng ghi nhóm nhiều phần tử có kiểu liệu khác thành

đối tượng

Mỗi phần tử ghi truy nhập tới theo tên trường Các phần tử ghi nhận kiểu ngơn ngữ

VHDL kể mảng bảng ghi

Ví dụđịnh nghĩa kiểu liệu bảng ghi sau:

type OPCODE is record PARITY: bit;

ADDRESS: std_logic_vector ( to ); DATA_BYTE: std_logic_vector ( downto ); NUM_VALUE: integer range to 6;

STOP_BITS: bit_vector (1 downto 0);

end record ;

signal TX_PACKET, RX_PACKET: OPCODE;

Cách truy nhập gán liệu cho trường bảng ghi: Các phần tử bảng ghi truy nhập theo tên bảng ghi tên trường, thành phần ngăn cách dấu ‘.’ Xét số ví dụ sau để

hiểu cách truy nhập gán liệu cho bảng ghi:

TX_PACKET <= (‘1’,”0011”,”11101010”,5,”10”); TX_PACKET.ADDRESS <= (“0011”);

TX_PACKET <= RX_PACKET;

TX_PACKET.ADDRESS <= RX_PACKET.ADDRESS;

PARITY ADDRESS DATA_BYTE NUM_VALUE STOP_BIT

(142)

9.3.2.3 Kiu d liu mng chiu (2-D Array)

Mảng chiều kiểu liệu mảng phần tử mảng chiều hay bảng ghi Một số ví dụđịnh nghĩa khai báo kiểu liệu mảng chiều sau:

type Mem_Array is array (0 to 3) of std_logic_vector (7 downto 0);

type Data_Array is array (0 to 2) of OPCODE;

signal My_Mem:Mem_Array;

signal My_Data:Data_Array;

Ví dụ ứng dụng dùng mảng chiều khởi tạo vùng nhớ ROM

constant My_ROM:REM_Array:= (0 =>(others=>‘1’), gán cho phần tử thứ

=> “10100010”, gán cho phần tử thứ => “00001111”, gán cho phần tử thứ => “11110000”); gán cho phần tử thứ

9.3.2.4 Kiu d liu

Là tập hợp kiểu liệu định nghĩa khác Phép khai báo kiểu liệu nằm vị trí cho phép khai báo kiểu liệu Cú pháp khai báo chung:

Subtype Tên_kiểu_dữ_liệu_con is

xác_định_kiểu_dữ_liệu_con;

Ví dụ:subtype My_Int is integer range to 255;

subtype My_Small_Int is My_Int range to 30;

subtype word is bit_vector(31 downto 0);

9.3.2.5 Tng kết

Trong VHDL có lệnh dùng cho mục đích mơ mà khơng thể tổng hợp mạch cứng

(143)

Bảng 9.2: Kiểu liệu dùng để viết mã VHDL có thể tích hợp mạch

Kiểu liệu Giá trị tổng hợp

BIT, BIT_VECTOR ‘0’, ‘1’ STD_LOGIC,

STD_LOGIC_VECTOR

‘X’, ‘0’, ‘1’, ‘Z’ (resolved) STD_ULOGIC,

STD_ULOGIC_VECTOR

‘X’, ‘0’, ‘1’, ‘Z’ (unresolved) BOOLEAN True, False

NATURAL Từ tới +2.147.483.647 INTEGER Từ -2.147.483.647 đến

+2.147.483.647

SIGNED Từ -2.147.483.647 đến +2.147.483.647

UNSIGNED Từ to +2.147.483.647 Kiểu số nguyên tự định

nghĩa

Tập INTEGER

Kiểu liệu liệt kê Các giá trị liệt kê người dùng

SUBTYPE Tập liệu định nghĩa ARRAY Mảng kiểu liệu

RECORD Bảng ghi chứa kiểu liệu

9.3.3 Các phép toán VHDL

9.3.3.1 Toán t logic

(144)

Ví dụ: Z <= A and B; Y <= G or ( F and H ) ;

Chú ý:

Toán tử logic dùng cho kiểu liệu mảng có nguyên tắc thực sau:

+ Chỉ thực với mảng kiểu, độ lớn

+ Phép toán logic thực với phần tử mảng theo thứ tự từ trái sang phải

+ Tốn tửnot có độưu tiên cao nhất:

Ví dụ: Z <= not A and B = (not A) and B

9.3.3.2 Toán t quan h

Toán tử quan hệđược sử dụng cho hầu hết dạng liệu, tất toán tử quan hệđều cho giá trị trả dạng boolean

Tốn tử quan hệ gồm có: =, /=, <, <=, >, >=

Ví dụ: signal FLAG_BIT: boolean ; F H

G

Y F

H

G

Y Z

B A

Z B

(145)

signal A, B: integer ; FLAG_BIT <=(A > B);

- Nguyên tắc thực phép quan hệ với liệu mảng: + Các mảng phải kiểu, độ dài khác

+ Mảng có độ dài khác phép quan hệ thực ưu tiên phần tử từ trái sang phải so sánh theo giá trị ASCII

signal A_vec: bit_vector ( downto ):= “11000110”;

signal B_vec: bit_vector ( downto ):= “111001”;

if ( A_vec > B_vec ) then

State <= Normal; else

State <= Code_Red;

end if;

9.3.3.3 Toán t s hc

Toán tử số học sử dụng cho kiểu liệu Integer, Real, Signed, Unsigned, dng d liu vt lý, Std_logic, Std_logic_vector, Bit, Bit_vector Cần ý tất

tốn tử số học sử dụng cho kiểu liệu mảng

Các toán tử số học là: +, -, *, /, abs (trị tuyệt đối), ** (hàm mũ) 9.3.3.4 Toán t dch

Toán tử dịch toán tử tác động lên toán hạng kiểu Bit_vector để

tạo phép dịch quay liệu Cú pháp toán tử dịch:

Toán_hạng_trái Toán_Tử_dịch Toán hạng phải;

(146)

Các toán tử dịch VHDL là: sll (dịch trái logic), srl (dịch phải logic), sla (dịch trái số học), sra (dịch phải số học), rol (quay trái), ror (quay phải)

Ví dụ:

signal A_vec: bit_vector (7 downto 0):= “11000110”; signal D_vec: bit_vector (7 downto 0);

D_vec <= A_vec

sll 2;

D_vec <= A_vec

sra 2;

D_vec <= A_vec

ror 3;

D_vec <= A_vec

srl 2;

D_vec <= A_vec

sra -2;

D_vec =“00011000” D_vec =“11110001” D_vec =“11011000” D_vec =“00110001” D_vec =“00011000”

Dịch trái bit vị trí bên phải điền giá trị Dịch phải số học bit vị

trí bên trái giữ giá trị ban đầu

Quay phải bit

Dịch phải bit vị trí bên trái điền giá trị Dịch phải số học -2 bit (dịch trái số học bit)

9.3.3.5 Toán t ghép ni

Toán tử ghép nối “&” cho phép ghép nối cách linh hoạt liệu đơn liệu dạng mảng thành mảng lớn

Ví dụ:

signal A_vector, B_vector: std_logic_vector (7 downto 0); signal Z_vector: std_logic_vector (15 downto 0);

Z_vector <= A_vector & B_vector;

9.3.3.6 Toán t tách

Toán tử tách cho phép ta lấy số thành phần mảng, chiều số phép tách phải chiều đánh sốđã định nghĩa cho mảng

(147)

signal Z_vec: std_logic_vector (15 downto 0);

signal B_vec: std_logic_vector (7 downto 0);

B_vec <= Z_vec (12 downto 5);

9.3.3.7 Tốn t thuc tính

Tốn tử thuộc tính cho phép xác định thuộc tính liệu đối tượng biến tín hiệu Cú pháp chung:

Đối_tượng’thuộc_tính

- Các thuộc tính cho kiểu liệu mảng VHDL là:

+ d’left, d’right: Trả lại số phần tử bên trái bên phải liệu mảng d

+ d’high, d’low: Trả lại số phần tử cao thấp kiểu liệu mảng d

+ d’range, d’reverse_range: Xác định khoảng số mảng d

+ d’length: Trả số lượng phần tử mảng d - Các thuộc tính cho kiểu liệu liệt kê

+ d’val(pos): Trả giá trị vị trí xác định pos + d’pos(value): Trả vị trí giá trị xác định value

+ d’leftof(value): Trả giá trị bên trái giá trị xác định value + d’val(row, column): Trả giá trị ví trí có hàng, cột xác định

- Các thuộc tính cho tín hiệu

+ s’event, s’stable: Trả giá trị boolean, đường tín hiệu s có xuất kiện thay đổi hay giá trị đường tín hiệu

(148)

+ s’active: Trả giá trị “true” s=‘1’

+ s’quiet (time): Trả giá trị “true” khơng có kiện xảy tín hiệu s khoảng thời gian xác định time

+ s’last_event: Trả thời gian kể từ có kiện xảy s

+ s’last_active: Trả thời gian kể từ s=‘1’

+ s’last_value: Trả giá trị s trước xảy kiện

Ví dụ sử dụng tốn tử thuộc tính sau:

signal clk: std_logic:=’0’;

PROCESS(clk)

TYPE bit4 IS ARRAY(0 TO 3) of BIT;

TYPE bit_strange IS ARRAY(10 TO 20) OF BIT;

VARIABLE len1, len2: INTEGER; BEGIN

If (clk’event and clk=’1’)then –- kiện có sườn

dương clk

len1:= bit4’LENGTH; returns

len2:= bit_strange’LENGTH; returns 11

End if;

END PROCESS;

- Thuộc tính tựđịnh nghĩa: Người sử dụng tựđịnh nghĩa hàm thuộc tính với cú pháp sau (viết gói liệu package thư viện người sử dụng tạo ra:

ATTRIBUTE Tên_thuộc_tính: Kiểu_thuộc_tính; Khai báo chung

ATTRIBUTE Tên_thuộc_tính OF Tên_đối_tượng: Loại_đối_tượng

(149)

Trong đó:

+ Kiểu_thuộc_tính: Kiểu liệu trả thuộc tính (Boolean, Integer, std_logic_vector…)

+ Loại_đối_tượng: Kiểu đối tượng thuộc tính (Type, Signal, Function…)

Ví dụ:

ATTRIBUTE number_of_inputs: INTEGER; Khai báo chung

ATTRIBUTE number_of_inputs OF nand3: SIGNAL IS 3; xác

định giá trị thuộc tính

inputs <= nand3'number_of_pins; attribute call, returns

9.3.3.8 Biến đổi d liu

VHDL không cho phép thực phép toán trực tiếp (số

học, logic…) số liệu có kiểu liệu khác Vì cần có hàm biến đổi liệu từ kiểu sang kiểu khác theo cách sau:

- Viết đoạn mã VHDL để thực biến đổi liệu

(150)

TYPE long IS INTEGER RANGE -100 TO 100; TYPE short IS INTEGER RANGE -10 TO 10;

Kiểu long short sở kiểu INTEGER

SIGNAL x: short; SIGNAL y: long;

y<= 2*x + 5; lỗi, kết vế trái vế phải khơng

cùng kiểu

y<=long(2*x + 5); OK, Dữ liệu vế phải chuyển

kiểu vế trái

Một số hàm biến đổi liệu cung cấp gói std_logic_arith sau:

+ Conv_integer(p): Biến đổi tham số p có kiểu liệu integer, unsigned, signed, std_logic sang kiểu integer

+ Conv_unsigned(p, b): Biến đổi tham số p có kiểu liệu integer, unsigned, signed, std_logic sang kiểu unsigned kích thước b bit + Conv_signed(p, b): Biến đổi tham số p có kiểu liệu integer, unsigned, signed, std_logic sang kiểu signed kích thước b bit

+ Conv_std_logic_vector(p, b): Biến đổi tham số p có kiểu integer, unsiged, signed std_logic sang kiểu std_logic_vector kích thước b bit

9.3.3.9 Định nghĩa toán t chng

VDHL cho phép định nghĩa toán tử chồng theo toán tử định nghĩa giống khái niệm “overloading” ngơn ngữ lập trình C++

(151)

FUNCTION "+" (a: INTEGER, b: BIT) RETURN INTEGER IS BEGIN

IF (b='1') THEN RETURN a+1;

ELSE RETURN a;

END IF;

END "+";

S d ng toán t “+” nh sau:

SIGNAL inp1, outp: INTEGER RANGE TO 15; SIGNAL inp2: BIT;

( )

outp <= + inp1 + inp2; ( )

-

Trong biểu thức “outp<=3+inp1+inp2;’’, phép “+”

được định nghĩa thư viện chuẩn số Integer, phép cộng thứ toán tử “+” định nghĩa theo kiểu “overloading”

9.3.3.10 Tng kết

Bảng tổng kết phép toán VHDL sau:

Bảng 9.3: Các phép toán VHDL

Phép toán Toán t Ki u d li u

Phép gán <=,:=, => Bất kỳ kiểu liệu

Phép toán logic

NOT, AND, NAND, OR, NOR, XOR, XNOR

BIT, BIT_VECTOR, STD_LOGIC,

(152)

+, -,*,/,** Phép toán

số học

(mod, rem, abs)-

chỉ dùng cho mô

phỏng

INTEGER, SIGNED, UNSIGNED

Phép quan

hệ

=, /=, <, >, <=, >=

Tất kiểu liệu ở

trên

Phép dịch sll, srl, sla,

sra, rol, ror

BIT_VECTOR

Phép gộp &, (,,, ) BIT, BIT_VECTOR,

STD_LOGIC,

STD_LOGIC_VECTOR, STD_ULOGIC, STD_ULOGIC_VECTOR

9.3.4 Các đơn vị thiết kế VHDL

Các đơn vị thiết kế thành phần cấu trúc (giống khung chương trình) để viết mã lệnh mô tả VHDL cho mạch hay hệ thống số Mỗi đơn vị thiết kế có nhiệm vụ riêng biệt khác

VDHL sử dụng đơn vị thiết kế gồm loại: Đơn vị

đơn vị thiết kế thứ cấp:

- Đơn v thiết kế cơ bn:

Library: Cho phép tạo thư viện VHDL

Package: Tạo gói giữ liệu Library, khai báo đối tượng, khai báo thủ tục, hàm

Entity (Thực thể): Cho phép khai báo giao diện khối thiết kế số đó: khai báo cổng vào/ra, tham số khối mạch

- Đơn v thiết kế th cp (phụ thuộc vào đơn vị thiết kế

(153)

Architecture: Mô tả hoạt động bên Entity phần mơ tả hoạt động khối mạch số

Package Body: Mô tả chi tiết cho khai báo Package viết hàm, thủ tục

Configuration:Đơn vị thiết kế cấu hình cho phép gắn phiên thực thể vào kiến trúc khác Cấu hình sử dụng để thay cách nhanh chóng phần tử thực thể biểu diễn cấu trúc thiết kế

Quan hệ đơn vị thiết kế có quan hệ hình sau:

Hình 9.1 Các thành phần mã VHDL 9.3.4.1 Entity (Thc th)

(154)

Trong nhiều phần mềm thiết kế cho phép việc khai báo Entity hoàn toàn tựđộng Người sử dụng cần sử dụng bảng số

liệu vào nhập vào tên cổng vào/ra, tham số cho phần tử hay hệ

thống gán kiểu liệu tương ứng cho chúng Phần mềm tựđộng tạo mã mô tả cho phần Entity

Cú pháp khai báo chung Entity sau:

entity Tên_thực_thể is

generic( Khai báo danh sách tham số chung

Tên_tham_số: [Kiểu_dữ_liệu] [:=giá_trị_khởi_tạo];

);

port( Khai báo danh sách đối tượng port vào/ra

Tên_cổng: [mode] [Kiểu_dữ_liệu] [:=giá_trị_khởi_tạo];

);

end Tên_thực_thể;

Trong khai báo trên:

+ Tham số khai báo phần generic dùng để kiểm soát, thay

đổi cấu trúc, hoạt động thực thể, chúng sẽđược truyền giá trị lấy giá trị mặc định ban đầu thực thểđược khởi tạo Tham số hữu ích thiết kế theo kiểu cấu trúc, sử dụng nhiều thành phần cấu trúc kiểu khai báo Entity có tham số cấu trúc, hoạt động khác

+ “ “ Dấu đánh dấu dịng thích (comment) mã mơ tả

VHDL

(155)

dạng buffer cho phép thao tác đọc gán liệu từ bên chương trình, cho phép đọc liệu từ ngồi chương trình

Ví dụ khai báo thực thể cho mạch số “Circuit” hình vẽ bên:

entity Circuit is

generic(delay:Time:=1ns);

port(A, B: in std_logic;

X: out std_logic;

Y: inout std_logic; Z: buffer std_logic);

end Circuit;

9.3.4.2 Architecture (Kiến trúc)

Cấu trúc cho phép mô tả hoạt động bên thực thể Cú pháp chung Architecture:

Architecture Tên_kiến_trúc of Tên_thực_thể is

Thực khai báo cho kiến trúc

Begin

Viết mô tả hoạt động bên cho thực thể

End Tên_kiến_trúc;

Phần khai báo kiến trúc bao gồm khai báo đối tượng signal, constant, kiu d liu, khai báo phần tử bên hệ thống (component) hay hàm (function) thủ tục (proceduce) sử dụng để mô tả hoạt động hệ thống Tên_kiến_trúc nhãn đặt tuỳ theo người sử dụng

VHDL cho phép tạo nhiều mô tảArchitecture cho thực thể, cho phép thực nhiều cách mô tả hoạt động khác cho thực thể Mỗi cách mô tả hoạt động tối ưu mặt thời gian thiết kế hay độ tin cậy hay tối ưu tài nguyên sử dụng tổng hợp…

Circuit

PLD

A B

X Y Z

(156)

Thơng thường sử dụng cách mơ tả kiến trúc phần tử hay hệ thống số là: mơ tả theo mơ hình hành vi (Behaviour), mơ tả theo mơ hình cấu trúc logic (Structure) mơ hình luồng liệu (RTL) Tuy nhiên để mô tả cho hệ thống, kiến trúc kết hợp sử dụng mơ hình mơ tả để

thực cho thành phần tương ứng hệ thống số Trong phần sau cuôn sách trình bày chi tiết phương pháp mơ tả

Theo VHDL tiêu chuẩn Entity có nhiều Architechture mơ tả hoạt động cho theo cách khác nhau, nhiên đa số phần mềm thiết kế file mã mơ tả

VHDL cho phép viết Architechture, muốn viết nhiều cách mô tả hoạt động khác viết nhiều file khác với tên khác Entity có giao diện hoàn toàn giống

Kiến trúc mơ tả theo mơ hình hoạt động entity Half_Add

is

architecture BEH of

Half_Add is

end BEH ;

architecture RTL of

Half_Add is

end RTL ;

Kiến trúc mơ tả theo mơ hình luồng liệu

Kiến trúc mô tả theo mô hình cấu trúc lơgic Ví dụ cách mô tả hoạt động khác thực thể Half_Add

architecture XLX of

Half_Add is

(157)

Ví dụ mơ tả hoạt động cho mạch “Circuit” sau:

Khai báo giao diện

entity Circuit is

generic(delay: Time:=1ns);

port(A, B: in std_logic;

X: out std_logic;

Y: inout std_logic; Z: buffer std_logic);

end Circuit;

Mô tả hoạt động

architecture Behavioral of

Circuit is

constant GND: std_logic:='0';

signal c: std_logic;

begin

c<= A and B after delay; Y<=Y or Z; Y inout

nên vừa ghi vừa

đọc

X<= c xnor Y;

end Behavioral;

+ Package Package Body

Package (gói liệu) đơn vị thiết kế dùng để chứa khai báo cho đối tượng, khai báo thủ tục procedure, hàm function, kiểu liệu, component dùng chung cho thiết kế, cấu trúc, dự án khác nhau…

Package Body đơn vị thiết kế phụ thuộc dùng để chứa mô tả chi tiết cho khai báo đơn vị thiết kếPackage đó, mơ tả chi tiết nội dung hàm, thủ tục Package Body thường viết sau Package Cú pháp chung đơn vị

thiết kế PackagePackage Body:

Circuit

PLD

A B

X Y Z

(158)

+ Library (thư viện)

+ Library (Thư viện)

Trong VHDL có thư viện thiết kế chuẩn, ngồi người thiết kế tạo thư viện thiết kế riêng Trong thiết kế VHDL nhiều đoạn chương trình có thểđược gọi từ thư viện khác

Phân tích VHDL q trình kiểm tra đơn vị thiết kế

VHDL cú pháp ngữ nghĩa, đơn vị thiết kế VHDL

được lưu vào thư viện để sử dụng sau Thư viện thiết kế chứa phần tử thư viện sau:

Package: Chứa mô tả khai báo dùng chung Entity: Là mô tả giao diện thiết kếđược dùng chung Architecture: Những mô tả hoạt động thiết kếđược dùng chung Configuration: Là phiên thực thểđược dùng chung

package My_Pack is constant

function bv_to_integer (BV: bit_v

return integer

component

subtype

end package My_pack;

package body My_Pack is

function bv_to_integer (BV: bit_v

return integer is variable

begin

for index in BV'range loop

end function;

end My_Pack ;

Cách sử dụng

package file

mô tả VHDL

library IEEE;

Thư việc chuẩn

use

IEEE.std_logic_1164 .all;

Trong phần mềm

thiết kế ISE gói dữ

liệu người sử

dụng tạo thường

được tổ chức mặc

định thư viện

(159)

Các đơn vị thư viện cấu trúc VHDL có thểđược phân tích riêng rẽ theo trình tự định

Trong VHDL có thư viện thiết kếđặc biệt có tên “work” Khi người thiết kế biên dịch chương trình viết VHDL khơng rõ thư viện đích, chương trình biên dịch chứa vào thư viện “work”

Ví dụ cách gọi sử dụng thư viện sau:

library My_Lib ;

use My_Lib.Fast_Counters.all ;

entity Mod1 is

port ( );

+ Configuration (Cấu hình)

Một thực thể có vài kiến trúc mơ tả hoạt động cho Trong q trình thiết kế phải thử nghiệm vài biến thể thiết kế cách sử dụng kiến trúc khác Cấu hình thành phần đơn vị thiết kế Cấu hình cho phép gắn phiên thực thể vào kiến trúc khác Cấu hình sử dụng để thay cách nhanh chóng phần tử thực thể biểu diễn cấu trúc thiết kế

Cú pháp mơ tả cấu sau:

Configuration tên_cấu_hình of tên_thực_thể is

Phần khai báo cấu hình (cho phép sử dụng

phần tử package library

for đặc_tả_của_khối

{mệnh_đề_use}

{các_phần_tử_của_cấu_hình}

end for;

(160)

library ttl, work;

configuration v4_27_87 of processor is use work.all;

for structure_view

for a1:alu

use configuration ttl.sn74ls181;

end for;

for m1,m2,m3: mux

use entity multiplex4 (behavior);

end for;

for all: latch use defaults

end for;

end for;

end configuration v4_27_87;

9.3.5 Cấu trúc chung chương trình mơ tả VHDL

Mơ hình cấu trúc mô tả phần cứng số phạm vi sử dụng đối tượng VHDL tổng kết đơn giản hình 9.2:

Hình 9.2: Cấu trúc mô tả phần cứng đối tượng VHDL

entity

architecture

Signals

process

Variables

Ports

Entity

Architecture

Input Ports

Signals

Process

Variables

(161)

Sau cấu trúc chung đơn giản chương trình mơ tả

VHDL:

Ví dụ cấu trúc file mơ tả cho hệ thống phần cứng

số dùng VHDL

Khai báo thư viện,(mặc định cần khai báo thư viện IEEE

(thư viện

chuẩn xây dựng)

library IEEE;

Khai báo gói liệu (package) thư viện cần sử

dụng:

use IEEE.STD_LOGIC_1164.ALL;

Khai báo thực thể

Entity Tên_thực_thể is

Khai báo tham số generic cần:

Generic( khai báo danh sách tham số);

Port( Khai báo danh sách cổng vào/ra);

End Tên_thực_thể;

Bắt đầu viết

Architecture Tên_kiến_trúc of Tên_thực_thể is

{Khai báo:kiểu liệu, component,các đối tượng

constant, signal}

Begin

{ Viết mô tả dùng cấu trúc lệnh song song }

Process( danh sách tín hiệu kích thích cần) {Khai báo:kiểu liệu, đối tượng biến

constant, variable }

Begin

{ Viết mô tả dùng cấu trúc lệnh tuần tự }

End process;

(162)

process khác }

End Tên_kiến_trúc;

Ví dụ:

Khai báo thư viện chuẩn

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

-

Khai báo giao diện

entity Circuit is

generic( delay: Time:=1ns);

port(A, B: in std_logic ;

X: out std_logic;

Y: inout std_logic; Z: buffer std_logic) ;

end Circuit;

-

Mô tả hoạt động

architecture Behavioral of Circuit is constant GND: std_logic:='0';

signal c: std_logic;

begin

c<= A and B after delay;

Y<=(Y or Z) or GND; Y inout nên vừa ghi vừa

đọc

X<= c xnor Y;

(163)

9.3.6 Môi trường kiểm tra “testbench”

Một nhiệm vụ quan trọng kiểm tra mô tả

thiết kế Kiểm tra mơ hình VHDL thực cách quan sát hoạt động mơ giá trị thu đem so sánh với yêu cầu thiết kế

Môi trường kiểm tra hiểu mạch kiểm tra ảo Môi trường kiểm tra sinh tác động lên thiết kế cho phép quan sát so sánh kết hoạt động mô tả thiết kế Thơng thường mơ tả cung cấp chương trình thử Nhưng ta tự xây dựng chương trình thử (testbench) Mạch thử thực chất kết hợp tổng hợp nhiều thành phần Nó gồm ba thành phần Mơ hình VHDL cần kiểm tra, nguồn liệu quan sát Hoạt động mơ hình VHDL kích thích nguồn liệu kiểm tra tính đắn thơng qua quan sát Hình 9.3 sơ đồ

tổng quát chương trình thử (Testbench)

Testbench mơ tả Entity khơng có đầu vào đầu ra, có tín hiệu bên ghép tới khối DUT cần kiểm tra theo kiểu cấu trúc Người thiết kế mơ tả tín hiệu bên tạo tín hiệu kích thích cho đầu vào DUT đọc kết

để quan sát Để mơ tả tín hiệu vào kích thích thường dùng cách mơ tả theo hành vi – behavioral

Hình 9.3: Sơđồ tổng quát chương trình thử Testbench DUT

Tạo nguồn tín hiệu vào kích thích

Quan sát tín hiệu

Generics – Tạo tham số

Testbench Entity

(164)

Ví dụ mơ tả cho mạch “Logic_AND” sau:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

Khai báo giao diện

entity Logic_AND is

port(A, B: in std_logic ;

Y: out std_logic); end Logic_AND;

Mô tả hoạt động

architecture Beh of Logic_AND is begin

Y<= A and B; End Beh;

Viết Testbench cho thực thể “Logic_AND" mơ tảở trên:

Thực thểTest_bench khơng có cổng vào/ra mà khai báo tín hiệu nội A, B, Y để nối tới khối DUT cần kiểm tra (Logic_AND) Trong phần kiến trúc mô tả hoạt động Test_bench, coi khối Logic_AND component để tạo thành khối Test_bench Tồn mã mơ tả cho Test_bench sau:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

(165)

ENTITY Test_bench IS

END Test_bench;

Mô tả kiến trúc Test_bench

ARCHITECTURE behavior OF Test_bench IS COMPONENT Logic_AND

PORT(

A: IN std_logic;

B: IN std_logic;

Y: OUT std_logic

);

END COMPONENT;

SIGNAL A: std_logic:='0';

SIGNAL B: std_logic:='0';

SIGNAL Y: std_logic;

BEGIN

Nối chân cổng vào/ra DUT với tín hiệu

Test_bench

Dut: Logic_AND PORT MAP(

a => a, b => b, y => y );

tb: PROCESS

BEGIN

Viết mơ tả tạo kích thích

A<= '1' after 10ns;

B<= '1' after 20ns;

END PROCESS;

*** End Test Bench - User Defined Section ***

(166)

Trong phần mềm thiết kế sau hồn thành mơ tả cho Test_bench, người thiết kế chạy công cụ mơ phỏng, tín hiệu

đầu DUT mặc tính đọc cho phép người thiết kế

quan sát dễ dàng dạng giản đồ thời gian hay file số liệu… Người thiết kế dễ dàng viết mơ tả kích thích để tạo yêu cầu kiểm tra tùy ý cho thiết kế Nhiều chức mô phỏng, kiểm tra hỗ trợ mạnh phần mềm thiết kế

9.3.7 Các cấu trúc lệnh song song

Nhưđã trình bày phần cấu trúc chung chương trình mơ tả VHDL, mơ tả kiến trúc (Architecture) có chứa nhiều cấu trúc lệnh song song Mỗi cấu trúc lệnh song song tương ứng với thành phần phần cứng thực tổng hợp mạch, cấu trúc song song viết vị trí đoạn mô tả

Architecture mà chức hoạt động thực thể không thay đổi Các cấu trúc lệnh song song có VHDL gồm:

+ Cấu trúc process

+ Lệnh gán tín hiệu song song + Lệnh gán có điều kiện

+ Lệnh gán tín hiệu có lựa chọn + Khối

+ Phép gọi thủ tục, hàm song song 9.3.7.1 Cu trúc Process

(167)

đương với khối mạch Chú ý thời điểm xác định có câu lệnh thực cấu trúc Process Cấu trúc tổng quát Process sau:

[Nhãn] Process [(Danh sách tín hiệu kích thích)]

[Khai báo:kiểu liệu, đối tượng biến constant, variable]

Begin

{Viết mô tả dùng cấu trúc lệnh tuần tự}

End process;

Trong phần đặt dấu [ ] có khơng - Nhãn_lệnh: Tuỳ thuộc người thiết kếđặt tên

- Danh sách tín hiệu kích thích: Danh sách yếu tố kích thích hoạt động

Nếu Process chứa (danh sách tín hiệu kích thích) lúc Process sẽđược thực có thay đổi tín hiệu danh sách tín hiệu kích thích Điều tương đương với Process khơng chứa danh sách tín hiệu kích thích lại chứa lệnh waitở vị trí câu lệnh cuối Process:

Wait on <danh sách tín hiệu kích thích>

Khi tổng hợp mạch Process sẽ tương ứng với khối mạch chức Cịn thực mơ phỏng, việc thực Process bao gồm việc thực lặp lại cấu trúc lệnh

chứa bên thân Process Giống vòng lặp vô hạn bước lặp thực có thay đổi tín hiệu danh sách tín hiệu kích thích

(168)

entity Logic_AND is

Port ( A,B: in std_logic; C: out std_logic);

end Logic_AND;

architecture Behavioral of

Logic_AND is

begin

Process(A,B)

begin

C<= A and B;

end Process;

end Behavioral;

Khi dùng Process để mơ tả khối mạch tổ hợp tất tín hiệu vào mạch phải có “danh sách tín hiệu kích thích”

Cịn sử dụng Process để mơ tả khối mạch có phần tử

(phần tử nhớ) muốn thiết kế mạch hoạt động theo tín hiệu clock khơng đồng với tín hiệu vào (ví dụ hoạt động theo clk, khơng đồng với tín hiệu Reset) tín hiệu vào phải

được đưa vào “danh sách tín hiệu kích thích”

Một Process liên kết với phần lại thiết kế thông qua thao tác đọc giá trị từ tín hiệu vào hay cổng vào ghi giá trị vào tín hiệu hay cổng khai báo Process Chú ý thiết kế tín hiệu có thểđược đưa vào (được đọc giá trị Process) nhiều Process nhưng nên ghi Process

Sự hoạt động đồng thời Process và mơ hình kết nối chúng mơ tả hình vẽ 9.4, tín hiệu truyền giá trị

(169)

G1 G2

G3

B A

C C<=A and B

Process

Process

If C = ‘1’ then Process C C G1 G2 G3 B A C Process(C, ) begin Process C C

C<=A and B

Process n

process (C, ) begin Process n2 If C = ‘1’

then Process n1 C C process n

process (

Rst Sig1

Sig2

Process n4

Process n3 C<=A and B

process (C, ) begin If C = ‘1’ then

C

C

process n

process (

Rst Sig1

Sig2

Hình 9.4: Mơ hình kết nối Process 9.3.7.2 Các phép gán tín hiu song song

Phép gán tín hiệu song song sử dụng bên Architecture bên Process Dạng đơn giản phép gán tín hiệu song song có cú pháp sau:

(170)

Ví dụ mơ tả mạch AND OR có đầu vào sau:

architecture Behavioral of logic1 is

signal I1, I2, I3, I4, AND_out, OR_out: std_logic;

begin

AND_out<= I1 and I2 and I3 and I4; OR_out<= I1 or I2 or I3 or I4;

end Behavioral;

Đoạn chương trình tương đương với đoạn chương trình VHDL với Process chứa phép gán tín hiệu (lệnh xem phần tiếp theo):

architecture Behavioral of logic1 is

signal I1, I2, I3, I4, AND_out, OR_out: std_logic;

begin

process(I1, I2, I3, I4)

begin

AND_out<= I1 and I2 and I3 and I4;

end process;

process(I1, I2, I3, I4)

begin

OR_out<= I1 or I2 or I3 or I4;

end process;

(171)

9.3.7.3 Phép gán tín hiu có điu kin

Phép gán tín hiệu có điều kiện cấu trúc lệch song song thực phép gán giá trị biểu thức cho tín hiệu đích tùy theo điều kiện đặt Cú pháp chung:

<tín_hiệu_đích> <= <biểu_thức>[after

<biểu_thức_thời_gian>] when

<điều_kiện> else

<biểu_thức>[after <biểu_thức_thời_gian>] when

<điều_kiện> else

<biểu_thức>[after <biểu_thức_thời_gian>];

Cấu trúc phép gán tín hiệu có điều kiện coi cấu trúc song song lệnh tuần tựIfđược thay tương đương với Process chứa lệnh tuần tựif.

(172)

9.3.7.4 Phép gán tín hiu theo la chn

Phép gán tín hiệu theo lựa chọn thực gán cho tín hiệu

đích với biểu thức with. Cấu trúc coi cấu trúc song song lệnh case, thay tương đương với Process chứa lệnh tuần tựcase. Cú pháp chung lệnh with sau:

With <biểu_thức_lựa_chọn> select

<tín_hiệu_đích> <= <biểu_thức> [after <biểu_thức_thời_gian>] when <giá_trị_lựa _chọn>,

<biểu_thức> [after <biểu_thức_thời_gian>] when <giá_trị_lựa _chọn>,

<biểu_thức> [after <biểu_thức_thời_gian>] when others;

Ví dụ mơ tả cấu trúc chọn kênh đầu vào, đầu Z tín hiệu chọn kênh bit Sel sau:

9.3.7.5 Khi (Block)

Block bao gồm tập hợp cấu trúc lệnh song song Một kiến trúc phân tách thành số cấu trúc logic Mỗi khối biểu diễn

architecture

with SEL select

Z<= A when “00”,

B when “10”,

C when “11”,

‘X’ when others ;

end architecture;

architecture

begin

process (A,B,C, SEL)

begin

case SEL is

when “00” => Z <= A ;

when “10” => Z <= B ;

when “11” => Z <= C ;

when others => Z <= X’;

(173)

một thành phần mơ hình thường sử dụng để tổ chức tập hợp cấu trúc song song phân cấp Cú pháp chung:

<nhãn>: Block

{<phần_khai_báo>}

begin

{<câu_lệnh_song_song>} – có trình tự bất kỳ

end block;

<phần_khai_báo>: xác định đối tượng tồn cục khối khai báo sau:

- Khai báo hằng, kiểu liệu, tín hiệu - Thân thủ tục

- Khai báo component

- Luật use – sử dụng Configuration 9.3.7.6 Gi th tc, hàm song song

Phép gọi thủ tục, hàm song song tương đương với Process bao gồm phép gọi thủ tục tương ứng Mỗi phép gọi thủ tục, hàm tương đương với Process khơng chứa dãy danh sách tín hiệu kích thích, phần khai báo rỗng phần thân chứa phép gọi thủ tục, hàm, câu lệnh wait. Chi tiết thủ tục hàm sẽđược trình bày phần

9.3.8 Cấu trúc lệnh

Trong ngôn ngữ VHDL cấu trúc song song quan trọng Process Cấu trúc thường sử dụng để mô tả hành vi hoạt

(174)

vô hạn lệnh thứ đến lệnh cuối kích hoạt trở lại thực lệnh đầu có thay đổi danh sách tín hiệu kích thích hay danh sách tín hiệu câu lệnh wait

Các cấu trúc lệnh VHDL gồm: + Câu lệnh gán cho biến

+ Câu lệnh gán cho tín hiệu + Câu lệnhif.

+ Câu lệnh case. + Câu lệnh rỗng Null + Các lệnh lặp 9.3.8.1 Phép gán biến

Cú pháp phép gán biến sau:

biến:= biểu_thức

Phép gán biến thực với thời gian mô giá trị biến cập nhật giá trị biểu thức Đối tượng <biến> khai báo sử dụng Process thủ tục, hàm, sử dụng để lưu trữ kết trung gian

So sánh kết mạch số tổng hợp ví dụ sau:

process( Clk )

variable B, C, D: bit:= ‘1’ ;

begin

If (Clk’event and Clk =‘1’) then

B:= A ; C:= B ; D:= C ;

end if ;

end process ;

D

Clk

A D

(175)

process( Clk )

variable B, C, D: bit:= ‘1’;

begin

If ( Clk’event and Clk =‘1’ ) then

D:= C; C:= B; B:= A;

end if;

end process ;

Clk

A B C D

Clk

A B C D

Chú ý ví dụ trên, giá trị biến cập nhập tức thì, ví dụ thứ tổng hợp mạch tạo trigơ D Cịn với ví dụ

thứ thứ tự gán biến thay đổi, kết tạo trigơ D Trong ví dụ 1, B,C,D tín hiệu kết hồn tồn khác Xem ví dụở phần phép gán tín hiệu

9.3.8.2 Phép gán tín hiu

Cú pháp phép gán biến sau:

Tín_hiệu_đích<= biểu_thức [after giá_trị_thời_gian];

Khác với phép gán biến, phép gán tín hiệu Process khơng

(176)

Ví dụ:

Architecture Behavior of Trigơ is

signal Clk, A, B, C, D: bit:= ‘1’;

Begin

process( Clk )

begin

If (Clk’event and Clk =‘1’) then B <= A ;

C <= B ; D <= C ;

end if ;

end process ;

End Behavior;

Clk

A B C D

Clk

A B C D

9.3.8.3 Lnh if

Lệnh cho phép phép toán thực điều kiện Có ba dạng là:

+ Dạng 1:

if (Điều_kiện) then

<Các_câu_lệnh_tuần_tự>;

end if;

+ Dạng 2:

if (Điều_kiện) then

<Các_câu_lệnh_tuần_tự>;

else

<Các_câu_lệnh_tuần_tự>;

(177)

+ Dạng 3:

if (Điều_kiện_1) then

<Các_câu_lệnh_tuần_tự>;

elsif (Điều_kiện_2) then

<Các_câu_lệnh_tuần_tự>;

elsif (Điều_kiện_3) then

<Các_câu_lệnh_tuần_tự>;

else

<Các_câu_lệnh_tuần_tự>;

end if;

Trong lệnh if/else, ta phải ý sốđiều sau:

+ Điều kiện tìm thấy sẽđược thực + Các điều kiện chồng chất lên

+ Điều kiện lệnh if/elseđược ưu tiên Ví dụ:

process (A, B, C, D, Sel)

begin

If (Sel = “00”) then

Z <= A ;

elsif (Sel = “01”) then

Z <= B ;

elsif (Sel = “10”) then

Z <= C ;

elsif (Sel = “11”) then

Z <= D ;

end if; end process ;

Với mô tả cấu trúc bên

mạch ghép kênh đầu vào tổng hợp

được thực sựđược xây dựng từ mạch

ghép kênh đầu vào.

(178)

9.3.8.4 Lnh case

Lệnh caseđược sử dụng trường hợp có biểu thức để

kiểm sốt nhiều rẽ nhánh chương trình VHDL Các lệnh tương

ứng với lựa chọn thực hiệu biểu thức kiểm soát có giá trị giá trị tương ứng lựa chọn Có hai dạng bản:

Dạng 1:

Case (biểu_thức_kiểm_soát) is

When <giá_trị_lựa_chọn> =>

<Các_câu_lệnh_tuần_tự>;

When <giá_trị_lựa_chọn> =>

<Các_câu_lệnh_tuần_tự>;

end case; Dạng 2:

Case (selector expression) is

When <giá_trị_lựa_chọn> =>

<Các_câu_lệnh_tuần_tự>;

When <giá_trị_lựa_chọn> =>

<Các_câu_lệnh_tuần_tự>;

When others =>

<Các_câu_lệnh_tuần_tự>;

end case;

Các ý dùng lệnh case:

+ Tất giá trị biểu thức lựa chọn phải rõ + Khơng có giá trị lựa chọn bị chồng chất lên 9.3.8.5 Câu lnh rng Null

(179)

Trong VDHL chương trình mơ gặp câu lệnh Null bỏ qua lệnh thực lệnh sau Thông thường lệnh Null dùng để trường hợp không thực lệnh cách tường minh có điều kiện trả lại giá trị true Do lệnh Null thường

được dùng câu lệnh case giá trị lựa chọn khơng cần thao tác Ví dụ:

process (A, B, C, D, Sel) begin

case Sel is

when “00” => Z <= A; when “01” => Z <= B; when “10” => Z <= C; when others => Null; end case;

end process;

Z C

B A

Sel

Z C

B A

Sel

9.3.8.6 Các lnh lp

Lệnh lặp loop chứa thân vòng lặp bao gồm dãy câu lệnh thực nhiều lần

Cú pháp lệnh lặp sau:

[<nhãn>:] [<sơ_đồ_lặp>] loop

{<lệnh_tuần_tự>}|

{next [<nhãn>] [when <điều_kiện>];}|

{exit [<nhãn>] [when <điều_kiện>];}

end loop [nhãn];

- <nhãn>: Nhãn vòng lặp thường dùng để xây dựng vịng lặp lồng nhau, vịng lặp kết thúc từ

khóa end loop.

(180)

Với vịng lặp khơng chứa [<sơ_đồ_lặp>], lệnh dãy lệnh sẽđược thực ngắt câu lệnh exit. Trong câu lệnh nextcũng dùng để thay đổi trình tự thực thân vịng lặp

Ví dụ vịng lặp khơng chứa sơđồ lặp:

process (A, B, C, D, Sel) begin

case Sel is

when “00” => Z <= A ; when “01” => Z <= B ; when “10” => Z <= C ; when “11” => Z <= D ; end case ;

end process ;

Z D C B A Sel Z D C B A Sel

Ví dụ vịng lặp chứa sơđồ lặp:

Count_down: Process

Variable Min,Sec: integer range to 60;

Begin

L1: loop

L2: loop

exit L2 when (Sec=0);

wait until CLK’event and CLK=’1’; Sec:=Sec-1;

End loop L2;

Exit L1 when (Min=0); Min:=Min-1; Sec:=60;

End loop L1;

(181)

Ví dụ vịng lặp chứa <sơ_đồ_lặp> dạng for:

process (A, B_bus)

begin

for i in downto

loop

C_bus (i) <= A and B_bus (i);

end loop;

end process;

hoặc:

process (A, B_bus) begin

for i in to loop C_bus (i) <= A and B_bus (i);

end loop ; End process;

A A A C_bus (7) C_bus (6) C_bus (0) A B_bus (7) A A B_bus (6) B_bus (0)

Ví dụ vịng lặp chứa <sơ_đồ_lặp> dạng whilenhư sau:

process ( A, B_bus )

variable

i:integer:=0;

begin

while (i<8) loop

C_bus (i) <= A and B_bus (i);

i:=i+1;

end loop ;

End process;

9.3.9 Hàm thủ tục

(182)

mơ tả mã chương trình khơng phải khai báo, cịn chương trình thường khai báo mô tả thư viện Library để sử dụng chung chia sẻ ứng dụng khác nhau, nhiên chương trình có thểđược khai báo mơ tả

ngay mã chương trình muốn 9.3.9.1 Hàm (Function)

Hàm đoạn mã mô tả tuần tự, sử dụng xây dựng toán tử, phép tốn cho tốn phải giải mà hàm

đó chưa có thư viện chuẩn Các phép toán thường viết là: hàm biến đổi liệu, hàm logic, hàm số học, toán tử hàm thuộc tính… Hàm viết lần sử dụng lại nhiều lần ứng dụng chia sẻ ứng dụng, làm cho mã chương trình ngắn dễ hiểu

Các cấu trúc lệnh (như If, case, loop, trừ lệnh wait) sử dụng hàm Chỉ có biến – Variable Constant danh_sách_biến hàm khai báo sử dụng hàm Signal Component bên ngồi khơng phép sử

dụng hàm

Cú pháp để khai báo mô tả hàm (phần Function body) sau:

Khai báo

FUNCTION Tên_hàm [(danh_sách_biến)] RETURN kiu_d_liu; Function Body (Mô t hàm)

FUNCTION Tên_hàm [(danh_sách_biến)] RETURN kiu_d_liu IS

Khai báo CONSTANT, VARIABLE

BEGIN

(Viết mô tả hàm dùng cấu trúc Lệnh tuần tự)

(183)

Trong đó: danh_sách_biến xác định tham số đầu vào cho hàm khai báo đối tượng constant, signal kiểu

liệu tổng hợp boolean, std_logic, integer, std_logic_vector…, không sử dụng range với integer không sử dụng to/downto với kiểu liệu vector

Khi gọi hàm đối tượng signal constant sẽđược truyền vào hàm tương ứng theo danh_sách_biến

Chú ý: Hàm phải trả giá trị có kiểu_dữ_liệu nhưđã khai báo Và danh_sách_biến từ khóa constant có thểđược bỏđi

Ví dụ hàm xác định sườn dương tín hiệu clk sau:

- Function body -

FUNCTION positive_edge(SIGNAL s: STD_LOGIC) RETURN

BOOLEAN IS

BEGIN

RETURN (s'EVENT AND s='1');

END positive_edge;

Khi sử dụng gọi hàm sau:

IF positive_edge(clk) THEN

Ví dụ hàm biến đổi liệu từ mảng nhị phân sang số nguyên sau:

- Function body -

FUNCTION conv_integer(SIGNAL vector: STD_LOGIC_VECTOR)

RETURN INTEGER IS

VARIABLE result: INTEGER RANGE TO 2**vector'LENGTH-1;

BEGIN

(184)

ELSE result:=0;

END IF;

FOR i IN (vector'HIGH-1) DOWNTO (vector'LOW) LOOP

result:=result*2;

IF(vector(i)='1') THEN result:=result+1;

END IF;

END LOOP;

RETURN result;

END conv_integer;

Khi sử dụng gọi hàm sau:

Signal y: integer;

Signal a: Std_logic_vector (7 downto 0);

y<= conv_integer(a); Tín hiệu a truyền vào hàm

Hàm mơ tả Package (+ Package body) library hay chương trình

Ví dụ cách mơ tả hàm Package sau:

Xây dng PACKAGE

Khai báo thư viện chuẩn

LIBRARY ieee;

USE ieee.std_logic_1164.all;

-

PACKAGE my_package IS

Khai báo Hàm muốn mô tả

FUNCTION positive_edge(SIGNAL s: STD_LOGIC) RETURN BOOLEAN;

END my_package;

-

(185)

FUNCTION positive_edge(SIGNAL s: STD_LOGIC) RETURN BOOLEAN IS

BEGIN

RETURN s'EVENT AND s='1';

END positive_edge;

END my_package;

Mã chương trình LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE work.my_package.all;

-

ENTITY DFF IS

PORT (d, clk, rst: IN STD_LOGIC; q: OUT STD_LOGIC);

END DFF;

-

ARCHITECTURE my_arch OF dff IS BEGIN

PROCESS (clk, rst)

BEGIN

IF (rst='1') THEN q <= '0';

ELSIF positive_edge(clk) THEN q <= d;

END IF;

END PROCESS;

END my_arch;

Nếu muốn mô tả hàm chương trình tồn

(186)

Khai báo thư viện chuẩn

LIBRARY ieee;

USE ieee.std_logic_1164.all;

Khai báo thực thể

ENTITY DFF IS

PORT ( d, clk, rst: IN STD_LOGIC;

q: OUT STD_LOGIC);

END DFF;

Mô tả hoạt động

ARCHITECTURE my_arch OF DFF IS

Phần khai báo ARCHITECTURE

FUNCTION positive_edge(SIGNAL s: STD_LOGIC)RETURN

BOOLEAN IS

BEGIN

RETURN s'EVENT AND s='1';

END positive_edge;

Viết mô tả cho ARCHITECTURE

BEGIN

PROCESS (clk, rst)

BEGIN

IF (rst='1') THEN q <= '0';

ELSIF positive_edge(clk) THEN q <= d; END IF;

END PROCESS;

END my_arch;

9.3.9.2 Th tc (Procedure)

Về cú pháp, cách gọi, vị trí thủ tục - Procedure tương tự hàm – Function, thủ tục không trả giá trị

(187)

Khai báo

PROCEDURE Tên_th_tc [(danh_sách_biến)]; PROCEDURE Body (Mô t hàm)

PROCEDURE Tên_hàm [(danh_sách_biến)] IS

Khai báo CONSTANT, VARIABLE

BEGIN

(Viết mô tả thủ tục dùng cấu trúc Lệnh tuần tự)

END Tên_thủ_tục;

Ví dụ:

Thủ tục viết chương trình ứng dụng mô tả xác định giá trị nhỏ min_out giá trị lớn max_out giá trịđầu vào inp1, inp2 sau:

min_max

min_out

max_out inp1

inp2

ena

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

-

ENTITY min_max IS

GENERIC (limit: INTEGER:= 255);

PORT (ena: IN BIT; Tín hiệu cho phép enable

inp1, inp2: IN INTEGER RANGE TO limit;

min_out, max_out: OUT INTEGER RANGE TO limit);

END min_max;

-

(188)

Phần khai báo ARCHITECTURE

PROCEDURE sort (SIGNAL in1, in2: IN INTEGER RANGE TO limit;

SIGNAL min, max: OUT INTEGER RANGE TO limit) IS

BEGIN

IF (in1 > in2) THEN max <= in1;

<= in2; ELSE

max <= in2; <= in1; END IF;

END sort;

-

BEGIN

PROCESS (ena)

BEGIN

IF (ena='1') THEN sort(inp1, inp2, min_out, max_out);

END IF;

END PROCESS;

END my_architecture;

9.4 CÁC MỨC ĐỘ TRỪU TƯỢNG VÀ PHƯƠNG PHÁP MÔ TẢ HỆ THỐNG PHẦN CỨNG SỐ

Sử dụng VHDL cho phép mô tả hệ thống phần cứng số theo mức độ trừu tượng khác Hình 9.5 trình bày mức độ mơ tả

trừu tượng giảm dần sử dụng VHDL

+ Mức mơ tả theo mơ hình hành vi (Behavioral): mức độ mô tả

trừu tượng cao nhất, kiểu mơ tả thường dùng cho mơ hình phần cứng dùng cho mô

(189)

phần cấu trúc mạch tổ hợp mạch tuần tự, kiểu mô tả tối ưu cho khả tổng hợp cao, độc lập với công nghệ

+ Mức mơ tả theo mơ hình cấu trúc logic: Kiểu mơ tả thường sử dụng cấu trúc logic xây dựng sẵn chọn thư viện nhà cung cấp phù hợp với loại công nghệ sử dụng

+ Mức mô tả theo cấu trúc layout Mức độ mô tả chi tiết nhất, mô tả chi tiết tới cấu trúc bên tài nguyên sẵn có cấu kiện, cách tối ưu cho việc tổng hợp loại cấu kiện, công nghệđã sử dụng

Trong giáo trình mã mơ tả VHDL sử dụng theo mức: hành vi, RTL cấu trúc logic

Chú ý: Trong chương trình mơ tả sử dụng theo cách mơ tả phải dùng kết hợp cách tùy theo

độ phức tạp hệ thống phần cứng số, yêu cầu thời gian mô tả thiết kế, yêu cầu tối ưu phần cứng…

(190)

9.4.1 Phương pháp mơ tả theo mơ hình cấu trúc logic

Mơ hình cấu trúc phần tử (hoặc hệ thống) bao gồm nhiều cấp cấu trúc cổng logic đơn giản đến xây dựng mơ tả cho hệ thống hồn thiện Thực chất việc mơ tả theo mơ hình cấu trúc mô tả phần tử bên hệ thống kết nối phần tử Cách thức mơ tả cấu trúc thành phần tương tự cách thức mô tả thực thể Trước hết

để mô tả cấu trúc thành phần con, phải xác định rõ giao diện thành phần Các giao diện đường tín hiệu vào từ thành phần

Trước sử dụng kiến trúc hệ thống, thành phần xây dựng (gọi tắt component) phải khai báo cách tường minh theo cú pháp sau:

Component <tên_thành_phần>

Port(<khai_báo_danh_sách_các_cổng_cục_bộ;>)

Tương tự khai báo thực thể

End component;

Chú ý: Các cổng vào/ra thành phần không kết nối trực tiếp với mà phải kết nối thông qua tín hiệu nội có kiểu, độ lớn với cổng vào/ra

Cú pháp mơ tả móc nối thành phần sau:

<nhãn_khởi_tạo>:<tên_thành_phần>

port map ([<tên_cổng_cục_bộ> =>] <biểu_thức>

{[<tên_cổng_cục_bộ>=>]<biểu_thức>});

Cấu trúc port map ánh xạ cổng phần tử vào tín hiệu Ánh xạ hiểu việc kết nối cổng tương ứng phần tử

(191)

cổng vào/ra thành phần với chân vào/ra hệ thống nối với tín hiệu nội hệ thống để kết nối tới cổng vào/ra thành phần khác Ánh xạđược thực theo vị trí theo tên:

+ Khi sử dụng ánh xạ theo vị trí, đưa danh sách tín hiệu tuân theo trật tự mà cổng khai báo

+ Đối với trường hợp ánh xạ theo tên, sử dụng cấu trúc ánh xạ tường minh đặt tương ứng với cổng với tín hiệu thực:

<tên_cổng_cục_bộ> => <tên_tín_hiệu_thực>

Ví dụ: Mơ tả mơ hình cấu trúc ghi bít xây dựng từ trigơ DFF Có thể mơ tả trigơ DFF sau sau mơ tả sơ đồ móc nối phần tử trigơ DFF tạo thành ghi

Mô tả trigơ DFF sau:

entity DFF is

port ( D, Clock: in std_logic ;

Reset: in std_logic ; Q: out std_logic) ;

end entity DFF ;

architecture RTL of DFF is begin

process (Clock, Reset)

begin

If (Reset = ‘1’ ) then Q <= ‘0’ ;

elsif (Clock’event and Clock = ‘1’) then

Q <= D ;

end if;

end process ;

Clock

Reset

D Q

Clock

Reset

D Q

(192)

- Ví dụ: Mô tả cấu trúc ghi bit gồm trigơ D theo phương pháp cấu trúc sau:

entity REG_4 is

port (D_in: in

std_logic_vector (3 downto 0);

Clk, Rst: in std_logic; Q_out: out std_logic_vector (3 downto 0));

end REG_4;

-

architecture Structural of

REG_4 is

Khai báo component cần sử

dụng

component DFF

port ( D,Clock: in

std_logic;

Reset: in std_logic; Q: out std_logic);

end component;

begin

Ánh xạ theo vị trí:

U3:DFF port map(D_in(3), Clk,

Rst, Q_out(3));

U2:DFF port map(D_in(2), Clk,

Rst, Q_out(2));

U1:DFF port map(D_in(1), Clk,

Rst, Q_out(1));

Ánh xạ theo tên:

U0:DFF port map(Clock =>Clk, D

=>D_in(0),

Reset =>Rst,Q =>Q_out(0));

end Structural;

(193)

Ví dụ: Mơ tả hệ thống số “System” theo phương pháp cấu trúc từ

các khối sau:

System

a

b

c

z

Block1.vhd: File mô tả khối thứ

entity Block1 is

Port ( a: in STD_LOGIC;

b: in STD_LOGIC; y: out STD_LOGIC);

end Block1;

architecture Behavioral of Block1 is begin

y<= (not a and b) or (a and not b);

(194)

Block2.vhd: File mô tả khối thứ

entity Block2 is

Port ( a: in STD_LOGIC;

b: in STD_LOGIC; y: out STD_LOGIC);

end Block2;

architecture Behavioral of Block2 is begin

Y<= a xnor b;

end Behavioral;

System.vhd: Mô tả hệ thống “System” theo mơ hình cấu

trúc

entity System is

Port ( a,b,c: in STD_LOGIC;

z: out STD_LOGIC);

end System;

architecture Behavioral of System is

Khai báo khối dùng hệ thống

COMPONENT Block1

PORT(

a,b: IN std_logic; y: OUT std_logic );

END COMPONENT;

COMPONENT Block2

PORT(

(195)

END COMPONENT;

signal x: std_logic; Tín hiệu nội dùng để

nối khối

begin

U1_Block1: Block1 port map(a,b,x);

U2_Block2: Block2 port map(a=>x,b=>c,y=>z);

end Behavioral;

9.4.2 Phương pháp mô tả theo mô hình hành vi (Behavioral):

Đây mức độ mô tả trừu tượng nhất, chủ yếu mô tả theo chức hệ thống số theo yêu cầu đầu vào đáp ứng sử

dụng cấu trúc lệnh giống ngơn ngữ lập trình bậc cao

Process, wait, If, case, for-loop… Mô tả theo cách tính ngữ nghĩa tự nhiên giải thuật cao, nhập thiết kế nhanh, cấu trúc phần cứng thường không rõ Với hệ thống phức tạp (nhất có giải thuật phức tạp), yêu cầu cần thiết kế nhanh mà không cần yêu cầu mức độ tối ưu phần cứng cao thường dùng cách mô tả

này Người thiết kế mô tả chức năng, hành vi mong đợi thiết bị dùng VHDL từ mô tả hệ thống dạng văn hay lưu đồ thuật toán Phương pháp mô tả hay dùng cho mục đích mơ

Ví dụ: Mơ tả hệ thống cảnh báo theo mơ hình hành vi “Hệ thống gồm có đầu vào từ cảm biến (Front_Door, Rear_Door, Window), đầu vào từ bàn phím bấm Keypad, tín hiệu Clk, Reset

đầu điều khiển còi báo động Alarm_Siren

Chức hoạt động hệ thống sau: Nếu có sensor kích hoạt, hệ thống kiểm tra mã bàn phím Nếu sau 20 giây mà khơng có mã bàn phím nhập nhập vào cịi báo

(196)

Security_1 Alarm_Siren Window Front_Door Keypad Rear_Door Clk Reset Security_1 Alarm_Siren Window Front_Door Keypad Rear_Door Clk Reset

entity Security_1 is

port (Clk, Reset: in std_logic ;

Keypad: in std_logic_vector (3 downto 0) ;

Front_Door, Rear_Door, Window: in boolean ;

Alarm_Siren: out boolean ) ;

end Security_1 ;

-

architecture Behavioral of Security_1 is

constant Delay_Period: time:= 20 s;

begin

process (Keypad,Front_Door,Rear_Door,Window)

begin

if (Front_Door or Rear_Door or Window ) then if (Keypad = “0011”) then

Alarm_siren <= false ; else

Alarm_Siren <= true after Delay_Period ; end if ;

end if ;

end process ;

end Behavioral;

9.4.3 Phương pháp mơ tả theo mơ hình luồng liệu RTL

Hệ thống biểu diễn theo mơ hình RTL bao gồm tập ghi (khối mạch có nhớ) phép toán thực

(197)

xử lý liệu thực số liệu chứa ghi

được coi hoạt động chuyển đổi ghi Ví dụ: Mơ hình RTL sử dụng để biểu diễn cấu trúc vi xử lý Hệ

thống số biểu diễn theo mơ hình RTL chúng xác định thành phần sau:

- Tập ghi hệ thống (Các khối mạch nhớ, mạch tuần tự)

- Các phép toán thực liệu lưu ghi xây dựng nhờ mạch logic tổ hợp

- Những điều khiển để giám sát chuỗi phép toán hệ thống (thường xây dựng mơ hình máy trạng thái)

Thanh ghi gồm nhóm Trigơ chứa liệu nhị phân Một ghi nạp thơng tin mới, dịch thông tin… Một bộđếm coi ghi có khả tăng, giảm giá trị Một Trigơ coi ghi bit Phần mạch gồm có Trigơ

và cổng liên quan mạch có thểđược gọi ghi

Các phép toán thực liệu chứa ghi phép toán thực song song chuỗi bit chu kỳ clock Kết phép toán thay liệu trước ghi kết chuyển

đến ghi khác Có kiểu phép tốn sau:

+ Phép chuyển đổi: Truyền liệu từ ghi sang ghi khác

(198)

Điều khiển khởi tạo chuỗi phép toán bao gồm tín hiệu định thời cho phép thực phép tốn theo cách mơ tả

trước Có thể coi mơ hình RTL mơ hình mô tả hành vi theo xung clock hệ thống số

Hệ thống sốđược mô tả VHDL theo mơ hình RTL có khả

năng tổng hợp cao dễ dàng việc trao đổi công cụ tổng hợp, thiết kế tổng hợp cơng nghệ

PLD khác

Tóm lại theo mơ hình RTL hệ thống số xây dựng

sở khối ghi khối mạch logic tổ hợp chúng mơ tả tiến trình tổ hợp (combinatorial process) tiến trình hoạt động theo clock (clocked process)

9.3.4.1 Mô t mch logic t hp

Mạch logic tổ hợp mô tả cấu trúc lệnh song, nhiên thường dùng process tổ hợp Khi sử dụng process tổ hợp tt c tín hiu vào mạch tổ hợp phải đưa vào danh sách tín hiệu kích thích

Ví dụ tiến trình tổ hợp sau:

Z B

A Z

B

A D

En

Q D

En

Q

(199)

process(A,B)

begin

Z <= A or B ;

end process;

process (D, En)

begin

gán mặc định đầu

Q <= 0;

if En = ‘1’ then Q <= D ;

end if ;

end process;

Chú ý: process tổ hợp nên có phép gán giá trị mặc định cho đầu để tránh trường hợp mạch bị biến thành mạch chốt theo mức

Trong process không

gán giá trị mặc định

process (D, En) begin

if En = ‘1’ then Q <= D ;

end if ; end process ;

(T ng h p thành m ch ch t theo m c)

Chú ý: Khi mô tả mạch logic tổ hợp biến khai báo process không gán giá trị mặc định trước để mạch tổng hợp khơng chứa phần tử nhớ Nếu mã mô tả có biến gán giá trị mặc định trước chương trình tổng hợp tạo phần tử nhớđể lưu trữ giá trị khởi tạo, mạch trở thành mạch có nhớ

Mọi câu lệnh trừ lệnh wait, loop, if với tín hiệu điều khiển theo sườn dùng để mơ tả mạch tổ hợp Các phép tốn số học, logic, quan hệ sử dụng biểu thức

9.3.4.2 Mô t mch tun t

Các khối ghi có thểđược mơ tả tiến trình hoạt động theo clock theo kiểu:

(200)

- Tiến trình đồng với danh sách tín hiệu kích thích có tín hiệu clock, biến đổi mạch đồng theo sườn clock)

- Hoặc tiến trình khơng đồng với danh sách tín hiệu kích thích khơng có tín hiệu clk mà cịn có tín hiệu khơng đồng khác

Ví dụ: Mơ tả hoạt động trigơ D làm việc theo sườn dương với tín hiệu Reset khơng đồng sau:

process ( Clk, Reset )

begin

if reset = ‘1’ then

Q <= ‘0’ ;

elsif (Clk`event and Clk =

‘1’) then

Q <= D ;

end if ;

end process ;

Clk

D Q

Reset

Ví dụ: Mơ tả hoạt động trigơ D làm việc theo sườn dương với tín hiệu Reset đồng sau:

process (Clk)

begin

if (Clk`event and Clk =

‘1’) then

if reset = ‘1’ then Q

<= ‘0’ ;

elsif then Q <= D ; end if ;

end if ;

end process ;

Clk

D Q

Reset

Ngày đăng: 01/04/2021, 10:52

Tài liệu cùng người dùng

Tài liệu liên quan