Thiết kế system on chip (soc) và thực hiện bằng fpga

  • 80 trang
  • file .pdf
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
TRẦN VĂN TIÊN
Trần Văn Tiến
KỸ THUẬT MÁY TÍNH VÀ
TRUYỀN THÔNG
THIẾT KẾ SYSTEM ON CHIP (SoC) VÀ THỰC HIỆN BẰNG
FPGA
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG
CH2011B
Hà Nội – 2013
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
Trần Văn Tiến
THIẾT KẾ SYSTEM ON CHIP (SoC) VÀ THỰC HIỆN BẰNG FPGA
Chuyên ngành : Kỹ thuật máy tính và truyền thông
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG
NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS. NGUYỄN KIM KHÁNH
Hà Nội – 2013
LỜI CAM ĐOAN
Tôi xin cam đoan đề tài nghiên cứu của tôi hoàn toàn do tôi tự làm dưới sự
hướng dẫn của thầy giáo Ts Nguyễn Kim Khánh, Viện công nghệ thông tin và truyền
thông - Đại học Bách Khoa Hà Nội. Các số liệu, kết quả trình bày trong luận văn là
hoàn toàn trung thực và chưa từng được công bố trong bất cứ công trình nào.
Các tài liệu tham khảo sử dụng trong luận văn đều được dẫn nguồn (có bảng
thống kê các tài liệu tham khảo) hoặc được sự đồng ý trực tiếp của tác giả.
Nếu xảy ra bất cứ điều không đúng như những lời cam đoan trên, tôi xin chịu
hoàn toàn trách nhiệm trước Viện và Nhà trường.
Hà Nội, ngày 15 tháng 03 năm 2013
Tác giả
Trần Văn Tiến
1
LỜI CẢM ƠN
Để hoàn thành luận văn tốt nghiệp này, tôi xin gửi lời cảm ơn chân thành nhất
tới tập thể các thầy giáo, cô giáo trường Đại học Bách Khoa Hà Nội nói chung, viện
Công nghệ thông tin và Truyền thông, bộ môn Kĩ thuật máy tính, đã đào tạo cho tôi
những kiến thức, những kinh nghiệm qúy báu trong suốt thời gian học tập và rèn luyện.
Tôi xin chân thành cảm ơn sự giúp đỡ của thầy Nguyễn Kim Khánh. Trong quá
trình thực hiện đề tài thầy đã luôn tận tình hướng dẫn, gợi cho tôi nhiều ý tưởng để
hoàn thành luận văn một cách tốt nhất.
Cuối cùng là lời cảm ơn chân thành nhất tới gia đình, bạn bè đã động viên, góp
ý và tạo mọi điều kiên tốt nhất để tôi có thể hoàn thành luận văn tốt nghiệp này.
Tuy nhiên, do thời gian và trình độ có hạn nên đồ án này chắc chắn không tránh
khỏi những thiếu sót, tôi rất mong được sự đóng góp ý kiến của các thầy, các cô và
toàn thể các bạn .Tôi xin chân thành cảm ơn.
Hà Nội, ngày 15 tháng 3 năm 2013
Sinh viên:
Trần Văn Tiến
2
MỤC LỤC
LỜI CAM ĐOAN ............................................................................................................ 1
LỜI CẢM ƠN .................................................................................................................. 2
MỤC LỤC ........................................................................................................................ 3
DANH MỤC TỪ VIẾT TẮT, THUẬT NGỮ ................................................................. 6
DANH MỤC CÁC HÌNH ................................................................................................ 7
DANH MỤC CÁC BẢNG............................................................................................... 9
MỞ ĐẦU ........................................................................................................................ 10
1. Lý do chọn đề tài .................................................................................................... 10
2. Lịch sử nghiên cứu ................................................................................................. 10
3. Mục đích, đối tượng và phạm vi nghiên cứu .......................................................... 10
4. Tóm tắt các luận điểm cơ bản và đóng góp của đồ án ............................................ 10
5. Phương pháp nghiên cứu ........................................................................................ 11
NỘI DUNG .................................................................................................................... 12
CHƯƠNG 1. TỔNG QUAN VỀ SYSTEM ON CHIP (SoC) ....................................... 12
1.1. Cơ sở lý thuyết ..................................................................................................... 12
1.1.1. Sự ra đời của SOC ......................................................................................... 12
1.1.2. SoC và đặc điểm ............................................................................................ 14
1.1.3. Công cụ lựa chọn ........................................................................................... 16
1.2. Quy trình thiết kế System on Chip ...................................................................... 17
1.2.1. Giai đoạn thiết kế Front end .......................................................................... 18
3
1.2.2. Giai đoạn thiết kế Back end .......................................................................... 21
CHƯƠNG 2. TỔNG QUAN VỀ CÔNG NGHỆ FPGA ................................................ 22
2.1. Giới thiệu về FPGA. ............................................................................................ 22
2.2. Kiến trúc chung của một FPGA........................................................................... 23
1.2.1. Khối logic FPGA .......................................................................................... 23
1.2.2. Hệ thống mạch liên kết ................................................................................. 24
1.2.3. Các phần tử tích hợp sẵn .............................................................................. 25
2.3. Ngôn ngữ phần cứng HDL. ................................................................................. 25
1.3.1. Các ưu điểm của VHDL ................................................................................ 26
1.3.2. Cấu trúc một mô hình hệ thống sử dụng ngôn ngữ VHDL .......................... 27
CHƯƠNG 3. THIẾT KẾ SYSTEM ON CHIP VÀ THỰC HIỆN BẰNG FPGA......... 34
3.1. Thiết kế bộ vi xử lý .............................................................................................. 34
3.1.1. Cấu trúc tổng quát ......................................................................................... 34
3.1.2. Sơ đồ khối thiết kế. ........................................................................................ 35
3.1.3. Quá trình thiết kế CPU .................................................................................. 36
3.1.4. Thực hiện code mổ phỏng trên FPGA........................................................... 41
3.2. Thiết kế các module nối ghép vào ra ................................................................... 43
3.2.1. Thiết kế module IP UART ............................................................................ 43
3.2.2. Thiết kế module IP I2C ................................................................................. 53
3.3. Thực hiện hệ thống SoC FPGA dựa trên Vi xử lý 32-bit Nios II ........................ 66
3.3.1. Tạo hệ thống NIOS II bằng SOPC Builder ................................................... 66
3.3.2. Điều khiển Nios sử dụng ngôn ngữ C ........................................................... 73
CHƯƠNG 4. KẾT QUẢ VÀ ĐÁNH GIÁ .................................................................... 76
4.1. Các kết quả đạt được............................................................................................ 76
4
4.2. Đánh giá và định hướng....................................................................................... 76
KẾT LUẬN .................................................................................................................... 77
TÀI LIỆU THAM KHẢO .............................................................................................. 78
5
DANH MỤC TỪ VIẾT TẮT, THUẬT NGỮ
Số thứ tự Từ viết tắt Ý nghĩa
1 SoC System on Chip
2 FPGA Field-programmable gate array
3 UART Universal Asynchronous Receiver/Transmitter
4 IP Intelecture Property
5 I2C Inter-Integrated Circuit
6 BSP Board Support Package
7 EDS Embedded Design Suite
8 TCL Tool Command Lanluage
9 LSI Large Scale Integration
10 AC Address Counter
11 LCD Liquid Crystal Display
12 API Application Program Interface
13 EPCS Erasable Programmable Configurable Serial
14 IRQ Interrupt Request
15 HDL Hardware Description Language
16 ADC Analog to Digital Converter
17 DAC Digital to Analog Converter
18 DUT Device Under Test
19 SOPC System on a Programmable Chip
20 HAL Hardware Abstract Layer
21 MM Memory Mapped
22 SBT Software Build Tool
6
DANH MỤC CÁC HÌNH
Hình 1.1. Sự gia tăng mật độ transitor ........................................................................... 12
Hình 1.2. Giảm giá thành sản phẩm ............................................................................... 13
Hình 1.3. Mô hình cơ bản SoC....................................................................................... 14
Hình 1.4. Quy trình thiết kế SoC.................................................................................... 17
Hình 1.5. RTL Coding ................................................................................................... 18
Hình 1.6. Dynamic Verification ..................................................................................... 19
Hình 1.7. Synthesis and Scan Insertion.......................................................................... 20
Hình 1.8. Formal Verification ........................................................................................ 21
Hình 2.1. Cấu trúc tổng thể của một FPGA .................................................................. 23
Hình 2.2. Khối Logic ..................................................................................................... 24
Hình 2.3. Bộ bán tổng .................................................................................................... 27
Hình 2.4 Sơ đồ thiết kế VHDL ...................................................................................... 32
Hình 2.5. Sơ đồ tổng quát của một chương trình thử (Testbench) ........................ 33
Hình 3.1. Sơ đồ khối bộ vi xử lý .................................................................................... 35
Hình 3.2. Khối Datapath ................................................................................................ 36
Hình 3.3. Khối instruction_fetch .................................................................................... 38
Hình 3.4. Sơ đồ máy trạng thái FSM cho bộ vi xử lý .................................................... 40
Hình 3.5. Sơ đồ thiết kế hoàn chỉnh bộ vi xử lý ............................................................ 41
Hình 3.6. Cấu trúc file trên quatus ................................................................................. 41
Hình 3.7. Kết quả mô phỏng .......................................................................................... 43
Hình 3.8. Sơ đồ khối Uart .............................................................................................. 46
Hình 3.9. Sơ đồ tín hiệu kết nối giữa các module .......................................................... 47
Hình 3.10. Interfaces module baud_gen.v ..................................................................... 48
Hình 3.11. Interface module uart_tx.v ........................................................................... 49
Hình 3.12. Interface module uart_rx.v ........................................................................... 50
Hình 3.13. Interface module fifo.v ................................................................................. 51
7
Hình 3.14. Mô phỏng dạng sóng module top.v .............................................................. 53
Hinh 3.15. Truyền nhận dữ liệu UART ......................................................................... 53
Hình 3.16. I2C và các thiết bị kết nối ............................................................................ 54
Hình 3.17. Bit transfer on the I2C bus ........................................................................... 56
Hình 3.18. Sơ đồ khối I2C ............................................................................................. 58
Hình 3.19. Khối Top_Control ........................................................................................ 59
Hình 3.20. Khối Byte control ......................................................................................... 62
Hình 3.20. Trạng thái FSM khối bit control .................................................................. 63
Hình 3.21. Kết quả mô phỏng I2C ................................................................................. 65
Hình 3.22. Kết quả mô phỏng I2C trên Modelsim......................................................... 66
Hình 3.23. SoPC Builder ............................................................................................... 67
Hình 3.24. Chọn hệ SoPC dựa trên ngôn ngữ Verilog................................................... 68
Hình 3.25. Chọn Loại NIOS II ....................................................................................... 69
Hình 3.26. Tạo bộ nhớ hệ thống..................................................................................... 71
Hình 3.27. JTAG UART ................................................................................................ 71
Hình 3.28. Giao diện phát triển Nios II IDE .................................................................. 73
Hình 3.29. Tạo example hello_world_small .................................................................. 74
Hình 3.30. Nạp chương trình cho Nios II ...................................................................... 75
Hình 3.31. Example Hello world small.......................................................................... 75
8
DANH MỤC CÁC BẢNG
Bảng 1.1. Các công cụ phát triển .................................................................................... 16
Bảng 3.1. Tập lệnh bộ vi xử lý ....................................................................................... 39
Bảng 3.1. Module baudgen.v Interfaces Description ..................................................... 48
Bảng 3.2. Module uart_tx.v Interfaces Description ....................................................... 50
Bảng 3.3. Module uart_rx.v Interfaces Description ....................................................... 51
Bảng 3.4. Module fifo.v Interfaces Description ............................................................. 52
Bảng 3.5. UART top module .......................................................................................... 53
Bảng 3.6. Bảng các thanh ghi ......................................................................................... 59
Bảng 3.8. Thanh ghi điều lệnh ........................................................................................ 60
Bảng 3.9. Thanh ghi phát................................................................................................ 61
Bảng 3.10. Thanh ghi nhận ............................................................................................. 61
Bảng 3.11. Thanh ghi trạng thái ..................................................................................... 61
9
MỞ ĐẦU
1. Lý do chọn đề tài
Hệ thống trên chip SoC (System on Chip) là xu hướng phát triển mới cho các
sản phẩm điện tử ngày nay. Mục đích là đưa tất cả các module với các chức năng khác
nhau lên cùng một chip sử dụng công nghệ FPGA. Và ngày càng có nhiều công ty
chuyên thiết kế các module riêng biệt cho phép người thiết kế hệ thống lựa chọn các
module phù hợp với yêu cầu, tích hợp vào hệ thống và xây dựng ứng dựng cho sản
phẩm mà không phải xây dựng chi tiết từ đầu từng module riêng lẻ. Từ những xu
hướng phát trển thực tế, do vậy tôi chọn đề tài : Thiết kế SoC (System on Chip) và thực
hiện bằng FPGA để nghiên cứu tìm hiểu cách thức thực hiện xây dựng thiết kế các IP
core, tìm hiểu công nghệ FPGA, xây dựng hệ thống SoC. Từ đó có được tài liệu để các
bạn học viên tiếp tục nghiên cứu phát triển hệ thống System on Chip.
2. Lịch sử nghiên cứu
Luận văn được thực hiện dưới sự hướng dẫn của thầy giáo Ts Nguyễn Kim
Khánh, Viện Công nghệ thông và Truyền thông-Đại học Bách Khoa Hà Nội. Luận văn
được hướng dẫn, xem xét điều chỉnh, báo cáo theo lịch đều đặn 2 tuần/ lần với giáo
viên hướng dẫn. Luận văn được bắt đầu nghiên cứu từ tháng 10/2012 và hoàn thành
vào tháng 03/2013.
3. Mục đích, đối tượng và phạm vi nghiên cứu
Tìm hiểu được quy trình xây dựng và thiết kế SoC. Tìm hiểu công nghệ FPGA.
Tìm hiểu các IP core trong hệ thống SoC. Thiết kế được các IP Core thiết yếu của hệ
thống SoC : Bộ xử lý, bộ nhớ, các modun nối ghép vào ra. Thực hiện hệ thống SoC
FPGA dựa trên Vi xử lý 32-bit Nios II.
4. Tóm tắt các luận điểm cơ bản và đóng góp của đồ án
Mục tiêu chính của luận văn là nghiên cứu hệ thống System on Chip, quy trình
thiết kế System on Chip, tìm hiểu công nghệ FPGA. Xây dựng các khối IP Core của hệ
10
thống System on Chip từ đó có cái nhìn tổng quan để xây dựng hoàn thiện hệ thống
SoC.
Bố cục của luận văn tốt nghiệp
Chương 1: Tổng quan về System on Chip
Trình bày tổng quan về System on Chip, các quy trình thiết kế và hướng đi của
luận văn trong xây dựng thiết kế hệ thống SoC.
Chương 2 : Công nghệ FPGA
Trình bày công nghệ FPGA, kiến trúc FPGA và ngôn ngữ sử dụng cho FPGA.
Chương 3 : Thiết kế System on Chip và thực hiện bằng FPGA
Thiết kế bộ vi xử lý, bộ nhớ
Thiết kế các module nối ghép vào ra
Thực hiện trên FPGA
Đánh giá các kết quả đạt được.
5. Phương pháp nghiên cứu
Luận văn được nghiên cứu dựa trên cơ sở lý thuyết từ các tài liệu về SoC, các
tài liệu về bộ vi xử lý nói của các tác giả trong và ngoài nước, các website và bài báo
cần thiết để phát triển luận văn. Các kết quả của luận văn được thực hiện trên bộ phần
mềm của Altera : Quatus, Modelsim và NiosII.
11
NỘI DUNG
CHƯƠNG 1. TỔNG QUAN VỀ SYSTEM ON CHIP (SoC)
1.1. Cơ sở lý thuyết
1.1.1. Sự ra đời của SOC
[2] Trong 40 năm qua đã có sự tiến bộ kinh ngạc trong kĩ thuật silicon và kết
quả là sự tăng nhạnh mật độ và hiệu năng của transitor.
Hình 1.1. Sự gia tăng mật độ transitor
Biểu đồ cho thấy sự tiến bộ không ngừng trong việc cải tiến mật độ transistor và
đồng thời với đó là sự giảm về giá thành thiết bị.
12
Hình 1.2. Giảm giá thành sản phẩm
[2] Những công nghệ sản xuất tiên tiến có thể sản xuất các chíp ngày nay có thể
chứa tới 100 triệu transitor, kích thước của transitor được đo bằng nanometer, và xấp xỉ
18 tháng số lượng transitor trên mỗi chip lại tăng lên gấp đôi (Moore’s law). Và kết
quả là rất nhiều các Component (module) bây giờ được tích hợp trên cùng một Printed
Circuit Board do vậy tạo ra sự phát triển lĩnh vực thiết kế SOC.
13
1.1.2. SoC và đặc điểm
Hình 1.3. Mô hình cơ bản SoC
Hình 1.3 minh họa một số những yếu tố cơ bản của một hệ thống SoC. Chúng bao gồm
một số lượng đa dạng các xử lý để kết nối đến một hoặc nhiều thành phần bộ nhớ cùng
với một dãy các cấu hình logic. Thường xuyên, SoC cũng có mạch tương tự để quản lý
dữ liệu cảm biến và chuyển đổi tương tự đến kỹ thuật số, hoặc để hỗ trợ truyền dữ liệu
không dây.[2]
Ví dụ, một SoC cho điện thoại thông minh sẽ cần phải hỗ trợ, thêm vào đầu vào âm
thanh và khả năng đầu ra cho một điện thoại truyền thống, chức năng truy cập internet
và phương tiện truyền thông video, xử lý tài liệu, và giải trí đa phương tiện
chẳng hạn như các trò chơi và phim ảnh.
14
- SoC là một hệ thống bao gồm Chip + Software + Integration.
o SoC chip bao gồm Embedded Processor, ASIC Logics và các mạch tương tự
o SoC software bao gồm OS, compiler, simulator, firmware, driver, protocol
stackIntegrSted development environment (debugger, linker, ICE)Application
interface (C/C++, assembly)
o SoC integration bao gồm giải pháp tổng thể cho hệ thống, các kỹ thuật hỗ trợ
và đặc tả của nhà sản xuất.
- Điểm điểm :
o Quá trình phát triển SoC nhanh hơn so với phát triển ASIC.
o Có một Bus kết nối chuẩn (SoC interconnection) trong hệ thống và tất cả các
Component giao tiếp với nhau cần được kết nối tới hệ thống Bus này thông
qua các Interface. Một số hệ thống Bus :
 AMBA (Advanced Microcontroller Bus Architecture).
 APB (Advanced Peripheral Bus).
 ASB (Advanced System Bus).
 AHB (Advanced High Performance Bus).
o Các Component (hay còn gọi là các Core) này có đặc điểm là khả năng sử
dụng lại ,được phát triển bởi nhà sản xuất, các IP vendor…
 Soft Core : linh động, tính tái sử dụng, dễ tích hợp
 Firm Core : mang đặc tính của cả hai SoftCore và HardCore.
 Hard Core : Hiệu suất ,tốc độ hoạt động cao.
- Ưu điểm :
o Tiêu thụ ít năng lượng.
o Tốc độ hoạt động được cải thiện.
o Kích thước mạch nhỏ.
o Giá thành rẻ trên mỗi transitor được tích hợp.
o Độ tin cậy cao.
15
- Nhược điểm :
o Mở rộng độ phức tạp của hệ thống.
o Mở rộng yêu cầu kiểm tra (verification) cho toàn bộ hệ thống.
- Ứng dụng của SoC trong các lĩnh vực :
o Xử lý tín hiệu tiếng nói.
o Xử lý tín hiệu âm thanh và hình ảnh.
o Công nghệ thông tin:
 PC interface (USB, PCI,PCI-Express, IDE,..etc) Computer
peripheries (printer control, LCD monitor controller, DVD
controller,.etc) .
o Trao đổi dữ liệu :
 Wireline Communication: 10/100 Based-T, xDSL, Gigabit
Ethernet,.. Etc
 Wireless communication: BlueTooth, WLAN, 2G/3G/4G,
WiMax, UWB, …,etc
1.1.3. Công cụ lựa chọn
Công cụ sử dụng Chức năng của công cụ
Phần cứng Quartus II Tạo thiết kế FPGA
SOPC Builder Xây dựng hệ thống SoC
Phần mềm NIOS II SBT Phát triển phần mềm ứng
NIOS II IDE dụng
Bảng 1.1. Các công cụ phát triển
16
1.2. Quy trình thiết kế System on Chip
Functional Specification Floorplanning
Define Architecture Place and Route
RTL Coding post-layout STA
Dynamic Verification Fail
Functions
with Timing
Pass
Fail
Check
Functions
Tape-out
Pass
Synthesis and Scan Insertion
STA
Fail
Check
Timing
Pass
Formal Verification
Fail
Check
Functions
Pass
FONT END BACK END
Hình 1.4. Quy trình thiết kế SoC
17
1.2.1. Giai đoạn thiết kế Front end
Giai đoạn thiết kế Front End thực hiện việc xây dựng thiết kế về mặt luận lý như
viết mã, mô phỏng kiểm tra, thiết đặt các ràng buộc, phân tích thời gian v.v... [2][6][8]
Functional Specification
Chip ra đời xuất phát từ những ứng dụng thực tế, người thiết kế từ mục đích của
ứng dụng và ý tưởng phải phác thảo ra bảng mô tả chi tiết thông số kỹ thuật cũng như
những tính năng mà thiết kế cần đạt được. Bảng thông số kỹ thuật cho biết những đặc
điểm của thiết kế như tần số hoạt động, điều kiện điện áp, nhiệt độ và các mối quan hệ
định thời trong thiết kế.
Define Architecture
Từ bảng mô tả chi tiết thông số kỹ thuật của thiết kế, người thiết kế sẽ phác họa
sơ đồ khối cho thiết kế bao gồm nhiều khối Logic kết nối với nhau, mỗi khối Logic
thực hiện một chức năng nhất định trong thiết kế.
RTL Coding
Sau khi có sơ đồ khối của thiết kế với các khối Logic kết nối với nhau, người
thiết kế sẽ tiến hành viết mã RTL cho từng khối Logic đó. Viết mã RTL là giai đoạn
quan trọng, viết mã RTL ngoài việc đảm bảo đúng chức năng Logic còn phải thỏa mãn
phần cứng yêu cầu trong thiết kế (Flip Flop, Latch, Mux …).
Hình 1.5. RTL Coding
Dynamic Verification
Sau giai đoạn viết mã RTL thiết kế sẽ được mô phỏng động bằng cách đưa các
tín hiệu vào và nhận tín hiệu ra sau khi mô phỏng. Vì chức năng thiết kế là hoàn toàn
18