Bài giảng Thiết kế logic số - Chương 3.2: Qui trình thiết kế hệ thống số trên FPGA - Hoàng Văn Phúc
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
42 trang |
Chia sẻ: huongthu9 | Lượt xem: 659 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Thiết kế logic số - Chương 3.2: Qui trình thiết kế hệ thống số trên FPGA - Hoàng Văn Phúc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
Các file đính kèm theo tài liệu này:
- bai_giang_thiet_ke_logic_so_chuong_3_2_qui_trinh_thiet_ke_he.pdf