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

Thiết kế Softcore cho các bộ vi điều khiển

86 12 0

Đ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

Định dạng
Số trang 86
Dung lượng 2,61 MB

Nội dung

Thiết kế Softcore cho các bộ vi điều khiển Thiết kế Softcore cho các bộ vi điều khiển Thiết kế Softcore cho các bộ vi điều khiển luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Họ tên tác giả luận văn ĐOÀN XUÂN THẢO TÊN ĐỀ TÀI LUẬN VĂN THIẾT KẾ SOFT-CORE CHO CÁC BỘ VI ĐIỀU KHIỂN Chuyên ngành : KỸ THUẬT ĐIỆN TỬ - TIN HỌC LUẬN VĂN THẠC SĨ KHOA HỌC … NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS.TS LÊ BÁ DŨNG Hà Nội 11 – 2011 MỤC LỤC LỜI CAM ĐOAN T 29T DANH SÁCH HÌNH VẼ, ĐỒ THỊ T T DANH SÁCH BẢNG T 29T DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT T T PHẦN MỞ ĐẦU 10 T 29T CHƯƠNG 1: TỔNG QUAN VỀ BỘ XỬ LÝ SOFT-CORE 12 T T Bộ xử lý soft-core hệ thống nhúng 12 T T 1.1 Bộ vi xử lý rời rạc 12 T 29T 1.2 Bộ xử lý lõi cứng 13 T 29T 1.3 Bộ xử lý soft-core 14 T 29T 1.4 Tại thiết kế với xử lý soft-core? 14 T T 1.5 Thêm thiết bị ngoại vi 15 T T 1.6 Chọn lựa lõi xử lý 16 T 29T 1.7 Khả cấu hình Board-Level 17 T T 1.8 Giảm thời gian thiết kế 17 T T 1.9 Phân tích tính logic FPGA 19 T T 1.10 Chuyển đổi hệ thống với xử lý soft-core 19 T T 1.11 Đa xử lý 20 T 29T Khảo sát xử lý soft-core 20 T T 2.1 Các công cụ nhân soft-core thương mại 20 T T 2.2 Các xử lý mã nguồn mở 22 T T 2.3 So sánh xử lý soft-core 24 T T Kết luận chương 25 T 29T CHƯƠNG 2: NGHIÊN CỨU VỀ FPGA 27 T T FPGA 27 T 29T 1.1 Khái niệm FPGA 27 T 29T 1.2 So sánh FPGA với ASIC 28 T T 2 FPGA Xilinx 29 T 29T Ngôn ngữ mô tả phần cứng VHDL 30 T T 3.1 Khái niệm VHDL 30 T 29T 3.2 Các mức xử lý VHDL 31 T T 3.2 Các đơn vị thiết kế VHDL 31 T T Quy trình thiết kế FPGA Xilinx 32 T T Kết luận chương 34 T 29T CHƯƠNG 3: THIẾT KẾ BỘ XỬ LÝ SOFT-CORE 35 T T Phân tích thiết kế 35 T 29T Thiết kế core 35 T 29T 2.1 Core 36 T 29T 2.1.1 Cấu trúc thiết kế 36 29T 29T 2.1.2 Giới han 37 29T 29T 2.1.3 Memory mapping 37 29T T 2.1.4 Sơ đồ chân 38 29T 29T 2.1.5 Tập lệnh 39 29T 29T 2.2 Thiết bị ngoại vi 42 T 29T 2.2.1 Khối clock 42 29T T 2.2.2 Watchdog Timer 42 29T 29T 2.2.3 I/O số 43 29T 29T 2.2.4 Timer A 45 29T 29T Giao diện gỡi rối nối tiếp 47 T 29T 3.1 Đơn vị gỡi rối 47 T 29T 3.1.1 Quản lý ghi 47 29T T 3.1.2 Thanh ghi điều khiển/ trạng thái CPU 48 29T T 3.1.2.1 CPU_ID 48 29T 29T 3.1.2.2 CPU_CTL 48 29T 29T 3.1.2.3 CPU_STAT 48 29T 29T 3.1.3 Thanh ghi truy cập nhớ 48 29T T 3.1.3.1 MEM_CTL 49 29T 29T 3.1.3.2 MEM_ADDR 49 29T T 3.1.3.3 MEM_DATA 49 29T T 3.1.3.4 MEM_CNT 49 29T 29T 3.1.4 Thanh ghi đơn vị breakpoint phần cứng 50 29T T 3.1.4.1 BRKx_CTL 50 29T 29T 3.1.4.2 BRKx_STAT 50 29T T 3.1.4.3 BRKx_ADDR0 50 29T T 3.1.4.4 BRKx_ADDR1 50 29T T 3.2 Giao diện truyền nhận gỡ rối: UART 50 T T 3.2.1 Giao thức truyền nhận nối tiếp: 8N1 51 29T T 3.2.2 Khung truyền đồng 51 29T T 3.2.3 Truy cập đọc/ghi vào ghi gỡ rối 51 29T T 3.2.3.1 Khung truyền yêu cầu 52 29T T 3.2.3.2 Truy cập ghi 52 29T 29T 3.2.3.3 Truy cập đọc 52 29T 29T 3.2.4 Thực đọc/ghi burst cho truy cập nhớ CPU 52 29T T 3.2.4.1 Truy cập Ghi burst 53 29T T 3.3.4.2 Truy cập đọc burst 53 29T T Tích hợp kết nối 54 T 29T 4.1 Clocks 55 T 29T 4.2 Reset 56 T 29T 4.3 Bộ nhớ chương trình 56 T 29T 4.4 Bộ nhớ liệu 57 T 29T 4.5 Thiết bị ngoại vi 58 T 29T 4.6 Interrupt 59 T 29T 4.7 Giao diện gỡi rối nối tiếp 61 T T Phân tích tốc độ phạm vi 62 T T 5.1 FPGA 62 T 29T 5.2 Kết chi tiết 64 T 29T Phần mềm phát triển 66 T 29T 6.1 openmsp430-loader 66 T 29T 6.2 openmsp430-minidebug 67 T T 6.4 openmsp430-gdbproxy 68 T T CHƯƠNG 4: ỨNG DỤNG 72 T 29T Chương trình quét lét 72 T T 2 Chương trình UART 73 T 29T Kết 78 T 29T Kết luận 79 T 29T CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 81 T T Kết luận 81 T 29T Hướng phát triển 81 T 29T TÀI LIỆU THAM KHẢO 82 T 29T LỜI CAM ĐOAN Tơi Đồn Xn Thảo - tác giả luận văn “Thiết kế soft-core cho vi điều khiển” Tôi xin cam đoan thực hiện luận văn nghiêm túc, toàn nội dung luận văn kết nghiên cứu thực Đồng thời, việc tham khảo tài liệu trình thực luận văn tuân thủ theo yêu cầu không chép luận văn trước DANH SÁCH HÌNH VẼ, ĐỒ THỊ Hình 1.1 Vi xử lý rời rạc 13 U T 29T U Hình 1.2 Bộ xử lý lõi cứng 13 U T 29T U Hình 1.3 Bộ xử lý soft-core 14 U T 29T U Hình 1.3 Mơ hình thiết kế phát triển sản phẩm 18 U T T U Hình 0.1 Kiến trúc chung FPGA 27 U T T U Hình 0.2 Một Slice FPGA Xilinx Spartan6 29 U T T U Hình 0.3 Ba mức thiết kế với VHDL 32 U T T U Hình 0.4 Quy trình thiết kế FPGA Xilinx 33 U T T U Hình 3.1 Cấu trúc thiết kế openMSP430 36 U T T U Hình 3.2 Sơ đồ nhớ openMSP430 37 U T T U Hình 3.3 Khối clock 42 U T 29T U Hình 3.4 Khối watchdog timer 42 U T T U Hình 3.5 Truyền byte qua RS232 51 U T T U Hình 3.6 Khung truyền đồng 51 U T T U Hình 3.7 Khung yêu cầu 52 U T 29T U Hình 3.8 Giao dich truy cập ghi 52 U T T U Hinh 3.9 Giao dich truy cập đọc 52 U T T U Hình 3.10 Giao dich ghi burst 53 U T 29T U Hình 3.11 Giao dich đọc burst 53 U T T U Hình 3.12 Sơ đồ kết nối core openMSP430 với thành phần khác 54 U T T U Hình 3.13 Sơ đồ khối Clock 55 U T 29T U Hình 3.14 Mơ khối clock 56 U T T U Hình 3.15 Mô Reset 56 U T 29T U Hình 3.16 Mơ đọc/ghi nhớ chương trình 57 U T T U Hình 3.17 Mơ đọc/ghi nhớ liệu 58 U T T U Hình 3.18 Mơ đọc/ghi khối thiết bị ngoại vi 59 U T T U Hình 3.20 Mơ giao diện gỡi rối nối tiếp 62 U T T U Hình 3.21 Đoạn scrip thực Linux 67 U T T U Hình 3.22 Đoạn scrip thực Window 67 U T T U Hình 3.23 openMSP430 mini debugger 68 U T T U Hình 3.24 Ngun lý dịng truyền nhận 69 U T T U Hình 3.24 openMSP430-gdbproxy 70 U T T U Hình 3.25 Giao diện lập trình eclipse 71 U T T U Hình 3.26 Hình DDB phía trước 71 U T T U Hình 4.1 Kết thu kit FPGA Spartan 78 U T T U Hình 4.2 Giao diện chương trình openMSP430 mini debugger 79 U T T U DANH SÁCH BẢNG Bảng 1.1 So sánh xử lý soft-core 24 U T T U Bảng 3.1 Sơ đồ chân lõi openMSP430 38 U T T U Bảng 3.2 Bảng tập lệnh interrupt reset 39 U T T U Bảng 3.3 Lệnh toán tử 40 U T 29T U Bảng 3.4 Bảng lệnh hai toán tử 40 U T T U Bảng 3.6 Sơ đồ chân mô đun Timer A 45 U T T U Bảng 3.7 Bảng ghi truy cập gỡ rối 47 U T T U Bảng 3.8 Bảng liệt kêt ưu tiên ngắt 60 U T T U Bảng 3.9 Bảng liên kê thông số họ FPGA 62 U T T U Bảng 3.10 Bảng liệt kê kết thu 64 U T T U DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT Chữ viết tắt Chữ đầy đủ ANN/ NN Artificial Neural Network/ Neural Network FPGA Field Programmable Gate Array ASIC Aplication Specific Integrated Circuit CB Cell-Based CLB Configurable Logic Block DSP Digital Signal Processing EDA Electronic Design Automation FPGA Field Programmable Gate Array FSM Finite State Machine IP Intellectual Property LUT LookUp Table VHDL Very High Speed Integrated Circuit Hardware Description Language CPLD Complex Programmable Logic Devices MAC Mutiply ACcumlate DCM Digital Clock Manager RTL Register Tranfer Level DDR Double Data Rate IOBs Input/Output Blocks FLP FLoating Point PWL PieceWise Linear MSB Most Significant Bit SRA Shift Right Arithmetic ES Enable signal of Sigmoid Circuit ACC ACCumulator SoPC System on Programmable Chip RAM Random Acess Memory ROM Read-Only Memory Có hai hình nhỏ đưa script hoạt động với Eclipse hình DDD phía trước: Hình 3.25 Giao diện lập trình eclipse Hình 3.26 Hình DDB phía trước 71 CHƯƠNG 4: ỨNG DỤNG Trong chương tác giả luận văn muốn trình bày ứng dụng nhỏ để thử nghiệm hoạt động xử lý soft-core Chương trình chương trình bật tắt LED đơn giản Chương trình thứ chương trình giao diện qua cổng RS232 Chương trình quét lét Hàm main() int main(void) { int i; int o = 0; irq_counter = 0; offset = 0; WDTCTL = WDTPW | WDTHOLD; watchdog timer // Disable P1OUT output P2OUT = 0x00; // Port data P1DIR register P2DIR P3DIR = 0x00; = 0x00; // Port direction = 0x00; = 0xff; P1IES = 0x00; enable (0=dis 1=enabled) P2IES = 0x00; P1IE = 0x00; Edge Select (0=pos 1=neg) P2IE = 0x00; // Port interrupt // Port interrupt WDTCTL = WDTPW | WDTTMSEL | WDTCNTCL;// | WDTIS1 WDTIS0 ; // Configure watchdog interrupt IE1 |= 0x01; eint(); interrupts | //enable 72 while (1) { // Main loop, never ends for (i=0; i first bit ;startbit, init ;clear input ;startbit + 1.5 76 mov #CCIE|CCIS_1|SCS, &CCTL0;set compare mode, sample bits jmp Lrxex ;set state, Lrxdatabit: bit rrc.b databit Lrxex: add incd state reti #SCCI, &CCTL0 rxshift ;save databit ;measure databit ;rotate in #BAUD, &CCR0 rxbit ;one bit delay ;setup next ; void serPutc(char) ;use an other Capture/Compare than for receiving (full duplex) ;this one is without interrupts and OUTMOD, because only ;this way P1.1 can be used P1.1 is prefered because the ;BSL is on that pin too .global putchar type putchar, @function putchar: ;send a byte mov #0, &CCTL1 ;select compare mode mov #10, r13 ;ten bits: Start, Data, Stop rla r15 ;shift in start bit (0) bis #0x0200, r15 ;set tenth bit (1), thats the stop bit mov &TAR, &CCR1 ;set up start time Lt1lp: add #BAUD, &CCR1 ;set up for one bit rrc r15 ;shift data trough carry jc Lt1 ;test carry bit Lt0: bic.b #TX, &P1OUT ;generate pulse jmp Ltc ; Lt1: bis.b #TX, &P1OUT ;just use the same amount of time as for a zero jmp Ltc ; 77 .Ltc: bit #CCIFG, &CCTL1 compare jz Ltc bit is set bic #CCIFG, &CCTL1 loop dec r13 counter jnz Lt1lp bits are transmitted ret ;wait for ;loop until the ;clear for next ;decrement bit ;loop until all Kết Hình 4.1 Kết thu kit FPGA Spartan 78 Hình 4.2 Giao diện chương trình openMSP430 mini debugger Kết luận Khả FPGA ngày phát triển tới mức thực hệ thống tính tốn đầy đủ chip FPGA đơn giản Thành phần hệ thống xử lý soft-core Bộ xử lý soft-core openMSP430 với ý định thực FPGA xilinx, altera,… Trong luận văn thực VHDL cho kiến trúc MSP430 phát triển gọi openMSP430 Hiệu openMSP430 nghiên cứu so sánh thực chip FPGA khác Việc thực thành cơng xử lý soft-core FPGA xilinx có ý nghĩa lớn Mở nhiều hướng nghiên cứu mới, mang lại cho giải pháp lựa chọn thực yêu cầu thực tế Nhứng đóng góp đề tài: • Những nghiên cứu hiểu biết xử lý soft-core đóng góp nguồn tài liệu quan trọng, để hiểu sâu xử lý soft-core, khả tái cấu hình đa dạng, mở rộng nhớ, tăng hiệu năng, … Cho phép 79 chuyển đổi ứng dụng sử dụng FPGA mà chưa xử lý soft-core cách dễ dàng mà không cần thay đổi nhiều phần cứng, không nhiều thời gian giá thành • Lõi openMSP430 lõi thử nghiệm kit khác xilinx đạt giá trị định Có cơng cụ để dễ dàng gỡi rối lỗi, biên dịch nạp chương trình Giúp người chưa có hiểu biết nhiều FPGA, điện tử số,… hồn tồn tiếp cận sử dụng cách dẽ dàng, mang lại lợi ích lớn • Lõi openMSP430 lõi mở, phần nhớ chương trình nhớ liệu, lưu trữ ngồi Ta hồn tồn cấu hình, nhớ, làm tăng khả mở rộng cho chip Đồng thời thiết bị ngoại vi tương đối đầy đủ, sử dụng khơng thua vi xử thông thường 80 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Qua thời gian thực luận án, phần lớn công việc ban đầu đặt giải Tuy nhiên số vấn đề tồn vấn đề cịn có thời gian để tiếp tục hồn thiện hệ thống Thơng qua việc làm đồ án, nhóm thực bước tiếp cận với công nghệ đại ISE 10.1, ModelSim, eclipse, Visual Studio, Cuối cùng, lần xin gửi lời cảm ơn sâu sắc đến gia đình, thầy cô bạn giúp đỡ tác giả luận án Hướng phát triển Thực xử lý soft-core FPGA mang lại lợi ích vô to lớn cho người thiết kế hệ thống nhúng Để khải thác ưu điểm xử lý softcore lõi openMSP430 cần phát triển thêm nhiều yêu tố • Mở rộng định nghĩa đầu vào, để người sử dụng dễ dàng cấu hình lại chip theo yêu cầu ứng dụng • Nghiên cứu xem xét khả chạy đa lõi hệ thống • Mở rộng thiết bị ngoại vi card PCI, video,… • Hồn thiện cơng cụ để người sử dụng dễ dàng lập trình khác thác hết khả chip 81 TÀI LIỆU THAM KHẢO [1] X.Wang and S.G Ziavras, “Parallel LU Factorization of Sparse Matries on FPGA-Based Configuarable Computing Engines,” Concurrency and Computation: Practice and Experience, vol 16, no 4, (april 2004), pp 319-343 [2] Altera Corporation, “Nios Embedded Processor System Development,” [Online Document, Cited 2011 February 2], Available HTTP: http://www.altera.com/products/ip/processors/nios/nio-index.html U T T U [3] Xilinx, Inc., “MicroBlaze Soft Processor,” [Online Document, Cited 2011 February 2], Available HTTP: http://www.xilinx.com/xlnx/xil_prodcat_product.jsp?title=micorblaze [4] K Compton and S Hauck, “Reconfiguarable Computing: A Survey of Systems and Software,” ACM Computing Surveys, vol 34, no (June 2002), pp 171-210 [5] P K Guapta and Y Zorian, “Introducing Core-Based System Design,” IEEE Design and Test of Computers, vol 14, no (October-December 1997), pp 15-25 [6] Opencores.org Web Site, [Online Document, Cited 2011 Feburary 9], Available HTTP: http://www.opencores.org/ [7] Altera Corporation, “Excalibur Devices,” [Online Document, Cited 2011 February 7], Available HTTP: http://www.altera.com/producs/devices/arm/arm-index.html [8] Xilinx, Inc., “PowerPC Embedded Processor Solution,” [Online Document, Cited 2011 September 10], Available HTTP: http://www.xilinx.com/xlnx/xil_prodcat_product.jsp?title=v2p_powerpc [9] Xilinx, Inc., “MicroBlaze Processor Reference Guide,” [Online Document], 2003 September, [Cited 2011 September 10], Available HTTP: http://www.xilinx.com/ise/embedded /mb_ref_guide.pdf 82 [10] Xilinx, Inc., “PicoBlaze 8-bit Microcontroller for Virtex-E and Spartan-II/IIE Devices,” [Online Document], 2011 September, [Cited 2011 September 10], Available HTTP: http://www.xilinx.com/bvdocs/appnotes/xapp213.pdf [11] V.Betz, Rose, and A Marquardt, Architecture and CAD for Deep-Submicro FPGAs,Kluwer Academic Publishers: Norwell, MA, 1999 [12] Altera Corporation, “Stratix Device Handbook,” [Online Document], 2011 September [Cited 2011 September 10], Available HTTP: http://www.atera.com/literature/hb/stx/stratix_handbook.pdf [13] C.Blum add A Roli, “Mataheuristics in Combinatorial Optimization: Overview and Conceptual Comparison,” ACM Computing Surveys, vol 35, no 4, (Setpember 2010), pp 286-308 [14] Y Wu and D Chan, “On the NP-completeness of Regular 2-D FPGA Routing Architectures and A Novel Solution”, in Proc of the IEEE/ACM International Conference on Computer-Aid Design, San Jose, CA, 1994, pp 362-366 [15] L McMurchie and C Ebeling, “PathFinder: A Negotiation Based Performance-Driven Router for FPGAs,” in Proc of 3rd International ACM/SIGDA P P Symposium on Field-Programmable Gate Arrays, Monterey, CA, 1995, pp.111-117 [16] Artera Corporation, “Quartus II Development Software Handbook v4.0,” [Online Document], 2011 September, [Cited 2011 September 10], Available HTTP: http://www.altera.com/literature/hb/qts/quartusii_handbook.pdf [17] Altera Corporation, “AN 210: Converting Memory from Asynchoronous to Sychoronous for Strtix & Stratix GX Designs,” [Online Document], 2010 November, [Cited 2010 Februrary 7], Available HTT: http://www.altera.com/literature/an/an210.pdf [19] Model Technology Web Site, [Online Document], 2010 February, [Cited 2010 February 8], Available HTTP: http://www.model.com/ 83 [20] IEEE Computer Society, 1364.1 IEEE Standard for Verilog Register Transfer Level Synthesis, The Institute of Electrical and Electronics Engineers Inc.: New Yourk, 2002 [21] IEEE Computer Society, 1076.6 IEEE Standard for VHDL Register Transfer Level (RTL) Synthesis, The Institute of Electrical and Electronics Engineers, Inc.: New York 1999 [22] Altera Corporation, “Nios Embedded Processor, 16-bit Programmer’s Reference Manual” [Online Document], 2011 September, [Cited 2010 September 11], Available HTTP: http://www.altera.com/literature/manual/mnl_nios_programmer16.pdf [23] Altera Corporation, “Nios Embedded Processor, 32-Bit Programmer’s Reference Manual” [Online Document], 2010 January, [Cited 2011 September 11], Available HTTP: http://www.altera.com/literature/manual/mnl_nios_programmers32.pdf [24] E David, A Network Processor Platform Implemented in Programmable Hardware, Master’s Thesis, Factulty of California Polytechinic State University, San Luis Obispo, CA, 2003 [25] Microchip Technology, “PIC16CR84/F84/CR84/F83 Data Sheet” [Onlien Document] 1998, [Cited 2010 September 10], Available HTTP: http://www.microchip.com/download/lit/pline/picmicro/families/16f8x/30430c.pdf [26] Douglas L.Perry (2002), VHDL Programming by Example, McGraw-Hill Companies, U.S [27] Pong P.Chu (2006), RTL Hardware Design Using VHDL, A John Wiley & Sons, U.S [28] Pong P.Chu (2008), FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version, Wiley-Interscience, U.S [29] Volnei A Pedroni (2004), Circuit Design with VHDL, Massachusetts Institute of Technology, U.S 84 [30] Karen Parnell, Nick Mehta (2002), Programmable Logic Design Quick Start Handbook, Xilinx, U.S [31] Peter Wilson (2007), Design recipes for FPGA, Elsevier, UK 85 ... Dựng thiết kế: Các môđun thiết kế kết nối với hợp lại thiết kế mức đỉnh tạo thành thiết kế cao Tổng hợp: Chuyển toàn thiết kế từ mã nguồn VHDL thành tệp netlist mơ tả lại thiết kế quy ước kết... cơng cụ thiết kế EDA hãng thiết kế IC, hãng thiết kế FPGA hãng thứ ba Và ngày nay, VHDL ngôn ngữ phổ biến thiết kế FPGA 3.2 Các mức xử lý VHDL Khi người thiết kế sử dụng công cụ EDA để thiết kế với... mức cổng Và người thiết kế đồng thời sử dụng VHDL để tạo mô cho thiết kế với Testbench Quy trình thiết kế FPGA Xilinx Quy trình thiết kế FPGA Xilinx vi? ??c lập kế hoạch thiết kế, tạo tệp mã nguồn

Ngày đăng: 14/02/2021, 22:16

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w