Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 252 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
252
Dung lượng
26,09 MB
Nội dung
1 ðại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ðẠI HỌC BÁCH KHOA - NGÔ QUANG VINH THIẾT KẾ LÕI VI XỬ LÝ RISC 32 BIT TRÊN FPGA Chuyên ngành: Kỹ thuật ðiện Tử LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 12 năm 2008 Lời cam ñoan Tác giả xin cam ñoan danh dự cơng trình riêng tác giả, khơng có chép source code nguồn Tác giả tự thiết kế phần vi kiến trúc theo datasheet ARM7TDMI hãng Atmel, sau tự viết mã RTL theo ñúng phần vi kiến trúc ñã thiết kế Nếu sai tác giả xin chịu hoàn toàn trách nhiệm! Tác giả Lời cám ơn ðể hoàn thành ñề tài ñúng tiến ñộ, người thực ñề tài ñã ñược trợ giúp nhiều từ gia đình, thầy đồng nghiệp Trước hết người thực ñề tài xin chân thành cám ơn người trực tiếp hướng dẫn ln theo sát tiến độ đề tài, Ths Hồ Trung Mỹ Về phía nhà trường em xin cám ơn thầy cô khoa ðiện-ðiện Tử ñã cho em kiến thức tảng quý báu ñể em thực ñề tài Về phía quan cơng tác, Trung tâm Nghiên cứu ðào tạo Thiết kế vi mạch (ICDREC), người thực ñề tài xin cám ơn Giám ñốc trung tâm Ths Ngơ ðức Hồng tạo điều kiện mặt thời gian sở vật chất phần mềm thiết kế vi mạch hãng Synopsys, kit DE2 hãng Altera, phần cứng quang báo…ðồng thời cám ơn tới tồn thể nhân viên ICDREC quan tâm chia sẻ giúp ñỡ mặt tinh thần vấn ñề kỹ thuật Cám ơn Tiến sĩ Trần Thắng, cơng ty Texas Instrument giảng dạy cung cấp số kiến thức hữu ích kiến trúc vi xử lý 32 bit ñại ARM, MIPS Về phía gia đình, xin cám ơn ba mẹ ln động viên, nhắc nhở suốt q trình thực luận văn Cám ơn em Sang em Huy! Người thực đề tài Ngơ Quang Vinh Tóm tắt Luận văn thiết kế lõi CPU 32 bit, kiến trúc ARM Lõi ñược thiết kế với ñường ống tầng nhằm nâng cao tốc ñộ xử lý Do tập lệnh ARM phức tạp nên tác giả mô 20 lệnh số 35 lệnh tập lệnh ARM Từ 20 lệnh này, tác giả thiết kế specification cho lõi sau thực lõi dùng ngơn ngữ mô tả phần cứng Verilog Thiết kế mức RTL mơ chức dùng phần mềm VCS hãng Synopsys Sau mô chức thiết kế ñược tổng hợp cho ASIC lẫn FPGA Về hướng ASIC thiết kế tổng hợp dùng phần mềm DC layout dùng phần mềm ASTRO hang Synopsys Sau layout, tác giả chạy mơ để ñảm bảo thiết kế vãn hoạt ñộng ñúng chức định Tần số tối đa cho phép lõi hoạt động 100 Mhz Về hướng FPGA tác giả ñổ thiết kế lên kit DE2 thực ứng dụng giao tiếp máy tính điều khiển quang báo Các chương trình ứng dụng tác giả viết hợp ngữ biên dịch dùng phần mềm ADS hang ARM Các từ khóa: ARM architecture, RISC, computer architecture, pipeline design, digital design Mục lục Lời cam đoan Lời cám ơn Tóm tắt Chương Mở ñầu 1.1 Giới thiệu vi xử lý kiểu RISC 19 19 1.1.1 Lịch sử phát triển vi xử lý RISC 20 1.1.2 So sánh CISC RISC 23 1.1.3 Ứng dụng RISC 32 bit 26 1.2 Tình hình giới liên quan ñến lĩnh vực ñề tài 26 1.3 Tình hình nước liên quan tới lĩnh vực ñề tài 33 1.4 Mục tiêu ñề tài 35 1.5 Phạm vi nghiên cứu 35 1.6 Ý nghĩa khoa học thực tiễn ñề tài 36 Chương Phân tích hệ thống 38 2.1 Tóm tắt lệnh 38 2.2 Các định dạng lệnh 44 2.2.1 Nhóm lệnh rẽ nhánh B BL 45 2.2.2 Nhóm lệnh thao tác liệu 46 2.2.3 Nhóm lệnh truy xuất nhớ 54 2.3 Về kỹ thuật pipeline 56 2.3.1 Hazard cấu trúc 57 2.3.2 Hazard liệu 57 2.3.3 Hazard ñiều khiển 58 Chương Thiết kế hệ thống 59 3.1 Sơ ñồ chân 59 3.2 Luồng liệu 61 3.3 Giản ñồ ñịnh thời hệ thống 63 3.4 Xây dựng ñường liệu 66 3.5 Tầng tạo ñịa lệnh 68 3.6 Tầng nhận lệnh 71 3.7 Tầng giải mã lệnh 73 3.7.1 Khối giải mã lệnh 73 3.7.2 Khối tập ghi 83 3.7.3 Khối nhận biết hazard liệu 85 3.7.4 Khối tạo toán hạng 90 3.7.5 Khối giải mã ghi 94 3.7.6 Thanh ghi trỏ ngăn xếp 97 3.7.7 Thanh ghi link 98 3.7.8 Các ghi khác tầng giải mã lệnh 3.8 Tầng thực thi 3.8.1 Khối thực thi 101 102 102 3.8.1.1 Khối ALU 106 3.8.1.2 Khối dịch 111 3.8.2 Khối ñiều khiển rẽ nhánh chương trình 117 3.8.3 Khối kiểm tra ñiều kiện thực thi lệnh 123 3.8.4 Các ghi tầng thực thi 123 3.9 Tầng nhớ liệu 132 Chương Mô tả phần cứng kiểm tra chức 134 4.1 Viết mã RTL 136 4.2 Kiểm tra luật ràng buộc 136 4.3 Mô kiểm tra chức 138 4.4 Thiết kế test case 143 4.4.1 Kiểm tra lệnh cộng trừ 144 4.4.2 Kiểm tra lệnh truy xuất nhớ liệu 146 4.4.3 Kiểm tra việc gọi chương trình 148 4.4.4 Kiểm tra ngắt 152 Chương Thiết kế vật lý 5.1 Tổng hợp thiết kế 157 157 5.2 Layout thiết kế 166 5.2.1 Floorplanning 167 5.2.2 Placement 168 5.2.3 Clock Tree synthesis 169 5.2.4 Routing 170 5.2.5 Kết layout 171 5.2.5.1 Kết place & route 171 5.2.5.2 Kết kiểm tra DRC 171 5.2.5.3 Kết kiểm tra LVS 173 5.2.5.4 Kết mô 173 Chương Thử nghiệm FPGA 178 6.1 Các kết nạp lên FPGA 178 6.2 Thử nghiệm chức 180 6.3 Giao tiếp máy tính qua RS-232 190 6.3.1 Lõi UART 192 6.3.2 Khối giao tiếp lõi UART lõi CPU 197 10 6.3.3 Testbench mô 6.4 ðiều khiển quang báo Chương Kết luận hướng phát triển 199 229 235 7.1 Kết luận 235 7.2 Hướng nghiên cứu 238 Tài liệu tham khảo 240 Phụ lục A: Một số hình ảnh PCB 241 Phụ lục B: Phần mềm ADS ARM 244 238 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit 7.2 Hướng nghiên cứu Kiến trúc ARM9 kiến trúc phức tạp kiến trúc ñang ñược sử dụng nhiều thị trường ðể mô hoàn toàn giống với kiến trúc ARM9 điều hồn tồn khơng dễ dàng Ngồi ra, giới hạn mặt thời gian nên người thực ñề tài khơng thể thực cách hồn chỉnh kiến trúc ARM9 Tuy nhiên ñề tài ñã ñược thực theo hướng mở, cho phép phát triển, nâng cấp mà khơng cần thay đổi nhiều tới thiết kế đề tài Ví dụ - Tập lệnh đầy ñủ ARM lệnh ñều ñược thực thi tùy theo ñiều kiện Ở thiết kế người thực ñề tài ràng buộc ñiều kiện ñối với nhóm lệnh nhảy Tuy nhiên phần ràng buộc điều kiện cho tồn lệnh cịn lại muốn dễ dàng thực thiết kế có sẵn khối kiểm tra điều kiện (cc.v) Các vấn ñề kiến trúc mà ñề tài nâng cấp: - Kiểm tra ñiều kiện cho tất lệnh - Thêm mode hoạt động khác (ARM có tới mode hoạt ñộng) - Thêm lệnh truy xuất nhiều word liệu lúc (LDM, STM) - Thiết kế thêm phần hỗ trợ truy xuất nhớ với ñịa theo byte nửa word (16 bit) - Thiết kế nhân - Thiết kế ñồng xử lý CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 239 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Về mặt ứng dụng: nhiệm vụ ñề tài thiết kế lõi vi xử lý nên ta thấy giao diện với tín hiệu truy xuất nhớ chương trình, nhớ liệu ngõ vào ngắt ðể lõi thực ứng dụng lớn hơn, ta phát triển phần sau: - Thiết kế thêm phần bus giao tiếp sử dụng chuẩn có sẵn Avalon, AMBA, Power PC… - Xây dựng nhớ cache khối quản lý nhớ - Xây dựng kế nối thêm ngoại vi xung quanh I2C, I2S, PORT I/O, Timer, Watchdog Timer, Interrupt controller, … CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 240 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Tài liệu tham khảo Atmel Corporational ARM7TDMI Datasheet Steve Furber, ARM System on chip architecture, nhà xuất Springer 28 tháng 6, 2007 David A Patterson John L Hennessy, Computer organization and design – The hardware/software interface, nhà xuất Morgan Kaufmann, tháng 6, 2007 John L Hennessy David A Petterson, Computer Architecture – A Quantitive Approach, nhà xuất Morgan Kaufmann, 13 tháng 9, 2006 Grant McFarland, Microprocessor Design, nhà xuất McGraw-Hill Professional; tháng 4, 2006 William Stallings, Computer Organization and Architecture: Designing for Performance, nhà xuất Prentice Hall; 21 tháng 7, 2005 Jari Nurmi, Processor Design: System-On-Chip Computing for ASICs and FPGAs, nhà xuất Springer, 28 tháng 6, 2007 Website: www.altera.com Website: www.synopsys.com 10 ðề tài cấp sở Khu Công Nghệ Phần Mềm ðại Học Quốc Gia Tp HCM năm 2007“Thiết kế lõi IP UART FPGA” Chủ nhiệm đề tài: Ngơ Quang Vinh MSðT: CS2007-04 CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 241 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Phụ lục A: Một số hình ảnh PCB Schematic CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 242 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Top Bottom SILKTOP: sơ đồ vị trí linh kiện CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 243 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit ASS: sơ ñồ ñể lắp ráp CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 244 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Phụ lục B: Phần mềm ADS ARM Giới thiệu cách sử dụng phần mềm ADS hãng ARM Các bước để debug chương trình hợp ngữ sử dụng ADS Bước 1: Ta lập trình hợp ngữ trình soạn thảo thơng dụng (ví dụ Ultra Edit), sau file phải lưu ñịnh dạng s Bước 2: Tạo project: Vào File -> New -> ARM Excutable Image Sau đặt tên lựa chọn thư mục lưu trữ cho project CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 245 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Sau vào Project -> Add files Trỏ tới file s mà ta ñã lưu CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 246 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Bước 3: Biên dịch Vào Edit -> DebugRel Settings CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 247 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Trong mục Target Settings, ta chọn ARM fromELF Post-linker Các cịn lại giữ mặc ñịnh CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 248 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Trong mục ARM Linker ta ñánh 0x0000 vào ô R0 Base CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 249 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Xong nhấp vào Apply sau OK ðể biên dịch ta chọn Project -> Make Nếu khơng có báo lỗi ta sửa lại file s, cịn khơng có lỗi ta sang bước Bước 4: Debug: Vào Project -> Debug Cửa sổ Debug sau: CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 250 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Ta nhấn F8 chương trình nhảy lệnh quan sát tác động lệnh lên tập ghi ðối với luận văn này, người thực làm thêm thao tác tạo file chứa opcode sau biên dịch ñể nạp vào file rom.v File chứa opcode dạng text (vì lệnh readmemh Verilog đọc file text) Cách làm sau: Trong bước ta thêm thao tác chọn mục ARM fromELF, ô ouput format ta chọn Verilog Hex CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 251 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Sauk biên dịch ADS tạo file có định dạng vhx ta sửa định dạng file lại thành txt CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 252 ... Vinh 24 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Computer) Những người làm vi? ??c lĩnh vực ñiện tử máy tính quen thuộc với vi xử lý cấu trúc CISC Intel: dòng vi xử lý bit 8051, dòng vi. .. kiểu thiết kế thứ hai kiểu RISC CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 25 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit Người thiết kế vi xử lý ñi theo triết lý RISC bỏ ñi lớp vi chương... ngoại vi Các công ty thiết kế chip CBHD: Ths Hồ Trung Mỹ HVTH: Ngô Quang Vinh 37 Luận văn cao học Thiết kế lõi vi xử lý RISC 32 bit mua lõi IP về, thường lõi vi xử lý cộng với vài ngoại vi (nếu