Khóa luận lần này hướng đến giải quyết bài toán xây dựng cơ chế bảo mật thông tin và phòng chống tan công trong lĩnh vực IoTs với giải thuật mã hóa được chọn là Advanced Encryption Stand
Trang 1ĐẠI HOC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
NGUYEN THÀNH LONG - 19521793
KHOA LUAN TOT NGHIEP NGHIEN CUU, THIET KE VA MO PHONG VI DIEU
Research, design and simulate microcontroller 32-bit with
integrated hardware-based encryption
KY SU NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN
TA TRI DUC
TP HO CHÍ MINH, 2024
Trang 2LỜI CẢM ƠN
Là sinh một sinh viên đã hoàn thành khóa luận tốt nghiệp, cá nhân tôimuốn gửi lời cảm ơn chân thành đến Đại học Quốc gia Thành phố Hồ Chí Minh,đặc biệt là quý thầy cô tại khoa Kỹ Thuật Máy Tính - Trường Đại học CôngNghệ Thông Tin vì đã tạo ra môi trường học tập rất sôi nổi và năng động cùngvới những kiến thức quý giá, những kỹ năng và đặc biệt là kinh nghiệm mà cácthầy cô đã truyền đạt trong suốt những năm qua là hành trang quý báu cho cánhân em sau này và đặc biệt là đóng góp cho sự thành công của khóa luận tốt
nghiệp này.
Tôi đặc biệt gửi lời cảm ơn sâu sắc đến Thạc sĩ Tạ Trí Đức — Giảng viên
bộ môn Thiết kế vi mạch và phần cứng của khoa Kỹ Thuật Máy Tính, TrườngĐại học Công Nghệ Thông Tin là người hướng dẫn tận tình tạo nên sự thànhcông của khóa luận tốt nghiệp lần này Cảm ơn thầy vì sự chỉ bảo tận tình,những lời động viên và đặc biệt là những định hướng về kiến thức và kỹ năngchuyên môn cần thiết Chúc thầy sức khỏe tốt và thành công trong cuộc sống
Sự hoàn thành khóa luận tốt nghiệp lần này là kết tỉnh của đam mê và nỗlực Tuy nhiên, vì còn giới hạn về kiến thức, kỹ năng và cả thời gian nên khó tránh khỏi những sai sót nên những ý kiến phản hồi luôn là điều cần thiết.
Một lân nữa, tôi xin chân thành cảm ơn.
TP Hồ Chí Minh, ngày 28 tháng 06 năm 2024
Sinh viên thực hiện
Nguyễn Thành Long
Trang 3MỤC LỤC
Chương 1 TONG QUAN - -52- 52 SESE2EE9EE2E12E12E1211211211211211211211211 111.11 xe 3
1.1 _ Giới thiệu và lý do chọn đề tài - 2-52 s+Se+E++EzEzErkrkrrrrrerrrree 3
1.1.1 Tinh hình nghiên cứu ngồi nO - - 5 + ++s*+*cssereereeereerrres 3
1.1.2 Tinh hình nghiên cứu trong nue 5 5< scsxksseeseeeeeeske 41.1.3 Lý do chọn đề tài - -©22+52 E2 EE2E211271211211 7121111 1E xe 5
1.2 Tổng quan phương pháp thực hiện và mục tiêu dé tài - 51.3 Giới thiệu về hệ thống các thiết bị IoTs -2¿©¿2c+2cx+2zxzzxesred 61.4 Giới thiệu về System-on-chip (SoC) -: 2: ©+5++2x++£x+zzxsrxrerxesred 7Chương 2 LOI XỬ LÝ ARM CORTEX-M0 -© 2 2 ©5£+£+£+e£xe+zsvree 9
Qed GAOT nh e 9 2.2 Lõi xử lý ARM Cortex-MO0 từ ARM DesignStart -+ + 5< «+5 10 2.3 Nested Vectored Interrupt ContrỌÏer -.- - s- s «+ «+ £+eeseesseeseesse 11 2.4 Dcbug ỂNH T ế ss Ố, QQ.Q TQ HH re 13
“HUY 13 2.4.2 Serial Wire Debug (SW) LH HH HH HH ngư, 13 2.4.3 AHB Debug, - SH TH HH HH kg 14 2.4.4 CoreSight Debug: - án TT ng ngư 14
Chương 3 THIẾT KE HỆ THĨNG 2-22 +++++£x++£x++zxtzrxzreee 15
Trang 43.2.2 AHB default sÏave 2101110111111 11g 553555111 reg 19
3.2.3 AHB slave multiplexer 5 <2 E1 2E *1E*kE ky 20
3.2.4 AHB GPIO - HH HH HH HH HH Hàng 21 3.2.5 AHB to external SRAM Inf€TÍAC€ Gà kg rưy 22
3.3 Các thành phần thuộc CMSDK APB sub-system 2- 5552 24
3.3.1 Cau chuyển đổi AHB sang APB - 2 2+cz+E+EzEzErrrreres 26
3.3.2 APB timer G Ăn nh nh ng Hàn nhiệt 27 3.3.3 APB UART - Ăn TH TH ngàng ngàn nh nệt 28 3.3.4 APB dual tImeT - - cv HH HH nh nh Hy 30 3.3.5 APB watChdOg c c5 ng HH rn 32 3.3.6 APB slave IUX c- Q9 ng tr 33 3.3.7 APB test SÏaV€ HH ng TH TH HH nh tr 34 3.3.8 AESINOE.mmr ST vem | / -S5 34
3.4 Các thông tin khác về hệ thống - 2-2 2 +2 +++£++E++E++x++xzrzrszree 39
3.4.1 Memory ImaD 5 (1E vn ng ng nàn 39 3.4.2 Clock và Ñ€S€( LH HH HH HT HH ng nh, 43 3.4.3 Interrupts Và ©V€II - Ghi ưưn 44
3.4.3.1 Ín†€TTUPIS S.Ă Ăn HT HH HH ky45
3.4.3.2 — EV€T Ă HH TH TH TH ngự46
Chương 4 THỰC HIỆN KIEM TRA THIET KE BANG MÔ PHỎNG 47
AL Quy trình kiểm tra occ ccsessessessessessessessessessessessessessesscssessssseasesseasesees 47
ha 47
“6 48 4.1.3 (HT {©S(S Q.0 nnnnnnnnnnkkkkvvv 49
Trang 54.1.4 apb_muX_ f€SfS SG SH HH Hy 50
4.1.5 _ sleep_demo 5 kg Tư 50
4.1.6 dualtimer_demo - EEEEEEE E1 51
"` ` 52
4.2 _ Thực hiện mô phỏng - - 5 «+ + 1k1 HH ngư 33
4.2.1 Môi trường thực hiện mô phỏng - - 55555 + + ++seeseeeseeeess 53 4.2.2 Bién dich vn 54 4.2.3 Biên dich test COde€ 0 ccccccecesssccccessssccceecssseeeccesssseeceeeessseeeceestseeeeees 56 4.2.4 Chạy mô phong ou cee eeccescesseeeneesseeeeseceeesenecesceeeaeeeseeeeeeseeeeeeeseaees 57
4.3 Kết quả mô phong veececceccccecscesscsessessessesssesessessessessesesssessessssessessssessessesseesess 58
=“¬ DR 0 (6) 0 C0 43 59 4.3.2 timer (CÍTIV©T f€S{S - CC CC cv ve 61 4.3.3 dhry đ mm yo aeen Ì 63
4.3.5 defaul( sÏaVes_ f€S(S - << ng 31111 re 68 4.3.6 apb_muUX_ f€SfS Ặ.QQQH HnHHHnkrưy 70 4.3.7 watchdog €ImO - G9 HH rưy 72 4.3.6 sleep_ demo dc kh HH HH TT TH TH Hy 74
4.3.9 — self resef_©IHO ng kkvkv vế 76
4.3.10 01051113119) 0912211195 Z aAầiầaầầaầđdid Hi
4.3.11 B3120111308:002727277 80
4.3.12 — AESIP HH HH» HH HH HH HH HH 83
Chương 5 THỰC HIỆN TONG HỢP VÀ ĐÁNH GIÁ THIET KÉ 87
5.1 _ Thông tin về quá trình hiện thực thiết kế 2-2 2 22 s+sz+sz+£z+s+2 87
Trang 65.1.1 Analysis & Synthesis 00 ce ceecescccsnccescecenececeeseecseeeseeceseeeseessaeeeseeees 87
5.1.2 Fitter (Place & ROUI€) -G 01111110 11111110 111111182111 tr, 87
5.1.3 AssembÏeT SH HH TH TT HH nh 88 5.1.4 Timing Analysis ae Ú 88
5.1.5 Clock COnSTAITIS G SG Hngnnưưn 89
5.2 Kết quả tổng hợp -:- + ++SESk‡EkEEESEEEEEEE1EE121121121121111 1.1.1 xe 90
5.2.1 Analysis & Synth€SIS - Ăn Tnhh nếp 90 5.2.2 Timing AnaÌYSIS G SH HH HH kg cry 93
SP.) 09.1011 — 4 107
ˆW PA) i2 8300 0n 4 107 A.2 Quy trinh MA Oa -adg5 107 A.3 QUY trình g1ải mã - G5 1 TH ng ni, 109
Trang 7DANH MỤC HÌNH
Hình 2.1: ARM Corfex-ÌMŨ G5 ng nh ng He 10 Hình 2.2: ARM Cortex-MO từ ARM DesignStart - - 555cc s+vsssereeres 11
Hình 3.1: FPGA sySf€1m -. ó5 + ki HH ng 15
I0) 20» s0 (803/1ï120 00007 .a 5 16 Hình 3.3: System Controller - + 2c 3311831183911 911 11 91119 vn ng 18 Hình 3.4: AHB default SÏVe -ó- G1 HH nh ng ng nh ni r 20 Hình 3.5: AHB slave muX - . G- s HH TH TH TH HH tr 20
Hình 3.12: APB UART ĐbuffGTINE -.- 6 c1 2311211211 9119 119111011 ng nu ey 29 Hình 3.13: APB dual tÍImeT - ó- G6 c2 111911211 91191 1v ng nh ng nh ngờ 31 Hình 3.14: APB watchdog - 2G SG 12 1S TH ng ng ng 32
Hình 3.15: Sơ đồ hoạt động APB watchdog - 2-2 2 s+++£2£+EzEzrxzrerreee 33
Hình 3.16: APB slave ImuX - -G- G6 c1 ng ng nh nh Hy 33 Hinh 604.11 2 - 35
Hình 3.18: Chi tiết bên trong AES IP -¿- 2 2 + E+EE+EE+EE+EEEEEEEESEErErrerreree 36
Hình 3.19: FSM quy trình hoạt động Wrapp€r - - - ĂSS Si, 38
Hình 3.20: Bộ điều khiển tín hiệu clock và reset -.::-c+:+vcxvvsvcxvvsrrrves 44Hình 3.21: Khối đồng bộ ngắt - 2-2 2 2£ E+SE+EE+EE£EEEEEEEEEEEEEEEEEErrrrrrerrree 46Hình 4.1: Quy trình bài kiểm tra hellO ¿2:2 ©+£++£x++£x++£x++zxzrxzrsez 47Hình 4.2: Quy trình bài kiểm tra đhry 2-2: 2 2 £+EE+EE+EE2EE+E2EE+EEzEErEerrerreee 48Hình 4.3: Quy trình bài kiểm tra tỉmer _f€S(S -c- tt Set Set St SE EeEeEersrrrervre 49Hình 4.4: Quy trình bài kiểm tra apb_mux_ teSts 2 2¿25¿©5+2ccc2x+ccszee 50Hình 4.5: Quy trình bài kiểm tra sleep_ demo 2- 2-2 s+2x+2zx2zxvzzxzzsez 51
Trang 8Hình 4.6: Quy trình bài kiểm tra dualtimer_dem0 ccccccscssssssssssssssecscscscscscscscseseseee 51 Hình 4.7: Quy trình bài kiểm tra khối AES IP 2-2 s++E£+£+£x+zxzzxzerxez 52 Hình 4.8: Kết quả biên dịch RTL code trên Quartus 2 2 525252552 55 Hình 4.9: Kết quả biên dich RTL code trên Linux 2- 2 22+sz2sz25£25+£‡ 56 Hình 4.10: Kết quả biên dịch bài kiểm tra hello -2- 2 2 2 2+s£+£z+£z£zzsz+z 57
Hình 4.11: Quá trình chạy mô phỏng ở batch mode «+ ««++s<++sex+sss 58
Hình 4.12: Biéu đồ dang sóng kết quả mô phỏng bài kiêm tra hello - 60
Hình 4.13: Nhật ký quá trình mô phỏng bài kiểm tra hello 2-2 25s 60 Hình 4.14: Biéu đồ dang sóng kết qua mô phỏng bài kiểm tra timer_driver_tests 61
Hình 4.15: Nhật ký quá trình mô phỏng bài kiểm tra timer_driver_tests (1) 62
Hình 4.16: Nhật ký quá trình mô phỏng bài kiểm tra timer_driver_tests (2) 63
Hình 4.17: Biéu đồ dạng sóng kết quả mô phỏng bài kiêm tra đhry 64
Hình 4.18: Nhật ký quá trình mô phỏng bài kiểm tra dhry 2- 5252 65 Hình 4.19: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra timer_tests 67
Hình 4.20: Nhật ký quá trình mô phỏng bài kiểm tra timer _tests - 67
Hình 4.21: Biểu đồ dạng sóng kết quả mô phỏng bài kiểm tra default_slaves_tests69 Hình 4.22: Nhật ký quá trình mô phỏng bài kiểm tra default_slaves_tests 69
Hình 4.23: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra apb_mux_tests 70
Hình 4.24: Nhật ký quá trình mô phỏng bài kiểm tra apb_mux_tests - 71
Hình 4.25: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra watchdog_ demo 72
Hình 4.26: Nhật ký quá trình mô phỏng bài kiểm tra watchdog_ đemo 73
Hình 4.27: Biêu đồ dang sóng kết quả mô phỏng bài kiêm tra sleep_demo 75
Hình 4.28: Nhật ký quá trình mô phỏng bài kiểm tra sleep_ demo 75
Hình 4.29: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra self_reset_demo 76
Hình 4.30: Nhật ký quá trình mô phỏng bài kiểm tra self_reset_demo 77
Hình 4.31: Biéu đồ dang sóng kết quả mô phỏng bài kiểm tra dualtimer_demo 78
Hình 4.32: Nhật ký quá trình mô phỏng bài kiểm tra dualtimer_demo (1) 79
Hình 4.33: Nhật ký quá trình mô phỏng bài kiểm tra dualtimer_demo (2) 80
Hình 4.34: Biéu đồ dạng sóng kết quả mô phỏng bài kiểm tra đesigntest_m0 81
Trang 9Hình 4.35: Nhật ký quá trình mô phỏng bài kiểm tra designtest_m0 (1) 82
Hình 4.36: Nhật ký quá trình mô phỏng bài kiểm tra designtest_m0 (2) 83
Hình 4.37: Biéu đồ dạng sóng kết qua mô phỏng khối AES IP - 84
Hình 4.38: Nhật ký quá trình mô phỏng khối AES IP -. 2-5252 +22 84 Hình 4.39: Biểu đồ dạng sóng kết quả mô phỏng khối wrapper - 85
Hình 4.40: Kết quả mã hóa trên Web - +: 2 ++S£+E++E++E++E2EE+Ezrerrerrerreee 85 Hình 4.41: Kết quả giải mã trên web -¿- 5: ©2+¿©++2E++EE+2EEESEEESrkesrxrrrrerrree 86 Hình 5.1: Kết quả báo cáo Resource Usage Summary cua Expected system 91
Hinh 5.2: Két quả báo cáo DSP Block Usage Summary của Expected system 92
Hình 5.3: Kết quả báo cáo General Register Statistics của Expected system 93
Hình 5.4: Kết quả báo cáo Resource Usage Summary của FPGA system 96
Hình 5.5: Kết qua báo cáo General Register Statistics của FPGA system 96
Hình 5.6: Kết qua báo cáo Resource Usage Summary của khối AES IP 97
Hình 5.7: Kết quả báo cáo General Register Statistics của khối AES IP 98
Hình A.1: Quy trình mã hóa - - G3221 3113E11 831113911 8 1119 111g ng rưn 108 Hình A.2: Quy trình 914i mã 2 G2 111v ng ng ng ngư 109
Trang 10DANH MUC BANG
Các thanh ghi đặc biệt cho cấu hình ngắt eeseeseesens 12Các tín hiệu (khác AHB) của khối System Controller - 19
M6 ta tin hid AES 0) 1111 35
Mô tả các thanh ghi chuyên dụng của AES IP .- 55 S-c++sssss 37 AHB MeMOry 00000578 39
CMSDK APB sub-system memory map - - 5 55+ ss+s++seessess 41 FPGA APB sub-system MeMOTY IN4D - s5 5+5 + £+sv+seeeesees 42Các chân ngất ¿2:22 2S1 2 12EE1E211271127112711211211211211 11111 cE1ecreu 45
Các loại báo cáo của công đoạn Analysis & Synthesis trên Quartus 90
Kết quả báo cáo Fmax của Expected system :©-2¿©c++c5cze: 94
Kết quả báo cáo Setup Summary của Expected system 94
Kết quả báo cáo Hold Summary của Expected system 95Kết quả báo cáo Fax của FPGA system ¿-+©cs+©5+ccscee: 97Kết quả báo cáo Fmax Summary của khối AES IP - 98
So sánh kết quả Resource Usage Summary - 5+ «<< s++£+s+ 98
So sánh kết qua General Register Statistics - 5 555552 100
So sánh kết quả FimaX - ¿2+ SE SSSE‡EE£EEEEEEEEEEEEEEEEEEEEEEkrrkrrerree 100Bang 5.10: So sánh Fmax đề tài từ hai khóa luận - 2-2-2 s+5++sz+szz£zzss 102
Trang 11DANH MỤC TU VIET TAT
loTs Internet of Things
AES Advanced Encryption Standard
CMSDK Cortex-M System Design Kit
RFID Radio Frequency Identification
WFI Wait For Interrupt
WFE Wait For Event
NVIC Nested Vectored Interrupt Controller EDA Electronic Design Automation
FPGA Field Programmable Gate Array
WIC Wakeup Interrupt Controller
JTAG Joint Test Action Group
NMI NonMaskable Interrupt
SWD Serial Wire Debug
SWDIO Serial Wire Data Input/Output
SWCLK Serial Wire Clock
AHB Advanced High-performance Bus
Trang 12UART Universal Asynchronous Receiver Transmitter SPI Serial Peripheral Interface
I2C Inter-Integrated Circuit
GPIO General Purpose I/O
APB Advanced Peripheral Bus
PMU Power Management Unit
ECB Electronic Codebook
FRCs Free-Running Counters
FSM Finite State Machine
SRAM Static Random Access Memory
CTR Counter Mode
IRQ Interrupt Request
MTI Mentor ModelSim
DS-5 Arm Development Studio 5
MDK Keil Microcontroller Development Kit
ARM GCC GNU Tools for Arm Embedded Processors
RTL Register-Transfer Level
LE Logic Element
SOPC Statement of Pins and Connections
SOF Standard Output Format
DSP Digital Signal Processsing
ALMs Adaptive Logic Modules
Trang 13LUT Lookup Table
MLAB Memory LAB
PLLs Phase-Locked Loops
NIST National Institute of Standards and Technology FIPS Federal Information Processing Standards
S-box Substitution Box
RISC Reduced Instruction Set Computer
LSB Least Significant Bit
MSB Most Gignificant Bit
Trang 14TOM TAT KHÓA LUẬN
Quá trình số hóa mọi thứ đang diễn ra dẫn đến sự phát triển rất nhanh chóngcủa các thiết bị điện tử với một khái niệm mang tên Internet of Things (IoTs) —mạng kết nối tat cả mọi vat Dé đảm bảo cho sự hình thành và phát triển đó thi sự
quan tâm bảo mật cho dữ liệu lưu thông trong mạng lưới đó là một trong những việc
làm quan trọng cốt lõi
Khóa luận lần này hướng đến giải quyết bài toán xây dựng cơ chế bảo mật thông tin và phòng chống tan công trong lĩnh vực IoTs với giải thuật mã hóa được
chọn là Advanced Encryption Standard với độ rộng khóa 128 bit (AES-128) vi tính
phố biến của nó trong ứng dụng IoTs bằng một vi điều khiển 32-bit dựa trên lõi xử
ly ARM Cortex-MO0 có tích hợp bộ mã hóa phần cứng theo chuẩn được chọn kèm
theo các ngoại vi đơn giản khác Việc thực hiện khóa luận gồm ba phần chính là
nghiên cứu, thiết kế và cuối cùng là mô phỏng chức năng trên công cụ phần mềmnhằm kiểm tra tính đúng đắn về mặt chức năng Hệ thống phần cứng và phần mềm
sẽ được xây dựng dựa trên hệ thống mau từ Cortex-M System Design Kit(CMSDK) của Arm DesignStart Eval Các công cụ phần mềm hỗ trợ bao gồmQuartus Prime Lite Edition 23.1 và Xilinx Vivado 2023.2 cho thiết kế phần cứng,chương trình phần mềm được biên dịch bằng GNU Tools for Arm EmbeddedProcessors (Arm GCC) và kết quả cuối cùng được mô phỏng trên Cadence NC
Verilog.
Kết quả đã đạt được là một vi điều khiển đơn giản lấy lõi xử lý ARM M0 làm đơn vị xử lý chính có tích hợp khối mã hóa phần cứng AES IP vào hệ thốngbus ngoại vi APB đi kèm với các ngoại vi hỗ trợ ứng dụng IoTs trong vi điều khiểnnhư GPIO, I2C, SPI, UART, Timer/Watchdog, bộ xử lý ngắt, debug Tuy rằng chưachứng minh được tinh đúng đắn trong chức năng của toàn bộ hệ thống nhưng đãtích hợp thành công và tiến hành tổng hợp thiết kế với tần số tối đa đo được của cả
Cortex-hệ thống là hơn 52 MHz cùng với việc chứng minh một cách độc lập được rằngchức năng của cả hệ thống vi điều khiển khi chưa tích hợp khối AES và chức năngkhối AES IP là đúng như mong đợi
Trang 15Hệ thống được đánh giá thông qua quá trình chạy mô phỏng để kiểm tra chứcnăng, tổng hợp thiết kế trên các bộ công cụ được nêu, qua tần số tối đa đạt được vàcuối cùng là qua các thông số có được sau khi tổng hợp giữa hệ thống được cung
câp và hệ thông mục tiêu của khóa luận.
Trang 16Chương 1 TONG QUAN
1.1 Giới thiệu và lý do chọn đề tài
1.1.1 Tinh hình nghiên cứu ngoài nước
Trong những năm gần đây, sự cạnh tranh liên quan đến vi mạch điện tử và chấtbán dẫn đang sôi nồi hon bao giờ hết giữa các cường quốc phương tây và một quốc
gia rộng lớn ở châu Á đó là Trung Quốc So sánh với các cường quốc như Mỹ, Liên
minh Châu Âu và Nhật Bản, Trung Quốc đang nỗ lực theo đuôi và bắt kịp tronglĩnh vực IoT Kể từ năm 2006, chính phủ Trung Quốc đã dành sự hỗ trợ mạnh mẽcho các viện nghiên cứu dé phát triển nền tang mạng cảm biến không dây tích hoptrí tuệ nhân tạo, bao gồm các nút mạng cảm biến không dây, hệ thống lưu trữ dữliệu và thiết bị đầu cuối truy cập dữ liệu từ xa Bên cạnh đó, các nhà sản xuất chiplớn trên thế giới đã giới thiệu nhiều sản phẩm chip dành riêng cho thị trường IoTs,điển hình như Qualcomm 212 LTE IoT Modem, Meditek IoT Chipsets vàSTM32F0 STM32F0X là dong chip phổ biến hiện nay với mật độ tích hợp ngoại vicao, sử dụng lõi ARM Cortex-M3 và các ngoại vi phục vụ kết nối cho ứng dụng
loT.
Việc phát triển các vi điều khiến hiệu suất cao cho đa dạng ứng dụng IoTsđang nhận được nhiều sự quan tâm từ các tập doan vi mạch và điện tử lớn Xuhướng nghiên cứu tập trung vào giải pháp tích hợp linh hoạt giữa vi điều khiển vàngoại vi, ưu tiên các yếu tố như công suất thấp và bảo mật phần cứng Một số ví dụtiêu biểu bao gồm nghiên cứu DesignStart Processor trên FPGA cho ứng dụng côngsuất thấp, chi phí thấp; hệ thống kiểm soát giao thông sử dụng lõi ARM Cortex-Mtrên FPGA dé đáp ứng thời gian thực; và cơ chế mã hóa IBE đơn giản trên FPGA
cho bảo mật ứng dụng IoTs.
Bên cạnh đó, nghiên cứu về mã hóa phần cứng FPGA cũng được chú trọng
nhăm tăng tôc độ mã hóa cho các ứng dụng truyền thông yêu câu bảo mật cao Các
Trang 17thuật toán mã hóa được nghiên cứu phổ biến bao gồm AES-128 và RSA, trong đó
AES-128 được ứng dụng rộng rãi hơn trong lĩnh vực IoTs.
1.1.2 Tình hình nghiên cứu trong nước
Chính phủ Việt Nam đã xác định IoTs là một lĩnh vực then chốt trong chiếnlược phát triển kinh tế - xã hội Nhiều chính sách và chương trình hỗ trợ được triểnkhai nhằm thúc day nghiên cứu, phát triển và ứng dụng IoTs trong các lĩnh vực nhưnông nghiệp, công nghiệp, giao thông vận tải, y tế, giáo dục, v.v Về phía doanhnghiệp, các tập đoàn viễn thông lớn như VNPT, Viettel, Mobifone đang đầu tưmạnh mẽ vào việc phát triển hạ tầng cơ sở kết nối và nền tảng mở cho IoT với mụctiêu cung cấp mạng lưới kết nối băng thông rộng, độ tin cậy cao và giá cả phảichăng để đáp ứng nhu cầu ngày càng tăng của các ứng dụng IoTs Các công ty công
nghệ như FPT, DTT, VNG, Konexy cũng đang tích cực tham gia vào hệ sinh thái
IoTs băng cách phát triển các nền tảng, giải pháp và ứng dụng IoTs cho nhiều lĩnh
vực.
Trung tâm Nghiên cứu và Dao tạo Thiết kế Vi mạch (ICDREC) tuy hiện tại đã
không còn hoạt động nhưng là một don vi tiên phong trong lĩnh vực nghiên cứu và
thiết kế sản phẩm vi mach, vi điều khiến và công nghệ thẻ gọi là Radio Frequency
Identification (RFID) hướng đến ứng dụng IoTs ICDREC đã đạt được những thành
tựu đáng kể trong việc phát triển các sản phâm vi mạch nội địa, góp phần thúc đây
sự phát triển của ngành công nghiệp vi điện tử Việt Nam với các sản phâm tiêubiểu:
© Chip 8-bit RISC SigmaK3, SG8V1: Đây là hai sản phẩm chip vi điều khiển
và vi xử lý đầu tiên của Việt Nam, được sản xuất dựa trên công nghệ 130nm.e_ VNI632LP: Vi xử lý VN1632LP được áp dụng kỹ thuật thiết kế công suất
thấp, tuy nhiên mật độ tích hợp còn hạn chế và cần sử dụng thêm nhiều ngoại
vi khi phát triển ứng dụng, dẫn đến hiệu quả tiết kiệm năng lượng chưa cao
Trang 18e_ Các vi điều khiển: Các vi điều khiển do ICDREC phát triển chưa được tích
hợp các ngoại vi cho giao tiếp không dây, một yếu tố quan trọng trong phát
triển ứng dụng IoTs
1.1.3 Ly do chọn đề tài
Về nghiên cứu khoa học liên quan, nhiêu dé tài đã được triên khai và mang lại
các kết quả nhất định như:
e Đinh Kim Chi, “Thiết kế vi mạch thực hiện thuật toán AES dựa trên công
nghệ FPGA”, Luận văn thạc sĩ, Trường Đại học Bách Khoa Hà Nội, 2006.
e TS Huỳnh Hữu Thuận, “Thiết kế vi mach dùng SoC FPGA cho các ứng
dụng IoT có tính bảo mật cao”, Đề tài nghiên cứu KH&CN, Sở KH&CN TP
HCM, 2021.
Các nghiên cứu trên đã được quan tâm triển khai nhiều nhưng chỉ dừng lại ởmức hiện thực được các lõi vi điều khiển hoặc các bộ giải mã/mã hóa riêng biệt, đặcbiệt là đề tài nghiên cứu của TS Huỳnh Hữu Thuận đạt được kết quả mong đợi nhưnghiên cứu lần này là bộ mã hóa phần cứng cho ứng dụng IoTs nhưng lại được kếtnối với vi điều khiển thông qua hệ thống bus ngoại vi (giao thức UART) nên tốc độthực thi không cao Chính vì muốn đóng góp cho xu hướng IoTs hiện tại và pháttriển ứng dụng hiệu suất cao nên nghiên cứu hướng đến tạo ra một lõi IP(Intellectual Property) cho vi điều khiển có tích hợp ngoại vi mã hóa hoàn chỉnh kếtnối thông qua hệ thống bus tốc độ cao
1.2 Tổng quan phương pháp thực hiện và mục tiêu đề tài
Mục tiêu hướng đến của khóa luận đó là thiết kế một lõi IP Vi điều khiển bit dựa trên kiến trúc ARM Cortex-M0 với các đặc điểm sau:
32-e_ Tần số hoạt động dự kiến của lõi xử lý: 50-100MHz
e Tích hợp các ngoại vi cho ứng dụng IoT: GPIO, I2C, SPI, UART, USB,
Timer/Watchdog, SDIO, Xử lý ngắt, Debugger
e_ Tích hợp bộ mã hóa AES-128 bang phan cứng.
Trang 19Về tổng quan, phương pháp thực hiện được tóm gọn gồm: Tìm hiểu tổng quancác vấn dé liên quan, hiện thực thiết bằng ngôn ngữ mô tả phần cứng(Verilog/SystemVerilog) và các công cụ phần mềm và cuối cùng là thực hiện kiểmtra chức năng của lõi IP ở mức mô phỏng trên các công cụ phần mềm Cụ thê hơn,
công việc chính cân thực hiện được chia thành năm nội dung chính:
e_ Nội dung 1: Nghiên cứu tổng quan các van đề liên quan
e Nội dung 2: Thiết kế, mô phỏng và kiểm tra lõi vi điều khiển 32-bit có lõi
bảo mật ứng dụng cho các giải pháp IoTs dựa trên kiến trúc ARM
e Nội dung 5: Tích hợp lõi ARM Cortex-MO, bộ mã hóa AES-128 và các
ngoại Vi để thực hiện kiểm tra, đánh giá 161 IP hoàn chỉnh trên công cu phần
1.3 Giới thiệu về hệ thống các thiết bị IoTs
Hệ thống các thiết bị IoTs là một mạng lưới kết nối các thiết bị vật lý đượcnhúng với các cảm biến, bộ xử lý và kết nối mạng, cho phép chúng thu thập và chia
sẻ dữ liệu với nhau và với các hệ thống khác qua Internet Hệ thống này có thể baogồm nhiều loại thiết bị khác nhau, từ các thiết bị gia dụng thông minh như tủ lạnh
và máy giặt, đến các thiết bị công nghiệp như cảm biến và bộ điều khién, đến cácthiết bị đeo được như đồng hồ thông minh và vòng tay theo dõi sức khỏe
Các đặc điểm của hệ thống IoTs có thé ké đến như tính kết nối, khả năng thuthập và chia sẻ dữ liệu, khả năng mở rộng và khả năng tự động hóa Tat cả các thiết
bị trong hệ thống IoTs đều được kết nối với nhau và với Internet thông qua mạngkhông dây hoặc mạng có dây, được trang bị các cảm biến đề thu thập dit liệu về môitrường xung quanh, chăng hạn như nhiệt độ, độ âm, áp suất, chuyên động, v.v Dữ
Trang 20liệu thu thập được bởi các thiết bị IoTs được chia sẻ với nhau và với các hệ thống
khác qua Internet Hệ thống IoTs có thể được sử dụng dé tự động hóa các tác vụ,
chăng hạn như điều khiển nhiệt độ trong nhà hoặc bật tắt đèn và có thé được mởrộng dễ dàng bằng cách thêm các thiết bị mới vào mạng
Tuy đang trên đà phát triển mạnh nhưng thách thức phía trước còn nhiều có thể
kể đến như tính bảo mật khi dé bị xung đột về quyền riêng tư giữa các người dùngvới nhau trong một mạng lưới phức tạp và cũng dễ bị tấn công bởi các hacker, dẫnđến rò rỉ đữ liệu và các vấn đề bảo mật khác Bên cạnh đó độ phức tạp ngày càng
gia tăng của mạng lưới các thiết bi dẫn đến khó khăn trong thiết kế triển khai và ké
cả quản lý được mạng lưới đó 6n định trong một thời gian dài Một trong như tháchthức quan trọng nhất đó là hiện chưa có tiêu chuẩn chung cho hệ thống IoTs, dẫnđến khả năng tương thích thấp giữa các thiết bị và hệ thống.
Hệ thống IoTs được dự đoán sẽ tiếp tục phát triển nhanh chóng trong nhữngnăm tới Các thiết bị IoTs sẽ trở nên phố biến hơn và giá cả sẽ rẻ hơn Các tiêuchuẩn mới sẽ được phát triển để cải thiện khả năng tương thích và bảo mật Hệthống IoTs sẽ được sử dụng trong nhiều lĩnh vực mới, chăng hạn như y tế, giáo dục
Và giải trí.
1.4 Giới thiệu về System-on-chip (SoC)
System-on-chip (SoC), hay còn gọi là hệ thống trên một vi mạch, là một vimạch tích hợp (Integrated Circuit — IC) kết hợp nhiều thành phần chức năng khácnhau của một hệ thống điện tử hoàn chỉnh vào một con chip duy nhất Các thànhphan này có thé bao gồm CPU, bộ nhớ, bộ xử lý đồ họa (Graphic Processing Unit —GPU), bộ điều khiển ngoại vi, v.v SoC được thiết kế dé thực hiện một chức năng cụthé, chăng hạn như xử lý ứng dụng di động, điều khiển thiết bị điện tử tiêu dùng hoặc quản lý mạng lưới cảm biến.
Các thiết bị thiết kế theo dạng SoC có kích thước nhỏ gọn hơn nhiều so với các
hệ thống được thiết kế bằng nhiều chip riêng lẻ Điều này giúp giảm kích thước vàtrọng lượng của các thiết bị điện tử, giúp tiết kiệm chi phí sản xuất bằng cách giảmg g gitip P 8 g
Trang 21số lượng linh kiện cần thiết và đơn giản hóa quy trình sản xuất SoC còn có thé đạtđược hiệu suất cao hơn và tiêu thụ ít điện năng hơn so với các hệ thống được thiết
kế bằng nhiều chip riêng lẻ vì các thành phần có thé được kết nối chặt chẽ hơn vớinhau va được tối ưu hóa dé hoạt động hiệu quả hơn
SoC được sử dụng trong nhiều loại thiết bị điện tử khác nhau bao gồm điệnthoại thông minh và máy tính bảng, thiết bị điện tử tiêu dùng chăng hạn như TV,máy giặt, tủ lạnh, v.v, máy tính, các thiết bị đeo được Đặc biệt nhất của ứng dụngSoC và cũng là một trong những ưu thế lớn nhất hiện nay của nó chính là ứng dụngtrong xe hơi bởi các ưu điểm của nó phù hợp với yêu cầu trên xe hơi như nhỏ gọn,
hiệu năng cao, tiêt kiệm năng lượng, v.v.
SoC dự kiến sẽ tiếp tục phát triển trong những năm tới với sự gia tăng nhu cầu
về các thiết bị điện tử nhỏ gọn, hiệu quả và thông minh hơn Các xu hướng chínhtrong phát triển SoC bao gồm:
e Tích hợp nhiều hơn: SoC sẽ tích hợp nhiều thành phan chức năng hơn vào
một con chip duy nhất, chang hạn như các bộ xử lý AI (ArtificialIntelligence) và các cảm biến
e Hiệu suất cao hơn: SoC sẽ đạt được hiệu suất cao hơn dé đáp ứng nhu cầu
ngày càng tăng của các ứng dụng đòi hỏi nhiều tài nguyên
e_ Tiêu thụ điện năng thấp hơn: SoC sẽ tiêu thụ ít điện năng hơn đề kéo dài tuôi
thọ pin của các thiết bị điện tử di động
e Bảo mật cao hon: SoC sẽ có các tính năng bảo mật cao hon dé bảo vệ dữ liệu
khỏi các môi đe dọa an ninh mạng.
Trang 22Chương 2 LOI XỬ LÝ ARM CORTEX-M0
Chương này trình bày các thông tin trọng tâm dé hiểu các chức năng co bảncủa lõi xử lý ARM Cortex-M0 cần cho việc hiểu cả hệ thống lớn và tiến hành tíchhợp khối giải mã phần cứng nên sẽ không đi quá sâu vào các lý thuyết khác Cácthông tin chỉ tiết hơn về lõi xử lý ARM Cortex-M0 được trình bày chỉ tiết trong các
tài liệu tham khảo [1], [2] [3].
2.1 Giới thiệu
ARM Cortex-MO là một lõi vi xử lý 32-bit thuộc họ Cortex-M của ARM Lõi
này được thiết kế cho các ứng dụng nhúng có yêu cầu cao về hiệu quả sử dụng nănglượng và chi phí thấp Cortex-M0 là lõi Cortex-M đầu tiên được ra mắt và cũng làlõi Cortex-M đơn giản nhất.
Các đặc điểm nỗi bật:
e Được thiết kế dựa trên kiến trúc Von Neumann với việc bộ nhớ chương trình
và bộ nhớ dữ liệu dùng chung không gian.
e Sử dụng kiến trúc tập lệnh ARMv6-M Thumb và một phần nhỏ tập lệnh
Thumb-2.
e Kiến trúc pipeline 3 tang: Fetch — Decode — Execute.
e Bộ đếm thời gian SysTick: Là bộ đếm ngược 24-bit cho toàn hệ thống
e Hỗ trợ bộ nhân 32-bit.
e Chế độ tiết kiệm năng lượng thấp: kích hoạt bằng lệnh Wait For Interrupt
(WFD, Wait For Event (WFE) hoặc tính năng tự động ngủ khi thoát khỏi
ngắtHình 2.1 dưới đây minh họa sơ đồ các khối trong vi xử lý ARM Cortex-M0
Trang 23Cortex-M0 Components
Nested Vectored
Interrupts bị Interrupt Cortex-M0 Breakpoint and
Controller processor core Watchpoint unit
(NVIC)
Wakeup |
Interrupt ; L| Debug Access
Controller Bus matrix Debugger interface F—>| Port (DAP) (WIC) i
và tinh chỉnh ứng dụng Thông tin chỉ tiết về hai khối chức năng lớn này được trìnhbày trong phan 2.3 và 2.4
2.2 Lõi xử lý ARM Cortex-M0 từ ARM DesignStart
ARM DesignStart là một chương trình miễn phí của ARM cung cấp cho cácnhà thiết kế và nhà phát triển truy cập vào các tài nguyên dé đánh giá và thiết kế hệthống dựa trên vi xử lý Arm Cortex-M Ở phan 2.1 ta biết được các thông tin day đủ
của lõi xử lý này, còn phần này cung cấp thông tin về một phiên bản đơn giản hơn
của lõi xử lý được cung cấp từ chương trình ARM DesignStart dưới dạng mã nguồnviết bằng ngôn ngữ Verilog bị che khuất hoặc khó hiểu bảo vệ quyền sở hữu trí tuệ(IP) hoặc dé ngăn chặn các sửa đôi trái phép Mặc dù bị mã hóa, thiết kế vẫn có thé
được xử lý bởi các công cụ Tự động hóa thiết kế điện tử (Electronic Design
Automation — EDA) để tạo ra mạch hoạt động (thường là trên FPGA - Field
Programmable Gate Array).
Hình 2.2 minh họa lõi xử lý ARM Cortex-M0 từ ARM DesignStart.
10
Trang 24Cortex-M0 Components
Cortex-M0 Processor
Debug
Nested Vectored
Interrupts Interrupt Cortex-M0
Controller processor core
(NVIC)
Breakpoint and Watchpoint unit
ft
Port (DAP)
AHB Bus Interface Serial Wire
Hình 2.2: ARM Cortex-M0 từ ARM DesignStart
Sự khác biệt so với bản đầy đủ đó là phiên bản được cung cấp từ ARMDesignStart không hỗ trợ Wakeup Interrupt Controller (WIC) va JTAG (Joint TestAction Group) dé truy cập vào bộ gỡ lỗi
2.3 Nested Vectored Interrupt Controller
Bộ điều khién vec-tơ ngắt lồng nhau (NVIC) là một thành phan quan trọngtrong kiến trúc ARM Cortex-M0, chịu trách nhiệm quản lý các ngắt (interrupt) từnhiều nguồn khác nhau N gắt là sự kiện tạm dừng tạm thời việc thực thi chương
trình chính để xử lý một sự kiện quan trọng hơn NVIC đảm bảo các ngắt được xử
lý hiệu quả và theo thứ tự ưu tiên.
Cac tính năng chính của NVIC trong Cortex-MO:
e Hỗ trợ nhiều ngắt: NVIC có thé quản lý một số lượng ngắt nhất định, cụ thé
là 32 ngắt và một tín hiệu ngắt NonMaskable Interrupt (NMI) (chức năngchân ngắt NMI sẽ được trình bày rõ hơn ở phần 3.4.4)
e Ưu tiên ngắt: Mỗi ngắt có thé được gán một mức độ ưu tiên riêng NVIC sé
ưu tiên xử lý các ngắt có mức độ ưu tiên cao hơn.
11
Trang 25e Vectored interrupt: NVIC cung cấp cơ chế “vectored interrupt”, nghĩa là địa
chỉ xử lý ngắt (interrupt handler) được xác định dựa trên nguồn ngắt Điềunày giúp cải thiện tốc độ xử lý ngắt
e Ngắt lồng nhau: NVIC cho phép ngắt cấp cao hơn có thê ngắt lồng vào việc
xử lý ngắt cấp thấp hơn Tính năng này hữu ích cho các tình huống cần phản
ứng ngay lập tức với các sự kiện quan trọng.
e Cấu hình phần mềm: NVIC có thể được cấu hình thông qua các thanh ghi
đặc biệt dé kích hoạt/vô hiệu hóa ngắt, thiết lập mức độ ưu tiên, v.v Chức
năng của các thanh ghi nay được mô tả trong bang 2.1.
Bảng 2.1: Các thanh ghi đặc biệt cho cấu hình ngắt
ISER (Interrupt Set
Thanh ghi này dùng dé tat (disable) các ngắt Mỗi bit trong
ICER tương ứng với một nguồn ngắt
ISPR (Interrupt Set Thanh ghi này cho biết trạng thái treo (pending) của cácPending Register) | ngắt Mỗi bit trong ISPR tương ứng với một nguồn ngắt
ICPR (Interrupt | Thanh ghi này dùng để xóa (clear) trạng thái treo của cácClear Pending | ngắt Mỗi bit trong ICPR tương ứng với một nguồn ngắt
Register)
IPRO-IPR7 Các thanh ghi này dùng dé thiết lập mức độ ưu tiên(Interrupt Priority | (priority) cho các ngắt Mỗi thanh ghi IPR quản lý 4 nguồnRegister) ngắt (IPRO - ngắt 0-3, IPRI - ngắt 4-7, v.v.) Mỗi bit trong
IPRn tương ứng với mức độ ưu tiên của một ngắt Giá trị
cao hơn tương ứng với mức độ ưu tiên cao hơn NVIC sẽ ưu tiên xử lý các ngắt có mức độ ưu tiên cao hơn trước.
12
Trang 262.4 Debug
Bộ xử lý Cortex-M0 tích hợp một khối Debug chuyên dụng hỗ trợ việc gỡ lỗichương trình với đa dạng các tính năng từ truy cập thanh ghi và bộ nhớ cơ bản đếnphân tích hiệu suất hệ thống chỉ tiết Việc sử dụng hiệu quả các tính năng gỡ lỗi này
có thê giúp bạn tiết kiệm thời gian và công sức trong quá trình phát triển và bảo trì
hệ thống nhúng Các tính năng nổi bật được cung cấp được trình bày từ phần 2.4.1đến 2.4.4
2.4.1 JTAG
JTAG là một giao thức chuẩn công nghiệp được sử dụng đề kết nối với bộ xử
lý và thực hiện các thao tác gỡ lỗi Nó sử dụng 4 chân: TCK (Clock), TMS (Mode
Select), TDI (Test Data In), và TDO (Test Data Out).
Vé chitc năng, JTAG cho phép bạn thực hiện các hành động như:
Đọc và ghi thanh ghi: Bạn có thể đọc và ghi vào các thanh ghi của bộ xử lý
dé kiểm tra trạng thái và cau hình hệ thống
Đơn vị xử lý bộ nhớ: Bạn có thể truy cập và sửa đổi nội dung bộ nhớ, bao
gồm cả bộ nhớ chương trình và bộ nhớ đữ liệu
Điều khiển quá trình thực thi chương trình: Bạn có thé tạm dừng, tiếp tục vàtừng bước thực thi chương trình đề xác định vị trí lỗi
Thiết lập điểm ngắt: Bạn có thé đặt điểm ngắt tại các vị trí cụ thé trong
chương trình dé tạm dừng thực thi khi chương trình đạt đến điểm đó
2.4.2 Serial Wire Debug (SWD)
Mô ta: SWD là một giao thức gỡ lỗi thay thế cho JTAG, sử dung hai chân:
SWDIO (Serial Wire Data Input/Output) và SWCLK (Serial Wire Clock).
Uu diém: SWD don gian hon JTAG vi chi str dung hai chan va khéng yéucầu bộ xử ly JTAG chuyên dụng
13
Trang 27Chức năng: SWD hỗ trợ các chức năng gỡ lỗi tương tự như JTAG, bao gồmdoc/ghi thanh ghi, truy cập bộ nhớ, điều khiển quá trình thực thi chươngtrình, và thiết lập điểm ngắt.
2.4.3 AHB Debug
Mô tả: AHB Debug là một cách thức gỡ lỗi cho phép truy cập bus AHB
(Advanced High-performance Bus) của hệ thống
Chức năng: AHB Debug cung cấp khả năng gỡ lỗi chi tiết hơn so với JTAGhoặc SWD, bao gồm:
o Theo dõi bus AHB: Bạn có thể theo dõi việc truyền/nhận trên bus
AHB, bao gồm dia chỉ, dữ liệu va tín hiệu điều khiển
o Phân tích hiệu suất: Bạn có thé phân tích hiệu suất hệ thống bằng cách
theo dõi thời gian và tài nguyên sử dụng cho các hoạt động bus AHB 2.4.4 CoreSight Debug:
Mô tả: CoreSight Debug là một tập hợp các tinh năng gỡ lỗi nâng cao đượccung cấp bởi ARM
Chức năng: CoreSight Debug bao gồm các tính năng như:
o Event Trace: Ghi lại các sự kiện xảy ra trong bộ xử lý, chăng hạn như
hướng dẫn được thực thi và truy cập bộ nhớ.
o Data Trace: Theo dõi dit liệu được lưu chuyên qua bộ xử lý
o_ Cycle Counter: Đếm số chu kỳ xung nhịp đã trôi qua
Lợi ích: CoreSight Debug cung cấp khả năng debug chỉ tiết và mạnh mẽ chocác hệ thống nhúng phức tạp
14
Trang 28Chương 3 THIẾT KE HE THONG
3.1 Téng quan hệ thống
3.1.1 FPGA system
Cortex-M System Design Kit là một bộ tài nguyên do ARM cung cấp thuộcchương trình ARM DesignStart để hỗ trợ các nhà phát trién thiết kế hệ thống dựatrên vi xử lý ARM Cortex-MO và Cortex-M0+ Cần phân biệt CMSDK với một bộphát triển phần cứng vật lý; thay vào đó, nó là một bộ tài liệu, thư viện và các thànhphần tái sử dụng giúp đơn giản hóa quá trình phát triển hệ thống
Hình 3.1 minh họa sơ đồ tổng quát của hệ thống FPGA system — một vi điềukhiển đơn giản được xây dựng dựa trên lõi xử lý ARM Cortex-M0 và các thànhphần được cung cấp từ CMSDK
FPGA system
Cortex-M0 example system
Cortex-M0 processor
CMSDK APB sub-system
Debug Unit Cortex-Mo NVIC ve
j processor core Timer0 Watchdog |
Internal Bus System Timer1 Dual Timer
System ROM Default AHB AHB
controller table nom Boot ROM na slave GPIO0 GPIO1 UART3 UART2 |
FPGA APB sub-system
APB Bus
Audio I2S 20 x2
AHB-Lite Bus AHB to APB FPGAVO
† † † + † † | Bndpe registers
AHB to
FPGAblock | | AHB to ZBT AHB AHB BB to AHBtoZBT | | AHB to ZBT SPix2 scc
RAM SRAM 64 GPlO2 GPIO3 THAM SRAM 32 SRAM 32
Hình 3.1: FPGA system
Hệ thống gồm các thành phần chính sau đây:
e Một lõi vi xử ly ARM Cortex-M0.
15
Trang 29e Cac bộ nhớ được xây dựng theo mô hình hành vi: Boot loader, bộ nhớ dữ
liệu (RAM), bộ nhớ chương trình (ROM)
e Ngoại vi trong CMSDK APB sub-system: UART (Universal Asynchronous
Receiver Transmitter), Timer/Watchdog.
e Ngoại vi trong FPGA APB sub-system: UART, SPI (Serial Peripheral
Interface), I2C (Inter — Integrated Circuit), các thanh ghi điều khiển I/O
(FPGA I/O registers).
3.1.2 Expected system
Expected system là mục tiêu của khóa luận nay như được mô tả ban đầu là một
vi điều khiển 32-bit được tích hợp mã hóa phan cứng chính là khối AES IP cùng với
các ngoại vi khác như GPIO (General Purpose I/O), I2C, SPI, UART,
Timer/Watchdog, Xử lý ngắt, Debug và tất cả dựa trên sự điều khiển từ lõi xử ly
Internal Bus System
| | i | I i ange
System ROM Default AHB AHB
controller table ROM Boot ROM RAM slave GPIO0 GPIO1 UARI3 | | UART2
FPGA block | | AHB to ZBT AHB AHB ba sả AHBtoZBT | | AHB to ZBT AHB to APB scc
RAM SRAM 64 GPIO2 GPIO3 TRAM SRAM 32 SRAM 32 Bridge
Hình 3.2: Expected system
16
Trang 30Hình 3.2 là sơ đồ khối tổng quát của Expected system Hệ thống này là mụctiêu của khóa luận này với sự kế thừa hệ thống FPGA system được tích hợp thêmkhối AES IP.
Phương pháp được đưa ra để tích hợp khối AES IP vào FPGA system là thiết
kế AES IP giao tiếp với chuẩn giao thức APB (Advanced Peripheral Bus) kèm vớimột chân ngắt dé thay thế vị trí của ngoại vi Timer0 trong CMSDK APB sub-system Ngay khi phương pháp được đưa ra và tiến hành hiện thực đã có thé dự
đoán được các ưu điêm và khuyét diém:
e Ưu điểm: Gia tăng tốc độ hiện thực hóa thiết kế bởi tận dụng được tài
nguyên có sẵn về các kết nối trong hệ thống, môi trường kiểm tra Khối AES
IP được thiết kế có I/O gần như tương đồng với ngoại vi Timer0 nên việcthay thế và kết nối là không quá khó khăn Bên cạnh đó, việc tái sử dụng cácbài kiểm tra được cung cấp sẵn từ CMSDK với các thay đổi không quá lớn
dé thực hiện kiểm tra toàn bộ hệ thống sau khi tích hợp thành công khối AES
IP vào FPGA system là điều có thể và không tốn quá nhiều thời gian
e Nhược điểm: Do ưu tiên về tốc độ hiện thực thiết kế nên chuẩn giao tiếp
được chọn cho khối AES IP là chuẩn giao tiếp ngoại vi bởi tính đơn giản của
nó và vì thế nên phải đánh đổi lại bằng hiệu suất hoạt động thấp hơn nhiều sovới khi được kết nối với chuẩn bus tốc độ cao AHB
Hệ thống Expected system chỉ thay thế khối AES IP vào vị trí của ngoại viTimer0 trong CMSDK APB sub-system và giữ nguyên phan còn lại như hệ thống
FPGA system.
3.2 Cac thành phan giao tiếp với AHB-Lite Interface
Các thành phan được trình bay dưới đây (từ phan 3.2.1 đến 3.2.5) chưa thực sựtrình bày đầy đủ các khối chức năng giao tiếp với hệ thống bus AHB trongExpected system mà chỉ mô tả các thành phần có vai trò quan trọng để hiểu cách
thức hoạt động của cả hệ thống.
17
Trang 313.2.1 System Controller
System Controller, cmsdk_mcu_sysctrl.v, là khối đóng vai trò quan trọng trongviệc quản lý các hoạt động truyền tải trên hệ thống bus AHB và có thể được cấuhình đề thiết lập các thông số hoạt động của bus AHB, chắng hạn như kích thước dữliệu truyền tải và chế độ “burst” (truyền đữ liệu theo khối)
System controller còn cung cấp khả năng thiết lập tự động khởi động lại
(automatic reset) nếu hệ thống bị treo (locked up) cùng với thông tin về nguyên
nhân gây ra treo hệ thống Đây chỉ là một trong ba nguyên nhân gây khởi động lại
hệ thống, hai nguyên nhân còn lại gồm các sự kiện bên ngoài, chắng hạn như nútnhắn reset thủ công, tín hiệu reset từ một thiết bị ngoại vi khác, hoặc phần mềm yêucầu khởi động lại hệ thống và từ ngoại vi Watchdog
Clock:
e FCLK: Clock chạy độc lập, được dùng để lưu thông tin về trạng thái khởi
động lai dé đảm bảo hệ thong khởi động đúng cách
e HCLK: Clock chính của hệ thống, dùng điều khiển quá trình truyền nhận
trên hệ thống bus AHB
Hình 3.3 minh họa khối System Controller
HTRANS[1:0
HSIZE{2:0 HWRITE HREADY HWDATA[31:0
HREADYOUT
HRESP F———>REMAP HRDATA{31:0 +> PMUENABLE
ECOREVNUMI3:0 ———>LOCKUPRESET |
Hình 3.3: System Controller
18
Trang 32Thiết kế có một đầu vào ECOREVNUM 4 bit được kết nối với thanh ghi IDngoại vi số 3 (peripheral ID register 3) Đầu vào này được sử dụng để theo dõi độtrễ ECO (Late Engineering Change Order) của thiết kế trước khi đưa vào sản xuất.Đối với Cortex-M0 DesignStart Eval, tín hiệu này cần được giữ ở mức thấp (LOW).
Bảng 3.1 dưới đây mô tả các tín hiệu của khối System Controller ngoại trừ cáctín hiệu thuộc chuẩn bus AHB
Bảng 3.1: Các tín hiệu (khác AHB) của khối System Controller
Tên tín hiệu Mô tả
LOCKUP Thông báo cho thanh ghi RSTINFO răng nguyên nhân gây
ra việc khởi động lại hệ thống là do bộ xử lý rơi vào trạng
thái lockup (đóng băng).
SYSRESETREQ Kích hoạt một thanh ghi trạng thai dé ghi lai sự kiện yêu cầu
khởi động lại hệ thống
WDOGRESETREQ | Kích hoạt một thanh ghi trạng thai dé ghi lại sự kiện yêu cầu
khởi động lại hệ thống bởi Watchdog.
REMAP Bật tính năng ánh xạ lại bộ nhớ (memory remap).
PMUENABLE Bật don vị quan lý nguồn (Power Management Unit — PMU)
cho hoạt động ngủ sâu cua WIC.
LOCKUPRESET | Gửi tín hiệu bật bộ điều khiến clock và reset tính năng tự
động khởi động lại hệ thống nếu hệ thống bị lockup
3.2.2 AHB default slave
AHB default slave, cmsdk_ahb_default_slave.v, có chức năng phan hồi lại các
truy cập từ master vào các vùng địa chỉ không xác định Mô-đun nay tạo ra phan hồi
OKAY với zero wait state cho các truy cập IDLE hoặc BUSY từ master, và phan
hồi ERROR cho các truy cập NONSEQUENTIAL hoặc SEQUENTIAL
19
Trang 33AHB slave mux, cmsdk_ahb_slave_mux.v, hỗ trợ tối da mười slave AHB
Mô-đun nảy sử dụng các tham số dé xác định số slave được hỗ trợ nhằm tối ưu hóa quátrình tổng hợp tránh tạo ra các thành phan logic không cần thiết
Trang 34Mô-đun này chịu trách nhiệm điều khiển việc định tuyến tín hiệu HRDATA vàHRESP từ slave trả về cho master Một bộ giải mã địa chỉ sẽ quyết định slave nàođược chọn thông qua tín hiệu HSEL tương ứng với slave đó Khối AHB slave mux
sử dụng các thanh ghi dé chốt dữ liệu đầu ra của slave được chọn truyền về đầu vàocủa master bởi vì hai tín hiệu HRDATA và HRESP phải luôn được giữ trong suốtgiai đoạn truyền dữ liệu (data phase) của một lần truyền trong giao thức AHB
Khi thêm hoặc loại bỏ một hoặc nhiều slave khỏi hệ thống thì cần phải điềuchỉnh các kết nối đầu vào và cập nhật các tham số trong code Verilog tương ứng déthích ứng với những thay đổi đó.
3.2.4 AHB GPIO
AHB GPIO, cmsdk_ahb_gpio.v, là khối chức năng giao tiếp với các chân I/O
đa dụng (general purpose I/O) được tích hợp trên hệ thống bus AHB Khối này cungcấp khả năng giao tiếp 16-bit giữa vi điều khiển và các chân I/O bên ngoài với các
tính năng đặc biệt như:
e Kha năng tao va lập trình lại ngất: Cho phép thiết lập điều kiện kích hoạt
ngắt trên từng chân I/O
e Hỗ trợ “bit masking” bang địa chỉ: Dùng địa chỉ truy cập để chỉnh sửa từng
bit riêng lẻ trong thanh ghi I/O 16-bit.
e Thanh ghi cấu hình chức năng chân (hỗ trợ “pin multiplexing”): Cung cap
các thanh ghi điều khiến dé cấu hình chức năng của từng chân I/O, cho phép
sử dụng một chân với nhiều chức năng khác nhau
e An toàn luồng (thread-safe): Sử dụng địa chỉ riêng biệt dé bật (set) va tắt
(clear) các bit trong thanh ghi điều khiển, đảm bảo hoạt động an toàn khi truycập đồng thời từ nhiều luồng xử lý
e Lấy mau tín hiệu đầu vào bang flip-flop kép: Sử dụng hai flip-flop nối tiếp
để lấy mẫu tín hiệu đầu vào, giúp loại bỏ hiện tượng "metastability" (tìnhtrạng không 6n định) có thé xảy ra do trễ tín hiệu
Clock:
21
Trang 35e_ HCLK: Clock chính của AHB-Lite Có thể tắt tín hiệu clock (gated off) trong
chế độ ngủ (sleep mode) dé tiết kiệm năng lượng
e FCLK: Clock chạy độc lập (free running) và có cùng pha với HCLK Luôn
bật (không thé tắt tín hiệu clock) Yêu cầu bắt buộc dé tạo ngắt cạnh (edge
trigger interrupt).
Hình 3.6 minh hoa mô-đun AHB GPIO.
FCLK HCLK
AHB to external SRAM interface, cmsdk_ahb_to_exmem16.v, cho phép két
nối các thiết bi lưu trữ ngoài như SRAM ngoài, bộ nhớ tinh (static memory), hoặccác ngoại vi bên ngoài với bộ vi xử lý Cortex-M Mô-đun này chỉ hỗ trợ giao tiếpvới các thiết bị ngoại vi có bus dữ liệu 16-bit hoặc 8-bit
Clock: HCLK.
Hình 3.7 minh họa mô-đun AHB to external SRAM interface.
22
Trang 36HREADY LBn HWDATA[31:0] UBn
HREADYOUT
HRESP HRDATA[31:0]
CFGREADCYCLE [2:0]
CFGWRITECYCLE [1:0]
CFGTURNAROUNDCYCLE [2:0] |
CFGSIZE
Hinh 3.7: AHB to external SRAM interface
AHB to external SRAM interface được thiết kế dé hỗ trợ kết nối với một bus
dữ liệu ngoài hai chiều
Các chức năng chính:
e Hỗ trợ bus dữ liệu ngoài hai chiều: Cho phép truyền dữ liệu cả hai hướng
giữa vi xử lý và thiết bị ngoài
e Kiểm soát đầu ra dữ liệu bằng tín hiệu DATAOEn: Tín hiệu này điều khiển
buffer ba trạng thái (tristate buffer) dé kích hoạt hoặc vô hiệu hóa ngõ ra dữliệu Tuy nhiên, bạn cần tự thiết kế và tích hợp buffer ba trạng thái trong hệthống của mình
e Ngăn ngừa xung dòng điện: Thiết kế cho phép chèn các chu kỳ luân chuyên
(turnaround cycles) giữa các lệnh đọc và ghi Điều này giúp ngăn ngừa cácxung đòng điện đột ngột (current spikes) có thể xảy ra trong thời gian ngắnkhi cả vi xử lý và thiết bị ngoài cùng truy cập bus dữ liệu
e_ Các tín hiệu điều khiển wait state:
o CFGREADCYCLE: Kiểm soát số wait state cho các lệnh đọc
23
Trang 37đây:
o CFGWRITECYCLE: Kiểm soát số wait state cho các lệnh ghi.
o CFGTURNAROUNDCYCLE: Xác định số chu kỳ luân chuyển cần
thiết
Chọn chế độ hoạt động:
o_ CFGSIZE tích cực mức thấp: Chọn chế độ hoạt động 8-bit
o_ CFGSIZE tích cực mức cao: Chọn chế độ hoạt động 16-bit
Yêu cầu về tín hiệu cau hình: Tat cả các tín hiệu cấu hình phải giữ giá trị ôn
định trong quá trình hoạt động.
Phản hồi OKAY: Khối giao diện sẽ gửi tín hiệu OKAY dé báo hiệu quá trình
truyền dữ liệu thành công
Các thành phần thuộc CMSDK APB sub-systemCMSDK APB subsystem, cmsdk_apb_subsystem.v, gồm các thành phan sau
AES IP: Đây là thành phan quan trọng của khóa luận, nó là khối mã hóaphần cứng được hiện thực theo chế độ ECB (Electronic Codebook) củachuẩn mã hóa AES-128
APB timers: Cung cấp chức năng đếm thời gian chính xác và có thé lập trìnhđược, thường được sử dụng dé tạo các xung nhịp hoặc điều khiến các sự kiện
theo thời gian.
APB UART (4 đơn vị): Cho phép giao tiếp nối tiếp với các thiết bị ngoại vibên ngoài, thường được sử dụng để gửi và nhận dữ liệu dạng ký tự
APB dual timer & APB watchdog: Kết hợp chức năng của hai bộ hẹn giờthành một khối và thêm chức năng giám sát hệ thống (watchdog) Watchdog
giúp đảm bảo hệ thống hoạt động ồn định bằng cách thực hiện khởi động lại
nếu hệ thống bị treo
AHB to APB bridge: Cho phép kết nối bus AHB tốc độ cao với bus APB tốc
độ thấp hơn
24
Trang 38e APB test slave: Hỗ trợ kiểm tra và gỡ lỗi hệ thống bằng cách cung cấp một
thiết bị giả định để tương tác với bus APB
e IRQ synchronizers: Giúp đồng bộ hóa các tín hiệu ngắt từ các thiết bị ngoại
vi khác nhau trên bus APB, đảm bảo xử lý ngắt chính xác và tránh xung đột
Clock:
e HCLK (AHB Clock): Day là clock chính của bus AHB, thường có tốc độ
cao.
e PCLK (Peripheral Clock): Clock cung cấp cho hoạt động của các thiết bị
ngoại vi được kết nối với bus APB Tần số của PCLK có thể bằng hoặc thấp
hơn HCLK.
e PCLKG (Gated PCLK): La clock được bắt nguồn từ PCLK nhưng có thé
bat/tat tin hiéu clock
Hình 3.8 minh họa toàn bộ tín hiệu và các kết nối giữa các khối bên trong APB
HSIZE [2:0 | cmsdk_apb_slave_mux.v expansion [> €X12_psel
HWRITE ————>} |Ế————exI12_prdata [31:0]
HREADY ————> Cmedk anb Cmedk apb |————®x†12_pslverr
HWDATA[31:01————) watchdog v duatameryHREADYOUT<——l——————— a | |
HRESP <————] aes_ip.v cmsdk_apb_
HRDATA[31:0] <{— _ uatv | |—|
-PCLK————>\ II BI
PCLKEN ————} |<&—————-ex†15_pready
PRESETn————>\ cmsdk_apb_ cmsdk_apb_ |£Ế——s+t15_prdata [31:0]
APBACTIVE<————] uart.V uarLv |&———ex†15_pslverr
Trang 393.3.1 Cầu chuyến đối AHB sang APB
Cau nối AHB sang APB (AHB to APB bridge) đóng vai trò trung gian giữabus AHB và bus APB, cho phép các thiết bị ngoại vi APB giao tiếp với bus hệthống AHB Mô-đun này hỗ trợ giao tiếp APB ở tốc độ chậm hơn so với giao tiếpAHB theo chế độ bán đồng bộ (semi-synchronous) Điều này cho phép tiết kiệmnăng lượng cho các thiết bị ngoại vi APB không yêu cau tốc độ cao như các thànhphần chính của hệ thống
Hình 3.9: Cầu chuyền đổi AHB sang APB
Cầu nối AHB sang APB có một tín hiệu dau ra gọi là APBACTIVE Tín hiệunày điều khién một mạch đóng ngắt clock (clock gating cell) dé tạo tín hiệu PCLKG
điều khiển việc đóng ngắt Khi không có sự truyền dữ liệu trên bus APB, tín hiệuAPBACTIVE sẽ ở mức thấp (LOW) và dừng tạo tín hiệu PCLKG Các thiết bịngoại vi có thé sử dụng PCLKG được đóng ngắt dé giảm thiểu năng lượng tiêu thụ
26
Trang 403.3.2 APB timer
APB timer, cmsdk_apb_timer.v, là một bộ dém ngược 32-bit với các tinh năng
sau:
© Có thé tạo tín hiệu yêu cầu ngắt (TIMERINT) khi bộ đếm dat giá trị 0 Yêu
cầu ngắt sẽ duy trì cho đến khi được xóa bằng cách ghi vào thanh ghi
INTCLEAR.
e_ Có thé sử dụng tín hiệu đầu vào EXTIN (chuyển từ mức 0 sang mức 1) dé
kích hoạt bộ hen gio.
e Khi giá trị bộ đếm APB bằng 0 va đồng thời phần mềm xóa trạng thái ngắt
trước đó, thì trạng thái ngắt sẽ được đặt lại thành 1
e Tần số clock ngoài EXTIN phải chậm hơn một nửa tần số clock ngoại vi vì
nó được lấy mẫu bởi một flip-flop kép và sau đó đi qua mạch phát hiện cạnhkhi các đầu vào ngoài hoạt động như clock
e Chân clock riêng biệt PCLKG dành cho logic doc/ghi thanh ghi APB Clock
này có thê tắt khi không có hoạt động APB đề tiết kiệm năng lượng
e Mô-đun có các thanh ghi Component ID và Peripheral ID Day là các thanh
ghi chỉ đọc và là tùy chọn thêm Đề sử dụng, bạn cần thiết lập các giá tri sau
trong các thanh ghi này:
o Part number: 12 bit.
o JEDEC ID value: 7 bit.
e Tín hiệu đầu vào ECOREVNUM được kết nối với số phiên ban ECO (ECO
revision number) trong thanh ghi Peripheral ID 3.
Clock:
e PCLK: Clock chính cung cấp xung nhịp cho hoạt động của timer
e PCLKG: Đây là clock có thể điều khiển bật/tắt có nguồn từ bus ngoại vi
APB.
Hình 3.10 minh họa mô-đun APB timer.
27