TÓM TẮT KHÓA LUẬNTrong bài báo cáo này, nhóm sẽ trình bày các kiến thức liên quan đến việc thiết kế lõi điều khiển JTAG TAP, lõi vi xử lý RISC-V RV32I, sự kết nối giữa hai thiết kế ké tr
Trang 1ĐẠI HOC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
HO KHẢ TRÌNH — 20522059
NGUYEN NHUT TRƯỜNG - 20522088
KHOA LUAN TOT NGHIEP
THIET KE LOI VI XU LY RISC-V RV32I TICH HOP
KHOI DIEU KHIEN JTAG UNG DUNG VAO VIEC NAP
LENH CHUONG TRINH TREN FPGA
DESIGN AND INTEGRATION OF RISC-V RV32I MICROPROCESSOR CORE AND JTAG CONTROLLER BLOCK APPLYING TO PROGRAM INSTRUCTION CODES
IMPLEMENTED ON FPGA
CU NHAN KY THUAT MAY TINH
GIANG VIEN HUONG DAN
ThS PHAM THANH HUNG
TS TRAN PHUOC XUAN
TP HO CHÍ MINH, 2024
Trang 2LỜI CẢM ƠN
Trong suốt quá trình nghiên cứu, nhóm chúng em may mắn nhận được sựgiúp đỡ từ các thầy cô Khoa Kỹ thuật Máy tính, đặc biệt là thầy ThS Phạm ThanhHùng và thầy TS Trần Phước Xuân Các thầy đã truyền đạt cho chúng em nhữngkiến thức cần thiết, cũng như là hướng thiết kế chi tiết dé chúng em có thể hoànthành đề tài khóa luận này một cách hiệu quả nhất
Chúng em cũng muốn gửi lời cảm ơn chân thành đến các thầy cô thuộcKhoa Kỹ thuật Máy tính nói riêng cũng như Trường Đại học Công nghệ Thôngtin nói chung đã tạo điều kiện thuận lợi cho chúng em có một môi trường học tập
và nghiên cứu tốt nhất, đồng thời hỗ trợ chúng em trong quá trình thực hiện đềtài khóa luận này Những kiến thức và kinh nghiệm mà chúng em tiếp nhận được
từ các thầy cô sẽ luôn là thứ tài sản vô giá trong việc phát triển sự nghiệp củachúng em.
Ngoài ra, nhóm chúng em cũng muốn gửi lời cảm ơn đến gia đình, bạn bè
và những người thân yêu đã luôn động viên, hỗ trợ và khuyến khích chúng emtrong suốt quá trình thực hiện khóa luận Nhờ có sự giúp đỡ của mọi người, nhóm
đã có thể vượt qua những khó khăn và hoàn thành đề này khóa luận này một cáchtốt nhất
Cuối cùng, nhóm chúng em xin gửi lời cảm ơn chân thành đến tất cả những
người đã giúp đỡ và hỗ trợ nhóm trong suốt quá trình nghiên cứu và thực hiện đồ
án này Ít nhiều những sự hỗ trợ ấy cũng đã đóng góp vào việc hoàn thành đề tài
khóa luận Nhóm chúng em hy vọng rằng đề tài khóa luận này sẽ có ích cho cộng
đồng, đặc biệt là cộng đồng Vi mạch đang có xu hướng phát triển rất mạnh mẽ.Hơn thế nữa, nhóm mong muốn đóng góp vào sự phát triển của chuyên ngànhThiết kế vi mạch — nhóm ngành Kỹ thuật Máy tính nói riêng và ngành Công nghệ
thông tin nói chung.
Trang 3MỤC LỤC
Chương 1 GIGI THIỆU TONG QUAN ĐỀ TÀI -2- 2+ ©52+£+£xczzscsees 2
1.1 Dat vấn đề tt TT HH g1 11221 11 121gr reu 21.2 Cac nghiên cứu liên qua1 5 << + + vn vn TH ng tưng 21.3 Mục tiêu đề tài 5c 2kc2t 2 22221211211 2211211 112111111211 rree 3
Chương 2 TONG QUAN VE GIAO THUC GIAO TIẾP JTAG - 4
2.1 Giới thiệu tổng quan về JTAG voececeececcccccscssessessessessessessessessessesssssesesseseseess 42.2 Lịch sử phát triển -:- c-©kSk+EkEEkEEEE121122121121121121121111 1.1.1 re 5
2.3 Ứng dụng ck k2 E21 11211211211 11111 1111.11.11 re 6
3.1 Tổng quan thiết kế JTA ¿- :- ++S<+SE2EE+EEEEEEEE2EEEEEEEEEEErErrrrrrree 7
3.1.1 Mơ tả thiết kế :- +22 22k 222212121121 1Exetkerrrrrkee 73.1.2 Nguyên lý hoạt động cơ bản của JTAO - ccxcsecseesesrske 9
3.3 Bộ điều khiến TAP — TAP Controller -s- ¿s2 s+s£+£+zxzxzzsrsez 12
3.3.1 Máy trạng tháti -.c- Ăn TH ng TH nh tư tr 12
3.3.2 Quá trình điều khiển thanh ghi - 2-2 2 2 s+++E++EzEzEzxzes 143.3.3 Hiện thực TAP ContrỌÏer + << * + * +22 +++zeeeeeezsese 16 3.3.4 Thanh ghi lệnh — Instruction Register (TR) - - «+ +-<<+<<<<+ 20 3.3.5 Thanh ghi dữ liệu — Data Register (DR) . 52-55 ss< sex 23 3.3.6 Quy trình tải lên một lệnh + 2 +£+£+££+£E+£E++Extrxezreerxeree 273.3.7 Sơ đồ nạp lệnh trong TAIP - 2: 2¿5222++2E2EE£EECEEESEEerkrrerrkrree 293.4 Mơ phỏng thiết kế JTAG-TAP 2-52 5ESE+EE+EE+EE2EE2EEEEEEEEEErErrrerree 35
3.4.1 Lệnh EXTESÏT - Ặ- HT, 35
Trang 43.4.2 Lệnh SAMPLE/PRELOADD - esececeseeesecseeeeeeseesseseeeaesneees 36
3.4.3 00900 36 3.4.4 Lệnh DEBG Ăn TH HH HH ngà ng 37 3.4.5 0/5106 ‹< 38
Chương 4 _ QUY TRÌNH THIET KE LOI VI XỬ LÝ RV321 - 40
4.2 Lịch sử phát triỂn -:- ke SE EEE122121111211 1.1.1, 404.3 Lợi ích của việc sử dụng RISC- .- SH ng 4I
4.7 _ Chu kỳ nạp lệnh (FETCH CYCLE) - 53c *+* + E+vsereereereerers 48 4.8 Chu kỳ giải mã lệnh (DECODE CYCLE) - 55+ £+vcseeseesrrs 49 4.9 Chu kỳ thực thi (EXCUTE CYCLE) - c5 se ssseereereereererrs 51
4.10 — Chu kỳ truy xuất bộ nhớ (MEMORY CYCLE) - ¿s5 s+x+zcx2 524.11 Chu kỳ ghi kết quả (WRITE-BACK CYCLE})\ ©5255+ 552 52
4.12 Mô phỏng kiểm tra hoạt dOng ceccecccccceessessessessesessessessessessessesessessesees 53
Chương 5 THIET KE TONG HOP o0.eccecceccescssessessessessessessessessessessessessesesseasesees 58
Trang 55.1 Tổng quan -:- + St+Sk9EE£EkEEEEEEEEEEE122121111121121121111 1.1.1.1 585.2 Mô hình thiết kế tong hop o scccscccssesssesssssssssssesssessscssecssecssecssecssecsusssecssecsses 60
Chương 6 KICH BAN KIEM TRA THIET KẾ -22 522522525522 63
6.1 Tổng quaniee.ccscceccecccscsscssessessesssssessessessessessessessessessesscsuesscssesuessesscsseansaseasease 63
Chương 7 KẾT LUẬN :-©ESE+EE+EESEEEEEEEEEEEEEEEEE2E12E1E.Ee Lee, 68
7.1 Tổng kẾt c 2222k 22 2222212211211 tre 687.2 Kết quả đề tài -c- St St TT E1 E1011211211211211211211 21111 re 68
Trang 66 I/O ports của TAP COTIẨTỌÏ€T - 2G 5 111318231 911 1k key 17
7 Sơ đồ khối thiết kế cell 1-bit của IR 2- 2 5++z++cx+zxczxserxez 22
8 Sơ đồ thiết kế và giao diện của BSC :¿©22©c++cxccxerxerrrrrerxee 24
9 Sơ đồ thiết kế BSR -2- 222222 2212212221221711221 221211211211 tre 25
10 Giao diện kết nối kiểm tra chip#2, bỏ qua chip#1 & chip#3 26
11 Sơ đồ thiết kế thanh ghi BR ¿ .¿-5¿©25£©5+£2x++£x+erxeerxesrxesred 27
12 Cầu trúc của thanh ghi lệnh (I) - c5 5 SE sksseeksseessseree 27
13 Sơ đồ nạp lệnh EXTEST - 2-2 ++E++EE+EE+EE+EE+EE+EEEEEzEEzErrrrerree 29
14 Sơ đồ nạp lệnh SAMPLE/PRELOAD 2-2 2 2+££+££+£2zzzse2 30
15 Sơ đồ nạp lệnh IDCODE 2- 2 2 2 £+E££EE+EE£EE£EE£EE+EErEzrrrerree 31
16 Sơ đồ nạp lệnh DEBUG 2: 5¿©+£2+£2E+2E++EE++Ex+erxesrxesred 32
17 Sơ đồ nạp lệnh MBIST - 2-2 5¿++£+EE£E£+EE+EEzEEvrxerxrrreerseee 33
18 Sơ đồ nạp lệnh BYPASS ¿- 2-5252 E2 EEEEEEE2EEEEEcrkrree 34
19 Waveform mơ phỏng lệnh EXTIESTT -. <5 55+ + ++*++vsseeeeerss 35
20 Waveform mơ phỏng lệnh SAMPLE/PRELOAT) -«<- 36
21 Waveform mơ phỏng lệnh [IDCODEE - 5- 55+ £++*£++++seesx+ 36
22 Waveform mơ phỏng lệnh DEBG - - ©5555 £S+£++++seese+ 37
23 Waveform mơ phỏng lệnh MBISÏT ©5555 £<+<£++c+scese+ 38
24 Waveform mơ phỏng lệnh BYPASS eeeeeescesceeeteceneeeeeeceneeesneeenees 38
1 Minh hoa pipeline 5 tang c.ccecceccsccsseesessessessessessessessesssssessesscsneseseeseeaee 43
2 So đồ pipeline xảy ra xung đột ở lệnh IW 2-2 2+cs+sz+zz+se2 44
Trang 7Hình 4 3 Sơ đồ pipeline dùng stall giải quyết xung đột dit liệu - 45
Hình 4 4 Sơ đồ pipeline dùng stall processor giải quyết xung đột điều khién 46
Hình 4 5 Kiến trúc tập lệnh RISC-V RV32I procesSOr 2 2 5z©5z25sz©s+2 48 Hình 4 6 Waveform mô phỏng chu ky tìm nạp lệnh - «<< <++s>+ss2 53 Hình 4 7 Waveform mô phỏng chu kỳ giải mã lệnh 25 «+55 <++s++sss2 53 Hình 4 8 Waveform mô phỏng chu ky thực thi oo ee eeeeeeeeceseeeneeeeeeeeeeeeseeenes 54 Hình 4 9 Mô phỏng thiết kế RISC-V hoàn chỉnh (1) c.ccccccsscsssesseessessesssessesseesseeees 55 Hình 4 10 Mô phỏng thiết kế RISC-V hoàn chỉnh (2) 2-2 2 22 2+s2zs+ 55 Hình 5 1 Mô hình thiết kế tổng hợpp - 2-2 ©5¿+£++++£+£++£x++Ezrxerxezrxerxee 60 Hình 5 2: Quy trình nạp một lệnh vào bộ nhớ IMEM của RISC-V thông qua JTAG-TAẠPP c<cc<c-. 55E775⁄⁄2772 Hỹ TT nh 61
Hình 5 3 Mô phỏng việc nạp mã lệnh vào bộ nhớ IMEM - «<< «<2 62 Hình 6 1 Waveform kiểm tra thiết kế tông hợp - 2-2 22+z+£z+£z+zzzxze: 63 Hình 6 2 Thiết bị Adruino Namo -¿- - ¿5s St EEE+E#EEEE‡EeEEEEeEeEkekeEerkekererxervrs 63 Hình 6 3 Test-bench kiểm tra giá trị của thanh ghi -2 2 ¿2csz+cxz+cs+2 64 Hình 6 4 Kết quả khi double-check các thanh ghi với giá trị mong muốn 65
Hình 6 5 Ví dụ thiết kế lệnh điều khién của JTAG-TAP bằng code arduino 66
Hình 6 6 Đoạn chương trình mô phỏng việc kiểm tra thiết kế -. - 67
Hình 6 7 Kết quả được in ra ở màn hình console của quá trình kiểm tra 67
Hình 7 1 Kết quả tần số của thiết kế - 2-2 5¿+5++Ex+£E£2EE£EEtzEvrxerxrzreerxree 69 Hình 7 2 Kết quả sử dụng tài nguyên của thiết kế 2-2 2+z+sz+sz+szzxz+‡ 70 Hình 7 3 Giá tri toggle rate mặc định - - 5 + + SE 9 1191 1 1 x1 r rưy 71 Hình 7 4 Công suất tiêu thụ cho giá trị toggle rate mặc định -: 71 Hình 7 5 Giá trị toggle rate tối đa - 2-52 Sc 2k2 EEE12E1211211221211211 21.21 xe, 71 Hình 7 6 Công suất tiêu thụ với giá trị toggle rate tối đa - 2 2s: 72
Trang 8DANH MỤC BANG
Bảng 1.1 So sánh thiết kế với khóa luận trước 2-2 2+2+£+£++x+zx+zxzzxzxez 3Bang 3.1 Các tín hiệu điều khiển TAP controller 2-2 2 s2 s+szz££2£z+s£zszzz 17Bang 3.2 Các tín hiệu điều khiển phụ thuộc vào ESM 2 252552255: 18Bảng 3.3: Các lệnh kiểm tra được sử dụng trong thiết kẾ 2-2-2 z+sz+s+ 20
Bang 4.1 Các tín hiệu điều khiển của khối Control Unit 2-2-2525: 50
Bảng 5.1 Mô tả chức năng của user-commannd§s -« s «+ s+++s+seeessess 58
Bang 7.1 So sánh với khóa luận true - 5 <6 + 1x vn ng nh rưy 72
Trang 9DANH MỤC TU VIET TAT
BR Bypass Register
BSC Boundary Scan Cell
BSDL Boundary Scan Description Language BSR Boundary Scan Register
DIDR Device ID Register
DFT Design For Testability
DR Data Register
FPGA Field Programmable Gate Array
FSM Finite State Machine
1O Input/Output
IR Instruction Register
JTAG Join Test Action Group
LSB Least Significant Bit
MSB Most Significant Bit
PDL Program Description Language
SoC System on Chip
TAP Test Access Port
TCK Test Clock
TDI Test Data Input
TDO Test Data Output
TMS Test Mode Select
TRST Test Reset
Trang 10TÓM TẮT KHÓA LUẬN
Trong bài báo cáo này, nhóm sẽ trình bày các kiến thức liên quan đến việc thiết
kế lõi điều khiển JTAG TAP, lõi vi xử lý RISC-V RV32I, sự kết nối giữa hai thiết kế
ké trên, hỗ trợ việc nạp lệnh vào RISC-V thông qua JTAG và kết quả thực hiện đềtài Nội dung của toàn bộ của bài báo cáo bao gôm các chương sau:
Chương 1: Trình bày tông quan về dé tài khóa luận, các nghiên cứu liên quan
và mục tiêu của đề tài
Chương 2: Trình bày lý thuyết về giao thức JTAG
Chương 3: Trình bày quy trình thiết kế chỉ tiết, kết quả kiểm tra, mô phỏngTAP Controller.
Chương 4: Trình bày quy trình thiết kế và kiểm tra lõi vi xử lý RISC-V R V321.Chương 5: Trình bày chỉ tiết thiết kế tổng hợp
Chương 6: Trình bày kịch bản kiểm tra thiết kế tổng hợpChương 7: Kết luận
Nội dung của toàn bộ bài báo cáo này được trình bày trong 7 chương Mỗi một
chương sẽ trình bày chỉ tiết những nội dung được đề cập ở trên
Trang 11Chương 1 GIỚI THIEU TONG QUAN DE TÀI
1.1 Đặt vấn đề
Ngày nay, các thiết kế vi mạch có số lượng chân lớn ngày càng phô biến và mật
độ tích hợp các linh kiện trên một bo mạch ngày cảng tăng cao Di kèm với đó là vấn
đề kiểm tra, kiểm thử thiết kế trở nên phức tạp, cần được cải thiển với độ chính xác
cao và tốn it thời gian hơn Do đó, các phương pháp kiểm tra thiết kế dan được hoànthiện và tạo thành một hệ thống sỡ lỗi hoàn chỉnh Hệ thống này cho phép người dùngkiểm tra, gỡ lỗi trực tiếp trên thiết kế Hệ thống gỡ lỗi có thiết kế phức tạp và được
chia làm hai hệ thống chính: phần mềm và phần cứng Phần mềm được thiết kế nhằm
tạo nên một môi trường cho phép người dùng dé dàng kiểm tra gỡ lỗi Đối với phầncứng thì được thiết kế như một hệ thống SoC bao gồm cả thiết kế cần kiểm tra Hai
hệ thống này được thiết kế tách biệt hoàn toàn với nhau, dé hai hệ thống này có thégiao tiếp với nhau người ta thường sử dụng một chuẩn giao thức được gọi là JTAG.Nhiều hệ thống gỡ lỗi ngày nay chủ yếu sử dụng chuẩn giao thức JTAG này, nhờ có
nó nên nhiều phương pháp kiểm tra hiện này có độ chính xác cao và giúp tiết kiệmthời gian và chi phí khi kiểm tra
1.2 Các nghiên cứu liên quan
Ngày nay, giao thức JTAG được sử dụng rất phô biến, ứng dụng của nó hầu hết
nằm trong các hệ thống SoC, hệ thống gỡ lỗi Các nghiên cứu ứng dụng JTAG hầuhết đều có thiết kế theo chuẩn IEEE 1149.1 Hiện nay, trong nước ta chưa có bai viếtnghiên cứu ứng dụng JTAG cụ thể, tuy nhiên có một số bài viết giới thiệu về JTAG.Bài viết của tác giả Nguyễn Quân vào năm 2019 trên trang blog cá nhân, giới thiệu
về JTAG, ứng dụng và các kiến thức liên quan khác Ngoài ra, bài viết còn trình bày
ứng dụng lập trình bộ nhớ trên 3 chip tích hợp với giao thức JTAG, ứng dụng nay
gan tương tự với một hệ thống gỡ lỗi phan cứng Với các nghiên cứu ở nước ngoàihầu hết đều có ứng dụng cụ thể Như bài nghiên cứu có tên “A High-Performance
SoC Debug Platform” của nhóm tác giả Kuo-Kai Liu, Wen-Hsuan Hsu & Kuen-Jong
Lee được công bố vào năm 2015, nghiên cứu trình bay một hệ thống gỡ lỗi hoàn
Trang 12chỉnh được nhóm tác giả hoàn thiện Hệ thống này là một ứng dụng phô biến củaJTAG hiện nay.
Bên cạnh đó, trong thư viện các đề tài khóa luận đã tốt nghiệp của Khoa Kỹthuật Máy tính — Trường Dai học Công nghệ Thông tin cũng có một nghiên cứu về
JTAG-TAP hỗ trợ cho vi xử lý MIPS-32bits của tác giả Chướng Sec Váy Ở nghiên cứu này, nhóm sẽ dựa trên thiết kế của anh Chướng Sec Váy để đánh giá so sánh về
mức độ cải tiên của đê tài.
chương trình và gỡ lỗi của lõi vi xử lý RISC-V.
Xây dựng test-bench, test case dé kiểm tra hoạt động toàn bộ thiết kế Khi đãchắc chăn thiết kế hoạt động đúng, tiễn hành viết code cho module ArduinoNano nhằm điều khiển I/O port của FPGA
Hiện thực và tối ưu kết quả trên board mach FPGA Ở đây nhóm sử dụng boardmạch DE2 Cyclone II của tập đoàn Altera.
Bảng 1.1 So sánh thiết kế với khóa luận trước
Đặc điểm nghiên cứu | Khóa luận trước Thiết kế này
FPGA Virtex 7 DE2 Cyclone IITần số 55,6 MHz Cao hơn khóa luận trước
Chức năng Chỉ hỗ trợ debug | Hỗ trợ nạp lệnh và debug
Trang 13Chương 2 TONG QUAN VE GIAO THUC GIAO TIẾP JTAG
2.1 Giới thiệu tổng quan về JTAG
Giao thức JTAG là cách gọi ngắn gọn theo tên của nhóm tạo ra chuẩn giao tiếpnày Tên chính thức của chuẩn giao tiếp này là “IEEE Standard Test Access Port andBoundary Scan Architecture” Trong đó, hai nội dung chính được đề cập:
e Nội dung về TAP quy định giao tiếp và hoạt động của TAP trên chip
e Boundary Scan quy định một phương pháp và cách thức kiểm tra các kết nối bên
trong chip và các chân trên bo mach in.
JTAG là một giao thức được sử dụng trong việc kiểm tra, nạp chương trình và gỡ
lỗi các vi mạch số Nó cung cấp khả năng truy cập và điều khiển các thành phần nội
bộ của một hệ thống số, bao gồm vi xử lý, bộ nhớ và các thiết bị ngoại vi Giao thứcJTAG sử dụng các tín hiệu đồng bộ để truyền dữ liệu và kiểm soát trạng thái của cácthành phần TAG-TAP cho phép truy cập và điều khién các thành phan nội bộ của
một hệ thống số thông qua các tín hiệu và trạng thái đã đề cập Nó được sử dụng rộng
rãi trong việc nạp chương trình vào vi điều khién và FPGA kiểm tra lỗi và gỡ lỗi vimạch số, thậm chí trong việc phân tích và đọc lại các thiết kế vi mạch JTAG-TAPcung cấp khả năng truy cập đầy đủ vào các thành phần nội bộ của một vi mạch sé,bao gồm thanh ghi dữ liệu (data registers), thanh ghi chỉ thi (instruction registers),các mạch kiểm tra logic (logic test circuits) và các thành phần khác Nó cho phép lậptrình, đọc và ghi dữ liệu vào các thanh ghi, kiểm tra và điều khiển các tín hiệu nội bộ,thậm chí thay đổi cấu hình của vi mạch
Tính linh hoạt và khả năng truy cập mạnh mẽ của JTAG-TAP đã làm cho nó trởthành một công cụ quan trọng trong việc xây dựng, kiểm tra và gỡ lỗi các hệ thống
số phức tạp Nó được sử dụng trong nhiều lĩnh vực như thiết kế vi mạch, sản xuất,nghiên cứu và phát triên phân mêm nhúng.
Trang 142.2 Lịch sử phát triển
Vào những năm 80 của thé ki 20, mach in nhiều lớp, mạch tích hợp với số lượng
chân lớn có dạng đóng gói ở dạng mạng lưới như ball grid array hoặc pin grid array
và các bo mạch in có tích hợp số lượng lớn linh kiện ngày càng phổ biến Do đó,
khiến việc kiểm tra kết nối của chip trên bo mạch phức tạp, tốn nhiều thời gian và
khó sử dụng phương pháp đầu dò (probe) thông thường Bên cạnh đó, tại thời điểm
này, việc kiểm tra một bo mạch chủ yếu dựa vào hai phương pháp Bed-of-nails vàkiểm tra chức năng (function test) Bed-of-nails, tạm dịch là “nền đinh” Phương phápnày kiểm tra bo mạch bang cách đặt bo mach cần kiểm tra lên trên nền đỉnh hay còn
gọi là đầu do, tiếp xúc trực tiếp với các điểm kiểm tra trên bo mạch đề thực hiện việc
kiểm tra Kiểm tra chức năng là việc kiểm tra khả năng hoạt động của một linh kiệnbằng cách đưa các mẫu (giá trị) kiểm tra đến linh kiện cần kiểm tra và giám sát cácđáp ứng từ linh kiện này Việc chỉ sử dụng hai phương pháp trên làm thời gian kiểmtra lâu, chi phí cao Năm 1985, tô chức Joint Test Action Group được thành lập vàbat đầu phát triển một tiêu chuẩn giải quyết các van đề trên Giữa năm 1986 và 1988,tiêu ban kỹ thuật JTAG (JTAG Technical Subcommittee) đã phát triển và công bốmột nhóm các đề xuất về dạng chuẩn của boundary-scan Trong năm 1988, JTAGđược quyết định sẽ trở thành nền tảng của một tiêu chuẩn trong họ Bus kiểm tra(Testability Bus) va dự án P1149.1 được khởi động Vào thang 2 năm 1990, chuẩngiao tiếp này được phê duyệt lần đầu tiên và được tiếp tục chỉnh sửa, nâng cấp vàhoàn thiện Tháng 6 năm 1993, phiên bản IEEE Std 1149.1-1193 được chấp nhận vớinhững bổ sung thêm:
e Hai lệnh tùy chon là CLAMP và HIGH-Z.
e Cơ chế cho phép chuyển đổi chế độ hoạt động của một thành phan
(component) tương thích chuẩn này sang một cơ chế DFT khác Tháng 9 năm
1994, phiên bản IEEE Std 1149.1b-1994 được chấp nhận Bản này bổ sungthêm phụ lục về ngôn ngữ mô tả Boundary-scan (Boundary-Scan Description
Language).
Trang 15Phiên bản mới nhất được sử dụng cho tới ngày nay là IEEE 1149.1-2013 Phiênbản này có nhiêu bô sung hơn so với các phiên bản trước đó:
Phụ lục D trình bày thêm các ví dụ cho BSDL và PDL khi sử dụng cùng nhau.
Phụ lục E đưa ra một số ví dụ pseudo-code về việc thực thi của lệnh iApply
trong PDL, một lệnh phức tạp nhất trong các lệnh mới của PDL
Một số chỉnh sửa bổ sung khác
Ứng dụng
So với các phương pháp kiểm tra trước đó, phương pháp sử dụng giao thức giaotiếp JTAG có nhiều ưu điểm hơn như:
Số lượng chân giao tiếp ít
Hoạt động của giao thức đơn giản làm cho thiết kế phần cứng cũng như lậptrình phần mềm đơn giản hơn
Tính linh động, cho phép tích hợp nhiều chức năng riêng.
Với những ưu điểm trên, JTAG được sử dụng rộng rãi với nhiều mục đích như:
Program - Nạp chương trình cho chip.
Chip test - Kiểm tra kết nói và hoạt động bên trong chip sau khi chế tạo thông
qua việc điều khiển các thành phan DFT của chip
Debug - hoạt động của chip trong quá trình phát triển phần mềm, firmware vàsoftware.
Connection test - Kiểm tra kết nói khi chip tích hợp trên bo mạch in
Trang 16Chương 3 THIẾT KE LOI DIEU KHIỂN JTAG - TAP
3.1 Tống quan thiết kế JTAG
Hình 3 1 So đồ thiết kế chuẩn giao tiếp JTAG
Trang 17Kiến trúc của chuẩn giao tiếp JTAG bao gồm các thành phan chính sau đây:
© Các chân giao tiếp JTAG được gọi là TAP bao gồm các chân: TCK,
TMS, TRST, TDI, TDO.
e TAP Controller- bộ điều khiển chính của thiết kế Các tín hiệu điều
khiển từ bus master sẽ được bộ điều khiển này nhận và tạo ra các tín
hiệu điều khiến cho các thanh ghi và các thành phần khác.
e Thanh ghi lệnh — IR, thành phan lưu trữ lệnh điều khiển của JTAG.
e Tập thanh ghi di liệu — DR, bao gồm nhiều thanh ghi với các mục
đích khác nhau:
o BYPASS register là thanh ghi 1-bit, cho phép dịch dữ liệu bỏ
qua chip cần kiểm tra
o DEVICE ID register là thanh ghi 32-bit dữ liệu, lưu thông tin
cua chip o Boundary scan register — BSR, được đặt tại vi trí
giữa các ngõ vao/ra của core logic va các ngõ vao/ra cua chip.
Mục đích chính của thanh ghi nay là kiểm tra kết nối hoặchoạt động cua chip.
o Các thanh ghi dữ liệu khác có mục đích riêng tùy thuộc vào
mục đích kiểm tra của người dùng Số lượng của các thanh ghi này không có định tùy vào thiết kế của từng chip Ngoài
các thanh phần đã nêu như trên, thiết kế còn có một số thànhphần cơ bản hỗ trợ việc điều khiển như mux, demux, flip-flop,tri-state, Thiết kế giao thức JTAG dựa trên chuẩn thiết kếIEEE 1149.1 đảm bảo thiết kế có thể tích hợp được nhiềuchip, ngoài ra còn giúp việc hiện thực thiết kế nhanh chóng
và chắc chăn ở từng công đoạn.
Trang 183.1.2 Nguyên lý hoạt động cơ bản của JTAG
Logic JTAG là thành phan thụ động sẽ thực thi các hoạt động theo điềukhiển của một bus master Bus master thực thi hai tác vụ chính sau đây:
e Bus master sẽ lái TCK va TMS dé điều khiển TAP Controller, cu
thé la may trang thai trong TAP Controller.
e Bus master sẽ lái TCK va TDI dé dich từng bit dit liệu nối tiếp từ
TDI vào thanh ghi đang được chọn va từ thanh ghi đang được chon
ra TDO Hoạt động dịch nối tiếp từng bit vào và ra các thanh ghi
còn được gọi là xử lý quét (Scan Operation) Các thanh ghi được
chọn là một trong các thanh ghi sau:
o Thanh ghi lệnh
o Thanh ghi BYPASS
o Thanh ghi DEVICE ID
o Thanh ghi BSR
o Các thanh ghi dữ liệu khác
Việc điều khiển logic JTAG tập trung chính vào câu hỏi "Làm thế nào busmaster có thể nạp và đọc giá trị của các thanh ghi?" Logic JTAG sẽ hỗ trợ mộtmáy trạng thái dé thực hiện điều này Chi tiết về máy trạng thái này sẽ đượctrình bày ở chương kế tiếp
3.2 TAP-— Test Access Port
TAP được biểu hiện trong Hình 3.2 là tập hợp các chan I/O của JTAG giúpgiao tiếp với các thiết bị khác, bao gồm các tín hiệu: TCK, TDI, TMS, TDO, TRST(chân tín hiệu này có thé tùy chỉnh theo mục đích thiết kế) Chúng được điều khiển
bởi TAP.
Trang 19Giao thức JTAG được kết nói với bus master chủ yêu thông qua TAP Thành
phần này là các chân tín hiệu giao tiếp trực tiếp với bus master, JTAG bao gồm các
tín hiệu sau:
e TCK - Test Clock, đầu vào cung cấp xung clock cho JTAG
© Cung cấp xung clock cho các thành phần như TAP Controller
và các thanh ghi bắt buộc được quy định trong IEEE 1149.1.TCK sẽ giữ cỗ định ở mức thấp (0) hoặc cao (1) trong suốtquá trình bus master rảnh hoặc đang bận xử lý tác vụ khác.
Trong quá trình bus master điều khiển giao thức JTAG, xung
clock TCK sẽ có duty cycle là 50%.
e TMS - Test Mode Select là tín hiệu điều khiển chế độ hoạt động
của JTAG.
© Đầu vào này cung cấp tín hiệu điều khiển cho TAP
Controller TAP Controller sẽ dựa vao giá tri tín hiệu này đểchuyền đổi các trạng thái hoạt động của máy trạng thái
TAP Controller ghi nhận giá tri tại cạnh lên của TCK.
10
Trang 20o Tín hiệu sẽ giữ ở mức 1 nếu không sử dụng hoặc trong suốt
quá trình TRST tích cực.
e TRST- Test Reset, là chân reset bat đồng bộ tích cực mức cao Tín
hiệu này có thé có hoặc không trong giao thức JTAG, tủy vào mụcđích thiết kế:
o TAP Controller sẽ giữ ở trạng thái TEST_LOGIC RESET
khi tín hiệu TRST tích cực.
o Tín hiệu này chi reset logic test, không reset bat cứ logic hệ
thống nào
o_ Tín hiệu giữ ở mức logic 0 nếu không sử dụng
e TDI- Test Data Input là ngõ vào dữ liệu nối tiếp của thanh ghi lệnh
hoặc các thanh ghi dữ liệu:
o Được lay mẫu tại cạnh lên của TCK
o Giữ ở mức 1 nếu không sử dụng
e TDO - Test Data Output là đầu ra dữ liệu nối tiếp của thanh ghi
lệnh hoặc các thanh dữ liệu:
© Được tải theo cạnh xuống của TCK Một số lưu ý quan trọng
đối với TAP khi thiết kế giao tiếp JTAG: TAP Controller sẽ
ghi nhận mẫu các tín hiệu ngõ vào tại cạnh lên của TCK và
lái ngõ ra TDO bằng cạnh xuống của TCK; các chân tín hiệuTMS, TDI, TRST sẽ được giữ ở mức logic 1 nếu không sửdụng.
11
Trang 213.3 Bộ điều khiển TAP — TAP Controller
3.3.1 May trạng thái
TAP Controller là một máy trang thai (FSM), có xung clock chính là TCK
và tín hiệu điều khiển là TMS So đồ FSM của TAP Controller được mô tảnhư hình bên dưới.
Hình 3 3: Sơ đồ máy trạng thái của TAP Controller
Sơ đồ máy trang thái cho thay hai quá trình điều khiển trạng thái thườngđược gọi là quá trình điều khiến thanh ghi dữ liệu và quá trình điều khiến thanhghi lệnh Các trạng thái được chuyền đổi tại thời điểm cạnh lên của TCK va
12
Trang 22điều kiện chuyên trạng thái dựa vào giá trị của TMS Hai quá trình điều khiểnthanh ghi đều có các trạng thái và ý nghĩa tương tự nhau:
e Trạng thai Select (DR/IR) — Scan, là trạng thái trung gian cho phép
chọn điều khiến các thanh ghi DR hoặc IR Việc chọn điều khiểncác thanh ghi DR phụ thuộc vào lệnh hiện tại có trong IR.
e Trạng thái Capture — (DR/IR), là trạng thai cho phép nạp song song
các thành ghi DR hoặc IR Dữ liệu được nap là dir liệu mà ngườithiết kế mong muốn sẽ được đọc thông qua TDO Dữ liệu này cóthé là một giá trị cố định, lấy từ logic hệ thống, hoặc lấy từ logickiểm tra
e Trạng thai Shift — (DR/IR), là trang thái dich dữ liệu vào DR/IR
thông qua TDI va dịch dữ liệu từ DR hoặc IR ra TDO.
e Trang thái Exit 1 - (DR/IR), là trang thái trung gian có thé chuyên
qua trạng thái tạm dừng dịch dữ liệu trên (DR/TR) hoặc thoát khỏi
quá trình điều khiến thanh ghi Tại trạng thái này các thanh (DR/IR)phải giữ nguyên giá trỊ.
e Trạng thai Pause — (DR/IR), tương ứng với tên của trạng thái này là
trạng thái tạm dừng quá trình dịch dữ liệu Các giá trị trong thanh
ghi dịch buộc phải g1ữ nguyên giá tri.
e Trạng thai Exit 2 — (DR/IR), là trạng thái trung gian Từ trạng thái
này, máy trạng thái có thé quay lại thực thi tiếp việc dich dữ liệutrên thanh ghi hoặc thoát khỏi quá trình điều khiển dịch thanh ghi
e Trang thái Update — (DR/IR), là trạng thái cho phép lưu lại giá tri
của thanh ghi được chọn và cũng là trạng thái cuối cùng của quá
trình điều khiển thanh ghi.
13
Trang 233.3.2 Quá trình điều khiển thanh ghi
Giao thức JTAG hoạt động chủ yếu dựa vào hai quá trình điều khiến thanh
ghi Mỗi một lệnh kiểm tra khác nhau thì sẽ có quá trình điều khiển khác nhau,
tuy nhiên các quá trình điều khiển đó đều có chung một quá trình Quá trình
này được biêu hiện ở sơ đồ bên dưới.
Thanh ghi Giá trị nap là một giá trị có
dịch IR định hoặc lây từ logic hệ thông
hoặc lây từ logic kiêm tra
Nap dữ liệu (Capture_*)
Cac gia trị được sử dung cho
cac logic khac
Hình 3 4: Sơ đồ nguyên lý quá trình điều khiển thanh ghỉQuá trình điều khiến thanh ghi bat đầu từ trạng thái chọn thanh ghi (Select
DR/IR — Scan), khi một thanh ghi được chon thì ngõ vào và ra 1-bit của thanhghi dịch trong loại thanh ghi đó sẽ được kết nối với TDI và TDO của TAP
Tiếp đó là trạng thái nạp dữ liệu (Capture — DR/IR), dữ liệu được nạp làmột giá trị cô định hoặc lay từ core logic hoặc lấy từ logic kiểm tra khác Dữliệu này nạp song song vào thanh ghi dịch, tạo tiền đề dữ liệu trước khi dịch
và đọc ra hệ thông
14
Trang 24Tai trạng thái dich dữ liệu (Shift - DR/TR), các lệnh kiểm tra có sự khác biệt
về quá trình điều khiển nam tại trạng thái này Tùy thuộc vào mục đích củalệnh mà số lượng bit được dich và đọc ra từ hệ thống sẽ khác nhau, như lệnh
có số lần lặp ít nhất phụ thuộc vào số chân I/O của chip Hoặc như lệnhIDCODE, lệnh nay cho phép JTAG đọc ra hệ thống một dữ liệu 32-bit chứacác thông tin về chip, lệnh này khi điều khién tại trạng thái này sẽ lặp lại 32lần tương ứng với độ rộng dữ liệu của nó
Sau khi kết thúc quá trình dịch, tại trạng thái cập nhật (Update — DR/IR),cập nhật giá trị từ thanh ghi dịch vào thanh ghi giữ Những dữ liệu được đọc
từ thanh ghi giữ sẽ được sử dụng cho các logic khác.
Quá trình này được mô tả rõ hơn tại Hình 3.4, trong hình là waveform điều
khiến thanh ghi lệnh IR.
Trang 25Đề bắt đầu quá trình điều khiển thanh ghi IR, thì bus master sé lái tin hiệu TMS sao cho FSM chuyền sang trạng thái Select IR — Scan trong 3 chu kỳ đầu.
Tiếp đó, tại chu kỳ 4 FSM chuyền sang trạng thái Capture IR để nạp
giá trị “0101” vào thanh ghi dich IR Tiếp theo, từ chu kỳ 5 đến chu kỳ 8
thanh ghi dịch IR sẽ dịch phải nối tiếp dựa vào giá trị nhập vào từ TDI và xuất ra TDO (dữ liệu xuất ra TDO thay đổi tại cạnh xuống TCK).
Cuối cùng sau khi kết thúc quá trình dịch dữ liệu ra hệ thống, từ chu
kỳ thứ 9 đến chu kỳ 11, cập nhật giá trị từ thanh ghi dich IR vào thanh ghi lưu giữ IR và kết thúc quá trình điều khiển thanh ghi IR Thanh ghi lưu
g1ữ IR có giá trị là “0010” — opcode của lệnh IDCODE.
Quá trình điều khiển tùy thuộc vào từng lệnh mà sẽ có sự khác biệt Tuy nhiên, mọi quá trình điều khiến đều phải thực thi đúng theo như quá
trình chung trên dé đảm bảo tính chính xác cũng như mục đích chính của
giao thức JTAG.
3.3.3 Hiện thực TAP Controller
Trước khi hiện thực một FSM, ta cần một sơ đồ chuyên trạng thái như Hình3.4 trên và Bảng 3.1 các tín hiệu điều khiển hoạt động phụ vào FSM
16
Trang 26TAP Controller ngoai việc tao ra các tín hiệu điều khiển như trong Hình
Hình 3 6 I/O ports cua TAP controller
3.6, nó con điều khién các tín hiệu như Reset_n, SelectIR và EnableTDO
Bảng 3.1 Các tín hiệu điều khiển TAP controller
TT | Tên tín hiệu Chức năng
Reset các logic khi bộ điều khién TAP trong trạng thái
1 reset reset (TEST_LOGIC_RESET)
Tích cực mức cao
Tín hiệu chọn thanh ghi IR
2 | select Ir scan | Dùng đề điều khién các mach chọn kết nối IR hoặc DR
đến TDI hoặc TDOTín hiệu cho phép ngõ ra TDO được lái bởi logic bên
3 | tdo padoe_o Bi: chip
Nêu tín hiệu nay không tích cực thì ngõ ra TDO phải là high-Z
4 shift_ir Tin hiệu cho phép thanh ghi dich IR hoạt động
5 capture_ir Tín hiệu nap dữ liệu ban đầu cho IR
6 update_ir Tín hiệu báo hiệu thời điểm lưu lại giá trị trên thanh
ghi dịch IR
7 shift_dr Tín hiệu cho phép thanh ghi dich DR hoạt động
8 capture_ dr Tín hiệu nạp dữ liệu ban đầu cho DR
17
Trang 28Tín hiệu reset_n in (tín hiệu reset, tích cực mức thấp): Chỉ cho phép tíchcực mức thấp ở trạng thái TEST - LOGIC - RESET.
Tín hiệu select_ir (tin hiệu lựa chọn thanh ghi lệnh): tích cực ở các trạng thái thao tác trên thanh ghi lệnh.
Tín hiệu enable_tdo_ In (tín hiệu cho phép lái dữ liệu vào qua TDO): cho
phép tích cực ở 2 trạng thái SHIFT_DR & SHIFT_IR Vì khi dữ liệu được shiftvào Logic_JTAG thông qua TDI thi Logic JTAG cũng mong muốn shift đữ liệunày ra ngoải thông qua TDO nên ở 2 trang thái này thì tín hiệu enable_tdo_1n sé tích cực.
Tín hiệu shift_ir: lựa chọn thanh ghi dich dé tiến hành dich dữ liệu
Tín hiệu capture ir: tín hiệu này cho phép nạp dữ liệu ban đầu vào thanhghi dich.
Tín hiệu update ir: tín hiệu nay cho phép nạp dữ liệu từ thanh ghi dịch vàothanh ghi lệnh sau khi kết thúc quá trình dich ở thanh ghi dịch
Tín hiệu shift dr in, capture dr, update dr: tương tự 3 tín hiệu bên trên,
nhưng 3 tín hiệu này được thực hiện ở thanh ghi dir liệu.
19
Trang 293.3.4 Thanh ghi lệnh — Instruction Register (IR)
e Các yêu cầu đối với thanh ghi lệnh (IR)
Thanh ghi lệnh IR lưu trữ lệnh kiểm tra của giao thức JTAG, phần lớn
các chip tích hợp giao thức JTAG dùng thanh ghi lệnh IR với độ rộng tối đa3-bit hoặc lớn hơn Trong thiết kế này, sử dụng thanh ghi lệnh IR có độ rộng
4-bit với các lệnh được miêu tả cụ thé ở bảng 3.3
Bảng 3.3: Các lệnh kiểm tra được sử dụng trong thiết kế
: `" Œ ` cập dé chuyền test data từ
bên ngoài chip thông qua
boundary outputs và nhận test data bên trong chip thông qua boundary
LOAD Nạp dữ liệu lên thanh ghi
BS trước khi tải lên lệnh
EXTEST.
20
Trang 30Truyền dữ liệu nôi tiếp
qua IC từ TDI sang TDO
mà không ảnh hưởng đến
hoạt động của IC.
Giá trị của Opcode[3:0] được nạp vào thanh ghi lệnh IR thông qua TDI Sau đó, được giải mã thông qua khôi Decoder nhắm tạo ra các tín hiệu điêukhiến các thanh ghi dit liệu
Khi thiết kế thanh ghi lệnh cần đáp ứng các yêu cầu sau:
Một thanh ghi dịch dữ liệu nối tiếp, có ngõ vào dé nạp giá tri
Dữ liệu vào và ra trong IR không được phép dao thứ tự bit.
Phải nạp 2-bit LSB là “01” trong trạng thái Capture — IR (giúpphát hiện lỗi kết nối của đường dịch dữ liệu nối tiếp trên bomạch).
21
Trang 31Ngoài yêu câu khi thiệt, còn có một sô yêu câu đôi với hoạt động của
thanh ghi lệnh IR như sau:
e Khi một lệnh mới được nap đến ngõ ra IR thì hoạt động của lệnh
trước đó phải dừng.
e Dịch theo cạnh lên TCK.
e Ngõ ra được lái tại cạnh xuống TCK
Khi TAP tại trạng thái Test-Logic-Reset, ngõ ra song song IR phải được
nạp vào giá trị của lệnh IDCODE Nếu thiết kế không hỗ trợ thanh ghi
DEVICE ID (không hỗ trợ lệnh IDCODE) thì IR phải nạp lệnh BYPASS tại
cạnh xuống TCK Nếu thiết kế JTAG trên có hỗ trợ chân TRST thì khi tín hiệunày tích cực, giá trị lệnh IDCODE hoặc BYPASS sẽ được cập nhật bất đồng
bộ cho IR.
e Hiện thực thanh ghi lệnh IR
Dựa vào các yêu câu đôi với thiệt kê và hoạt động đã nêu trên Thiét
kế cell được biểu thị tại Hình 3.7
Shift In
Hình 3 7 Sơ dé khối thiết kế cell 1-bit của IR
22
Trang 32Thiết kế cell 1-bit cua IR bao gồm 2 flip flop và 3 multiplexer Vớiflipflop 1 ở trong hình được dùng với mục dich dich dữ liệu nối tiếp, thườnggọi là flip flop dịch Flip flop 2 còn lại được gọi là flip flop giữ, với mục đích lưu lại giá trị sau khi dịch.
Dé tạo thành một thanh ghi lệnh IR hoàn chỉnh, chỉ cần ghép các celllại với nhau như Hình 3.8 Khi đó các flip flop dịch và flip flop giữ sẽ tạo thành hai thanh ghi tương ứng là thanh ghi dịch và thanh ghi giữ.
Theo như yêu cầu đối với thiết kế thanh ghi IR gồm 16 lệnh thì số cell
được sử dụng và kết nối như Hình 3.8 trên là 4 cell Hai bit cuối (LSB) sẽ được
gan giá một giá tri cố đinh là “01” vào Data in của cell[1] và cell[0] và các bitcao còn lại sẽ được gan giá trị tùy ý Ngoài ra, Data out của IR sẽ được kết nốiđến khối Instruction Decoder giải mã dé tạo ra các tín hiệu điều khiển nhưSelectDR, Mode.
3.3.5 Thanh ghi dữ liệu — Data Register (DR)
e Boundary Scan Resgister (BSR)
BSR là thành phan được sử dung nhiều nhất trong giao thức JTAG,
đóng vai trò quan trọng trong việc kiểm tra thiết kế Giả sử có ba chip
đều được hỗ trợ giao thức JTAG, được kiểm tra hoan tất và các chip được kết nối như Hình 3.8.
23
Trang 33Scan Out
Data Out
Data In
CaptureDR ShiftDR TCK UpdateDR
Mode
Sean In
Scan In
Data In
CaptureDR Data Out
ShiftDR BSC Scan Out
UpdateDR TCK Mode
Hình 3 8 Sơ đồ thiết kế và giao diện của BSC
Thiết kế của BSC tương tự như thiết kế của thanh ghi lệnh IR, tuy nhiênBSC có thêm một multiplexer được điều khién bởi tín hiệu Mode, tín hiệu này
được điêu khiên bởi khôi Instruction Decoder.
24
Trang 34Data in{n-1]
CaptureDR
ShiftDR UpdateDR
Hình 3 9 Sơ đô thiết kế BSR
Các BSC được đặt giữa các chan I/O của chip và lõi chip, ngõ vào của
chip và ngõ ra của lõi chip được kết nối trực tiếp với Data in của BSC Và ngõ
vào của lõi chip và ngõ ra của chip sẽ được kết nối trực tiếp với Data out củaBSC Bang cach két néi nhu vậy có thé kiểm tra kết nối hoặc hoạt động củachip thông qua giao thức JTAG.
25
Trang 35e Bypass Register (BR)
BR là một thanh ghi một bit, được hình thành với mục đích nhằm rútngắn thời gian kiểm tra kết nối giữa các chip Giả sử với kết nối các chip ởtrên, để kiểm tra chip#2 cần phải dich dit liệu nối tiếp từ chip#1 đến chip#3 rangoài bus master Như vậy với số lần dịch mỗi bit ra ngoài tương ứng với sốchân I/O của chip cũng như là số chu kỳ máy là 12 (chip#1) + 8 (chip #2) +
Hình 3 10 Giao diện kết noi kiểm tra chip#2, bỏ qua chip#1 & chip#3
Dé điều khiển TDI và TDO của TAP chip#1 và chip#3 có được kết nốinhư trong hình trên, cần phải nạp vào giá trị lệnh BYPASS cho thanh ghi lệnhcủa hai chip#1 và chip#3 Nhu vậy, mục đích chính của chúng ta là kiểm tra
chip#2, bây giờ được rút ngắn thời gian hơn là 1(chip#1) + 8 (chip#2) + 1
(chip#3) = 10 chu kỳ máy.
26
Trang 36ShiftDR
TDI
TCK
Hình 3 11 Sơ dé thiết kế thanh ghi BR
Trong cấu trúc của JTAG, có 6 lệnh được hỗ trợ bởi TAP, đó là cáclệnh EXTEST, SAMPLE/PRELOAD, IDCODE, DEBUG, MBIST, BYPASS.
Các lệnh này được lưu trong một thanh ghi lệnh IR có độ rộng 4-bit Quy tắc
đánh địa chi ở đây là lệnh EXTEST: 0000 (toàn bit 0), lệnh BYPASS : 1111(toàn bit 1) và các lệnh còn lại được đánh địa chỉ tùy ý của người thiết kế Ở
Bảng 3.3 cũng đã thể hiện rõ từng quá trình làm việc của lệnh đó
3.3.6 Quy trình tai lên một lệnh
Trang 37Thanh ghi lệnh (IR) gồm 2 thành phan chính là thanh ghi dịch vàthanh ghi ngõ ra Thanh ghi lệnh sẽ chịu sự điều khiển của 3 tín hiệu:capture_ir, shift_ir và update_1r Các bước hoạt động của thanh ghi lệnh chi tiêt như sau:
e Bước 1: Nạp giá trị “4’b0101” song song từng bịt vào thanh ghi
dịch để phần cứng bên ngoài có thể sớm phát hiện lỗi trên đườngtruyền nếu có Lúc này chỉ có tín hiệu capture ir tích cực
e Bước 2: Tín hiệu shift_ir tích cực, dữ liệu từ TDI sẽ được dịch
qua thanh ghi dịch từ MSB đến LSB Và sau đó dữ liệu ở thanhghi dịch sẽ được chuyên ra ngoài qua TDO
e Bước 3: Tín hiệu update ir tích cực, ở trạng thái nay tín hiệu
shift_ir và capture_ir sẽ không còn tích cực nữa, lúc này giá trị
ở thanh ghi dịch sẽ được cô định và sẽ được chuyền đến thanhghi ngõ ra (thanh ghi chốt dữ liệu) khi TCK_n tích cực (TCK
tích cực mức thấp)
28
Trang 383.3.7 Sơ đồ nạp lệnh trong TAP
Trang 39Shift Register shifts to the | lido_pad_o <= LSBUIR] right; MSB[SR] = tdi_pad_¡ ~