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

pdf 42 trang Bích Ngọc 05/01/2024 3680
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

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:

  • pdfbai_giang_thiet_ke_logic_so_chuong_3_bai_fpga_flow_and_desig.pdf