1. Trang chủ
  2. » Công Nghệ Thông Tin

nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng

103 591 6

Đ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

Thông tin cơ bản

Định dạng
Số trang 103
Dung lượng 2,28 MB

Nội dung

Synthesis là quá trình dùng phần mềm để biên dịch mã RTL sang 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àngbuộc thời gian để tương tác với phần mềm nhằm

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

-TP HỒ CHÍ MINH 07/2006

Trang 2

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 saunà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áchtrong 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ễnThô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ựchiệ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ệttì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ếtThắng, anh Trần Quốc Hân, anh Nguyễn Duy Mạnh Thi cùng các anh chị trongnhóm SoC của Công ty SDS đã nhiệt tình hướng dẫn, giúp đỡ em trong quá trìnhthự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ốtnghiệp

Sinh viênTRẦN TRUNG HIẾU

Trang 3

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.

Trang 4

MỤC LỤC

CHƯƠNG 1 : QUY TRÌNH THIẾT KẾ SoC -1

1.1 GIAI ĐOẠN THIẾT KẾ FRONT END -3

1.1.1 Functional Specification -3

1.1.2 Define Architecture -3

1.1.3 RTL Coding -3

1.1.4 Dynamic Verification -4

1.1.5 Synthesis and Scan Insertion -4

1.1.6 STA ( Static Timing Analysis ) -5

1.1.7 Formal Verification -6

1.2 GIAI ĐOẠN THIẾT KẾ BACK END -6

1.2.1 Place and Route -6

1.2.2 Tape-out -6

CHƯƠNG 2 : VIẾT MÃ RTL ( RTL CODING ) -7

2.1 KHÁI NIỆM RTL CODING -7

2.2 TẦM QUAN TRỌNG CỦA VIẾT MÃ RTL -7

2.3 MỘT SỐ CÁCH VIẾT DẪN ĐẾN CÁC CẤU TRÚC LOGIC KHÁC NHAU -8

2.3.1 CÁCH VIẾT DẪN ĐẾN CẤU TRÚC LATCH -8

2.3.2 CÁCH VIẾT DẪN ĐẾN CẤU TRÚC FLIP FLOP -9

2.3.3 CÁCH VIẾT DẪN ĐẾN CẤU TRÚC MUX -11

2.3.4 CÁCH VIẾT DẪN ĐẾN CẤU TRÚC DECODER -13

CHƯƠNG 3 : PHƯƠNG PHÁP TỔNG HỢP LOGIC -16

3.1 TỔNG QUAN -16

3.2 QUÁ TRÌNH TỔNG HỢP LOGIC -19

3.2.1 Specification -19

3.2.2 Define Architecture -20

3.2.3 RTL Coding Prepare -20

Trang 5

3.2.4 Setting Design Environment -20

3.2.5 Setting Design Constraints -20

3.2.6 Compile Design -20

3.2.7 Analysis -20

3.2.8 Gate-level Netlist -21

3.3 CÁC THƯ VIỆN TRONG SYNTHESIS -21

3.3.1 THƯ VIỆN KỸ THUẬT -21

3.3.2 THƯ VIỆN BIỂU TƯỢNG -21

3.3.3 THƯ VIỆN DESIGNWARE -22

3.4 THIẾT ĐẶT CÁC ĐIỀU KIỆN MÔI TRƯỜNG CHO THIẾT KẾ -22

3.4.1 OPERATING CONDITIONS -22

3.4.2 WIRE LOAD MODEL -24

3.5 THIẾT ĐẶT CÁC ĐIỀU KIỆN RÀNG BUỘC TRONG THIẾT KẾ 27 3.5.1 KHÁI QUÁT CÁC ĐIỀU KIỆN RÀNG BUỘC CHO THIẾT KẾ -27 3.5.2 DESIGN RULE CONSTRAINTS -27

3.5.3 OPTIMIZATION CONSTRAINTS -30

3.6 TỐI ƯU HÓA THIẾT KẾ -39

CHƯƠNG 4 : CÔNG CỤ DESIGN COMPILER TRONG QUÁ TRÌNH SYNTHESIS -41

4.1 dc_shell –tcl_mode -42

4.2 Design Vision -45

CHƯƠNG 5 : TESTCHIP B2FSTC003 VÀ THỰC HIỆN QUY TRÌNH TỔNG HỢP LOGIC CHO TESTCHIP -52

5.1 GIỚI THIỆU TESTCHIP B2FSTC003 -52

5.2 CẤU TRÚC TESTCHIP B2FSTC003 -53

5.3 THỰC HIỆN QUY TRÌNH SYNTHESIS TRÊN TESTCHIP -65

5.3.1 THIẾT KẾ KỸ THUẬT VÀ VIẾT MÃ RTL -65

5.3.2 ÁP DỤNG QUY TRÌNH SYNTHESIS VÀO TESTCHIP -66

Trang 6

5.3.3 KẾT QUẢ SAU KHI THỰC HIỆN QUÁ TRÌNH SYNTHESIS

67

CHƯƠNG 6 : PHỤ LỤC -71

6.1 Chức năng các chân của Testchip B2FSTC003 -71

6.2 Cấu hình các khối Module 00  Module 24 -72

6.3 Cấu hình các ROM nhúng -73

6.4 Chương trình áp dụng Synthesis vào Testchip B2FSTC003 -74

6.5 Mã RTL cho khối octl -77

6.6 Package của Testchip B2FSTC003 -93

Trang 8

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 đíchcủ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ậtcũng như những tính năng mà thiết kế cần đạt được Bảng thông số kỹ thuật chobiế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áchọ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ốiLogic 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ònphải thỏa mãn phần cứng yêu cầu trong thiết kế ( Flip Flop, Latch, Mux … )

Sơ đồ khối luận lý Thông số vật lý

Functional Specification

Functional Specification

Ứng dụng

Trang 9

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 đưacá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õ ramong muốn để kiểm tra mã RTL có thỏa chức năng của thiết kế hay không Nếuchư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ủathiế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 mongmuốn được gọi là Testbench Testbench cũng được viết bằng ngôn ngữ mô tả phầncứ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 quagiai đoạn Synthesis và Scan Insertion

Synthesis là quá trình dùng phần mềm để biên dịch mã RTL sang 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àngbuộ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 trongthư 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

Report, Waveform RTL Simulation

Trang 10

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 Synopsysthườ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 Siliconcủa quá trình sản xuất, kỹ thuật này gọi là Design For Test ( DFT ) Một trongnhững phương pháp của kỹ thuật DFT là Scan Insertion, phương pháp này sẽ tạonê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ỏamã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 đườngtruyề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ầuhay không Trong thực tế quá trình STA được lặp đi lặp lại nhiều lần với Synthesischo đến khi các yêu cầu về thời gian của thiết kế được thỏa mãn

Synthesis and Scan Insertion

Mô tả RTL 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

Synthesis and Scan Insertion

Trang 11

STA gồm hai giai đoạn : pre-layout STA và post-layout STA Giai đoạnpre-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ìnhSynthesis Giai đoạn post-layout STA đảm bảo thiết kế vẫn thỏa về thời gian saukhi 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ứcnă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ủathiết kế Không giống như Dynamic Verification, Formal Verification không đưacá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 để sosá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ứcnăng so với mã RTL ban đẩu thì chuyển sang giai đoạn thiết kế Back End Ngượclạ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

Report

Formal Verification

Trang 12

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

Trang 14

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;

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

Trang 15

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

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 :

Trang 16

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 Clockthì ta dùng xung Clock cạnh lên kết hợp với 1 cổng đảo

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ữngyê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ểuthức phức tạp

always @ ( posedge clk and negedge reset )

if ( reset == (1-1) )

Trang 17

* 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

Để 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 đủ

Hình 2.6 – Multiplexer

always @ ( SEL or A or B or C or D ) begin

case ( SEL ) 2’b00 : OUT <= A;

Trang 18

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

if ( weather[0] ) action = go_to_work;

if ( weather[1] ) action = go_to_beach;

end

Trang 19

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ếtVerilog thông thường

Cách viết tạo ra Decoder dùng Verilog :

module decoder ( in, out );

input [2:0] in;

output [7:0] out;

reg [7:0] out;

always @ ( in ) begin

01

00

weather[0]

weather[1]

Trang 20

3’d6 : out[6] = 1’b1;

3’d7 : out[7] = 1’b1;

endcase end

endmodule

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;

Trang 21

reg [7:0] out;

always @ ( in ) begin

Trang 23

Hình 3.3 – Tính độc lập của quá trình viết mã RTL

Specification

Define Architecture

RTL Coding Prepare

Setting Design Environment

Setting Design Environment

Setting Design Constraints

Setting Design Constraints

AnalysisCompile Design

Gate-level Netlist

Cell Library

Trang 24

3.2.2 Define Architecture

Từ bảng thông số kỹ thuật của thiết kế người thiết kế sẽ thực hiện giai đoạnchia thiết kế thành những khối Logic nhỏ để thuận tiện cho việc viết Code chothiết kế Mỗi khối Logic thực hiện một chức năng nhất định trong thiết kế

3.2.3 RTL Coding Prepare

Sau khi thiết kế được chia thành những Logic block, người thiết kế sẽ tiếnhành giai đoạn viết Code cho từng Logic block Quá trình viết mã RTL đóng vaitrò quan trọng vì viết mã RTL càng chính xác sẽ càng thuận lợi cho các giai đoạn

về sau và đỡ tốn thời gian chỉnh sửa Code

3.2.4 Setting Design Environment

Thiết đặt các điều kiện về môi trường cho thiết kế hoạt động bao gồm cácthông số như là điện thế, nhiệt độ, công nghệ sản xuất chip …

3.2.5 Setting Design Constraints

Thiết đặt các giá trị ràng buộc cho thiết kế bao gồm các ràng buộc về thờigian, vào ra, những ràng buộc ngoại lệ cho thiết kế nếu có nhằm mục đích tươngtác với phần mềm Tổng hợp Logic để thực hiện việc tối ưu hóa thiết kế

3.2.6 Compile Design

Sau khi thiết đặt các giá trị về điều kiện hoạt động cho thiết kế cũng nhưnhững ràng buộc và dựa vào Cell Library, phần mềm Tổng hợp Logic sẽ tiến hànhviệc Synthesis cho thiết kế

3.2.7 Analysis

Sau khi phần mềm Tổng hợp Logic thực hiện xong quá trình Synthesis,người thiết kế sẽ yêu cầu Tool tạo ra những bản báo cáo chi tiết về các mặt thời

Trang 25

gian, diện tích … để phân tích xem có thỏa yêu cầu không, nếu không sẽ tiến hànhthiết đặt lại những ràng buộc nào chưa thỏa.

3.2.8 Gate-level Netlist

Sản phẩm của quá trình Synthesis là Gate-level Netlist mô tả các khốiLogic của thiết kế và kết nối giữa chúng ở cấp các cổng Logic Gate-level Netlist

sẽ là input cho quá trình phân tích thời gian tĩnh STA sau quá trình Synthesis

Đơn vị cấu tạo nên Netlist là các Cell kết nối với nhau bởi các dây nối gọi

là Net Các Cell có thể là các cổng Logic ( And, Nand … ), các khối Logic đượcthiết kế sẵn ( Flip Flop, Multiplexer … ) hay các MegaCell như Microprocessor,MicroController Các Cell này được mô tả một cách Logic bằng ngôn ngữ Cell vàđược chứa trong tập tin thư viện Logic

Thư viện kỹ thuật ( Technology Library ) chứa các thông tin về đặc điểm vàchức năng của các Cell được cung cấp bởi nhà sản xuất bán dẫn Các đặc điểm củaCell như là tên chân Cell, diện tích Cell, thời gian trì hoãn qua Cell… Hơn nữa,Technology Library còn quy định các giới hạn của thiết kế như là độ trì hoãn củadây nối, điện dung nhỏ nhất và lớn nhất của dây nối, điều kiện xấu nhất để thiết kếvẫn có thể hoạt động được

Sử dụng thư viện kỹ thuật để quyết định Cell nào được sử dụng, tính toáncác giá trị về timing và delay, tính toán công suất tiêu thụ…

3.3.2 THƯ VIỆN BIỂU TƯỢNG

Thư viện biểu tượng ( Symbol Library ) chứa các hình ảnh, biểu tượng đặctrưng cho các Cell tương ứng trong sơ đồ thiết kế ( Schematic ) Công cụ DesignVision có thể cho ra Schematic từ Netlist vào

Trang 26

3.3.3 THƯ VIỆN DESIGNWARE

Thư viện DesignWare chứa một số khối thiết kế sẵn như bộ cộng, bộ sosánh v.v… nhằm mục đích sử dụng lại ở những thiết kế khác

Tất cả những thư viện trên được sử dụng trong quá trình Synthesis đều làcác thư viện Logic Các thư viện vật lý ( Physical Library ) được sử dụng tronggiai đoạn Back End Thư viện vật lý sẽ mô tả đặc điểm vật lý của Cell và các dâynối như là thông tin lớp kim loại, điện áp Cell, kích thước Cell…

3.4 THIẾT ĐẶT CÁC ĐIỀU KIỆN MÔI TRƯỜNG CHO THIẾT KẾ

Trước khi thiết kế được tối ưu hóa, người thiết kế phải thiết đặt các điềukiện môi trường mong muốn thiết kế có thể hoạt động được Người thiết kế địnhnghĩa môi trường thông qua các hai thông số chính thường được sử dụng :Operating Conditions, Wire Load Model

Operating Conditions bao gồm sự thay đổi về nhiệt độ, điện áp, quá trìnhhoạt động Những sự thay đổi này ảnh hưởng mạnh đến hoạt động của mạch Khiphân tích về mặt thời gian, Design Compiler sẽ xem xét điều kiện xấu nhất( worst-case ) và điều kiện tốt nhất ( best-case ) về nhiệt độ, điện áp… mà thiết kếvẫn có thể hoạt động tốt được

Hầu hết các thư viện kỹ thuật đã định nghĩa trước tập hợp các thông sốOperating Conditions, người thiết kế có thể chọn giá trị có sẵn trong thư viện hay

tự định nghĩa Nếu người thiết kế không chỉ ra Design Compiler sẽ chọn giá trịmặc định

Trang 27

Hình 3.5 – Các Operating Condition được định nghĩa sẵn trong thư viện

Tham khảo một Operating Condition được định nghĩa trước trong thư viện :

operating_conditions( WORST ) { process : 1.4;

Trang 28

Hình 3.6 – Thiết đặt Operating Condition dùng Design Analyzer

Cho phép người thiết kế ước lượng được ảnh hưởng của điện trở, điệndung, khả năng chịu tải nhất định tương ứng với độ dài một đoạn dây Từ đó phầnmềm sẽ tính toán độ trì hoãn qua các dây Người thiết kế phải chỉ ra cho phầnmềm biết sử dụng loại dây nào, độ dài bao nhiêu cho các thiết kế thông qua cáccâu lệnh để thiết lập giá trị

Nếu người thiết kế không chỉ ra sử dụng Wire Load Model nào thì DesignCompiler sẽ sử dụng Wire Load Model mặc định nhưng chắc chắn thông tin vềtiming và delay sẽ không chính xác như mong muốn

Tham khảo một cấu trúc của Wire Load Model trong thư viện :

wire_load("90x90") { capacitance : 2.0 ; /* C per unit-length */

resistance :100.0 ; /* R per unit-length */

area : 0.5 ; /* net-area per unit-length */

fanout_length(1, 1) ; /* fanout_length pairs */

Trang 29

Hình 3.7 – Mode Top

Nếu thiết đặt Wire Load Model cho thiết kế là mode Top thì việc ước lượng

độ dài dây là không chính xác Sử dụng độ dài dây là lớn nhất cho tất cả các subblock thì sẽ gây ra sai số lớn sau khi thiết kế được Place and Route

Wire Load Model ở mode enclosed vẫn giữ cấu trúc phân cấp

Hình 3.8 – Mode Enclosed

c) Mode Segmented

Wire Load Model ở mode segmented thì một dây kết nối giữa hai module

sẽ được chia thành nhiều đoạn, đoạn nào nằm trong module nào thì sẽ sử dụngWire Load Model ở module đó

Wire Load Model ở mode segmented vẫn giữ cấu trúc phân cấp

Hình 3.9 – Mode Segmented

Trang 30

Thiết đặt Wire Load Model theo mode Segmented thì việc ước lượng độ dài

sẽ chính xác hơn vì dây trong sub block nào thì sử dụng Wire Load Model trongsub block đó nên ít gây ra sai số sau khi thiết kế được Place and Route

Thông thường thư viện kỹ thuật có thể định nghĩa Wire Load Model mặc

định cho thiết kế, sử dụng thuộc tính default_wire_load để định nghĩa Wire Load

Model mặc định cho thư viện kỹ thuật

Một số thư viện hỗ trợ việc chọn Wire Load Model tự động dựa trên diện

tích Cell Design Compiler sử dụng thuộc tính wire_load_selection của thư viện để

chọn Wire Load Model dựa trên tổng diện tích các Cell

Với những thiết kế lớn có nhiều cấu trúc phân cấp thì việc để cho thư viện

tự chọn Wire Load Model tự động là không tối ưu về mặt timing và delay Ngườithiết kế nên thiết đặt các giá trị Wire Load Model bằng các câu lệnh tương tác trựctiếp với Design Compiler để đảm bảo tính chính xác và ổn định về mặt timing vàdelay Người thiết kế có thể tắt chức năng tự chọn Wire Load Model bằng cách

gán cho thuộc tính auto_wire_load_selection giá trị false

Thực hiện thiết đặt Wire Load Model bằng công cụ Design Analyzer của Synopsys :

Trang 31

Hình 3.10 – Thiết đặt Wire Load Model dùng Design Analyzer

3.5 THIẾT ĐẶT CÁC ĐIỀU KIỆN RÀNG BUỘC TRONG THIẾT KẾ

3.5.1 KHÁI QUÁT CÁC ĐIỀU KIỆN RÀNG BUỘC TRONG THIẾT KẾ

Các điều kiện ràng buộc thiết kế ( Constraints ) được dùng để tương tác vớicác phần mềm của Synopsys nhằm mục đích tối ưu thiết kế Các điều kiện ràngbuộc bao gồm Design Rule Constraints và Optimization Constraints

Design Rule Constraints là các giá trị ràng buộc được định nghĩa trong thưviện kỹ thuật, là những giá trị ràng buộc không thể thiếu cho mỗi thiết kế bao gồmcác giá trị cơ bản thường sử dụng : max_transition, max_capacitance, max_fanout

Optimization Constraints thường được dùng cho mục đích tối ưu cả về mặtthời gian lẫn diện tích cho thiết kế, người thiết kế tự quy định các giá trị ràng buộcnày Ở đây ta chỉ khảo sát ba phần chính của Optimization Constraints là TimingConstraints, I/O Constraints và Design Exceptions

Sau đây chúng ta sẽ lần lượt khảo sát chi tiết về Design Rule Constraints vàOptimization Constraints

Bao gồm các đặc tính về thời gian và vật lý được mô tả trong thư viện kỹthuật Thiết kế phải tuân theo giá trị ràng buộc của thư viện Thông thường ta tuântheo các giá trị ràng buộc mặc định của thư viện Tuy nhiên, người thiết kế cũng

có thể thay đổi các giá trị ràng buộc cho thiết kế nếu thật sự cần thiết Người thiết

kế không thể tự bỏ đi những giá trị ràng buộc được định nghĩa trong thư viện kỹthuật vì nó cần thiết cho thiết kế nhưng có thể giới hạn lại cho phù hợp yêu cầuthiết kế

3.5.2.1 Thiết đặt ràng buộc về thời gian chuyển Logic

Transition Time là khoảng thời gian cần cho một chân của Cell chuyểnLogic từ mức 0 lên mức 1 hay từ mức 1 xuống mức 0

Trang 32

Design Compiler mô tả giới hạn trên thông qua giá trị max_transition trênmỗi chân ra của một Cell Trong suốt quá trình tối ưu hóa, Design Compiler cốgắng để thỏa thời gian chuyển Logic của mỗi chân của các Cell phải nhỏ hơn giátrị max_transition.

3.5.2.2 Thiết đặt ràng buộc về giá trị chịu tải của driving pins

Maximum fanout load là giá trị tải lớn nhất mà chân chịu tải có thể tảiđược Design Compiler sẽ tính giá trị max_fanout trên một pin bằng cách kết hợpvới giá trị fanout_load từ tất cả các pin xuất phát từ pin đó Thiết kế sẽ thỏa ràngbuộc về giá trị chịu tải của driving pins nếu tổng fanout_load nhỏ hơn max_fanout

Thiết đặt giá trị max_fanout bằng lệnh set_max_fanout.

Trang 33

Ví dụ pin X tải hai pin A và B Pin A có fanout_load là 5.0, pin B cófanout_load là 8.0 thì fanout_load tổng cộng của pin X là 13.0 Nếu max_fanoutcủa pin X là 16.0 thì thỏa ràng buộc về khả năng chịu tải của driving pins.

Trang 34

Hình 3.14 – Thêm buffer cho thiết kế

3.5.2.3 Thiết đặt ràng buộc về điện dung của dây nối

Ràng buộc về điện dung của dây nối được thể hiện thông qua giá trịmax_capacitance Tổng điện dung tại một node phải nhỏ hơn giá trị này khi đóràng buộc về điện dung mới được xem là thỏa, ngược lại là vi phạm

Giá trị max_capacitance là độc lập với max_fanout và max_transition nên

có thể dùng chung với hai giá trị đó Thông thường trong thiết kế ta chỉ thiết đặthai trong ba giá trị trên thì phần mềm sẽ tính toán cho giá trị còn lại

Các giá trị ràng buộc dùng để tối ưu hóa thiết kế bao gồm TimingConstraints, I/O Constraints và Design Exceptions Người thiết kế thiết đặt cácràng buộc này để có thể dự đoán, ước lượng được tất cả những đoạn thời gian củathiết kế

3.5.3.1 Timing Constraints

Xung Clock và các thuộc tính của xung Clock như Latency, Uncertainty,Transition … rất cần thiết cho việc cho việc phân tích chính xác các đoạn thời gian( timing paths ) trong thiết kế

Trang 35

Người thiết kế phải thiết đặt các giá trị clock latency, uncertainty, transitionv.v… trong giai đoạn Front End với mục đích tạo ra một độ dự trữ ( margin ) chothiết kế vì trên thực tế clock không thể từ nguồn đến ngay chân clock của cácregister Vì trong giai đoạn Front End clock không có các giá trị này nên ta buộcphải thêm độ dự trữ vào Giả sử nếu không thiết đặt các giá trị này, giai đoạn FrontEnd kiểm tra thỏa về timing nhưng sau khi Place and Route thiết kế sẽ không đạtyêu cầu.

Design Compiler không tự tạo ra xung Clock khi thực thi thiết kế, người

thiết kế phải tự tạo ra xung Clock bằng lệnh create_clock

Trang 36

c) Clock Network

Clock Network hay còn gọi là Clock Tree là Clock rẽ ra thành nhiều nhánhtrước khi đến chân xung Clock của các thiết bị thanh ghi

Mặc định Design Compiler xem Clock Network là Clock lý tưởng ( không

có độ trì hoãn ) Để phân tích chính xác về mặt timing của thiết kế, người thiết kếcần thiết đặt những giá trị liên quan đến Clock Network như Uncertainty, Latency,Transition … sẽ được trình bày tiếp theo sau đây

đặt giá trị Clock Uncertainty bằng lệnh set_clock_uncertainty

Trang 37

Hình 3.17 – Clock Uncertainty

Hình 3.18 – Waveform của Clock Uncertainty

e) Clock Latency

Clock Latency là khoảng thời gian để tín hiệu Clock đi từ điểm của nguồn

lý tưởng đến chân của thiết bị thanh ghi trong thiết kế Clock Latency gồm có haiphần : Source Latency và Network Latency

Hình 3.19 – Clock Latency

Source Latency là khoảng thời gian để tín hiệu Clock đi từ điểm của nguồn

lý tưởng đến điểm được định nghĩa là nguồn Clock của thiết kế được chỉ ra trong

lệnh create_clock.

Network Latency là khoảng thời gian để tín hiệu Clock đi từ điểm đượcđịnh nghĩa là nguồn Clock đến chân Clock của thiết bị thanh ghi

Trang 38

Hình 3.20 – Waveform của Clock Latency

Hình 3.21 – Source Latency và Network Latency

f) Clock Transition

Clock Transition là khoảng thời gian để Clock Network chuyển trạng tháiLogic từ 0 lên 1 hay từ 1 xuống 0

Trang 39

Hình 3.22 – Clock Transition

g) Clock Gating

Clock Gating là Clock Network kết hợp với các cổng Logic trước khi đếnchân Clock của các thiết bị thanh ghi, ví dụ ta có cổng AND có hai ngõ vào vớimột là Clock Network, ngõ vào còn lại là tín hiệu điều khiển thì ngõ ra sẽ là ClockGating

Sử dụng Clock Gating để chốt Clock đối với những khối nào không sửdụng, mục đích để tiết kiệm năng lượng

Ngày đăng: 22/10/2014, 10:24

HÌNH ẢNH LIÊN QUAN

Hình 1.1 – Quy trình thiết kế SoC - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 1.1 – Quy trình thiết kế SoC (Trang 6)
Hình 2.3 – Latch với cách viết case - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 2.3 – Latch với cách viết case (Trang 14)
Hình 2.7 – Cấu trúc Multiplexer được tạo ra - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 2.7 – Cấu trúc Multiplexer được tạo ra (Trang 18)
Hình 2.9 – Cấu trúc Decoder được tạo ra dùng Verilog - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 2.9 – Cấu trúc Decoder được tạo ra dùng Verilog (Trang 20)
Hình 2.10 – Cấu trúc Decoder được tạo ra dùng RTL Coding - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 2.10 – Cấu trúc Decoder được tạo ra dùng RTL Coding (Trang 21)
Hình 3.4 – Quy trình Synthesis - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 3.4 – Quy trình Synthesis (Trang 25)
Hình 3.12 – Max Fanout - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 3.12 – Max Fanout (Trang 35)
Hình 3.17 – Clock Uncertainty - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 3.17 – Clock Uncertainty (Trang 39)
Hình 3.20 – Waveform của Clock Latency - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 3.20 – Waveform của Clock Latency (Trang 40)
Hình 3.22 – Clock Transition - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 3.22 – Clock Transition (Trang 41)
Hình 3.24 – Clock Gating bị cắt xén hay giả mạo - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 3.24 – Clock Gating bị cắt xén hay giả mạo (Trang 42)
Hình 3.26 – input_delay và output_delay - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 3.26 – input_delay và output_delay (Trang 43)
Hình 4.4 – Minh họa lệnh set set var dctcl_mode sẽ gán chuỗi dctcl_mode cho biến var. - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 4.4 – Minh họa lệnh set set var dctcl_mode sẽ gán chuỗi dctcl_mode cho biến var (Trang 49)
Hình 4.6 – Minh họa lệnh lindex - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 4.6 – Minh họa lệnh lindex (Trang 50)
Hình 4.13 – Bảng thiết lập thông số Design Constraints - nghiên cứu phương pháp thiết kế vi mạch tích hợp hướng ứng dụng
Hình 4.13 – Bảng thiết lập thông số Design Constraints (Trang 54)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w