1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu, thiết kế và mô phỏng vi điều khiển 32-bit có tích hợp mã hóa phần cứng

123 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu, thiết kế và mô phỏng vi điều khiển 32-bit có tích hợp mã hóa phần cứng
Tác giả Nguyễn Thành Long
Người hướng dẫn Thạc sĩ Tạ Trí Đức
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Kỹ thuật máy tính
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 123
Dung lượng 40,96 MB

Nội dung

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 2

LỜ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 3

MỤ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 4

3.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 5

4.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 6

5.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 7

DANH 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 8

Hì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 9

Hì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 10

DANH 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 11

DANH 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 12

UART 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 13

LUT 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 14

TOM 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 15

Hệ 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 16

Chươ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 17

thuậ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 18

e_ 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 19

Về 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 20

liệ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 21

số 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 22

Chươ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 23

Cortex-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 24

Cortex-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 25

e 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 26

2.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 27

Chứ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 28

Chươ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 29

e 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 30

Hì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 31

3.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 32

Thiế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 33

AHB 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 34

Mô-đ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 35

e_ 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 36

HREADY 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 38

e 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 39

3.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 40

3.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

Ngày đăng: 08/12/2024, 15:27

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4] N. T. V. Khang, "Mô phỏng va hiện thực 32-bit ARM Cortex-MO0 trên FPGA,"H6 Chi Minh, 2020 Sách, tạp chí
Tiêu đề: Mô phỏng va hiện thực 32-bit ARM Cortex-MO0 trên FPGA
[1] A. Limited, ARMv6-M Architecture Reference Manual, Cambridge, 2018 Khác
[2] A. Limited, Arm Cortex-M System Design Kit Technical Reference Manual, Cambridge, 2017 Khác
[3] A. Limited, Cortex-M0 Technical Reference Manual, Cambridge, 2009 Khác
[5] A. Limited, Arm Cortex-MO DesignStart Eval User Guide, Cambridge, 2017 Khác
[6] A. Limited, AMBA APB Protocol Specification, Cambridge, 2023 Khác
[7] A. Limited, AMBA 3 AHB-Lite Protocol Specification, Cambridge, 2006 Khác
[8] A. Limited, Arm Cortex-MO DesignStart Eval FPGA User Guide, Cambridge, 2017 Khác
[9] H. L. A. Bảo, Hiện thực RISC-V và tích hợp thêm khối bảo mật, Hồ Chí Minh,2023 Khác