ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA VẬT LÝ
BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Đề tài :
NGHIÊN CỨU PHƯƠNG PHÁP THIẾT KẾ
VI MẠCH TÍCH HỢP HƯỚNG ỨNG DỤNG
Giảng viên hướng dẫn : ThS Lê Đức Hùng
KS Trần Quốc Hân
KS Hoàng Ngọc Vũ
Sinh viên thực hiện : Trần Trung Hiếu
MSSV : 0213078
TP HỒ CHÍ MINH 07/2006
LỜI CẢM ƠN
Trong suốt bốn năm học ở giảng đường của Đại Học Khoa Học Tự Nhiên
( ĐHQG TP.HCM ) là khoảng thời gian quý báu, giúp em tích lũy kiến thức và
kinh nghiệm trong quá trình học tập nhằm giúp ích cho công việc của em sau
này.
Để đạt được kết quả như ngày hôm nay :
Con xin gửi lời cảm ơn đến Ba Mẹ và những người thân trong gia đình đã
luôn động viên, khuyến khích để con có thể vượt qua những khó khăn, thử thách
trong suốt quá trình học tập.
Em xin chân thành tri ân các Thầy Cô trong bộ môn Điện Tử - Viễn
Thông đã tận tình chỉ dạy và hướng dẫn em trong suốt quá trình học tập và thực
hiện đề tài.
Em xin gửi lời cảm ơn sâu sắc đến Thầy Lê Đức Hùng, người đã nhiệt
tình hướng dẫn, chỉ bảo em trong suốt quá trình thực hiện luận văn tốt nghiệp.
Em xin chân thành cảm ơn anh Hoàng Ngọc Vũ, anh Nguyễn Quyết
Thắng, anh Trần Quốc Hân, anh Nguyễn Duy Mạnh Thi cùng các anh chị trong
nhóm SoC của Công ty SDS đã nhiệt tình hướng dẫn, giúp đỡ em trong quá trình
thực hiện đề tài.
Cuối cùng xin gửi lời cảm ơn đến bạn bè tôi những người đã luôn ủng hộ,
động viên, khuyến khích tôi trên suốt quãng đường học tập và thực hiện đề tài
tốt nghiệp.
Sinh viên
TRẦN TRUNG HIẾU
LỜI NÓI ĐẦU
Công nghệ vi điện tử những năm gần đây đã có sự phát triển mạnh
mẽ và đạt được nhiều thành tựu đáng kể. Nó trở thành nền tảng cho các
công nghệ ứng dụng viễn thông, công nghệ máy tính và các thiết bị dùng
trong đời sống. Đây là một lĩnh vực mới đầy triển vọng và nhiều thách
thức, việc nghiên cứu hướng đi này là thật sự cần thiết. Để tiếp cận công
nghệ mới này em chọn thực hiện đề tài “Nghiên cứu phương pháp thiết
kế vi mạch tích hợp hướng ứng dụng”.
Phương pháp thiết kế vi mạch cho phép tích hợp toàn bộ hệ thống
trên một Chip đơn duy nhất. Ngày nay với sự hỗ trợ của các phần mềm
máy tính tinh vi – EDA/CAD, công việc thiết kế bằng cách vẽ lược đồ kỹ
thuật ( Schematic ) cho thiết kế không còn nữa. Do đó giai đoạn thiết kế
được cải thiện đáng kể đáp ứng được yêu cầu ngày càng cao về tốc độ, độ
phức tạp và khả năng tích hợp trên Chip.
Nội dung luận văn đề cập đến các vấn đề sau :
• Tìm hiểu quy trình thiết kế SoC.
• Nghiên cứu phương pháp Tổng hợp Logic ( Logic Synthesis ).
• Thực hiện phương pháp Tổng hợp Logic trên Testchip
B2FSTC003.
Luận văn tốt nghiệp mong muốn đem lại cho người đọc những khái
niệm, hiểu biết một cách tổng quát nhất về công nghệ đầy triển vọng này.
Nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
MỤC LỤC
SVTH : Trần Trung Hiếu
Chương 1 – Quy trình thiết kế SoC
CHƯƠNG 1 : QUY TRÌNH THIẾT KẾ SoC
( SoC FLOW )
System on chip ( SoC ) là tổ hợp của nhiều thiết kế cho phép chạy ứng
dụng trên một Chip đơn duy nhất. SoC trở thành một trong những nhánh quan
trọng trong ngành công nghiệp bán dẫn những năm gần đây cho phép thiết kế có
mức độ tích hợp đạt đến hàng triệu cổng logic. Quy trình thiết kế SoC gồm hai
giai đoạn thiết kế : giai đoạn thiết kế Front End và giai đoạn thiết kế Back End.
Giai đoạn thiết kế Front End thực hiện việc xây dựng thiết kế về mặt luận
lý như viết mã, mô phỏng kiểm tra, thiết đặt các ràng buộc, phân tích thời gian
v.v
Giai đoạn thiết kế Back End thực hiện việc chuyển mô tả thiết kế từ mặt
luận lý ở giai đoạn thiết kế Front End sang mô tả vật lý thiết kế bằng cách đặt các
Cell, đi dây kết nối các Cell, kiểm tra thời gian thực v.v…
SVTH : Trần Trung Hiếu
1
Chương 1 – Quy trình thiết kế SoC
Hình 1.1 – Quy trình thiết kế SoC
SVTH : Trần Trung Hiếu
Functional Specification
Functional Specification
Define Architecture
Define Architecture
RTL Coding
RTL Coding
Dynamic Verification
Dynamic Verification
Synthesis & Scan Insertion
Synthesis & Scan Insertion
Pre-Layout STA
Pre-Layout STA
Formal Verification
Formal Verification
Tape out
Tape out
Place and Route
Place and Route
Check
Function
Check
Function
Equivalenc
e
Equivalenc
e
Check
Timing
Check
Timing
Pass
Fail
Pass
Fail
Pass
Fail
Post-Layout STA
Post-Layout STA
Check
Timing
Check
Timing
Pass
Fail
2
Chương 1 – Quy trình thiết kế SoC
1.1 GIAI ĐOẠN THIẾT KẾ FRONT END
1.1.1 Functional Specification
Chip ra đời xuất phát từ những ứng dụng thực tế, người thiết kế từ mục
đích của ứng dụng và ý tưởng phải phác thảo ra bảng mô tả chi tiết thông số kỹ
thuật cũng như những tính năng mà thiết kế cần đạt được. Bảng thông số kỹ thuật
cho biết những đặc điểm của thiết kế như tần số hoạt động, điều kiện điện áp,
nhiệt độ và các mối quan hệ định thời trong thiết kế.
1.1.2 Define Architecture
Từ bảng mô tả chi tiết thông số kỹ thuật của thiết kế, người thiết kế sẽ phác
họa sơ đồ khối cho thiết kế bao gồm nhiều khối Logic kết nối với nhau, mỗi khối
Logic thực hiện một chức năng nhất định trong thiết kế.
Hình 1.2 – Functional Specification và Define Architecture
1.1.3 RTL Coding
Sau khi có sơ đồ khối của thiết kế với các khối Logic kết nối với nhau,
người thiết kế sẽ tiến hành viết mã RTL cho từng khối Logic đó. Viết mã RTL là
giai đoạn quan trọng, viết mã RTL ngoài việc đảm bảo đúng chức năng Logic còn
phải thỏa mãn phần cứng yêu cầu trong thiết kế ( Flip Flop, Latch, Mux … ).
SVTH : Trần Trung Hiếu
Sơ đồ khối luận lý
Sơ đồ khối luận lý
Thông số vật lý
Thông số vật lý
Functional
Specification
Functional
Specification
Ứng dụng
Ứng dụng
3
Chương 1 – Quy trình thiết kế SoC
1.1.4 Dynamic Verification
Sau giai đoạn viết mã RTL thiết kế sẽ được mô phỏng động bằng cách đưa
các tín hiệu vào và nhận tín hiệu ra sau khi mô phỏng. Vì chức năng thiết kế là
hoàn toàn xác định trước nên ứng với một tín hiệu ngõ vào xác định người thiết kế
có thể biết được ngõ ra mong muốn, so sánh tín hiệu ngõ ra với tín hiệu ngõ ra
mong muốn để kiểm tra mã RTL có thỏa chức năng của thiết kế hay không. Nếu
chưa thỏa phải kiểm tra lại mã RTL.
Việc kiểm tra này không quan tâm đến thông số thời gian, định thời của
thiết kế, chỉ thuần túy về mặt chức năng.
Chương trình viết để đưa tín hiệu ngõ vào và nhận tín hiệu ngõ ra mong
muốn được gọi là Testbench. Testbench cũng được viết bằng ngôn ngữ mô tả phần
cứng để giao tiếp với thiết kế cần mô phỏng.
Hình 1.3 – Dynamic Verification
1.1.5 Synthesis and Scan Insertion
Sau khi đã đảm bảo về chức năng của thiết kế, thiết kế sẽ được chuyển qua
giai đoạn Synthesis và Scan Insertion.
Synthesis là quá trình dùng phần mềm để biên dịch mã RTL sang Gate-
level Netlist bằng cách kết hợp với các ràng buộc về điều kiện môi trường, ràng
buộc thời gian để tương tác với phần mềm nhằm mục đích chọn ra các Cell trong
thư viện thỏa các điều kiện ràng buộc của thiết kế. Trong quá trình này phần mềm
SVTH : Trần Trung Hiếu
Mã RTL
Mã RTL
Testbench
Testbench
Report, Waveform
Report, Waveform
RTL Simulation
RTL Simulation
4
Chương 1 – Quy trình thiết kế SoC
sẽ cố gắng tối ưu để thỏa các điều kiện ràng buộc. Phần mềm của Synopsys
thường được sử dụng là Design Compiler ( viết tắt là DC ).
Những thiết kế ngày nay bao gồm cả thiết kế cho việc kiểm tra lỗi Silicon
của quá trình sản xuất, kỹ thuật này gọi là Design For Test ( DFT ). Một trong
những phương pháp của kỹ thuật DFT là Scan Insertion, phương pháp này sẽ tạo
nên trong thiết kế những cấu trúc dùng riêng cho việc kiểm tra lỗi Silicon.
Hình 1.4 – Synthesis and Scan Insertion
1.1.6 STA ( Static Timing Analysis )
Thiết kế sau khi được Synthesis phải đảm bảo đúng về mặt chức năng, thỏa
mãn các thông số vật lý và phải hoạt động ở một tốc độ nhất định, đây chính là tốc
độ yêu cầu của thiết kế.
STA là giai đoạn phân tích về mặt thời gian của thiết kế sau khi Synthesis,
phần mềm sử dụng là Prime Time cho phép phân tích độ trì hoãn qua các đường
truyền tín hiệu trong thiết kế. Kết quả phân tích sẽ là các báo cáo, người thiết kế
dựa vào các bảng báo cáo này để xem tốc độ hoạt động của thiết kế có đạt yêu cầu
hay không. Trong thực tế quá trình STA được lặp đi lặp lại nhiều lần với Synthesis
cho đến khi các yêu cầu về thời gian của thiết kế được thỏa mãn.
SVTH : Trần Trung Hiếu
Synthesis and Scan Insertion
Mô tả RTL
Mô tả RTL
Thư viện Cell
Thư viện Cell
Các điều kiện ràng buộc
Các điều kiện ràng buộc
Gate Level Netlist
Gate Level Netlist
Synthesis and Scan Insertion
Synthesis and Scan Insertion
5
Chương 1 – Quy trình thiết kế SoC
STA gồm hai giai đoạn : pre-layout STA và post-layout STA. Giai đoạn
pre-layout STA đảm bảo thiết kế thỏa mãn các yêu cầu về thời gian sau quá trình
Synthesis. Giai đoạn post-layout STA đảm bảo thiết kế vẫn thỏa về thời gian sau
khi Back End thiết đặt các giá trị thực về R, C của các Cell và các dây nối.
1.1.7 Formal Verification
Formal Verification là giai đoạn nhằm đảm bảo tính chính xác về mặt chức
năng của thiết kế, không xem xét đến thông số định thời và thông số vật lý của
thiết kế. Không giống như Dynamic Verification, Formal Verification không đưa
các tín hiệu cụ thể vào để kiểm tra mà thực hiện các phương pháp toán học để so
sánh nhằm đảm bảo Gate-level Netlist của thiết kế sau khi Synthesis vẫn đảm bảo
đúng chức năng so với mã RTL ban đầu.
Hình 1.5 – Formal Verification
Nếu kết quả sau giai đoạn Formal Verification vẫn đảm bảo đúng chức
năng so với mã RTL ban đẩu thì chuyển sang giai đoạn thiết kế Back End. Ngược
lại thì kiểm tra lại quá trình Synthesis.
1.2 GIAI ĐOẠN THIẾT KẾ BACK END
1.2.1 Place and Route
Place and Route là quá trình đặt các Cell và kết nối dây dựa trên kết nối về
mặt Logic giữa các Cell trong Gate-level Netlist. Sau khi hoàn tất việc đặt các Cell
và kết nối dây sẽ tiến hành giai đoạn post-layout STA và post-layout simulation để
đảm bảo Netlist với các giá trị thực về R, C của các Cell và dây nối vẫn thỏa chức
SVTH : Trần Trung Hiếu
RTL
RTL
Gate Level Netlist
Gate Level Netlist
Report
Report
Formal Verification
Formal Verification
6
Chương 1 – Quy trình thiết kế SoC
năng và thời gian. Nếu không có lỗi, xuất dữ liệu ra dưới dạng file gds2. Nếu có
lỗi, kiểm tra lại việc đặt các Cell và kết nối dây.
1.2.2 Tape-out
Kiểm tra lại tất cả các báo cáo sau quá trình Place and Route trước khi đưa
đi sản xuất.
SVTH : Trần Trung Hiếu
7
Chương 2 – Viết mã RTL
CHƯƠNG 2 : VIẾT MÃ RTL ( RTL CODING )
2.1 KHÁI NIỆM RTL CODING
Viết mã RTL có nghĩa là dùng ngôn ngữ mô tả phần cứng Verilog hay
VHDL để mô tả chi tiết specification của thiết kế. Một mô tả RTL sẽ mô tả các
thông tin chuyển đổi Logic giữa các thanh ghi với nhau.
Trong quá khứ, giai đoạn này được thực hiện một cách thủ công bằng cách
vẽ lược đồ kỹ thuật ( Schematic ). Phương pháp này mất rất nhiều thời gian và
công sức nhất là đối với những thiết kế phức tạp khi mà số cổng Logic có thể lên
đến hàng triệu cổng.
Ngôn ngữ mô tả phần cứng phát triển giúp cho việc thiết kế Chip nhẹ nhàng
hơn, nó có thể mô tả được các cấu trúc kỹ thuật của Chip cần thiết kế. Trình biên
dịch có thể hiểu được các cấu trúc kỹ thuật khi đọc mã RTL tương ứng.
Hình 2.1 – Viết mã RTL
2.2 TẦM QUAN TRỌNG CỦA VIẾT MÃ RTL
Viết mã RTL là giai đoạn quan trọng trong thiết kế Chip, viết mã RTL càng
chính xác sẽ càng tốt cho giai đoạn Synthesis và sẽ không mất thời gian chỉnh sửa
code.
SVTH : Trần Trung Hiếu
Sơ đồ khối luận lý
Ngôn ngữ mô tả phần cứng
Verilog hay VHDL
RTL Coding
8
Chương 2 – Viết mã RTL
Khác với ngôn ngữ mô tả phần cứng hay các ngôn ngữ lập trình khác chỉ
cần viết sao cho đúng chức năng, viết mã RTL đòi hỏi người lập trình cần phải
viết sao cho ngoài việc đảm bảo đúng chức năng còn phù hợp với những cấu trúc
Logic được hỗ trợ trong thư viện. Cùng một chức năng nhưng với những cách viết
khác nhau sẽ dẫn đến các cấu trúc Logic khác nhau. Có thể nói viết mã RTL luôn
luôn phải nghĩ đến phần cứng.
2.3 MỘT SỐ CÁCH VIẾT DẪN ĐẾN CÁC CẤU TRÚC LOGIC
KHÁC NHAU
2.3.1 CÁCH VIẾT DẪN ĐẾN CẤU TRÚC LATCH
Để dẫn đến cấu trúc Latch ta sử dụng cách viết if với các điều kiện không
đầy đủ. Cấu trúc điều kiện if mà không có else là một điển hình.
reg out;
always @ ( a or b or gate )
if ( gate )
out = a | b;
Cách viết trên sẽ dẫn đến cấu trúc Latch vì không xét đến giá trị của out khi
gate bằng 0.
Hình 2.2 – Latch với cách viết if
Cấu trúc Latch cũng có thể được tạo ra từ cách viết case với các điều kiện
không đầy đủ.
`define spring 2’b00
`define summer 2’b01
`define winter 2’b10
reg [1:0] season;
reg weather;
SVTH : Trần Trung Hiếu
9
Chương 2 – Viết mã RTL
case ( season )
spring : weather = warm;
summer : weathet = hot;
winter : weather = cold;
endcase;
Cách viết case trên chỉ bao gồm 3 trong 4 trường hợp về season. Để tránh
tạo ra cấu trúc Latch có thể dùng full_case ta sẽ thêm một giá trị default cho
trường hợp còn lại.
Hình 2.3 – Latch với cách viết case
2.3.2 CÁCH VIẾT DẪN ĐẾN CẤU TRÚC FLIP FLOP
HDL Compiler sẽ dẫn đến D Flip Flop khi trong khối always có thuật ngữ
edge, để diễn tả cạnh lên ( posedge clk ) hay cạnh xuống ( negedge clk ) của xung
Clock.
Sử dụng khối always để dẫn đến cấu trúc Flip Flop :
always @ ( edge )
begin
……
end
SVTH : Trần Trung Hiếu
10
Chương 2 – Viết mã RTL
Cách viết sau dẫn đến cấu trúc D Flip Flop đơn giản :
Flip Flop D với cạnh lên xung Clock :
reg Q;
always @ ( posedge clk )
Q <= Data;
Flip Flop D với cạnh xuống xung Clock :
reg Q;
always @ ( negedge clk )
Q <= Data
Hình 2.4 – Flip Flop D đơn giản
Nếu trong thư viện không có Flip Flop hoạt động ở cạnh xuống xung Clock
thì ta dùng xung Clock cạnh lên kết hợp với 1 cổng đảo.
SVTH : Trần Trung Hiếu
11
Chương 2 – Viết mã RTL
Hình 2.5 – Flip Flop hoạt động ở cạnh xuống Clock
Những điều cần chú ý khi dùng Flip Flop D :
Khi sử dụng cấu trúc If để dẫn đến Flip Flop D thì thiết kế phải thỏa những
yêu cầu sau :
* Điều kiện Set và Reset không được sử dụng biểu thức phức tạp.
Ví dụ sau đây cho thấy điều kiện Reset không có giá trị vì nó sử dụng biểu
thức phức tạp.
always @ ( posedge clk and negedge reset )
if ( reset == (1-1) )
. . .
end
* Cấu trúc If phải được thực hiện liền kề ngay sau khối always.
Ví dụ sau cho thấy điều đó và khi biên dịch chương trình sẽ báo lỗi.
always @ ( posedge clk or posedge reset )
begin
#1;
if ( reset )
. . .
end
2.3.3 CÁCH VIẾT DẪN ĐẾN CẤU TRÚC MUX
Để dẫn đến cấu trúc Multiplexer ta sử dụng cách viết case với các điều kiện
đầy đủ.
SVTH : Trần Trung Hiếu
12
Chương 2 – Viết mã RTL
Hình 2.6 – Multiplexer
always @ ( SEL or A or B or C or D )
begin
case ( SEL )
2’b00 : OUT <= A;
2’b01 : OUT <= B;
2’b10 : OUT <= C;
2’b11 : OUT <= D;
endcase
end
SVTH : Trần Trung Hiếu
13
Chương 2 – Viết mã RTL
Hình 2.7 – Cấu trúc Multiplexer được tạo ra
Ta cũng có thể dùng cách viết if với nhều nhánh if riêng biệt để dẫn đến cấu
trúc Multiplexer.
Ví dụ minh họa :
reg action;
reg [1:0] weather;
always @ ( weather or go_to_work or go_to_beach )
begin
if ( weather[0] ) action = go_to_work;
if ( weather[1] ) action = go_to_beach;
end
Hình 2.8 – Cách viết theo if tạo ra Multiplexer
Với cách viết if như trên khi Tổng hợp Logic phần mềm sẽ tạo ra cấu trúc
hai Multiplexer nối tiếp nhau được mô tả như trên hình 2.8.
2.3.4 CÁCH VIẾT DẪN ĐẾN CẤU TRÚC DECODER
Cách viết tạo ra cấu trúc Decoder bằng RTL Coding khác với cách viết
Verilog thông thường.
Cách viết tạo ra Decoder dùng Verilog :
SVTH : Trần Trung Hiếu
go_to_work
go_to_beach
action
1
0
1
0
0
weather[0]
weather[1]
14
Chương 2 – Viết mã RTL
module decoder ( in, out );
input [2:0] in;
output [7:0] out;
reg [7:0] out;
always @ ( in )
begin
case ( in )
3’d0 : out[0] = 1’b1;
3’d1 : out[1] = 1’b1;
3’d2 : out[2] = 1’b1;
3’d3 : out[3] = 1’b1;
3’d4 : out[4] = 1’b1;
3’d5 : out[5] = 1’b1;
3’d6 : out[6] = 1’b1;
3’d7 : out[7] = 1’b1;
endcase
end
endmodule
SVTH : Trần Trung Hiếu
15
Chương 2 – Viết mã RTL
Hình 2.9 – Cấu trúc Decoder được tạo ra dùng Verilog
Cách viết tạo ra Decoder dùng RTL Coding :
module decoder ( in, out );
input [2:0] in;
output [7:0] out;
reg [7:0] out;
always @ ( in )
begin
out = 0;
out[in] = 1’b1;
SVTH : Trần Trung Hiếu
16
Chương 2 – Viết mã RTL
end
endmodule
Hình 2.10 – Cấu trúc Decoder được tạo ra dùng RTL Coding
SVTH : Trần Trung Hiếu
17
Chương 3 – Phương pháp Tổng hợp Logic
CHƯƠNG 3 : PHƯƠNG PHÁP TỔNG HỢP LOGIC
( LOGIC SYNTHESIS )
3.1 TỔNG QUAN
Phương pháp Tổng hợp Logic ( Logic Synthesis ) là phương pháp kết nối
giữa ngôn ngữ mô tả phần cứng HDL và Netlist tương tự như là ngôn ngữ lập
trình C biên dịch từ ngôn ngữ C sang ngôn ngữ máy. Tuy nhiên, so sánh như vậy
là không thật chính xác vì ngôn ngữ lập trình C được phát triển dành cho lập trình
viên nhưng ngôn ngữ mô tả phần cứng không phải được xây dựng chủ yếu cho các
công cụ tổng hợp Logic sử dụng. Verilog và VHDL là hai ngôn ngữ lập trình phần
cứng phổ biến được sử dụng và nó ra đời từ rất sớm, được phát triển vào đầu
những năm 1980 trước những sản phẩm thương mại về các công cụ Tổng hợp
Logic. Khi nói đến các công cụ Tổng hợp Logic ta chủ yếu nghĩ đến phần cứng, là
những thành phần sẽ được sử dụng trong Netlist khi quá trình Tổng hợp Logic
được tiến hành.
Người thiết kế sử dụng giao diện đồ họa hay giao diện dòng lệnh để viết
mô tả HDL ở cấp độ hành vi ( behavioral model ), thiết kế hành vi không chứa
những tham chiếu đến các Logic Cell trong thư viện. Sau khi hoàn thành mô tả
thiết kế ở mức độ hành vi cần dùng công cụ Tổng hợp Logic ( software ) và thư
viện chứa các Logic Cell ( target library ) để thực hiện quá trình Tổng hợp Logic.
Thiết kế hành vi sẽ được mô phỏng để kiểm tra có thỏa những yêu cầu thiết kế đặt
ra hay không, sau đó công cụ Tổng hợp Logic sẽ tạo ra Netlist, là thiết kế ở mức
cấu trúc, chỉ chứa những tham chiếu đến các Logic Cell. Không có một chuẩn
chung nào cho việc tạo ra Netlist nhưng EDIF ( Electronic Design Interchange
Format – một dạng Format của Netlist ) thường được dùng rộng rãi. Sau quá trình
Tổng hợp, thiết kế sẽ được mô phỏng lại và kết quả của quá trình mô phỏng sẽ
được so sánh với kết quả mô phỏng của thiết kế hành vi.
Mỗi thiết kế đều có các yêu cầu về thông số, chức năng của thiết kế
( specification ). Phương pháp Tổng hợp Logic sẽ dựa vào RTL Coding đã được
SVTH : Trần Trung Hiếu
18
Chương 3 – Phương pháp Tổng hợp Logic
viết, các điều kiện ràng buộc của thiết kế ( constraints ) và thư viện chứa các Logic
Cell ( And, Or … ) để tạo ra Gate-level Netlist.
Các điều kiện ràng buộc cho thiết kế có thể chia thành hai phần chính :
• Ràng buộc về tốc độ : đảm bảo sao cho thiết kế hoạt
động đúng chức năng ở tốc độ càng nhanh càng tốt.
• Ràng buộc về diện tích : đảm bảo cho thiết kế chiếm
diện tích càng nhỏ càng tốt.
Phương pháp Tổng hợp Logic là kết hợp giữa các phần :
- Chuyển từ RTL Coding sang cấp Gate-level
( translation ).
- Tối ưu hóa thiết kế ( optimization ).
- Vẽ thiết kế ( mapping ).
Synthesis = Translation + Optimization + Mapping
Hình 3.1 – Định nghĩa quá trình Synthesis
Quá trình tối ưu thiết kế và đi dây dựa vào hai điều kiện ràng buộc quan
trọng ở trên và ràng buộc về tốc độ được đặt lên hàng đầu.
SVTH : Trần Trung Hiếu
19
Chương 3 – Phương pháp Tổng hợp Logic
Hình 3.2 – Tối ưu hóa thiết kế
Quá trình viết mã RTL mang tính độc lập, nghĩa là mã RTL có thể được sử
dụng với các kỹ thuật Tổng hợp Logic khác nhau của các hãng khác nhau.
Hình 3.3 – Tính độc lập của quá trình viết mã RTL
SVTH : Trần Trung Hiếu
20
Chương 3 – Phương pháp Tổng hợp Logic
3.2 QUÁ TRÌNH TỔNG HỢP LOGIC
Hình 3.4 – Quy trình Synthesis
3.2.1 Specification
Mỗi thiết kế phải có một bảng mô tả đặc tính kỹ thuật của thiết kế
( specification ) gồm những thông số yêu cầu hoạt động của thiết kế như là chức
năng, tần số, nhiệt độ, điện thế, các ngõ vào ra …
SVTH : Trần Trung Hiếu
Specification
Specification
Define Architecture
Define Architecture
RTL Coding Prepare
RTL Coding Prepare
Setting Design
Environment
Setting Design
Environment
Setting Design
Constraints
Setting Design
Constraints
Analysis
Analysis
Compile Design
Compile Design
Gate-level Netlist
Gate-level Netlist
Cell
Library
21