Bài giảng Thiết kế logic số - Chương 3, Bài: FPGA flow and design examples - Hoàng Văn Phúc
Nội dung
Nhắc lại bài trước: Cấu trúc FPGA
Qui trình thiết kế hệ thống số trên FPGA
Các ví dụ thiết kế
Thời lượng: 06 tiết
Tái cấu hình cho FPGA
SRAM-based:
- Hoạt động phụ thuộc nguồn điện cung cấp
- Khả năng tái cấu trúc linh hoạt
- Cho phép thực hiện các thiết kế lớn
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Thiết kế logic số - Chương 3, Bài: FPGA flow and design examples - Hoàng Văn Phúc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Thiết kế logic số - Chương 3, Bài: FPGA flow and design examples - Hoàng Văn Phúc
TS. Hoàng Văn Phúc Bộ môn KT Xung Số-Vi xử lý 11/2014 Thiết kế logic số (VLSI design) https://sites.google.com/site/phucvlsi/teaching Nội dung Nhắc lại bài trước: Cấu trúc FPGA Qui trình thiết kế hệ thống số trên FPGA Các ví dụ thiết kế Thời lượng: 06 tiết 2 Nhắc lại về FPGA: Cấu trúc cơ bản 3 LOGIC BLOCK LOGIC BLOCK LOGIC BLOCK.. LOGIC BLOCK LOGIC BLOCK LOGIC BLOCK.. LOGIC BLOCK LOGIC BLOCK LOGIC BLOCK.. IO_PAD IO_PAD IO_PAD IO _ P A D IO _ P A D IO_PAD IO_PAD IO_PAD IO _ P A D IO _ P A D IO _ P A D .. .. . . IO _ P A D IP_COREs, RAM, ROM... Interconnect wires Tái cấu hình cho FPGA SRAM-based: - Hoạt động phụ thuộc nguồn điện cung cấp - Khả năng tái cấu trúc linh hoạt - Cho phép thực hiện các thiết kế lớn 4 Hoạt động của FPGA Người dùng ghi giá trị vào bộ nhớ cấu hình (configuration memory) để định chức năng hệ thống: Kết nối giữa CLBs và I/O cells Mạch logic cần thực thi trên CLBs Các khối I/O • Thay đổi nội dung bộ nhớ cấu hình Thay đổi chức năng hệ thống • Việc thay đổi có thể thực hiện khi mạch đang chạy (run-time configuration) Tính toán tái cấu hình (RC: reconfigurable computing) 5 Kiến trúc của Configurable Logic Blocks (CLBs) Mỗi CLB bao gồm: Look-up Tables (LUT): Bảng tra Mạch Carry & Control Các phần tử nhớ 6Configurable Logic Block (CLB): Khối logic khả trình (có thể tái cấu hình) Hệ thống nhúng (embedded system) trên FPGA Source: Internet 7 System on board System on chip (SoC) ASIC (Application Specific Integrated Circuit) và FPGA (Field Programmable Gate Array) 8 ASIC (IC chuyên dụng) FPGA Chức năng cố định Người dùng có thể định lại cấu hình cho thiết kế Thời gian thiết kế dài và chi phí cao Thời gian thiết kế ngắn và chi phí thấp Tốc độ và hiệu năng cao Tốc độ và hiệu năng thấp hơn Tiết kiệm chi phí đối với số lượng sản phẩm lớn Hiệu quả với số lượng sản phẩm nhỏ Qui trình thiết kế với FPGA và ASIC 9 Tốc độ (speed): thông qua tốc độ clock tối đa hoặc độ trễ dài nhất của mạch tổ hợp (critical path) Tài nguyên sử dụng: số lượng LUTs, slices, CLBs cần cho thiết kế Thông lượng: số lượng bit dữ liệu có thể được xử lý trong một đơn vị thời gian Công suất tiêu thụ Đánh giá một thiết kế trên FPGA 10 11 Qui trình thiết kế trên FPGA (Tổng quan) Qui trình thiết kế trên FPGA (chi tiết) Design and implement a simple unit permitting to speed up encryption with RC5-similar cipher with fixed key set on 8031 microcontroller. Unlike in the experiment 5, this time your unit has to be able to perform an encryption algorithm by itself, executing 32 rounds.. Library IEEE; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity RC5_core is port( clock, reset, encr_decr: in std_logic; data_input: in std_logic_vector(31 downto 0); data_output: out std_logic_vector(31 downto 0); out_full: in std_logic; key_input: in std_logic_vector(31 downto 0); key_read: out std_logic; ); end RC5_core; Specification (Mô tả bài toán) Mô tả VHDL (Source Files) hoặc sơ đồ mạch logic Functional simulation (Mô phỏng chức năng) Post-synthesis simulation (Mô phỏng sau tổng hợp) Synthesis (Tổng hợp) 12 Implementation (Thực thi) Configuration (Cấu hình) Timing simulation (Mô phỏng về thời gian) On board testing (Kiểm tra trên mạch) Qui trình thiết kế trên FPGA (chi tiết) 13 Technology mapping (Ánh xạ công nghệ) Là việc ánh xạ từ chức năng logic vào cấu trúc phần cứng cụ thể của FPGA 14 Mạch logic: Đường tín hiệu: Technology mapping (tiếp) 15 Phần mềm thiết kế trên FPGA của Xilinx ISE: Integrated Software Environment 1616 Khung để gõ lệnh hoặc thể hiện nhanh kết quả chạy biên dịch thiết kế Phân cấp thiết kế Design/Files/Libraries Source files/Summary Các thành phần chính của Xilinx ISE Suite XST: Synthesis tool (Công cụ để tổng hợp thiết kế) Implementation tool (Công cụ thực thi) Generate programming file (Tạo file cấu hình) Configuration (Cấu hình cho FPGA) ISIM: trình mô phỏng tích hợp trong ISE (chức năng tương tự modelsim) Các thành phần khác: Plan-ahead, xPower analyzer Ngoài ra, gần đây Xilinx phát triển thêm Vivado Suite có các thành phần hỗ trợ tổng hợp mức cao (high level synthesis) cho phép tổng hợp thiết kế từ các ngôn ngữ bậc cao như C, C++ 17 VHDL vs. Schematic library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity compare_module is port (value : in std_logic_vector(3 downto 0); res : out std_logic); end compare_module; architecture Behavioral of compare_module is signal std : std_logic_vector (4 downto 0); begin val <= '0' & value; process (val, std) begin sub <= val - std; res <= sub(4); end process; end Behavioral; Độc lập với công nghệ Dễ hơn trong quản lý thiết kế phức tạp Dễ kiểm tra thiết kế hơn HDL 18Schematic: Thiết kế bằng sơ đồ nguyên lý Synthesis (Tổng hợp thiết kế) Synthesis Check syntax & synthesis Generate netlist (post simulation model) (optional) Create Technology schematic (optional) Create RTL schematic (optional) 19 RTL = Structural HDL Kiểm tra cú pháp và tổng hợp Tạo netlist Tạo sơ đồ nguyên lý công nghệ Tạo sơ đồ nguyên lý RTL Netlist: Bản mô tả thiết kế mạch dưới dạng text Synthesis library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity compare_module is Port value: in std_logic_vector (3 downto 0); res : out std_logic); end compare_module; architecture Behavioral of compare_module is signal std : std_logic_vector (4 downto 0); begin val <= '0' & value; process (val, std) begin sub <= val - std; res <= sub(4); end process; end Behavioral; UNISIM Library 20 Synthesis - netlist library IEEE; library IEEE; use IEEE.STD_LOGIC_1164.ALL; library UNISIM; use UNISIM.VCOMPONENTS.ALL; use UNISIM.VPKG.ALL; entity sp3_led is port ( LED1 : out STD_LOGIC; LED2 : out STD_LOGIC; ... ); end sp3_led; architecture Structure of sp3_led is signal SW8_IBUF_31 : STD_LOGIC; begin LED81 : LUT2 generic map( INIT => X"1" ) port map ( I0 => SW8_IBUF_31, I1 => SW7_IBUF_29, O => LED8_OBUF_15 ); ... Netlist: Bản mô tả thiết kế mạch dưới dạng text 21 Synthesis – RTL Schematic 22 Synthesis – Technology Schematic 23 Synthesis – UCF file (user constraint file): Thể hiện các ràng buộc thiết kế của mạch # IO location defination NET "HIGH_voltage" LOC = P102; NET "LOW_voltage" LOC = P100; NET "voltage[0]" LOC = P160; NET "voltage[1]" LOC = P161; NET "voltage[2]" LOC = P162; NET "voltage[3]" LOC = P163; # Timing constraint INST "LOW_voltage" TNM = "OUT_REG"; INST "HIGH_voltage" TNM = "OUT_REG"; NET "voltage[0]" OFFSET = IN 2 ns VALID 0.5 ns BEFORE "CLK" TIMEGRP "OUT_REG" RISING; NET "voltage[1]" OFFSET = IN 2 ns VALID 0.5 ns BEFORE "CLK" TIMEGRP "OUT_REG" RISING; NET "voltage[2]" OFFSET = IN 2 ns VALID 0.5 ns BEFORE "CLK" TIMEGRP "OUT_REG" RISING; NET "voltage[3]" OFFSET = IN 2 ns VALID 0.5 ns BEFORE "CLK" TIMEGRP "OUT_REG" RISING; 24 Implementation (thực thi): Chuẩn bị dữ liệu cho việc cấu hình FPGA Implementation (Thực thi) Translate (Dịch) Post-translate simulation model Mapping (Ánh xạ) Post-map simulation model Post-map static Timing Place & Route Post-place-route static timing Post-place-route simulation model 2525 Place & Route (P & R): Đặt và định tuyến Translate (Dịch) Translation UCF NGD EDIF NCF Constraint Editor User Constraint File (Ràng buộc do người dùng) Circuit netlist Timing Constraints Synthesis 26 EDIF (Electronic Design Interchange Format): một dạng dữ liệu chung giữa các hãng để chứa thông tin netlist và schematic của mạch điện Native Generic Database file (.ngd): File cơ sở dữ liệu chung nguyên gốc Native Constraint File: File ràng buộc nguyên gốc Mapping (Ánh xạ) Ánh xạ các khối sơ đồ logic vào các khối cơ sở của FPGA file .ncd 27 Place & Route: Đặt vào ví trí cụ thể trên FPGA 28 FPGA Verification (Kiểm tra thiết kế trên FPGA) Verification Function (Chức năng) Timing (Thời gian, tốc độ) On-circuit testing (trên mạch) 29 Tái cấu hình động trên FPGA 30 Giao thức truyền tin nối tiếp IDLE START DATA PARITY STOP IDLE 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1151413 SAMPLE RX RX Sample counter 0 0 1 2 3 4 5 6 7 8x 0Bit counter ONE BIT RECEIVING Tbraud 3131 Máy trạng thái khối thu UART IDLE START FRAME DETECTOR RECEIVE DATA CNT16 = 8 and RX = 1 RX = 0, Rx_Reg = 1 (Fall_edge) CNT16 = 8 and RX = 0 CNT_BIT = 8 32 Sơ đồ khối nhận UART SAMPLE COUNTER FSM (FINITE STATE MACHINE) RECEIVE_REG CLOCK DIVIDER BIT COUNTER DATA REG RX_REG RX_REG LOAD SHIFT_ENABLE CNT RESET ENABLE CNT RESET ENABLE CLK Rx CLK16 nRESET LEDs 33 Kết quả mô phỏng trên modelsim 34 Khối giao tiếp VGA 35 Tín hiệu quét VGA 3636 Sơ đồ khối VGA HORIZONTAL COUNTER VERTICAL COUNTER DCM_BLOCK (optional) CHARACTER_ ROM (optional) DATA_RAM (optional) RGB GENERATOR HS VS R G B DCM_CLK CLK_IN vcount hcount 37 Khối NCO NCO (Numerically Controler Osillator): khối tổng hợp dao động, có khả năng tổng tạo ra dao động với tần số mong muốn một các trực tiếp bằng một vi mạch số tích hợp 38 Cơ sở toán học 39 Sơ đồ khối 40 Phase quantization 4141 Simulation wave-form 42
File đính kèm:
- bai_giang_thiet_ke_logic_so_chuong_3_bai_fpga_flow_and_desig.pdf