Các hệ phần mềm thiết kế chuyên dụng, Tự động thiết kế điện tử và lập trình FPGA

231 73 0
Các hệ phần mềm thiết kế chuyên dụng, Tự động thiết kế điện tử và lập trình FPGA

Đ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

MỤC LỤC 1 Chương 1: TỔNG QUAN VỀ EDA VÀ FPGA ....................................................15 1.1. Giới thiệu tổng quan về lĩnh vực tự động thiết kế điện tử ............................. 15 1.2. Linh kiện logic khả trình, công nghệ và công cụ phát triển........................... 16 1.3. Các chủng loại linh kiện khả trình.................................................................. 16 1.3.1. Linh kiện CPLD....................................................................................... 16 1.3.2. Linh kiện ASIC........................................................................................ 17 1.3.3. Linh kiện pSoC........................................................................................ 17 1.3.4. Linh kiện FPGA....................................................................................... 18 1.4. Các công ty hàng đầu hoạt động trong lĩnh vực EDA.................................... 18 1.5. Các họ linh kiện CPLD và FPGA của Xilinx................................................. 19 1.5.1. CPLD ....................................................................................................... 19 1.5.1.1. CoolRunner ....................................................................................... 20 1.5.1.1.1. CoolRunner XPLA3................................................................... 20 1.5.1.1.2. CoolRunner-II ............................................................................ 20 1.5.1.2. XC9500 series................................................................................... 21 1.5.1.2.1. XC9500 ...................................................................................... 21 1.5.1.2.2. XC9500-XV ............................................................................... 22 1.5.1.2.3. XC9500-XL................................................................................ 23 1.5.2. FPGA của Xilinx ..................................................................................... 24 1.5.2.1. Spartan .............................................................................................. 24 1.5.2.1.1. Spartan-XL ................................................................................. 24 1.5.2.1.2. Spartan-II.................................................................................... 25 1.5.2.1.3. Spartan-IIE ................................................................................. 25 1.5.2.1.4. Spartan3...................................................................................... 26 1.5.2.1.5. Spartan-3L.................................................................................. 26 1.5.2.1.6. Spartan-3 .................................................................................... 26 1.5.2.1.7. Spartan-3E.................................................................................. 27 1.5.2.1.8. Spartan-3A, -3A DSP, -3AN...................................................... 27 1.5.2.2. Virtex ................................................................................................ 29 1.5.2.2.1. Virtex / E / EM........................................................................... 29 1.5.2.2.2. Virtex™-II.................................................................................. 29 1.5.2.2.3. Virtex-II Pro FPGAs .................................................................. 29 1.5.2.2.4. Virtex-II Pro X FPGAs .............................................................. 30 1.5.2.2.5. Virtex-4 Multi-Platform FPGA.................................................. 31 1.6. Tổng kết chương và câu hỏi ôn tập ................................................................ 35 2 Chương 2: NGÔN NGỮ LẬP TRÌNH MÔ TẢ PHẦN CỨNG........................... 36 2.1. Giới thiệu chung về ngôn ngữ mô tả phần cứng ............................................ 36 2.2. Ngôn ngữ mô tả phần cứng VHDL ................................................................ 37 2 2.2.1. Mở đầu .................................................................................................... 37 2.2.2. Cấu trúc chương trình VHDL................................................................. 38 2.2.2.1. Entity - Thực thể ............................................................................. 39 2.2.2.2. Architecture - Kiến trúc ................................................................... 39 2.2.2.3. Gán tín hiệu đồng thời...................................................................... 40 2.2.2.4. Định thời các sự kiện ....................................................................... 41 2.2.2.5. Phát biểu đồng thời .......................................................................... 41 2.2.2.6. Thiết kế có cấu trúc.......................................................................... 41 2.2.2.7. Hành vi tuần tự................................................................................. 42 2.2.2.8. Các phát biểu tiến trình .................................................................... 43 2.2.2.9. Các phát biểu cấu hình ..................................................................... 43 2.2.3. Tiến trình tuần tự .................................................................................... 44 2.2.3.1. Phát biểu tiến trình .......................................................................... 44 2.2.3.2. Danh sách tín hiệu tác động ............................................................. 44 2.2.3.3. Ví dụ về tiến trình ............................................................................ 44 2.2.4. Gán tín hiệu và gán biến ......................................................................... 46 2.2.5. Các phát biểu tuần tự .............................................................................. 49 2.2.5.1. Phát biểu IF ...................................................................................... 49 2.2.5.2. Phát biểu CASE................................................................................ 51 2.2.5.3. Phát biểu LOOP ............................................................................... 53 2.2.5.4. Phát biểu NEXT............................................................................... 55 2.2.5.5. Phát biểu EXIT................................................................................. 56 2.2.5.6. Phát biểu ASSERT

BỘ QUỐC PHỊNG TRUNG TÂM KHOA HỌC KỸ THUẬT–CƠNG NGHỆ QUÂN SỰ VŨ LÊ HÀ (CHỦ BIÊN) NGUYỄN TRƯỜNG SƠN PHAN HỒNG MINH NGUYỄN QUANG HƯNG GIÁO TRÌNH CÁC HỆ PHẦN MỀM THIẾT KẾ CHUYÊN DỤNG (HỆ PHẦN MỀM TỰ ĐỘNG THIẾT KẾ ĐIỆN TỬ VÀ LẬP TRÌNH FPGA) Hà nội, năm 2007 MỤC LỤC Chương 1: TỔNG QUAN VỀ EDA VÀ FPGA 15 1.1 Giới thiệu tổng quan lĩnh vực tự động thiết kế điện tử .15 1.2 Linh kiện logic khả trình, cơng nghệ cơng cụ phát triển 16 1.3 Các chủng loại linh kiện khả trình 16 1.3.1 Linh kiện CPLD .16 1.3.2 Linh kiện ASIC 17 1.3.3 Linh kiện pSoC 17 1.3.4 Linh kiện FPGA .18 1.4 Các công ty hàng đầu hoạt động lĩnh vực EDA 18 1.5 Các họ linh kiện CPLD FPGA Xilinx .19 1.5.1 CPLD .19 1.5.1.1 CoolRunner .20 1.5.1.1.1 CoolRunner XPLA3 20 1.5.1.1.2 CoolRunner-II 20 1.5.1.2 XC9500 series 21 1.5.1.2.1 XC9500 21 1.5.1.2.2 XC9500-XV .22 1.5.1.2.3 XC9500-XL 23 1.5.2 FPGA Xilinx .24 1.5.2.1 Spartan 24 1.5.2.1.1 Spartan-XL 24 1.5.2.1.2 Spartan-II 25 1.5.2.1.3 Spartan-IIE 25 1.5.2.1.4 Spartan3 26 1.5.2.1.5 Spartan-3L 26 1.5.2.1.6 Spartan-3 26 1.5.2.1.7 Spartan-3E 27 1.5.2.1.8 Spartan-3A, -3A DSP, -3AN 27 1.5.2.2 Virtex 29 1.5.2.2.1 Virtex / E / EM 29 1.5.2.2.2 Virtex™-II 29 1.5.2.2.3 Virtex-II Pro FPGAs 29 1.5.2.2.4 Virtex-II Pro X FPGAs 30 1.5.2.2.5 Virtex-4 Multi-Platform FPGA 31 1.6 Tổng kết chương câu hỏi ôn tập 35 Chương 2: NGƠN NGỮ LẬP TRÌNH MƠ TẢ PHẦN CỨNG 36 2.1 Giới thiệu chung ngôn ngữ mô tả phần cứng 36 2.2 Ngôn ngữ mô tả phần cứng VHDL 37 2.2.1 Mở đầu 37 2.2.2 Cấu trúc chương trình VHDL 38 2.2.2.1 Entity - Thực thể 39 2.2.2.2 Architecture - Kiến trúc 39 2.2.2.3 Gán tín hiệu đồng thời 40 2.2.2.4 Định thời kiện 41 2.2.2.5 Phát biểu đồng thời 41 2.2.2.6 Thiết kế có cấu trúc 41 2.2.2.7 Hành vi 42 2.2.2.8 Các phát biểu tiến trình 43 2.2.2.9 Các phát biểu cấu hình 43 2.2.3 Tiến trình 44 2.2.3.1 Phát biểu tiến trình 44 2.2.3.2 Danh sách tín hiệu tác động 44 2.2.3.3 Ví dụ tiến trình 44 2.2.4 Gán tín hiệu gán biến 46 2.2.5 Các phát biểu 49 2.2.5.1 Phát biểu IF 49 2.2.5.2 Phát biểu CASE 51 2.2.5.3 Phát biểu LOOP 53 2.2.5.4 Phát biểu NEXT 55 2.2.5.5 Phát biểu EXIT 56 2.2.5.6 Phát biểu ASSERT 58 2.2.5.7 Phát biểu WAIT 61 2.2.5.7.1 WAIT ON 63 2.2.5.7.2 WAIT UNTIL 63 2.2.5.7.3 WAIT FOR 63 2.2.5.7.4 Ghép điều kiện cho WAIT 64 2.2.5.7.5 WAIT time_out 64 2.2.5.8 So sánh danh sách tín hiệu tác động phát biểu WAIT 66 2.2.6 Gán đồng thời 67 2.2.6.1 Tiến trình thụ động 70 2.2.7 Các hàm chuyển đổi 72 2.2.8 Các toán tử so sánh số học 73 2.3 Tổng kết chương câu hỏi ôn tập 74 Chương 3: THIẾT KẾ FPGA SỬ DỤNG MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE – INTEGRATED SOFTWAVE ENVIRONMENT 75 3.1 Chu trình thiết kế FPGA 75 3.2 Phần mềm thiết kế ISE Xilinx 77 3.2.1 Trình tự thiết kế ISE qua tập thiết kế 81 3.2.2 Những đoạn chương trình mẫu 84 3.2.3 Soạn thảo module Counter 85 3.2.4 Mô chức .87 3.2.5 Lập trình mơ tả trạng thái 91 3.2.6 Thiết kế mức đỉnh VHDL 97 3.2.7 Mô thiết kế 103 3.2.8 Thiết kế sơ đồ nguyên lý mức đỉnh .105 3.2.8.1 Tạo thiết kế sơ đồ nguyên lý mức đỉnh 106 3.2.8.2 Đánh dấu cổng vào .108 3.2.8.3 Mô thiết kế sơ đồ nguyên lý mức đỉnh 110 3.3 Tổng kết chương câu hỏi ôn tập 112 Chương 4: MÔ PHỎNG THIẾT KẾ FPGA SỬ DỤNG MODELSIM .113 4.1 Giới thiệu 113 4.2 Bài – Mô bản: Tạo thư viện thiết kế 114 4.3 Bài – Các dự án ModelSim .123 4.4 Bài – Làm việc với nhiều thư viện 132 4.5 Bài - Quan sát mô cửa sổ Wave 138 4.6 Bài - Quan sát khởi tạo nhớ .145 4.7 Bài - Tự động mô 157 4.8 Tổng kết chương 161 Chương 5: THIẾT KẾ HỆ THỐNG DSP TRÊN NỀN FPGA SỬ DỤNG SYSTEM GENERATOR 162 5.1 Giới thiệu 162 5.2 Làm quen với System Generator 168 5.2.1 Bài 1: Các bước để tạo thiết kế 168 5.2.2 Bài 2: Các toán tử Bit trỏ tĩnh 174 5.2.3 Bài 3: Điều khiển hệ thống 180 5.2.4 Bài 4: Các hệ thống đa tốc độ 185 5.2.5 Bài 5: Sử dụng nhớ 188 5.2.6 Bài 6: Thiết kế lọc 192 5.3 Tổng kết chương câu hỏi ôn tập 195 Chương 6: PHÁT TRIỂN HỆ THỐNG NHÚNG SỬ DỤNG EDK – EMBEDDED DEVELOPMENT KIT 196 6.1 Tổng quan EDK .196 6.1.1 Các khái niệm 196 6.1.2 Các công cụ hỗ trợ EDK 196 6.1.2.1 Thư viện XPS (Xilinx Platforme Studio) .196 6.1.2.2 Công cụ thiết kế phần cứng Platgen (Hardware Platform Generation Tool) 197 6.1.2.3 Trình xây dựng hệ thống BSB (Base System Builder) 197 6.1.2.4 Công cụ tạo mẫu mô Simgen (Simulation Model Generation Tool) 197 6.1.2.5 Tạo dựng ngoại vi người dùng (Create and Import Peripheral) 197 6.1.2.6 Công cụ khởi tạo thư viện Libgen (Library Generation Tool) 197 6.1.2.7 Công cụ tạo chuỗi bit Bitinit (Bitstream Initializer) 197 6.1.2.8 Công cụ phát triển phần mềm GNU (Software Development Tools) 197 6.1.2.9 Công cụ gỡ rối cho vi xử lý Xilinx XMD (Xilinx Microprocessor Debugger) 197 6.1.3 Giao diện người dùng XPS 198 6.1.3.1 Cửa sổ giao tiếp người dùng (1) 198 6.1.3.2 Cửa sổ thông tin project (2) 198 6.1.3.2.1 Danh mục Project (4) 198 6.1.3.2.2 Danh mục Applications (5) 198 6.1.3.2.3 Danh mục IP Catalog (6) 198 6.1.3.3 Cửa sổ ghép nối hệ thống (3) 199 6.1.3.4 Cửa sổ kết nối bus (7) 199 6.1.3.5 Filter (9) 199 6.1.4 Xây dựng phần cứng (Hardware Platform) 200 6.1.4.1 Nền phần cứng 200 6.1.4.2 Xây dựng phần cứng thư viện (Platform Studio) 200 6.1.5 Xây dựng phần mềm (Software Platform) 200 6.1.5.1 Nền phần mềm 200 6.1.5.2 Xây dựng phần mềm 200 6.1.6 Hỗ trợ phần mềm ứng dụng 201 6.1.7 Các hỗ trợ EDK yêu cầu cấu hình cho máy tính 202 6.2 Quy trình thiết kế project XPS 202 6.2.1 Khái quát trình thiết kế Project 202 6.2.1.1 Thiết kế project hai môi trường ISE XPS 202 6.2.1.2 Thiết kế project với XPS 203 6.2.2 Xây dựng project môi trường XPS 204 6.2.2.1 Phát triển phần cứng 204 6.2.2.2 Xây dựng phần mềm ứng dụng 205 6.2.2.3 Xây dựng phần mềm ứng dụng XPS 205 6.2.2.4 Mô gỡ rối cho phần mềm ứng dụng 206 6.2.2.4.1 Mô - Simulation 206 6.2.2.4.2 Gỡ rối - Debug 207 6.2.2.5 Khởi tạo ghép nối phần mềm, phần cứng 208 6.2.3 Giới thiệu vê công cụ thiết kế hệ thống với BSB 209 6.2.3.1 Xây dựng project không sử dụng BSB 209 6.2.3.2 Xây dựng project với BSB 210 6.3 Một ví dụ cụ thể với MicroBlaze processor Spartan-3 board 211 6.3.1 Yêu cầu chung .211 6.3.2 Các bước tiến hành 211 6.3.2.1 Khởi tạo XPS 211 6.3.2.2 Xậy dựng project với BSB 212 6.3.2.3 Xây dựng sử dụng ngoại vi người dùng 217 6.3.2.4 Phát triển thiết kế XPS 220 6.3.2.5 Thiết kế phần mềm 222 6.3.2.5.1 Cấu hình BSP 222 6.3.2.5.2 Xây dựng phần mềm ứng dụng 224 6.3.2.5.3 Biên dịch phần mềm ứng dụng 225 6.3.2.5.4 Nạp file biên dịch lên board .225 6.4 Tổng kết chương .226 Phụ lục: CÁC BÀI TẬP THỰC HÀNH 227 Bài Thiết kế đếm .227 Bài 2: Thiết kế đồng hồ báo thức – Alarm Clock .228 TÀI LIỆU THAM KHẢO .230 DANH MỤC HÌNH VẼ Hình 1.1: Cấu trúc FPGA 18 Hình 1.2: Các chủng loại linh kiện họ spartan3 26 Hình 3.1: Chu trình thiết kế FPGA 75 Hình 3.2 Project Navigator - Giao diện phần mềm ISE .78 Hình 3.3: Các cửa sổ file nguồn quản lý tín trình thiết kế dự án 78 Hình 3.4: Cửa sổ quản lý tiến trình ký hiệu thông báo trạng thái biên dịch .79 Hình 3.5: Chọn kiểu mơ cơng cụ mô 79 Hình 3.6: Quan sát chi tiết tiến trình công cụ biên dịch 80 Hình 3.7: Cửa sổ báo cáo kết tổng hợp 80 Hình 3.8: Tạo file lập trình cho chip 81 Hình 3.9: tạo dự án 82 Hình 3.10: Khai báo thuộc tính linh kiện 82 Hình 3.11: Chọn kiểu file nguồn 83 Hình 3.12: Khai báo cổng vào 83 Hình 3.13: File nguồn đưa thiết kế .84 Hình 3.14: Cửa sổ soạn thảo mã nguồn HDL (HDL Editor ) 84 Hình 3.15: Mã chương trình sau sửa đổi .86 Hình 3.16: Tạo file testbench cho mô .87 Hình 3.17: Cài đặt tham số thời gian tín hiệu cho mơ 88 Hình 3.18: Biểu đồ tín hiệu mô theo thời gian 88 Hình 3.19: Cài đặt tín hiệu đầu vào .89 Hình 3.20: Chọn chế độ mơ hành vi (Behavioral Simulation) 89 Hình 3.21: Thực mô Behavioral Simulation .90 Hình 3.22: Kết mơ 90 Hình 3.23: Chụp lại trạng thái dự án 91 Hình 3.24: Tạo file nguồn mơ tả trạng thái 91 Hình 3.25: Thiết kế mơ tả trạng thái sử dùng State Machine Wizard 92 Hình 3.26: Thiết lập số trạng thái hệ thống 92 Hình 3.27: Cài đặt bước chuyển trạng thái 93 Hình 3.28: Sửa trạng thái .93 Hình 3.29: Xác định giá trị đầu 94 Hình 3.30: Lưu đồ mơ tả trạng thái hệ thống .94 Hình 3.31: Sửa đổi điều kiện trạng thái .95 Hình 3.32: Sửa đổi vector 95 Hình 3.33: Thiết kế mơ tả trạng thái hồn chỉnh 96 Hình 3.34: Kết biên dịch từ lưu đồ trạng thái sang dạng mã HDL .96 Hình 3.35: Mã HDL biên dịch từ lư đồ trạng thái 97 Hình 3.36: File mơ tả trạng thái (*.dia) thêm vào thiết kế 97 Hình 3.37: Lấy snapshot dự án 98 Hình 3.38: Tạo file mức đỉnh .98 Hình 3.39: Định nghĩa tín hiệu vào module mức đỉnh 99 Hình 3.40: Mã nguồn khai báo entity module mức đỉnh - top 99 Hình 3.41: Sử dụng Instantiation Template để tạo component Counter 100 Hình 3.42: Đặt component Counter vào entity top 100 Hình 3.43: Kết nối counter state machine vào entity top 101 Hình 3.44: Kết nối tín hiệu component .102 Hình 3.45: Thay đổi STAT_MAC Behavior SHELL_STAT_MAC BEHAVIOR 103 Hình 3.46: Các file nguồn thành phần nằm file nguồn mức đỉnh 103 Hình 3.47: Tạo file mô thiết kế .104 Hình 3.48: Thiết lập tham số mô 104 Hình 3.49: Thiết lập ESET 105 Hình 3.50: Kết mơ 105 Hình 3.51: Các file nguồn thành phần chưa có sơ đồ nguyên lý mức đỉnh .106 Hình 3.52: Tạo sơ đồ nguyên lý mức đỉnh 106 Hình 3.53: Tạo symbol cho file nguồn HDL thành phần 107 Hình 3.54: Các symbol file nguồn HDL thành phần 107 Hình 3.55: Kết nối component 108 Hình 3.56: Đặt tên tín hiệu 108 Hình 3.57: Sơ đồ nguyên lý hoàn thiện .109 Hình 3.58: Mã nguồn HDL tạo tự động từ sơ đồ nguyên lý mức đỉnh 109 Hình 3.59: Tạo file mơ sơ đồ nguyên lý mức đỉnh 110 Hình 3.60: Khởi tạo tham số mơ 110 Hình 3.61: Cài đặt tín hiệu đầu vào 111 Hình 3.62: Chạy mô 111 Hình 3.63: Kết mô 111 Hình 4.1: Hộp thoại Welcome to ModelSim .115 Hình 4.2: Hộp thoại tạo thư viện 116 Hình 4.3: Thư viện làm việc tạo .116 Hình 4.4: Hộp thoại biên dịch file nguồn HDL 117 Hình 4.5: Các moduleVerilog biên dịch vào thư viện work 118 Hình 4.6: Tải thiết kế vào mơ .118 Hình 4.7: Tải thiết kế với hộp thoại Start Simulation 119 Hình 4.8: Ơ tab biểu diễn thiết kế Verilog 119 Hình 4.9: Đặt tín hiệu vào cửa sổ Wave 120 Hình 4.10: Các dạng sóng vẽ cửa sổ Wave 120 Hình 4.11: Một điểm dừng cửa sổ Source 121 Hình 4.12: Hộp thoại Restart 122 Hình 4.13: Để trỏ chuột lên biến cửa sổ Source 122 Hình 4.14: Các giá trị biểu cửa sổ Objects .123 Hình 4.15: Hộp thoại tạo dự án 123 Hình 4.16: Hộp thoại thêm file vào dự án 124 Hình 4.17: Thêm file vào dự án 125 Hình 4.18: Các file đặt hiển thị kí hiệu’?’ cho cửa sổ trạng thái 125 Hình 4.19: Thư viện work chứa file nguồn dự án .126 Hình 4.20: Quan sát module thành phần file .127 Hình 4.21: Thêm thư mục 128 Hình 4.22: Thư mục xuất vùng làm việc 128 Hình 4.23: Đạt tên thư mục .128 Hình 4.24: Tên thư mục thêm .129 Hình 4.25: Hộp thoại Simulation Configuration 130 Hình 4.26: Tạo cấu hình mơ 131 Hình 4.27: Biểu diễn tuỳ chọn cho Simulation Configuration 131 Hình 4.28: Các dẫn hướng biên dịch dòng lệnh 132 Hình 4.29: Biên dịch counter vào thư viện tài nguyên 133 Hình 4.30: counter đưa vào thư viện tài nguyên 134 Hình 4.31: Lỗi mơ Verilog thơng báo cửa sổ Main 135 Hình 4.32: Cảnh báo mô VHDL cửa sổ Main 135 Hình 4.33: Ánh xạ tới thư viện parts_lib 136 Hình 4.34: Thiết lập thư viện 137 Hình 4.35: Mã nguồn testbench 138 Hình 4.36: Cửa sổ wave 139 Hình 4.37: Phóng to 140 Hình 4.38: Thu nhỏ 141 Hình 4.39: Sử dụng trỏ 142 Hình 4.40: Đổi tên trỏ 143 Hình 4.41: Đo khoảng thời gian hai trỏ 143 Hình 4.42: Khóa trỏ 144 Hình 4.43: quan sát nhớ 146 Hình 4.44: Nội dung nhớ 146 Hình 4.45: Bộ nhớ mô 147 Hình 4.46: Thay đổi số giá trị địa 147 Hình 4.47: Nội dung nhớ 148 Hình 4.48: Hộp thoại GOTO .148 Hình 4.49: Thay đổi địa trực tiếp 149 Hình 4.50: Tìm giá trị liệu 149 Hình 4.51: Hộp thoại lưu nhớ .150 Hình 4.52: Hộp thoại nạp nhớ .151 Hình 4.53: Khởi tạo nhớ từ file gán giá trị .152 Hình 4.54: nạp file liệu nhớ .153 Hình 4.55: Viết đè liệu nhớ 153 Hình 4.56: Nội dung nhớ gốc 154 Hình 4.57: Thay đổi nội dung nhớ giải địa 154 Hình 4.58: Nội dung nhớ 155 Hình 4.59: Thay đổi nội dung nhớ 156 Hình 4.60: Nhập giá trị .156 Hình 4.61: Thay đổi nội dung địa xác định .156 Hình 4.62: Mở tập liệu 159 Hình 5.1: Thiết kế sở mơ hình sử dụng System Generator 163 Hình 5.2: Các khối chức System Genrator 163 Hình 5.3: Khối chức biên dịch lọc số 164 Hình 5.4: Kết hợp với MatLAB 165 Hình 5.5: Đánh giá tài nguyên hệ thống 166 Hình 5.6: Đồng mơ phần cứng phần mềm 166 Hình 5.7: Tích hợp hệ thống 167 Hình 5.8: Chu trình thiết kế sử dụng System Generator 169 Hình 5.9: Tập cơng cụ SysGen 169 Hình 5.10: Xác định đường biên cho khối chức FPGA 170 Hình 5.11: Khối Token System Generator .171 Hình 5.12: Cấu trúc thiết kế DSP sử dụng System Generator .171 Hình 5.13: Tạo mã HDL 172 Hình 5.14: Thiết kế sở mơ hình hóa 173 Hình 5.15: Thiết lập vector đầu vào sử dụng MATLAB 173 Hình 5.16: biến đổi kiểu double từ Simulink sang dạng số dấu phảy tĩnh 175 Hình 5.17: Lượng tử hóa trỏ tĩnh 176 Hình 5.18: Các mode tràn (Overflow) làm tròn (Round) .177 Hình 5.19: Khối Reinterpret 178 Hình 5.20: Khối Convert (biến đổi) 178 Hình 5.21: Khối Concat (ghép nối) 178 Hình 5.22: Khối Slice 179 Hình 5.23: Khối BitBasher 179 Hình 5.24: Điều khiển hệ thống DSP 181 Hình 5.25: Khối MCode 181 Hình 5.26: Máy trạng thái 182 Hình 5.27: Khối Expression .183 Hình 5.28: Các cổng Reset Enable 184 Hình 5.29: Bursty Data 184 Hình 5.30: Các hệ thống đa tốc độ 185 Hình 5.31: Up Sampling 186 Hình 5.32: Down Sampling .186 Hình 5.33: Quan sát thay đổi tốc độ Simulink 187 Hình 5.34: Các công cụ gỡ rối 187 Hình 5.35: Các qui tắc chu kỳ lấy mẫu 188 Hình 5.36: Block Distributed RAM (RAM khối RAM phân tán) 189 Hình 5.37: Khởi tạo RAM ROM .189 Hình 5.38: Các khối RAM System Generator 190 Hình 5.39: Các khối ROM System Generator 191 Hình 5.40: Khối giữ chậm 191 Hình 5.41: Cấu trúc khối SRL16E bên khối giữ chậm 191 Hình 5.42: Khối FIFO 192 Hình 5.43: Khối DSP48 .193 Hình 5.44: Khối biên dịch lọc số 193 Hình 5.45: Thiết kế lọc số sử dụng FDA Tools 194 Hình 5.46: Sử dụng kết tính tốn hệ số lọc 195 Hình 6.1: Giao diện XPS 199 Hình 6.2: Trình tự thiết kế project 201 Hình 6.3: Các luồng thiết kế khác ISE XPS 204 Hình 6.4: Tạo project .206 Hình 6.5: Tiến hành bước mơ cho thiết kế 207 Hình 6.6: Tạo project trắng khơng sử dụng BSB 209 Hình 6.7: Lựa chọn họ thiết bị FPGA 210 Hình 6.8: Tạo project với BSB 212 Hình 6.9: Lựa chọn board phát triển 212 Hình 6.10: Thiết lập tham số cho MicroBlaze .213 Hình 6.11: Cấu hình giao tiếp vào 214 Hình 6.12: Cấu hình giao tiếp vào 215 Hình 6.13: Thiết lập phần mềm 216 Hình 6.14: Cấu hình phần mềm ứng dụng kiểm tra nhớ 216 Hình 6.13: Thiết lập phần mềm Kích Next, Hình 6.14 cho phép cấu hình cho ứng dụng kiểm tra nhớ Thiết lập cấu hình sau: o Intructions: ilmb_cntlr o Data: dlmb_cntr o Stack/Heap: dlmb_cntr Hình 6.14: Cấu hình phần mềm ứng dụng kiểm tra nhớ 216 Kích Next Lúc cơng việc cho thiết lập phần cứng mềm hoàn tất Cửa sổ Hình 6.15 sơ đồ nhớ hệ thống mà BSB tự động sinh Hiện tại, thay đối địa này, nhiên việc thực XPS Hình 6.15: Tóm tắt hệ thống Kích Generate sau kích Finish để hồn thành thiết kế Chọn Start Using Platform Studio để chuyển sang phát triển thiết kế XPS, sau kích OK 6.3.2.3 Xây dựng sử dụng ngoại vi người dùng Một đặc điểm trội việc thiết kế hệ xử lý nhúng FPGA khả xây dựng IP core cho người dùng giao tiếp với xử lý Trong phần thảo luận bước nhằm tạo dựng IP core người dùng Trong cửa sổ giao diện XPS, chọn Hardware → Create or Import Peripheral… để mở cửa sổ tạo dựng IP 217 Kích Next, chọn Create templates for a new peripheral Theo mặc định, ngoại vi xây dựng nằm đường dẫn project/pcores Điều cho phép XPS tìm core sử dụng trình xây dựng, phát triển hệ nhúng Kích Next, cửa sổ thoại Create Peripheral – Name and Version, nhập tên ngoại vi custom_ip Hình 6.16 Hình 6.16: Đặt tên phiên cho ngoại vi tạo dựng Kích Next, hộp thoại Create Peripheral – Bus Interface, chọn Bus ngoại vi chip OPB (On-Chip Peripheral Bus) để kết nối ngoại vi với hệ thống Kích Next, hộp thoại Create Peripheral – IPIF Services cho phép lựa chọn số phục vụ khác Trong ví dụ chọn User logic S/W register support Hình 6.17 218 Hình 6.17: Lựa chọn dịch vụ IPIF Kích Next, hộp thoại Create Peripheral – User S/W Register, thay đổi số ghi Number of software accessible registers thành Hình 6.18: Cấu hình ghi cho ngoại vi 219 Kích Next, Khơng thay đổi giá trị mặc định cửa sổ Create Peripheral – IP Interconnect (IPIC) Kích Next, khơng đánh dấu tuỳ chọn Generate BFM simulation platform hộp thoại Create Peripheral – (OPTIONAL) Peripheral Simulation Support Kích Next, để trống tuỳ chọn Generate ISE XST project file hộp thoại Create Peripheral – (OPTIONAL) Peripheral Implementation Support Kích Next Kích Finish Lúc này, IP core hình thành với file tạo đường dẫn pcores/custom_ip_v1_00_a Đường dẫn bao gồm file sau: Hình 6.19: Các file tạo xây dựng thiết bị ngoại vi người dùng Để cho IP core thực chức theo yêu cầu người dùng, cần thay đổi file user_logic.vhd đường dẫn pcores\custom_ip_v1_00_a\hdl\vhdl Trong file thời, đoạn code ví dụ thực việc đọc viết vào ghi 32 bit Với mục đích ví dụ này, không cần phải thay đổi mã nguồn Để XPS thực bổ sung IP core vào thư viện sẵn sàng cho việc sử dụng thiết kế, đường dẫn pcores phải quét lại cách chọn Project → Rescan User Repositories 6.3.2.4 Phát triển thiết kế XPS Khi project xây dựng BSB, thay đổi phát triển XPS 220 Hình 6.20: Bổ sung ngoại vi tạo dựng vào thiết kế Sau custom_ip xây dựng, bước bổ sung IP core vào project Mở Project Repository danh mục IP Catalog, thấy custom_ip xuất Kéo thả IP core kích đúp vào cửa sổ System Assembly View Kích hoạt Bus Interface filter Nhấn Connection Filter lựa chọn All Mở instance custom_ip_0, đánh dấu vào kết nối SOPB Trong hộp menu No connection, kéo xuống chọn mb_opb - Hình 6.21: Kết nối Bus cho ngoại vi 221 Chuyển sang kích hoạt Ports filter Nhấn Connection Filter lựa chọn All Mở instance custom_ip_0, đánh dấu vào cổng OPB_Clk Trong hộp menu Default connection, kéo xuống chọn sys_clk_s - Hình 6.22: Kết nối cổng vào cho ngoại vi Kích hoạt Addresses filter để định nghĩa địa cho ngoại vi custom_ip thêm vào Địa thay đổi cách nhập địa sở Base Address tự động sinh XPS Trong ví dụ này, để XPS tự động gán giá trị Thay đổi kích thước dlmb_cntr ilmb_cntr thành 8K Kích Generate Addresses Thiết kế lúc sẵn sàng cho việc thực thi lên FPGA 6.3.2.5 Thiết kế phần mềm Sau việc thiết kế phần cứng hoàn thành, bước thiết kế phần mềm Có hai bước cấu hình gói hỗ trợ board BSP (Board Support Package) viết phần mềm ứng dụng Việc cấu hình BSP bao gồm lựa chọn driver thư viện cho thiết bị 6.3.2.5.1 Cấu hình BSP Chọn Software →Software Platform Settings Hộp thoại tương ứng xuất hình 3.16, bao gồm mục chính: Software Platform, OS and Libraries, Driver Interrupt Handlers 222 Hình 6.23: Cấu hình tham số cho phần mềm Software Platform cho phép người dùng thay đổi tham số xử lý, driver, hệ điều hành thư viện Có hệ điều hành hỗ trợ bao gồm: Standalone, Xilkernel, Uclinux Nucleus Chọn giá trị mặc định cửa sổ OS and Libraries: Cho phép người dùng cấu hình tham số hệ điều hành thư viện Sử dụng giá trị mặc định Hình 6.24: Lựa chọn hệ điều hành thư viện cho ngoại vi Drivers: Cho phép người dùng lựa chọn phiên phần mềm cho ngoại vi hệ nhúng, phiên driver phụ thuộc vào phiên phần cứng 223 Hình 6.25: Lựa chọn driver phiên cho ngoại vi Interrupt Handler: Cho phép người dùng thay đổi tham số cho ngắt Trong ví dụ khơng sử dụng ngắt nên không cần thay đổi tham số cửa sổ Kích OK Chọn Software → Generate Libraries and BSPs để chạy LibGen tạo BSP, lúc tất driver, thư viện, cấu hình cho STDIN, STDOUT trình quản lý ngắt project sinh 6.3.2.5.2 Xây dựng phần mềm ứng dụng Trong phần xây dựng project với BSB, chọn để BSB tự động sinh phần mềm ứng dụng cho việc kiểm tra nhớ thiết bị ngoại vi khác Như Hình 6.26 thấy project TestApp_Memory dùng để kiểm tra hoạt động nhớ Hình 6.26: Phần mềm ứng dụng cho kiểm tra nhớ 224 6.3.2.5.3 Biên dịch phần mềm ứng dụng Chúng ta sử dụng trình biên dịch GNU GCC để biên dịch ứng dụng sau: Chọn Software → Build All User Applications để chạy mb-gcc biên dịch file mã nguồn Cửa sổ Console thơng báo kết biên dịch sau: Hình 6.27: Kết biên dịch project 6.3.2.5.4 Nạp file biên dịch lên board Kết nối máy tính với board đích qua cáp Parallel- JTAG serial RS232 Chạy ứng dụng Hyperterminal với cổng COM mà cáp RS232 đươc kết nối Cấu hình cho kết nối sau: o Bits per second: 57600 o Data bits: o Parity: none o Stop bits: o Flow control: none Cấp nguồn cho board Trên cửa sổ Project Information chọn danh mục Applications Kích chuột phải vào Project: TestApp_Memory, đánh dấu Mark to Initialize BRAMs Chọn Device Configuration →Download Bitstream Sau dòng chuỗi bit nạp lên FPGA, chương trình bắt đầu chạy Hyperterminal thị kết kiểm tra nhớ sau: Hình 6.28: Kết chạy project xây dựng 225 6.4 Tổng kết chương Trong chương làm quen với công cụ phát triển hệ thống nhúng EDK Xilinx Đây cơng cụ phát triển thiết kế riêng cho dòng linh kiện FPGA Xilinx dự án phát triển nhúng sử dụng vi xử lý tích hợp cứng (PowerPC) hay lõi vi xử lý mềm (MicroBlaze, PicoBlaze) Xilinx 226 Phụ lục: CÁC BÀI TẬP THỰC HÀNH Bài Thiết kế đếm Nhiệm vụ: Học viên sử dụng cơng cụ lập trình FPGA ISE Xilinx để thiết kế đếm số Thiết kế sử dụng ngơn ngữ VHDL, sơ đồ ngun lí, mơ tả trạng thá sử dụng IP core cung cấp sẵn từ phần mềm công cụ Board phần cứng sử dụng Spartan3 Starter Kit (xem phụ lục board kèm theo) Yêu cầu cụ thể: Thiết kế hồn chỉnh có sơ đò nguyên lí dạng RTL tương tự sau: Reset Up LED7(1 4) Counter top level Down Clk AN(1 4) Với tín hiệu vào ra: Reset : input, stdỴlogic; Clk : input, stdỴlogic; Up : input, stdỴlogic; Down : input, stdỴlogic; LED : output, stdỴlogicỴvector (7 down to 0); (điều khiển catot LED7) AN : output, stdỴlogicỴvector (3 down to 0); (điều khiển anot LED7) Các chế độ hoạt động bao gồm: - Bộ đếm khởi tạo với giá trị “0000”; - Bấm nút “Up”: giá trị đếm tăng đến “9999” với tần số 1Hz - Bấm nút “Down”: giá trị đếm giảm “0000” với tần số 1Hz - Bấm nút “reset”: giá trị đếm khởi tạo số student ID “00xx” Ví dụ học viên có số thứ tự 09, đếm hiển thị “0009” Gán tín hiệu vào cho thiết kế (constrain file): Reset : BTN3 Clk : Clk50MHz Up : BTN0 Down : BTN1 LED : LED7_0 LED7_3 AN : AN0 AN3 Nội dung báo cáo: - Mã nguồn chương trình thiết kế; - Report từ chương trình dịch tài nguyên linh kiện sử dụng thiết kế; - Mã nguồn testbench testbench waveform; - Screen shot kết mô ModelSim 227 Bài 2: Thiết kế đồng hồ báo thức – Alarm Clock Nhiệm vụ: Bài tập thiết kế cho nhóm 02 học viên Các học viên tự thành lập nhóm làm việc phân tích tốn để phân chia nhiệm vụ lập trình cho người Học viên sử dụng cơng cụ lập trình FPGA ISE Xilinx để thiết kế đồng hồ báo thức số Thiết kế sử dụng ngơn ngữ VHDL, sơ đồ ngun lí, mơ tả trạng thái sử dụng IP core cung cấp sẵn từ phần mềm công cụ Board phần cứng sử dụng Spartan3 Starter Kit (xem phụ lục board kèm theo) Yêu cầu cụ thể: Đồng hồ báo thức có chức hiển thị thời gian (clock) GMT dạng giờphút-giây (hh-mm-ss) Giá trị thời gian cài đặt lại thơng qua núm nút tăng giảm, chuyển mạch chọn lựa hour minute Đồng hồ có chức báo thức thơng qua việc quản lí đếm lùi (coundown timer) Thời điểm báo thức cài đặt độc lập với giá trị thời gian (nghĩa người sử dụng cài đặt thời điểm báo thức, đồng hồ chạy bình thường) Chức báo thức cài đặt trạng thái ON OFF, đèn trạng thái Khi đến thời điểm báo thức, chức báo thức trạng thái ON, đồng hồ phát tín hiệu báo thức cách làm sáng nhấp nháy đèn báo thức Ngược lại đèn báo thức trạng thái tắt Các giá trị thời gian GMT thời điểm báo thức hiển thị hiển thị gồm LED (cho giá trị hour minute), giá trị second thể thông qua nhấp nháy đèn LED tròn Thiết kế hồn chỉnh có sơ đồ nguyên lí dạng RTL tương tự sau: sys_clk alarm sys_reset alarm_enable set_clock Alarm Clock top level display_set_alarm display_7seg(7 0) hours Display_enable(3 0) minutes alarm_onoff Mô tả chức tín hiệu vào, ra: Các tín hiệu vào (dạng std_logic): 228 sys_clock: clock hệ thống 50 MHz; sys_reset: tín hiệu reset khơng đồng bộ, mức kích hoạt thấp, khởi tạo timer khơng, xóa nhớ timer không, clock alarm 12AM (nửa đêm), tắt alarm set_clock: chuyển mạch hai vị trí, kích hoạt, dừng clock hiển thị giá trị clock thời cho phép đặt lại clock nút ấn hours minutes; display_set_alarm: chuyển mạch hai vị trí, kích hoạt, trường hợp set_clock trạng thái khơng kích hoạt, hiển thị giá trị alarm, cho phép cài đặt alarm nút ấn hours minutes; hours: nút ấn, kích hoạt mức thấp, nút ấn thực chức phù hợp trạng thái tại, tăng giá trị hours hiển thị lên thêm đơn vị (giá trị hours clock alarm), lần nút nhấn nhả, giá trị hours tăng thêm 1, trường hợp nút nhấn giữ giây, giá trị hours tăng liên tục với tần số Hz (lưu ý: nút chức hoạt động trạng thái alarm không kêu, đầu vào set_clock display_set_alarm trạng thái kích hoạt, ngược lại thao tác ấn nút bị bỏ qua); minutes: nút ấn, kích hoạt mức thấp, nút ấn thực chức phù hợp trạng thái tại, tăng giá trị minutes hiển thị lên thêm đơn vị (giá trị minutes clock alarm), lần nút nhấn nhả, giá trị minutes tăng thêm 1, trường hợp nút nhấn giữ giây, giá trị minutes tăng liên tục với tần số Hz (lưu ý: nút chức hoạt động trạng thái alarm không kêu, đầu vào set_clock display_set_alarm trạng thái kích hoạt, ngược lại thao tác ấn nút bị bỏ qua); alarm_onoff: nút ấn, kích hoạt mức thấp, alarm trang thái kêu (nhấp nháy đèn) tắt chuông alarm đi, giá trị alarm hiển thị, bật/tắt chức alarm Các tín hiệu (dạng std_logic, std_logic_vector): alarm: kích hoạt mức thấp; alarm_enable: kích hoạt mức thấp, kích hoạt, thơng báo chức báo thức bật; display_7seg(7 downto 0): bus liệu cho hiển thị LED thanh; display_enable(3 downto 0): kích hoạt mức cao, cho phép hiển thị LED tương ứng; Nội dung báo cáo: - Mã nguồn chương trình thiết kế; - Report từ chương trình dịch tài nguyên linh kiện sử dụng thiết kế; - Mã nguồn testbench testbench waveform; - Screen shot kết mô ModelSim Báo cáo kết quả: Chạy thiết kế board Stater Kit 229 TÀI LIỆU THAM KHẢO [1] Tống Văn On, “Nguyên lý mạch tích hợp” NXB Lao động Xã hội 2005 [2] Douglas.L.Perry, “VHDL – Programming By Examples”, McGraw-Hill 2002 [3] Các tài liệu hãng Xilinx (bao gồm: datasheets, user manuals, user guides, tutorials, application notes, white papers, ) [4] Các tài liệu hãng Mentor Graphics (bao gồm: [3]) [5] Các tài liệu hãng Altera (bao gồm: [3]) [6] Jim Whittington, Các tài liệu giảng dạy môn học Cơ sở thiết kế điện tử (Foundation Electronic Design – FED) bao gồm giáo trình, tập thực hành, tập lớn, Đại học LaTrobe – Úc 230 ... 12 PHẦN MỞ ĐẦU Giáo trình Các hệ phần mềm thiết kế chuyên dụng – Hệ phần mềm tự động thiết kế điện tử lập trình FPGA đề cập tới lĩnh vực bao gồm phương pháp thiết kế kiểm tra hệ thống điện tử. .. CPLD, ASIC, FPGA Các công cụ thiết kế ngôn ngữ lập trình phát triển theo để trợ giúp người thiết kế cách tối đa vấn đề lập trình thiết kế hệ thống 1.3 Các chủng loại linh kiện khả trình 1.3.1... cụ phần mềm thiết kế với đầy đủ chức cần thiết cho chu trình thiết kế FPGA từ đến nâng cao Nội dung giáo trình phân chia thành chương: Chương 1: Giới thiệu tổng quan lĩnh vực tự động thiết kế điện

Ngày đăng: 14/04/2020, 07:26

Từ khóa liên quan

Mục lục

  • Giao trinh - trang bia.pdf

  • Giao trinh - Cac he phan mem thiet ke chuyen dung trong linh vuc tu dong thiet ke dien tu_ v11.pdf

    • 1 Chương 1: TỔNG QUAN VỀ EDA VÀ FPGA

      • 1.5.2.1.2. Spartan-II

      • 2 Chương 2: NGÔN NGỮ LẬP TRÌNH MÔ TẢ PHẦN CỨNG

        • 2.2.2.1. Entity - Thực thể

          • 2.2.3. Tiến trình tuần tự

            • 2.2.3.1. Phát biểu tiến trình

            • 2.2.3.2. Danh sách tín hiệu tác động

            • 2.2.3.3. Ví dụ về tiến trình

            • 2.2.4. Gán tín hiệu và gán biến

            • 2.2.5. Các phát biểu tuần tự

              • 2.2.5.1. Phát biểu IF

              • 2.2.5.2. Phát biểu CASE

              • 2.2.5.3. Phát biểu LOOP

              • 2.2.5.4. Phát biểu NEXT

              • 2.2.5.5. Phát biểu EXIT

              • 2.2.5.6. Phát biểu ASSERT

              • 2.2.5.7. Phát biểu WAIT

              • 2.2.6. Gán đồng thời

                • Begin

                • 3 Chương 3: THIẾT KẾ FPGA SỬ DỤNG MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE – INTEGRATED SOFTWAVE ENVIRONMENT

                  • 3.2.4. Mô phỏng chức năng

                    • 3.2.5. Lập trình mô tả trạng thái

                    • 3.2.6. Thiết kế mức đỉnh của VHDL

                    • 3.2.7. Mô phỏng thiết kế

                    • 3.2.8. Thiết kế sơ đồ nguyên lý mức đỉnh

                      • 3.2.8.1. Tạo một thiết kế sơ đồ nguyên lý mức đỉnh

                      • 3.2.8.2. Đánh dấu các cổng vào ra

                      • 3.2.8.3. Mô phỏng thiết kế sơ đồ nguyên lý mức đỉnh

Tài liệu cùng người dùng

Tài liệu liên quan