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 Điện 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)Tập gồm:
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 Tập gồm:
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)TẠO DẠNG 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 Mạch đa hài đợi kiểu 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 Mạch đa hài đợi kiểu 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 Mạch đ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 Mạch đ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 Mạch đ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 DẪN
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 của 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 nhập thông tin
Các nhớ có hai cách truy nhập thông tin Truy nhập trực 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 nhập 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 Tốc độ truy nhập 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 Khối 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ộ giải 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 Mạch của 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 Mạch điều khiển 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 Mạch vào/ra của 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 Mạch điều khiển của 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 Cấu tạo của một ô 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ý hoạt động của 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 Một 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 Cấu tạo chung của 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ý hoạt độ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:
Mật độ: 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 cầu về tốc độ: 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 suất thấp: 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?
Chức năng cấp hệ thống: 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 Lập trình hệ thống
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 Lập 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 cấu hình hệ thống 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 hoạt: 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
+ Mật độ: 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)PHẦN CỨNG 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 hiệu – 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 Hằng - 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 lại: 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ê)
Kiểu 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
Mảng hai chiều (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) Kiểu dữ liệu (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 Kiểu 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…
Kiểu Vật 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 - Kiểu dữ liệu liệt 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 Kiểu dữ liệu 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 mảng: 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 gộp ( ): 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 Kiểu dữ liệu mảng chiều (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 Kiểu dữ liệu
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 Tổng 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ố học
Toán tử số học sử dụng cho kiểu liệu Integer, Real, Signed, Unsigned, dạng dữ liệu vật 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ử dịch
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 nối
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ử thuộc 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ữ liệu
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ử chồng
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 Tổng 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ơ bản:
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ứ cấp (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 (Thực 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, kiểu dữ liệu, 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ế Packagevà Package 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 Cấu 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 hiệu 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 hiệu có điều kiện
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 hiệu theo lựa chọn
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 Khối (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 Gọi thủ tục, 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 hiệu
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 Lệnh 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 Lệnh 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 lệnh rỗng 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 lệnh lặp
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 kiểu_dữ_liệu; Function Body (Mô tả hàm)
FUNCTION Tên_hàm [(danh_sách_biến)] RETURN kiểu_dữ_liệu IS
Khai báo CONSTANT, VARIABLE có
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 dựng 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ủ tục (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ủ_tục [(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 có
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ả mạch logic tổ hợp
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 tất cả tín hiệu 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ả mạch tuần 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