Microsemi DG0618 Phát hiện và sửa lỗi trên thiết bị SmartFusion2 sử dụng bộ nhớ DDR
Trụ sở công ty Microsemi
Một doanh nghiệp, Aliso Viejo,
CA 92656 Hoa Kỳ
Ở Hoa Kỳ: +1 800-713-4113
Bên ngoài Hoa Kỳ: +1 949-380-6100
Số Fax: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
© 2017 Tập đoàn Microsemi. Đã đăng ký Bản quyền. Microsemi và logo Microsemi là thương hiệu của Tập đoàn Microsemi. Tất cả các nhãn hiệu và nhãn hiệu dịch vụ khác là tài sản của chủ sở hữu tương ứng
Microsemi không bảo đảm, đại diện hoặc đảm bảo về thông tin có trong tài liệu này hoặc tính phù hợp của các sản phẩm và dịch vụ của mình cho bất kỳ mục đích cụ thể nào, cũng như Microsemi không chịu bất kỳ trách nhiệm pháp lý nào phát sinh từ việc ứng dụng hoặc sử dụng bất kỳ sản phẩm hoặc mạch điện nào. Các sản phẩm được bán dưới đây và bất kỳ sản phẩm nào khác do Microsemi bán đã được thử nghiệm giới hạn và không được sử dụng cùng với các thiết bị hoặc ứng dụng quan trọng. Bất kỳ thông số kỹ thuật hiệu suất nào được cho là đáng tin cậy nhưng chưa được xác minh và Người mua phải tiến hành và hoàn thành tất cả các hoạt động và thử nghiệm khác của sản phẩm, một mình và cùng với hoặc được lắp đặt trong bất kỳ sản phẩm cuối nào. Người mua không được dựa vào bất kỳ dữ liệu và thông số kỹ thuật hiệu suất hoặc thông số nào do Microsemi cung cấp. Người mua có trách nhiệm xác định một cách độc lập tính phù hợp của bất kỳ sản phẩm nào và kiểm tra và xác minh các sản phẩm đó. Thông tin do Microsemi cung cấp dưới đây được cung cấp “nguyên trạng, ở đâu” và với tất cả các lỗi và toàn bộ rủi ro liên quan đến thông tin đó hoàn toàn thuộc về Người mua. Microsemi không cấp, rõ ràng hoặc ngầm định, cho bất kỳ bên nào bất kỳ quyền sáng chế, giấy phép hoặc bất kỳ quyền SHTT nào khác, cho dù liên quan đến bản thân thông tin đó hay bất kỳ điều gì được mô tả bởi thông tin đó. Thông tin được cung cấp trong tài liệu này là độc quyền của Microsemi và Microsemi có quyền thực hiện bất kỳ thay đổi nào đối với thông tin trong tài liệu này hoặc bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo.
Về Microsemi
Microsemi Corporation (Nasdaq: MSCC) cung cấp một danh mục toàn diện các giải pháp hệ thống và chất bán dẫn cho hàng không vũ trụ & quốc phòng, truyền thông, trung tâm dữ liệu và thị trường công nghiệp. Các sản phẩm bao gồm mạch tích hợp tín hiệu hỗn hợp tương tự hiệu suất cao và được làm cứng bằng bức xạ, FPGA, SoC và ASIC; sản phẩm quản lý điện năng; các thiết bị định giờ và đồng bộ hóa cũng như các giải pháp thời gian chính xác, thiết lập tiêu chuẩn thời gian của thế giới; thiết bị xử lý giọng nói; giải pháp RF; linh kiện rời rạc; giải pháp truyền thông và lưu trữ doanh nghiệp, công nghệ bảo mật và khả năng mở rộng chống tamper sản phẩm; Giải pháp Ethernet; IC và midspans cấp nguồn qua Ethernet; cũng như các khả năng và dịch vụ thiết kế tùy chỉnh. Microsemi có trụ sở chính tại Aliso Viejo, California và có khoảng 4,800 nhân viên trên toàn cầu. Tìm hiểu thêm tại www.microsemi.com.
Lịch sử sửa đổi
Lịch sử sửa đổi mô tả những thay đổi đã được thực hiện trong tài liệu. Những thay đổi được liệt kê theo bản sửa đổi, bắt đầu từ ấn phẩm mới nhất.
- Bản sửa đổi 4.0
Đã cập nhật tài liệu cho bản phát hành phần mềm Libero v11.8. - Bản sửa đổi 3.0
Đã cập nhật tài liệu cho bản phát hành phần mềm Libero v11.7. - Bản sửa đổi 2.0
Đã cập nhật tài liệu cho bản phát hành phần mềm Libero v11.6. - Bản sửa đổi 1.0
Bản phát hành đầu tiên cho bản phát hành phần mềm Libero SoC v11.5.
Phát hiện và sửa lỗi trên thiết bị SmartFusion2 sử dụng bộ nhớ DDR
Giới thiệu
Trong môi trường dễ bị ảnh hưởng bởi sự kiện đơn lẻ (SEU), bộ nhớ truy cập ngẫu nhiên (RAM) dễ xảy ra các lỗi nhất thời do các ion nặng gây ra.
Tài liệu này mô tả các khả năng EDAC của SoC FPGA, được sử dụng trong các ứng dụng có bộ nhớ được kết nối thông qua hệ thống con vi điều khiển (MSS) DDR (MDDR).
Bộ điều khiển EDAC được triển khai trong các thiết bị SmartFusion2 hỗ trợ sửa lỗi đơn và phát hiện lỗi kép (SECDED). Tất cả bộ nhớ—bộ nhớ truy cập ngẫu nhiên tĩnh nâng cao (eSRAM), DDR, DDR công suất thấp (LPDDR)—trong các thiết bị MSS SmartFusion2 đều được bảo vệ bởi SECDED. Bộ nhớ truy cập ngẫu nhiên động đồng bộ DDR (SDRAM) có thể là DDR2, DDR3 hoặc LPDDR1, tùy thuộc vào cấu hình MDDR và khả năng ECC của phần cứng.
Hệ thống con MDDR SmartFusion2 hỗ trợ mật độ bộ nhớ lên tới 4 GB. Trong bản demo này, bạn có thể chọn bất kỳ vị trí bộ nhớ nào có kích thước 1 GB trong không gian địa chỉ DDR (0xA0000000 đến 0xDFFFFFFF).
Khi SECEDED được bật:
- Thao tác ghi sẽ tính toán và thêm 8 bit mã SECEDED (cho mỗi 64 bit dữ liệu)
- Thao tác đọc sẽ đọc và kiểm tra dữ liệu theo mã SECEDED được lưu trữ để hỗ trợ sửa lỗi 1 bit và phát hiện lỗi 2 bit
Hình minh họa sau đây mô tả sơ đồ khối của SmartFusion2 EDAC trên DDR SDRAM.
Hình 1 • Sơ đồ khối cấp cao nhất
Tính năng EDAC của DDR hỗ trợ những điều sau:
- Cơ chế SECEDED
- Cung cấp các ngắt cho bộ xử lý ARM Cortex-M3 và kết cấu FPGA khi phát hiện lỗi 1 bit hoặc lỗi 2 bit
- Lưu trữ số lỗi 1 bit và 2 bit trong thanh ghi bộ đếm lỗi
- Lưu trữ địa chỉ của vị trí bộ nhớ bị ảnh hưởng bởi lỗi 1 bit hoặc 2 bit cuối cùng
- Lưu trữ dữ liệu lỗi 1 bit hoặc 2 bit trong thanh ghi SECDED
- cung cấp tín hiệu bus lỗi cho kết cấu FPGA
Để biết thêm thông tin về EDAC, hãy xem UG0443: Hướng dẫn sử dụng độ tin cậy và bảo mật SmartFusion2 và IGLOO2 FPGA và UG0446: Hướng dẫn sử dụng giao diện DDR tốc độ cao SmartFusion2 và IGLOO2 FPGA.
Yêu cầu thiết kế
Bảng sau liệt kê các yêu cầu thiết kế.
Bảng 1 • Yêu cầu thiết kế
- Yêu cầu thiết kế Mô tả
- Yêu cầu phần cứng
- Bảng công cụ phát triển nâng cao SmartFusion2 Rev B trở lên
- Lập trình viên FlashPro5 trở lên
- Cáp USB A đến mini-B USB
- Bộ đổi nguồn 12 V
- Bo mạch con DDR3
- Hệ điều hành Bất kỳ Windows XP SP64 32-bit hoặc 2-bit
- Bất kỳ Windows 64 32-bit hoặc 7-bit nào
- Yêu cầu phần mềm
- Hệ thống trên chip Libero® (SoC) v11.8
- SoftConsole v4.0
- Phần mềm lập trình FlashPro v11.8
- Trình điều khiển máy chủ PC Trình điều khiển USB sang UART
- Framework để chạy trình diễn Máy khách Microsoft .NET Framework 4
Thiết Kế Demo
thiết kế trình diễn files có sẵn để tải xuống từ đường dẫn sau trong Microsemi webđịa điểm: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
thiết kế trình diễn filebao gồm:
- Cấu hình DDR File
- DDR_EDAC
- Lập trình files
- GUI có thể thực thi được
- Đọc tôi file
Hình minh họa sau đây mô tả cấu trúc cấp cao nhất của thiết kế fileS. Để biết thêm chi tiết, hãy xem readme.txt file.
Hình 2 • Cấu trúc cấp cao nhất của thiết kế demo
Triển khai thiết kế demo
Hệ thống con MDDR có bộ điều khiển EDAC chuyên dụng. EDAC phát hiện lỗi 1 bit hoặc lỗi 2 bit khi dữ liệu được đọc từ bộ nhớ. Nếu EDAC phát hiện lỗi 1 bit, bộ điều khiển EDAC sẽ sửa bit lỗi. Nếu EDAC được bật cho tất cả các lỗi 1 bit và 2 bit, bộ đếm lỗi tương ứng trong thanh ghi hệ thống sẽ tăng lên và các tín hiệu ngắt cũng như bus lỗi tương ứng tới kết cấu FPGA sẽ được tạo ra.
Điều này xảy ra trong thời gian thực. Để thể hiện tính năng SECDED này, một lỗi được đưa ra theo cách thủ công và được phát hiện và sửa chữa theo quan sát.
Thiết kế demo này bao gồm việc thực hiện các bước sau:
- Kích hoạt EDAC
- Ghi dữ liệu vào DDR
- Đọc dữ liệu từ DDR
- Tắt EDAC
- Hỏng 1 hoặc 2 bit
- Ghi dữ liệu vào DDR
- Kích hoạt EDAC
- Đọc dữ liệu
- Trong trường hợp có lỗi 1 bit, bộ điều khiển EDAC sẽ sửa lỗi, cập nhật các thanh ghi trạng thái tương ứng và đưa ra dữ liệu được ghi ở Bước 2 ở thao tác đọc được thực hiện ở Bước 8.
- Trong trường hợp có lỗi 2 bit, một ngắt tương ứng sẽ được tạo ra và ứng dụng phải sửa dữ liệu hoặc thực hiện hành động thích hợp trong trình xử lý ngắt. Hai phương pháp này được thể hiện trong bản demo này.
Hai thử nghiệm được triển khai trong bản demo này: thử nghiệm vòng lặp và thử nghiệm thủ công và chúng có thể áp dụng cho cả lỗi 1 bit và 2 bit.
Kiểm tra vòng lặp
Kiểm tra vòng lặp được thực thi khi thiết bị SmartFusion2 nhận được lệnh kiểm tra vòng lặp từ GUI. Ban đầu, tất cả các bộ đếm lỗi và các thanh ghi liên quan đến EDAC được đặt ở trạng thái RESET.
Các bước sau đây được thực hiện cho mỗi lần lặp.
- Kích hoạt bộ điều khiển EDAC
- Ghi dữ liệu vào vị trí bộ nhớ DDR cụ thể
- Vô hiệu hóa bộ điều khiển EDAC
- Ghi dữ liệu gây ra lỗi 1 bit hoặc 2 bit vào cùng một vị trí bộ nhớ DDR
- Kích hoạt bộ điều khiển EDAC
- Đọc dữ liệu từ cùng một vị trí bộ nhớ DDR
- Gửi dữ liệu phát hiện lỗi 1 hoặc 2 bit và sửa lỗi 1 bit trong trường hợp lỗi 1 bit tới GUI
Kiểm tra thủ công
Phương pháp này cho phép kiểm tra thủ công khả năng phát hiện và sửa lỗi 1 bit cũng như phát hiện lỗi 2 bit đối với địa chỉ bộ nhớ DDR (0xA0000000 đến 0xDFFFFFFF) khi khởi tạo. Lỗi 1-bit/2-bit được đưa vào địa chỉ bộ nhớ DDR đã chọn theo cách thủ công. Dữ liệu đã cho được ghi vào vị trí bộ nhớ DDR đã chọn có bật EDAC. Dữ liệu lỗi 1-bit hoặc 2-bit bị hỏng sau đó được ghi vào cùng một vị trí bộ nhớ khi EDAC bị tắt. Thông tin về lỗi 1-bit hoặc 2-bit được phát hiện sẽ được ghi lại khi dữ liệu được đọc từ cùng một vị trí bộ nhớ có bật EDAC. Bộ điều khiển DMA hiệu suất cao
(HPDMA) được sử dụng để đọc dữ liệu từ bộ nhớ DDR. Trình xử lý ngắt phát hiện lỗi bit kép được triển khai để thực hiện hành động thích hợp khi phát hiện lỗi 2 bit.
Hình minh họa sau đây mô tả các hoạt động demo EDAC.
Hình 3 • Quy trình thiết kế
Ghi chú: Đối với lỗi 2 bit, khi bộ xử lý Cortex-M3 đọc dữ liệu, quá trình thực thi mã sẽ chuyển sang bộ xử lý lỗi cứng vì ngắt nhận được bị trễ để bộ xử lý phản hồi. Vào thời điểm nó phản hồi lại ngắt, nó có thể đã truyền dữ liệu và vô tình đưa ra một lệnh. Kết quả là HRESP ngừng xử lý dữ liệu không chính xác. Tính năng phát hiện lỗi 2 bit sử dụng HPDMA để đọc dữ liệu từ vị trí địa chỉ DDR, hướng dẫn bộ xử lý đọc dữ liệu có lỗi 2 bit và hệ thống phải thực hiện hành động thích hợp để khôi phục (Trình xử lý ngắt ECC).
Thiết lập thiết kế demo
Phần này mô tả cách thiết lập bảng Bộ công cụ phát triển nâng cao SmartFusion2, các tùy chọn GUI và cách thực hiện thiết kế demo.
Các bước sau đây mô tả cách thiết lập bản demo:
- Kết nối một đầu của cáp USB mini-B với đầu nối J33 được cung cấp trong bo mạch Bộ công cụ phát triển nâng cao SmartFusion2. Kết nối đầu kia của cáp USB với PC chủ. Điốt phát sáng (LED) DS27 phải sáng lên, cho biết liên kết UART đã được thiết lập. Đảm bảo rằng trình điều khiển cầu nối USB tới UART được tự động phát hiện (có thể được xác minh trong Trình quản lý thiết bị), như minh họa trong hình sau.
Hình 4 • Trình điều khiển cầu nối USB sang UART
Nếu trình điều khiển cầu nối USB tới UART chưa được cài đặt, hãy tải xuống và cài đặt trình điều khiển từ: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip. - Kết nối các chân cắm trên bo mạch Bộ công cụ phát triển nâng cao SmartFusion2, như minh họa trong Bảng 4, trang 11. Công tắc cấp nguồn SW7 phải được TẮT trong khi thực hiện các kết nối chân cắm.
Hình 5 • Thiết lập bo mạch Bộ công cụ phát triển nâng cao SmartFusion2
Giao diện người dùng đồ họa
Phần này mô tả GUI demo DDR – EDAC.
Hình 6 • DDR – EDAC Demo GUI
GUI hỗ trợ các tính năng sau:
- Lựa chọn cổng COM và tốc độ Baud
- Lựa chọn tab sửa lỗi 1 bit hoặc phát hiện lỗi 2 bit
- Trường địa chỉ để ghi hoặc đọc dữ liệu đến hoặc từ địa chỉ DDR được chỉ định
- Trường dữ liệu để ghi hoặc đọc dữ liệu đến hoặc từ địa chỉ DDR được chỉ định
- Phần Serial Console để in thông tin trạng thái nhận được từ ứng dụng
- Enable EDAC/Disable EDAC: Bật hoặc tắt EDAC
- Write: Cho phép ghi dữ liệu vào địa chỉ được chỉ định
- Read: Cho phép đọc dữ liệu từ địa chỉ được chỉ định
- BẬT/TẮT kiểm tra vòng lặp: Cho phép kiểm tra cơ chế EDAC theo phương pháp vòng lặp
- Khởi tạo: Cho phép khởi tạo vị trí bộ nhớ được xác định trước (trong bản demo này A0000000-A000CFFF)
Chạy thiết kế demo
Các bước sau mô tả cách chạy thiết kế: Các bước sau mô tả cách chạy thiết kế:
- BẬT công tắc nguồn, SW7.
- Lập trình thiết bị SmarFusion2 bằng chương trình file cung cấp trong thiết kế files.(\Lập trìnhFile\EDAC_DDR3.stp) bằng phần mềm thiết kế FlashPro, như minh họa trong hình dưới đây.
Hình 7 • Cửa sổ lập trình FlashPro
- Nhấn công tắc SW6 để reset board sau khi lập trình thành công.
- Khởi chạy tệp thực thi GUI EDAC_DDR Demo file có sẵn trong thiết kế files (\GUI thực thi\EDAC_DDR.exe). Cửa sổ GUI hiển thị như Hình 8, trang 9.
- Nhấp vào Kết nối, nó chọn cổng COM và thiết lập kết nối. Tùy chọn kết nối thay đổi thành Ngắt kết nối.
- Chọn tab Sửa lỗi 1 bit hoặc Phát hiện lỗi 2 bit.
- Kiểm tra thủ công và vòng lặp có thể được thực hiện.
- Bấm vào Khởi tạo để khởi tạo bộ nhớ DDR nhằm thực hiện các bài kiểm tra Thủ công và Vòng lặp, một thông báo hoàn thành khởi tạo được hiển thị trên Bảng điều khiển nối tiếp, như trong Hình 8, trang 9.
Hình 8 • Cửa sổ khởi tạo hoàn tất
Thực hiện kiểm tra vòng lặp
Nhấp vào Kiểm tra vòng lặp BẬT. Nó chạy ở chế độ vòng lặp trong đó việc sửa và phát hiện lỗi liên tục được thực hiện. Tất cả các hành động được thực hiện trong thiết bị SmartFusion2 đều được ghi vào phần Bảng điều khiển nối tiếp của GUI.
Bảng 2 • Địa chỉ bộ nhớ DDR3 được sử dụng trong Kiểm tra vòng lặp
- Bộ nhớ DDR3
- Sửa lỗi 1 bit 0xA0008000
- Phát hiện lỗi 2 bit 0xA000C000
Thực hiện kiểm tra thủ công
Trong phương pháp này, lỗi được đưa ra một cách thủ công bằng GUI. Sử dụng các bước sau để thực hiện sửa lỗi 1 bit hoặc phát hiện lỗi 2 bit.
Bảng 3 • Địa chỉ bộ nhớ DDR3 được sử dụng trong Kiểm tra thủ công
Trường Địa chỉ và Dữ liệu đầu vào (sử dụng giá trị thập lục phân 32 bit).
- Bộ nhớ DDR3
- Sửa lỗi 1 bit 0xA0000000-0xA0004000
- Phát hiện lỗi 2 bit 0xA0004000-0xA0008000
- Nhấp vào Bật EDAC.
- Nhấp vào Viết.
- Nhấp vào Tắt EDAC.
- Thay đổi một bit (trong trường hợp sửa lỗi 1 bit) hoặc hai bit (trong trường hợp phát hiện lỗi 2 bit) trong trường Dữ liệu (lỗi giới thiệu).
- Nhấp vào Viết.
- Nhấp vào Bật EDAC.
- Nhấp vào Đọc.
- Quan sát trường Dữ liệu và Hiển thị Số lỗi trong GUI. Giá trị đếm lỗi tăng thêm 1.
Cửa sổ sửa vòng lặp lỗi 1 bit được hiển thị trong hình dưới đây.
Hình 9 • Cửa sổ phát hiện vòng lặp lỗi 1-bit
Cửa sổ thủ công phát hiện lỗi 2 bit được hiển thị trong hình dưới đây.
Hình 10 • Cửa sổ thủ công phát hiện lỗi 2-bit
Phần kết luận
Bản demo này cho thấy các khả năng SmartFusion2 SECDED cho hệ thống con MDDR.
Phụ lục: Cài đặt Jumper
Bảng sau đây hiển thị tất cả các jumper cần thiết để thiết lập trên Bộ công cụ phát triển nâng cao SmartFusion2.
Bảng 4 • Cài đặt Jumper của Bộ công cụ phát triển nâng cao SmartFusion2
Jumper : Ghim (Từ) : Ghim (Tới) : Bình luận
- J116, J353, J354, J54 1 2 Đây là các cài đặt jumper mặc định của Advanced
- J123 2 3 Bo mạch Bộ công cụ phát triển. Đảm bảo các nút nhảy này được đặt phù hợp.
- J124, J121, J32 1 2 JTAG lập trình qua FTDI
Hướng dẫn demo DG0618 Bản sửa đổi 4.0
Tài liệu / Tài nguyên
![]() |
Microsemi DG0618 Phát hiện và sửa lỗi trên thiết bị SmartFusion2 sử dụng bộ nhớ DDR [tập tin pdf] Hướng dẫn sử dụng DG0618 Phát hiện và sửa lỗi trên các thiết bị SmartFusion2 sử dụng bộ nhớ DDR, DG0618, Phát hiện và sửa lỗi trên các thiết bị SmartFusion2 sử dụng bộ nhớ DDR, Thiết bị SmartFusion2 sử dụng bộ nhớ DDR, Bộ nhớ DDR |