65
1 MC LC LỜI NÓI ĐẦU ..................................................................................................................... 3 Chương 1: Quy trình thiết kế ASIC sdng bphn mm ca Synopsys ................... 4 1.1 Tng quan vcông nghASIC .............................................................................. 4 1.1.1 Sơ lược quá trình phát trin ca mch thích hp IC ....................................... 4 1.1.2 Phân loi ASIC ................................................................................................ 4 1.2 Quy trình thiết kế ASIC ......................................................................................... 6 1.3 Bcông cphn mm EDA ca Sysnopsys ........................................................ 10 1.3.1 Sơ lược vcông ty Synopsys ........................................................................ 10 1.3.2 Sơ đồ khi tng quát ..................................................................................... 10 1.3.3 Leda ............................................................................................................... 11 1.3.4 VCS ............................................................................................................... 12 1.3.5 Design compiler ............................................................................................ 12 1.3.6 Prime time ..................................................................................................... 13 1.3.7 IC compiler .................................................................................................... 13 1.3.8 Fomality ........................................................................................................ 13 Chương 2 : Thiết kế đồng hs.................................................................................... 14 2.1. Miêu tđồng hs................................................................................................. 14 2.2. Thiết kế đồng hs................................................................................................ 15 2.2.1 Khi Top Module .......................................................................................... 15 2.2.2 Khi Counter ................................................................................................. 18 2.2.3 Khi Extract_bits........................................................................................... 19 2.2.4 Khi Led_7_segment .................................................................................... 21 Chương 3 : Thực hin thiết kế vi bcông cphn mm Synopsys ................................ 24 3.1 Leda ......................................................................................................................... 24 3.2 VCS ...................................................................................................................... 28

Bao Cao Vlsi_3

Embed Size (px)

Citation preview

Page 1: Bao Cao Vlsi_3

1

MỤC LỤC

LỜI NÓI ĐẦU ..................................................................................................................... 3

Chương 1: Quy trình thiết kế ASIC sử dụng bộ phần mềm của Synopsys ................... 4

1.1 Tổng quan về công nghệ ASIC .............................................................................. 4

1.1.1 Sơ lược quá trình phát triển của mạch thích hợp IC ....................................... 4

1.1.2 Phân loại ASIC ................................................................................................ 4

1.2 Quy trình thiết kế ASIC ......................................................................................... 6

1.3 Bộ công cụ phần mềm EDA của Sysnopsys ........................................................ 10

1.3.1 Sơ lược về công ty Synopsys ........................................................................ 10

1.3.2 Sơ đồ khối tổng quát ..................................................................................... 10

1.3.3 Leda ............................................................................................................... 11

1.3.4 VCS ............................................................................................................... 12

1.3.5 Design compiler ............................................................................................ 12

1.3.6 Prime time ..................................................................................................... 13

1.3.7 IC compiler .................................................................................................... 13

1.3.8 Fomality ........................................................................................................ 13

Chương 2 : Thiết kế đồng hồ số .................................................................................... 14

2.1. Miêu tả đồng hồ số ................................................................................................. 14

2.2. Thiết kế đồng hồ số ................................................................................................ 15

2.2.1 Khối Top Module .......................................................................................... 15

2.2.2 Khối Counter ................................................................................................. 18

2.2.3 Khối Extract_bits........................................................................................... 19

2.2.4 Khối Led_7_segment .................................................................................... 21

Chương 3 : Thực hiện thiết kế với bộ công cụ phần mềm Synopsys ................................ 24

3.1 Leda ......................................................................................................................... 24

3.2 VCS ...................................................................................................................... 28

Page 2: Bao Cao Vlsi_3

2

3.2.1 Kiểm tra trước khi tổng hợp .......................................................................... 28

3.2.2 Kiểm tra sau khi tổng hợp ............................................................................. 29

3.2.3 Kiểm tra timming sau khi layout ................................................................... 30

3.3 Design Compiler .................................................................................................. 30

3.4 Formality .............................................................................................................. 42

3.5 Primetime ............................................................................................................. 46

3.5.1 Kiểm tra timing trước khi layout ................................................................... 46

3.5.2 Kiểm tra timing sau khi layout ...................................................................... 48

3.6 IC Compiler.......................................................................................................... 48

3.6.1 Cài đặt dữ liệu ............................................................................................... 48

3.6.2 Floor Planning ............................................................................................... 54

3.6.3 Placement (Sắp xếp cell) va kiểm tra tắc nghẽn ........................................... 58

3.6.4 Tạo clock tree ................................................................................................ 60

3.6.5 Thực hiện đi dây ............................................................................................ 61

3.6.6 Xuất các file .sdc, .sdf, .v, .spef,.. ................................................................. 62

3.6.7 Xuất ra các file báo cáo ................................................................................. 62

KẾT LUẬN ....................................................................................................................... 64

TÀI LIỆU THAM KHẢO ................................................................................................. 65

Page 3: Bao Cao Vlsi_3

3

LỜI NÓI ĐẦU

Ngành thiết kế IC là một ngành có yếu tố quyết định sự phát triển của tất cả các ngành

khoa học khác. Công nghệ ASIC được sử dụng rộng khắp các thiết bị điều khiển tự động

để điều khiển các chức năng của các phương tiện truyền thông, xe cộ,các hệ thống xử lý,

dây chuyền công nghiệp… Nhận biết được tầm quan trọng của ngành thiết kế IC, thông

qua môn học “ Thiết kế VLSI” ,chúng em quyết định thực hiện đề tài “Thiết kế đồng hồ

số” sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của Synopsys.

Chúng em xin chân thành cảm ơn Ts. Nguyễn Vũ Thắng và Ks. Nguyễn Nam

Phong đã tận tình chỉ bảo và hướng dẫn, cung cấp cho chúng em những điều kiện tốt nhất

để thực hiện đề tài này.

Page 4: Bao Cao Vlsi_3

4

Chương 1: Quy trình thiết kế ASIC sử dụng bộ phần mềm của

Synopsys

1.1 Tổng quan về công nghệ ASIC

ASIC - Application Specific Integrated Circuit: mạch thích hợp ứng dụng chuyên

biệt.

ASIC được xây dựng bằng việc kết nối các mạch có sẵn dã được xây dưgj theo các

phương pháp mới vì vậy ASIC thuận tiện và dễ dàng hơn. Asic là một mạch thích hợp

được sản xuất cho một ứng dụng đặc trưng và thường có kích thước tương đố nhỏ. Công

nghệ ASIC được sử dụng rộng khắp trong các thiết bị điều khiển tự động để điều khiển

các chức năng của các phương tiện truyền thông, xe cộ, các hệ thống xử lý, dây chuyền

công nghiệp…

1.1.1 Sơ lược quá trình phát triển của mạch thích hợp IC

SSI : Small Scale Intergation – Mạch tích hợp cỡ nhỏ (<10 transistors)

MSI: Medium Scale Integration – Mạch tích hợp cỡ trung bình (10÷100

transistors)

LSI: Large Scale Integration – Mạch tích hợp cỡ lớn (100÷1000 transistors)

VLSI: Very Large Scale Integration – Mạc tích hợp cỡ rất lớn (103÷10

6

transistors)

1.1.2 Phân loại ASIC

ASIC

Programmable Logic

Device (PLDs)

Channeless-

gate array ASIC

Channeled-gate

array ASIC

Semi-custom

ASIC

Full-Custom

ASICGate Array

SPLDs CPLDs FPGAs

Hình 1: Sơ đồ phân loại ASIC

Full-custom ASIC:

Page 5: Bao Cao Vlsi_3

5

Một phần hoặc toàn bộ logic cell và các mạch hoặc nền (layout ) được thiết kế

riêng biệt cho từng ASIC. Không sử dụng thư viện cell có sẵn cho toàn bộ hoặc một phần

thiết kế.

Ưu điểm: tối ưu về diện tích, tăng hiệu suất làm việc của IC

Nhược điểm: giá thành cao, chiếm nhiều thời gian thiết kế cũng như chế tạo

Full-custom được dùng trong các trường hợp đòi hỏi khắt khe về tốc độ, tài

nguyên, diện tích và hiệu suất làm việc, hoặc khi Asic quá đặc biệt cần phải được thiết kế

tùy biến.

Semi-custom ASIC:

Sử dụng các thư viện chuẩn tế bào logic. Thư viện chuẩn bao gồm các đối tượng ,

mỗi đối tượng là môt tập hợp mô tả các chức năng logic, thông số vật lí (trễ, điện cảm,

điện dung, điện trở...) và các đặc tính hình học cần thiết cho việc tạo ra mặt nạ của một

phần tử cơ bản tạo thành IC được gọi là Standard Cell như các cổng AND, OR, XOR,

MUX, FF...Thư viện này được chuẩn hóa cho phép các công cụ thiết kế có thể đọc, rồi

biên dịch bản thiết kế thành một file mô tả chi tiết việc sử dụng các phân tử cơ bản trong

thư việc chuẩn gọi là file Netlist. Sau đó từ file Netlist người thiết kế chế tạo ra các mặt

nạ bằng cách sắp xếp các Standard cell và nối dây giữa chúng. Có thể sử dụng kết hợp tế

bào chuẩn với tế bào lớn đã được thế kế sẵn như vi điều khiển, vi xử lí… Người thiết kế

chỉ cần địn nghĩa vị trí của tế bào chuẩn và kết nối trong một ASIC. Tất cả các mặt nạ

được tùy biến và được thiết kế duy nhất cho từng khách hàng.

Ưu điểm: Tiết kiệm thời gian, giảm chi phí sản xuất và giảm rủi ro do sử dụng tế

bào chuẩn đã được thiết kế sẵn và kiểm tra trước .

Nhược điểm : mất thời gian chế tạo các lớp mặt nạ, không tối ưu về diện tích cũng

như hiệu suất.

Gate array:

Là ASIC được đúc sẵn bằng mảng các cổng hoặc các cell giống hết nhau nhưng

chưa từng được kết nối với nhau. Các cell này được đặt tại các vị trí được xác định trước.

Channeled-gate aray ASIC: Các kết nối và các mảng logic nằm trên cùng một lớp, các kết

nối tạo thành các kênh nằm giữa các mảng cổng logic.

Channeless-gate aray ASIC: Các kết nối nằm ở lớp, còn các mảng logic nằm ở lớp dưới.

Page 6: Bao Cao Vlsi_3

6

Programmale Logic Device (PLDs):

PLD là các IC chuẩn .Tuy nhiên PLD có thể cấu hình hay lập trình để tạo nên một

bộ phận tùy biến cho các ứng dụng riêng biệt nên chúng cũng thuộc họ ASIC.

Đặc điểm: logic cell và các lớp mặt nạ không được tùy biến, thiết kế nhanh giá thành rẻ,

một khối đơn lẻ của kết nối có thể lập trình.

CPLD: Complex Programmable Logic Device.

SPLD: Simple Programmable Logic Device.

FPGA: Field Promgrammable Gate Array.

1.2 Quy trình thiết kế ASIC

Quy trình thiết kế ASIC có thể được chia làm 2 phần vùng chính là front-end và

back end. Quá trình Front-end bao gồm các bước không phụ thuộc vào công nghệ chế

tạo. là quá trình để kiểm thử thiết kế. Quá trình back-end dựa trên công nghệ được sử

dụng. do đó tính sử dụng lại rất hạn chế.

Sơ đồ khối tổng quát:

Design specification

Behavioral description

RTL coding

Functional verification

and testing

Logic synthesis

Gate level netlist

Logic verification and

testing

Floor planning, place

and route

Physical layout

Layout verification and

Implementation

FAB

Front end Back end

Page 7: Bao Cao Vlsi_3

7

Hình 2: Sơ đồ khơi tổng quát quá trình thiết kế ASIC

1.2.1 Specification

Đây là bước đầu tiên của luồng thiết kế ASIC và là phần quan trọng nhất của

luồng thiết kế ASIC. Trong bước này, đặc tính và chức năng của ASIC được định nghĩa,

đồng thời người thiết kế sẽ lập kế hoạch thiết kế của mình(liên quan tới thời gian hoàn

thành dự án, chi phí…).

Từ những đòi hỏi về chức năng và đặc tính, người thiết kế sẽ phác thảo kiến trúc

của ASIC cần thiết kế. Việc này đóng vài trò đặc biệt quan trọng trong việc quyết định

khả năng về hiệu suất của thiết kế (bao gồm mức tiêu thụ công suất, mức điện áp, những

giới hạn về timing…). Do đó, khi phác thảo kiến trúc phải xem xét tất cả các đòi hỏi về

điện áp , tốc độ và hiệu suất của thiết kế để đảm bảo rằng nó thỏa mãn tất cả những đặc tả

mong muốn. Trong quá trình mô phỏng, kiến trúc sẽ phải thay đổi nếu kết quả mô phỏng

cho thấy nó không đáp ứng những yêu cầu của Specification.

Khi kiến trúc đã đáp ứng được tất cả các yêu cầu, người thiết kế sẽ chi thiết hóa

các thiết kế trong kiến trúc đứa ra các “vi kiến trúc” cho từng module. Vi kiến trúc là cầu

nối giữa kiến trúc và mạch thực tế, nó “ánh xạ” những định nghĩa trong kiến trúc thành

những thiết kế có khả năng thực hiện được trong thực tế.

1.2.2 Mã hóa RTL (RTL coding)

Mã hóa RTL là bước thứ hai trong luồng thiết kế ASIC. Trong bước này, các “vi

kiến trúc” được mô tả dưới dạng mã RTL theo một ngô ngữ mô tả phần cứng nhất định.

Mã RTL này phải đảm bảo có thể tổng hợp logic và vật lý thành mạch thực tế được. Do

đó, việc mã hóa RTL phải tuần theo một bộ các quy tắc, các quy tắc này thường phụ

thuộc vào khả năng hỗ trợ của nhà sản xuất và phần cứng được lựa chọn để thực thi thiết

kế. vì thế, so với việc mã hóa RTL cho FPGA, mã hóa RTL cho công nghệ ASIC có

nhiều điểm khác biệt.

Page 8: Bao Cao Vlsi_3

8

1.2.3 Logic synthesis

Bước tiếp theo trong luồng thiết kế ASIC là tổng hợp. Trong bước này, mã RTL

được tổng hợp. Đây là quá trình mà trong đó mã RTL được biến đổi thành cổng logic.

Cổng logic được tổng hợp sẽ có cùng chức năng giống như đã được mô tả trong RTL.

Quá trình tổng hợp cần hai tập tin đầu vào khác để thực hiện việc biến đổi RTL thành

cổng logic. Tập tin đầu vào đầu tiên mà công cụ tổng hợp phải có trước khi thực hiện

biến đổi là tập tin “ thư viện công nghệ”. Đó là tập tin thư viện chứa những cell chuẩn.

Trong quá trình tổng hợp chức năng logic của mã RTL được biến đổi thành những

cổng logic sử dụng những cell sẵn có trong tập tin thư viện công nghệ. Tập tin đầu vào

thứ hai là “ tập tin giới hạn” (constraints file) giúp quyết định việc tối ưu mạch logic tổng

hợp tập tin này thường chứa những thông tin về định thì, yêu cầu tải và thuật toán tối ưu

mà công cụ tổng hợp cần để tối ưu thiết kế thậm chí cả những nguyên tắc thiết kế cũng

được xem xét trong quá trình tổng hợp. Bước này là một bước rất quan trọng trong luồng

thiết kế ASIC. Bước này bảo đảm việc tổng hợp được tùy biến nhằm có được kết quả tối

ưu nhất có thể. Dựa vào bản tối ưu hóa cuối cùng, nếu những yêu cầu về hiệu suất hay tận

dụng diện tích vẫn không nằm trong khoảng cho phép người thiết kế phải xem xét lại từ

kiến trúc đến vi kiến trúc của thiết kế. Người thiết kế phải đánh giá lại kiến trúc cũng như

vi kiến trúc đã đáp ứng yêu cầu về diện tích và hiệu suất hay chưa? Nếu vẫn chưa đáp

ứng được thì việc định nghĩa lại kiến trúc hay vi kiến trúc là việc làm bắt buộc tuy nhiên

việc làm này sẽ dẫn đến việc phải bắt đầu lại từ đầu, một hành động tất mất thơi gian.

Thậm chí nếu việc thay đổi kiến trúc hay vi kiến trúc vẫn không mang lại kết quả mong

muốn thì việc phải nghĩ đến là sữa chưa specification.

1.2.4 Logic verification and testing

Bước tiếp theo trong quá trinh là kiểm tra quá trình tổng hợp. ở bước này , dầu ta

của quá trình tổng hợp logic ở trên được đưa vào để kiểm tra tính đúng đắn về chức năng

so với mô tả chức năng của thiết kế đã đề ra ở bước thứ nhất.

Page 9: Bao Cao Vlsi_3

9

Ngoài việc kiểm tra về chức năng bước này còn có thể bao gồm cả quá trình kiểm

tra timing của mạch sau khi tổng hợp. Bất kì vi phạm nào về mặt thời gian như setup time

hay hold time đều cần được người thiết kế sửa chữa. Trong một số thiết kế người ta có

thể bỏ qua việc kiểm tra timing này do trong quá trình Layout sẽ cần có một quá trình

kiểm tra timing nữa.

1.2.5 Physical layout

Trong bước này, những cổng logic đã được tổng hợp sẽ được sắp xếp và nối dây.

Đa số thiết kế có những critical path rất chặt về mặt timing. Những đường này có thể

được xác định bửi những người thiết kế bằng đường có mức ửu tiên cao. Công cụ tự động

sắp xếp và nối dây sẽ nối những đường có mức ưu tiên cao trước nhằm đạt đến việc định

tuyến tối ưu.

APR cũng là bước liên qua đến việc tổng hợp clock tree. Đa số những công cụ

APR có thể thực hiện việc định tuyến clock tree với những thuật toán đặc biệt được xây

dựng sẵn. Đây là một phần quan trọng của luồng APR bởi vì việc xây dựng clock tree là

rất tiên quyết bởi nếu được định tuyến đúng sẽ tránh được hiện tượng sai lệch clock.

1.2.6 Layout verification and implementation

Bước này kiểm tra độ chính xác về chức năng của mạch đã layout so với mạch sau

khi tổng hợp mức cổng. Trong bước này còn cần kiểm tra một số luật của nhà sản xuất đề

ra trong thư viện chuẩn (DRC). Nếu chưa đạt yêu cầu thì quay lại các bước trước đó để

kiểm tra và thực hiện lại

1.2.7 Fabication

Quá trình cuối cùng là đem mạch đã Layout đi in. File sau khi layout là GDSII

được gửi đến nhà sản xuất để sản xuất ra con chíp.

Page 10: Bao Cao Vlsi_3

10

1.3 Bộ công cụ phần mềm EDA của Sysnopsys

1.3.1 Sơ lược về công ty Synopsys

Synopsys là một trong những công ty lớn nhất trong lĩnh vực sản xuất EDA.

Synopsys được thành lập bởi Dr. Aart J. de Geus, David Gregory và một nhóm kỹ sư đến

từ General Electric's Microelectronics Center, Research Triangle Park (bắc Carolina).

Hướng phát triển ban đầu của Synopsys là tập trung vào phát triển các sản phẩm thương

mại phục vụ cho việc tổng hợp logic, bởi vậy, có thể nói sản phẩm nổi tiếng nhất của

Synopsys là phần mềm "Design compiler". Tuy nhiên, Synopsys cũng cung cấp các phần

mềm khác phục vụ hầu hết các công đoạn trong quy trình thiết kế IC, tập hợp thành bộ

Synopsys Tools.

Ngày nay, Synopsys bao gồm hơn 60 văn phòng bán hàng, hỗ trợ và trung tâm

R&D trên khắp thế giới; sử dụng khoảng 6,800 lao động có doanh thu đạt 1.54 tỷ USD

(năm 2011).

Hình 3: Trụ sở của Synopsys (Mountain View, California, US)

1.3.2 Sơ đồ khối tổng quát

Page 11: Bao Cao Vlsi_3

11

Hình 4 : Công cụ thiết kế Synopsys theo luồng ASIC

1.3.3 Leda

Là công cụ kiểm tra tính khả thi của mã RTL cho việc tổng hợp mạch, mô phỏng,

kiểm thử, sử dụng lại. Leda phát hiện những lỗi liên quan đến đồng bộ, cách ly… và nâng

cao hiệu năng của các công cụ khác, như VCS MX, DC, và Formality.

Page 12: Bao Cao Vlsi_3

12

Đầu vào: Các file HDL có dạng đuôi .v, .sv, .vhd . . .

Đầu ra: Các cảnh báo và lỗi cho file HDL

Hình 5: Vị trí của Leda trong bộ Synopsys Tools

1.3.4 VCS

Là công cụ kiểm thử đa chức năng, VCS cung cấp các cơ chế mô phỏng (mô

phỏng ngẫu nhiên hoặc "vét cạn" các trường hợp của đầu vào), phân tích coverage

(coverage chức năng, coverage code ...), sửa lỗi cả trước và sau khi tổng hợp mạch.

Đầu vào: các tệp HDL (.v, .sv, .vhd . . .), thư viện của nhà sản xuất IC, tệp chứa

các thông số trễ (.sdf) (mô phỏng mức logic gate), dữ liệu mô phỏng (file .txt)

Đầu ra: kết quả mô phỏng (file đầu ra .txt, .doc; waveform ...), thông số

coverage…

1.3.5 Design compiler

Là công cụ tổng hợp logic, sử dụng thư viện có sẵn để tổng hợp mạch từ mã RTL;

cho phép thiết kế trong thời gian nhanh nhất, với diện tích mạch nhỏ nhất, công suất tiêu

thụ thấp nhất và độ phủ lớn nhất.

Đầu vào: các tệp mã HDL (.v, .sv, .vhd . . .), thư viện của nhà sản xuất, các thông

số ràng buộc do người thiết kế đặt như thời gian, diện tích . . .

Đầu ra: file netlist (.v), file chứa thông số trễ (.sdf), file chứa thông số ràng buộc

(.sdc), file .ddc

Page 13: Bao Cao Vlsi_3

13

1.3.6 Prime time

Là công cụ phân tích các thông số về mặt thời gian ở mức logic gate. Công cụ này

phân tích thời gian tĩnh, "bắt" các vi phạm về thời gian như setup time, hold time.. trước

và sau khi layout.

Đầu vào : file netlist sau khi tổng hợp logic hoặc vật lý, file .sdc

Đầu ra : Các vi phạm về thời gian tĩnh

1.3.7 IC compiler

Là công cụ thực hiện tổng hợp ở mức vật lý, bao gồm layout (thực hiện việc sắp

xếp và tối ưu vị trí các khối, nối dây, bố trí đường đi của xung clock) và giải nén RC. IC

Compiler cho phép người thiết kế làm việc có hiệu quả cao khi thiết kế các khối phức tạp.

Đầu vào: netlist (.v) hoặc file .ddc, .sdc, .def, .spef, .sbpf

Đầu ra: netlist (.v), .sdc, .def, .spef, .sbpf, .gdsii

1.3.8 Fomality

Là công cụ kiểm tra tính tương đương, sử dụng kĩ thuật thống kê và hình thức hóa

để kiểm chứng xem chức năng của 2 bản thiết kế có tương đương nhau hay không (2 bản

thiết kế này ở 2 mức kế tiếp nhau, thường là đầu vào và đầu ra của một công cụ tổng

hợp). Formality cũng hỗ trợ kiểm thử các trạng thái năng lượng, các thiết kế có nhiều

mức điện áp.

Đầu vào : 2 file HDL cần kiểm chứng, file .svf

Đầu ra: kết quả so sánh 2 file HDL

Page 14: Bao Cao Vlsi_3

14

Hình 6: Vị trí của Formality trong bộ Synopsys Tools

Chương 2 : Thiết kế đồng hồ số

2.1. Miêu tả đồng hồ số

Đồng hồ số hoạt động dựa trên tín hiệu sườn dương của xung nhịp để thực hiện

các bộ đếm giờ, phút, giây với chu kì điều khiển của xung clock là 1s. Các tín hiệu giờ

phút giây được hiển thị lên LED 7 thanh . Module chính gồm 3 tín hiệu đầu vào và 6 tín

hiệu đầu ra, mỗi đầu ra có 7 bit để điều khiển hiện thị lên LED 7 thanh.

Các tín hiệu đầu điều khiển đầu vào gồm:

Tín hiệu “clk” là tín hiệu xung clock, chu kì xung là 1s.

Tín hiệu “rst” là tín hiệu reset, khi rst = ‘0’ giá trị các thanh ghi trong các

module khởi tạo về giá trị ban đầu. “rst” là tín hiệu tích cực mức thấp.

Tín hiệu “en” là tín hiệu enable, khi en = ‘1’ cho phép hiển thị các giá trị của giờ,

phút, giây lên LED 7 thanh. “en” là tín hiệu tích cực mức cao.

Page 15: Bao Cao Vlsi_3

15

2.2. Thiết kế đồng hồ số

2.2.1 Khối Top Module

Sơ đồ khối:

Digital clock

clk

rst_n

en

tens_hour_o [6:0]

units_hour_o [6:0]

tens_min_o [6:0]

units_min_o [6:0]

tens_sec_o [6:0]

units_sec_o [6:0]

Hình 7: Sơ đồ khối tổng quát

Miêu tả các tín hiệu vào ra

Tín hiệu Kích thước I/O Chức năng

clk 1 bit I Xung clock đầu vào

rst_n 1 bit I Tín hiệu reset đồng bộ tích cực mức thấp

en 1 bit I Tín hiệu cho phép hiển thị lên LED 7 thanh

tích cực mức cao

tens_hour_o 7 bit O Biểu diễn tín hiệu hàng chục của giờ

units_hour_o 7 bit O Biểu diễn tín hiệu hàng đơn vị của giờ

tens_min_o 7 bit O Biếu diễn tín hiệu hàng chục của phút

units_min_o 7 bit O Biểu diễn tín hiệu hàng đơn vị của phút

tens_sec_o 7 bit O Biểu diễn tín hiệu hàng chục của giây

units_sec_o 7 bit O Biểu diễn tín hiệu hàng đơn vị của giây

Bảng 1: Miêu tả các tín hiệu vào ra của khối Top module

Page 16: Bao Cao Vlsi_3

16

Digital Clock

en

rst

Extract_bitssec

Extract_bitsmin

Extract_bitshour

Led_7_segmentTens_sec

Led_7_segmentUnits_sec

Led_7_segmentTens_min

Led_7_segmentUnits_min

Led_7_segmentTens_hour

Led_7_segmentUnits_hour

Second_w

Minute_w

tens_sec_w

units_sec_w

tens_min_w

units_min_w

tens_hour_w

units_hour_w

clk

tens_Sec_o[6:0]

units_sec_o[6:0]

tens_min_o[6:0]

units_min_o[6:0]

tens_hour_o[6:0]

units_hour_o[6:0]

Hour_w

Counter

Extracts_bitsExtracts_bits Leg_7_SegmentLeg_7_Segment

Hình 8: Sơ đồ khối chi tiết của khối Top module

Page 17: Bao Cao Vlsi_3

17

Miêu tả các các tham số

Tham số Kích thước Miêu tả

Second_w [5:0] Tín hiệu nối giữa đầu ra của khối “Counter sec”

với khối “Extract_bits sec”

Minute_w [5:0] Tín hiệu nối giữa đầu ra của khối “Counter min”

với khối “Extract_bits min”

Hour_w [5:0] Tín hiệu nối giữa đầu ra của khối “Counter hour”

với khối “Extract_bits hour”

tens_sec_w [3:0] Đầu ra phần chục của khối “Extract_bits sec”,đầu

vào của khối “Led_7_segment Tens_sec”

units_sec_w [3:0] Đầu ra phần đơn vị của khối “Extract_bits

sec”,đầu vào của khối “Led_7_segment

Units_sec”

tens_min_w [3:0] Đầu ra phần chục của khối “Extract_bits min”,đầu

vào của khối “Led_7_segment Tens_min”

units_min_w [3:0] Đầu ra phần đơn vị của khối “Extract_bits

min”,đầu vào của khối “Led_7_segment

Units_min”

tens_hour_w [3:0] Đầu ra phần chục của khối “Extract_bits

hour”,đầu vào của khối “Led_7_segment

Tens_hour”

units_hour_w [3:0] Đầu ra phần chục của khối “Extract_bits”,đầu vào

của khối “Led_7_segment Units_hour”

Bảng 2: Miêu tả các tham số tín hiệu bên trong khối Top module

Page 18: Bao Cao Vlsi_3

18

Chức năng khối Top module

Khối Top Module có chức năng kết nối đầu vào và đầu ra giữa các khối con bằng

việc khai báo các dây tín hiệu và kết nối các tín hiệu đầu vào và đầu ra của khối Top

Module.

2.2.2 Khối Counter

Sơ đồ khối:

Counter

clk

rst

Second_o

Minute_o

Hour_o

Hình 9: Sơ đồ khối bộ Counter

Miêu tả các tín hiệu vào ra:

Tín hiệu Kích thước I/O Chức năng

clk 1 bit I Xung clock đầu vào

rst 1 bit I Tín hiệu reset

Second_o [5:0] O Đầu ra tín hiệu giây

Minute_o [5:0] O Đầu ra tín hiệu phút

Hour_o [5:0] O Đầu ra tín hiệu giờ

Bảng 3: Miêu tả các tín hiệu vào ra của khối Counter

Chức năng: Thực hiện bộ đếm dựa vào sườn dương của xung nhịp. Đầu ra của bộ

Couter là các tín hiệu giây, phút, giờ.

Sơ đồ thuật toán:

Page 19: Bao Cao Vlsi_3

19

second = second +1;

second = 59 ?

Minute_o = Minute_o +1;

second = 59 ?

Minute = 59?

Hour_o = Hour_o +1;

Hour_o = 23?

S

Đ

S

Đ

S

Đ

Clk, rst;Second_o = 0, Minute_0 =0,

Hour_o = 0;

Hình 10: Sơ đồ thuật toán của khối Counter

2.2.3 Khối Extract_bits

Sơ đồ khối:

Extract_bits

tens_o[3:0]

units_o[3:0]

number_i[5:0]

Hình 11: Sơ đồ của khối Extract_bits

Miêu tả tín hiệu vào ra:

Tín hiệu Kích thước I/O Chức năng

number_i [5:0] I Tín hiệu đưa vào

tens_o [4:0] O Tín hiệu hàng chục của tín hiệu đưa vào

Page 20: Bao Cao Vlsi_3

20

units_o [4:0] O Tín hiệu hàng đơn vị của tín hiệu đưa vào

Bảng 4: Miêu tả tín hiệu vào ra của khối Extract_bits

Chức năng: có nhiệm vụ biến đổi tín hiệu đầu vào có 6 bít thành 2 tín hiệu đầu ra 4 bít

mỗi tín hiệu là số hàng đơn vị và số hàng chục của tín hiệu đầu vào.

Sơ đồ thuật toán

start

d1 = {1'b0, number_i[5:3]};

d1 > 4'd4

c1 = d1 + 2'd3; c1 = d1;

d2 = {c1[2:0],number_i[2]};

d2 > 4'd4

c2 = d2 + 2'd3; c2 = d2;

d3 = {c2[2:0],number_i[1]};

d3 > 4'd4

c3 = d3 + 2'd3; c3 = d3;

number_i = 6'b111111

tens_o = 4'b1111;units_o = 4'b1111;

tens_o = {1'b0,c1[3],c2[3],c3[3]};

units_o = {c3[2:0],number_i[0]};

end

1 0

1 0

1 0

1 0

number_i [5:0]

d1

c1

d2

c2

d3

c3

tens_o units_o

Page 21: Bao Cao Vlsi_3

21

Hình 12: Sơ đồ thuật toán của khối Extract_bits

2.2.4 Khối Led_7_segment

Sơ đồ khối :

Led_7_segment

en

input_i[3:0]

out_put [6:0]

Hình 13: Sơ đồ khối Led 7 thanh

Miêu tả tín hiệu vào ra:

Tín hiệu Kích thước I/O Chức năng

En 1 bit I Cho phép hiển thị led 7 thanh

input_i [3:0] I Tín hiệu vào

out_put [6:0] O Tín hiệu đầu ra hiển thị led 7 thanh

Bảng 5:Miêu tả tín hiệu vào ra của khối Led_7_segment

Chức năng :

Chức năng: có nhiệm vũ giải mã số 4 bít hiển thị lên led 7 thanh với sự điều khiển

của tín hiệu enable “en”.

Page 22: Bao Cao Vlsi_3

22

a

b

c

d

e

f

g

Hình 14: Led 7 thanh

Bảng giá trị đầu vào đầu ra

Đầu vào Đầu ra {a,b,c,d,e,f,g}

4’d0 7’b1111110

4’d1 7’b0110000

4’d2 7’b1101101

4’d3 7’b1111001

4’d4 7’b0110011

4’d5 7’b1011011

4’d6 7’b1011111

4’d7 7’b1110000

4’d8 7’b1111111

4’d9 7’b1111011

Page 23: Bao Cao Vlsi_3

23

En 7’b0000000

Bảng 6: Miêu tả các tín hiệu vào ra của Led 7 thanh

Yêu cầu Timing:

Do trong sơ đồ khối chi tiết chỉ có khối Couter mới có tín hiệu xung clock làm

nhiệm vụ điều khiển bộ đếm. vì vậy ta chỉ quan tâm tới timing của khối Counter

Khi giây đếm đến giá trị ngưỡng thiêt lập là ’59’ thì giây về 0 và tiếp tục đếm, phút tăng

lên 1

Khi phút đếm đến giá trị ngưỡng đã được thiết lập là ’59’ thì phút có giá trị trở về

0 và tiếp tục đếm,giờ tăng lên 1

Khi giờ đếm đến giá trị đã ngưỡng đã được thiếp lập sẵn là ‘23’ thì giờ có giá trị

về 0 và tiếp tục đếm

6'd0 6'd1 6'd2 6'd3 ... S 6'd0 6'd1

clk

rst

counter_o

flag_o

...

S: set_number

Hình 15: Yêu cầu Timing

Page 24: Bao Cao Vlsi_3

24

Chương 3 : Thực hiện thiết kế với bộ công cụ phần mềm Synopsys

3.1 Leda

Tạo thư mục “rtl” để chưa code RTL và tạo thêm thư mục “leda” trong project. mở

cửa sổ terminal,chọn đường dẫn đến thư mục leda rồi gõ lênh “leda” cửa sổ giao diện

phần mềm hiện ra:

Bước 1: Chọn new project → chọn OK

Sau khi cửa sổ hiện ra trong mục Project Name có thể thay tên project có đuôi mở rộng

là “.pro”, sau đó chọn next.

Page 25: Bao Cao Vlsi_3

25

Sau khi cửa sổ mới hiện ra, trong mục “Verision” chọn 2001 (verilog 2001)

Chọn “Next”. Cửa sổ tiếp theo hiện ra

Page 26: Bao Cao Vlsi_3

26

Chọn “Add” rồi chọn đường dẫn đến thư mục chưa code verilog

Chọn OK chọn “Next” ở cửa sổ tiếp theo chọn “Finish”

Page 27: Bao Cao Vlsi_3

27

Vào “Check” chọn “Load Configuration” rồi chon RTL. Chọn biểu tượng “!” xuất hiện

cửa sổ:

Page 28: Bao Cao Vlsi_3

28

sau khi xuất hiện cửa sổ vào mục “Test clock/reset” thiết lập clock và reset rồi chọn OK.

cửa sổ mới sẽ hiện thỉ các trạng thái kiểm tra như sau

Nếu cửa sổ hiện thị trạng thái các ô màu xanh thì code đã được kiểm tra đúng

Nếu hiện thị các ô màu nâu báo các cảnh báo nên đọc qua và có thể điều chỉnh.

Nếu hiển thị các ô màu đỏ phải đọc chi tiết các cảnh báo vào sửa lại code tuân theo các

luật mình đã chọn.

Sau khi sửa code chạy lại kiểm tra một lần nữa cho đến khi nào trên cửa sổ không xuấ

hiện màu đỏ nữa.

3.2 VCS

3.2.1 Kiểm tra trước khi tổng hợp

Tạo thư mục “vcs” trong project. Trong thư mục “vcs” tạo thư mục “pre_syn” để

chứa các file sinh ra tron quá trình mô phỏng code RTL trước khi tổng hợp bằng design

compiler. Vào thư mục “pre_syn” mở của sổ lệnh Terminal gõ lệnh sau:

vcs -debug +v2k ../../rtl/*.v

Page 29: Bao Cao Vlsi_3

29

sau khi phân tích các file .v xong nó sẽ tạo ra mọt file “simv” trong thư mục “pre_syn”.

tiếp tục vào terminal gõ lệnh sau để thực hiện mô phỏng chức năng:

./simv -gui

sau khi cửa sổ hiện ra chọn file testbench click chuột phải vào chọn “Add to Wave” rồi

chọn “New Wave view”. Cửa số mới hiện ra bấm “F5” hoặc chọn run (mũi tên có chiều

hướng xuống dưới) sẽ xuất hiện ra timing cần kiểm tra.

3.2.2 Kiểm tra sau khi tổng hợp

Tạo thư mục “post_syn” trong thư mục “vcs”

sau khi tổng hợp bằng công cụ Design Compiler sẽ sinh ra một file Netlist có đuôi mở

rộng là “.v” bao gồm các cell cơ bản được nối dây với nhau và file delay có đuôi mở

rộng là “.sdf”. Để kiểm tra timming sau khi tổng hợp cần có 4 file cần thiết là:

file netlist “.v”

file delay “.sdf”

file thư viện cell “tcbn45gsbwp.v”

file testbench “.v”

Các file kia cần phải copy vào trong thư mục “post_syn”. vào terminal gõ các lệnh sau :

vlogan -debug +v2k *.v

vcs -debug “tên file module của testbench” -sdf typ:“tên modue top”:“file.sdf -l

comp.log

ví dụ:

vcs-debug tb_digital_clock_top -sdf typ:digital_clock_top:top.sdf -l comp.log

Sau khi phần tích các file trên trong thư mục sẽ tạo ra file “simv”. vào terminal gõ lênh

sau:

./simv -gui

Page 30: Bao Cao Vlsi_3

30

Rồi làm tương tự như các bước trước khi trước khi tổng hợp. sẽ xuất hiện các timming

với có thêm trễ (màu vàng).

3.2.3 Kiểm tra timming sau khi layout

Tạo thư mục “post_layout” trong “vcs”.

Trong qúa trình Layout có thể làm sai timing vì vậy sau khi layout xong cần phải kiểm tra

lại timing xem có đúng như timming mình đã kiểm tra sau khi tổng hợp hay không.

Để kiểm tra timming ở bước này cần có các file sau:

file “.v” được tạo ra sau khi layout

file delay “.sdf” được tạo ra sau khi layout

file thư viện cell “tcbn45gsbwp.v”

file testbench “.v”

Thực hiện các bước tương tự như khi kiểm tra chức năng trước khi tổng hợp.

3.3 Design Compiler

Tạo thư mục “dc” trong project, vào terminal gõ lệnh:

design_vision

Giao diện người dùng hiện lên:

Page 31: Bao Cao Vlsi_3

31

Bước 1: Cài đặt thư viện

File → Setup

Search path : chọn đường dẫn đến thư viện milkyway :

~Mikyways/tcbn45gsbwp/frame_only_HVH_0d5_0/tcbngsbwp/LM

Page 32: Bao Cao Vlsi_3

32

Target library: thư viện công nghệ của nhà sản xuất

~Mikyways/tcbn45gsbwp/frame_only_HVH_0d5_0/tcbngsbwp/LM/tcbn45gsbwpbc

.db

Symbol library : thư viện kí hiệu có sẵn trong thư mục cài đặt của synopsys

/usr/synopsys/dc/libraries/syn/generic.sdb

Synthetic library : thư viện tổng hợp có sẵn trong thư viện của synopsys

/usr/synopsys/dc/libraries/syn/dw_foundation.sldb

Link library : đường dẫn đến thư viện bao gồm 2 thư viện Synthetic library và

Target library

Bước 2 : Tạo file theo dõi quá trình có đuôi mở rộng “.svf”.

Vào terminal gõ lệnh: set_svf top.svf

Bước 3: đọc file *.v

File → Read

Đọc tất cả các file verilog trong thư mục “rtl” trừ các file testbench

Bước 4 : Analyze

File → Analyze

Page 33: Bao Cao Vlsi_3

33

Chọn Add: chọn tất cả các file *.v trừ file testbench

Bước 5: Elaborate

File → Elaborate

Trong mục Design chọn file top module

Bước 6: Kiểm tra thiết kế

Design → Check Design → OK

Bước này sẽ kiểm tra thiết kế. Trên cửa sổ terminal sẽ có các cảnh báo nên đọc kỹ

Page 34: Bao Cao Vlsi_3

34

Bước 7: Set clock constraints

Chọn vào biểu tượng trên thanh menu sẽ hiện lên schematic

Sử dụng các phin I (zoom in) và O (zoom out) để phóng to hoặc thu nhỏ sơ đồ

Chọn vào tín hiệu “clk” trong sơ đồ:

Page 35: Bao Cao Vlsi_3

35

Sau khi chọn tín hiệu “clk” vào “Atributes” trên thanh Menu chọn “Specify

Clock”

Ta có các thiết lập sau:

Trong mục “Clock name” đặt tên là clk

Trong mục Period : 1000000000 (ns)(do chu kì thực hiện của đồng hồ số là 1s )

Trong mục rising: 0 (tại 0 thì xuất hiện sường lên của xung nhịp)

Page 36: Bao Cao Vlsi_3

36

Trong mục falling: 500000000 (tại 500000000 ns thì xuất hiện sườn xuống của

xung nhịp)

Chọn “Don't touch network” : trong quá trình tổng hợp thì tín hiệu clock được

bảo vệ

Chọn “ Fix hold” : khắc phục các lỗi hold time sau khi tổng hợp

Ngoài ra còn có các ràng buộc khác bằng cách sử dụng câu lệnh như

set_clock_uncertainty 0.01 clk // thiết lập độ lệch giữa 2 FF kế tiếp nhau

set_clock_latency 0.2 clk // thiết lập độ trễ của xung clock từ bộ tạo dao động

đến FF

set_clock_transition 0.1 clk // thiết lập độ trễ chuyển trạng thái của lock (độ dốc

của sườn clock)

Bước 8: Thiết lập các ràng buộc thiết kế (constrain)

Trễ đầu vào:

Chọn các tín hiệu đầu vào trên sơ đồ (trừ tín hiệu clock)

Trên thanh Menu vào “Atributes” chọn Operating Environment → Input delay

Trễ đầu ra :

Chọn các tín hiệu ra trên sơ đồ

Trên thanh Menu vào “Atributes” chọn Operating Environment → Output delay

Page 37: Bao Cao Vlsi_3

37

Điều kiện hoạt động (Operating condition)

Trên thanh Menu vào “Atributes” chọn Operating Environment →Operating

conditions

Wire load:

Trên thanh Menu vào “Atributes” chọn Operating Environment →Wire load

Page 38: Bao Cao Vlsi_3

38

Design constraints

Trên thanh Menu vào “Atributes” chọn Operating Environment →Design

constraints

Có thể thiết lập thêm các ràng buộc về công suất động, công suất dòng rò, Max

fanout, maxtransition.

Bước 9 : Compile Design

Trên thanh Menu vào Design → Compile Design → OK

Ngoài ra bạn có thêm các lựa chọn sao cho sau quá trình tổng hợp thiết kế của

mình tối ưu nhất.

Page 39: Bao Cao Vlsi_3

39

Bước 10: Compile Ultra

Sau quá trình tổng hợp thiết kế, bước này sẽ vừa tổng hợp vừa tối ưu hóa thiết kế

những cổng nào thừa hoặc không cần thiết trong quá trình tổng hợp sẽ bị xóa.

Trên thanh Menu vào Design → Compile Ultra → OK

Sau quá trình tổng hợp khi xem lại sơ đồ mạch sẽ trở nên phức tạp hơn rất nhiều.

Page 40: Bao Cao Vlsi_3

40

Bước 11 : Xuất báo cáo

Sau khi tổng hợp để kiểm tra xem thiết kế của mình có đáp ứng được các yêu cầu

về timing, công suất, diện tích,.. hay không cần phải xem qua các báo cáo mà phần mềm

đã tự động tạo ra cho mình.

Có một số báo cáo điển hình như sau:

report_timing : Timing → Report Timing Path

report_constraints: Design → Report Constraints

report_power : Design → Report Power

report_Resource : Design → Report resource

Bước 12 : Tạo file “Netlist”

File Netlist là file mô tả mức cổng của thiết kế bao gồm các cell cơ bản (AND,

OR, MUX, FF) được nối dây với nhau.

File → Save as

Page 41: Bao Cao Vlsi_3

41

Bước 13 : Tạo file “.ddc”

File “.ddc” được sử dụng cho phần mềm ICC để layout và kiểm tra chức năng

trong Primetime

File → Save as

Bước 14 : Tạo file “.sdf”

File “.sdf” là file định nghĩa trễ từng cổng, dây dẫn

Vào terminal gõ lệnh sau: write_sdf top.sdf

Bước 15 : Tạo file “.sdc”

Page 42: Bao Cao Vlsi_3

42

File “.sdc” (synopsys design constraints) được sử dụng trong ICC để đưa các

ràng buộc thiết kế của mình vào để thực hiện layout.

Vào Terminal gõ lệnh sau:

write_sdc top.sdc

Bước 16 : Tắt file theo dõi

Vào terminal gõ câu lệnh: set_svf -off

File “.svf” được sử dụng trong quá trình kiểm tra Formality

3.4 Formality

Tạo thư mục “fm” trong project

Để thực hiện phần mềm cần có các file sau:

File theo doi “top.svf”

Các file code RTL “*.v”

File Netlist “top.v”

Thực hiện:

Bước 1: Mở terminal go lệnh hiện thị giao diện người dùng

fm_shell –gui

Page 43: Bao Cao Vlsi_3

43

Bước 2: Chọn Guidance chọn đường dẫn đến file “top.svf”

Chọn Load Files

Bước 3: Chọn Reference đọc tất cả cac file verilog trừ file testbench

Chọn Load File

Vào mục 3 chọn Set Top Design chọn file top module → Set top → Set reference

Page 44: Bao Cao Vlsi_3

44

Bước 4 : Chọn Implementation

Chọn Verilog chọn đường dẫn mở file “top.v” sau khi tổng hợp ở trong thư mục

“dc”.

Chọn Load File.

Page 45: Bao Cao Vlsi_3

45

Chọn Read DB Libraries : chọn file “tcbn45gspbw.v” trong thư viện Milkyway →

chọn Load Files

Chọn file top module → Set top → Set Implementation.

Bước 5: Match

Chọn “Run Matching” sẽ co cửa sổ thông báo có bao nhiêu điểm so sánh giống

nhau va bao nhiêu điểm so sánh khác nhau.

Bước 6 : Verify

Chọn “Verify” : Trên cửa sổ báo Verify Succeeded tức la kiểm tra đã thành công.

Trong mục Debug sẽ hiện ra cac điểm so sanh giữa 2 file code RTL va file netlist.

Page 46: Bao Cao Vlsi_3

46

3.5 Primetime

3.5.1 Kiểm tra timing trước khi layout

Bước 1 : Cài đặt thư viện

Tạo thư mục “pt” trong project

Vào thư mục pt mở cửa sổ lệnh gõ lênh: pt_shell

Cài đặt Search Path:

set lib_path "~/milkyway/tcbn45gsbwp_120a/frame_only_HVH_0d5_0

/tcbn45gsbwp/LM";

set ADDITIONAL_SEARCH_PATH "$lib_path";

set TARGET_LIBRARY_FILES "tcbn45gsbwpbc.db";

set_app_var search_path "$search_path

$ADDITIONAL_SEARCH_PATH"

set_app_var target_library $TARGET_LIBRARY_FILES

set_app_var link_library "* $target_library"

Bước 2 : Đọc file “.ddc”

Để đọc file “.ddc” sử dụng câu lệnh sau:

c/syn/ultra_compile.ddc

Bước 3: Xuất báo cáo

Mở giao diện người dùng dùng lệnh : start_gui

Page 47: Bao Cao Vlsi_3

47

Xuất báo cáo “Coverage.txt”:

Vào timing → Analysis Coverage → Lưu file báo cáo đặt tên file là

“coverage.txt”

Xuất báo cáo độ trễn tối đa :

Vào Timing → Report Timing → Lưu tên file là “ maxdelay.txt”

Page 48: Bao Cao Vlsi_3

48

Xuất báo cáo độ trễ tối thiểu:

Report Timing → Edit → Trong thư mục Data type chọn “min” → Lưu tên file là

“mindelay.txt”

3.5.2 Kiểm tra timing sau khi layout

Sử dụng file “.ddc” được tạo ra sau khi chạy ICC. Các bước thực hiện tương tự như

trước khi layout.

3.6 IC Compiler

3.6.1 Cài đặt dữ liệu

Mở cửa sổ giao diện người dung bằng cach go lệnh sau:

Page 49: Bao Cao Vlsi_3

49

icc_shell –gui

Cài đặt thư viện

File → Setup → Application Setup

Thực hiện tương tự như bước cai đặt thư viện trong Design Compiler

Tạo thư viện milkyway

File → Creat Library

Page 50: Bao Cao Vlsi_3

50

Có các thiết lập sau:

New library path: Chọn đường dẫn đến thư mục minh cần chưa thư việc

Vi dụ: /home/TrungHoDuc/VLSI/icc_manual/

New library name : đặt ten thư viện

Ví dụ : my_library.mw

Technology Files: Chọn đường dẫn đến file thư viện cong nghệ trong Milkyway

Ví dụ: /home/TrungHoDuc/milkyway/tcbn45gsbwp_120a/techfiles/HVH_0d5_0

/tsmcn45_10lm7X2ZRDL.tf

Trong mục “input reference libraries” Chọn “Add” chọn đến thư viện

tcnbn45gspwb

Ví dụ : /home/TrungHoDuc/milkyway/tc

bn45gsbwp_120a/frame_only_HVH_0d5_0

/tcbn45gsbwp

Page 51: Bao Cao Vlsi_3

51

Chọn “Open library”

Đọc File “top.ddc”

File → Import → Read DDC

Đọc file “top.sdc”

File SDC là file ràng buộc thiết kế. Nó được đưa vao để ràng buộc thiết kế sao cho thiết

kế của mình tối ưu nhất.

File → Import → Read SDC

Sau khi đọc file “top.sdc” sẽ xấu hiện cửa sổ giao diện hiện thị các cell được xếp

chồng lên nhau và khung hình thiết kế.

Page 52: Bao Cao Vlsi_3

52

Tạo TLU+

File → Set TLU+

Có các thiết lập sau:

Max TLU+ file : Chọn đến thư viện công nghệ theo đường dẫn sau:

/home/TrungHoDuc/milkyway/tcbn45gsbwp_120a/techfiles/tluplus/cln45gs_1p10m

+alrdl_rcbest_top2.tluplus

Min TLU+ file : Chọn đến thư viện cong nghệ theo đường dẫn sau:

/home/TrungHoDuc/milkyway/tcbn45gsbwp_120a/techfiles/tluplus/cln45gs_1p10m+

Page 53: Bao Cao Vlsi_3

53

alrdl_rcworst_top2.tluplus

Layer name …: Chọn đến thư viện cong nghệ theo đường dẫn sau:

/home/TrungHoDuc/milkyway/tcbn45gsbwp_120a/techfiles/tluplus/star.map_10M

Lưu ý: Trong thư viện có nhiều lựa chọn khác nhau ứng với bao nhiêu lớp kim loại. Nếu

trong mục

Max/Min TLU+ file ch n 10 l p kim lo i thi trong ọ ớ ạ mục Layer name … cùng lớp kim

loại.

Kiểm tra thư viện:

Để kiểm tra thư viện sử dụng các lệnh sau :

check_library

check_tlu_plus_files

list_libs

Ngoài ra có thể xuất các báo cáo để kiểm tra xem trong quá trình layout gặp phải vấn đề

gì không qua các lệnh sau:

check_timing

report_timing_requirements

report_disable_timing

report_case_analysis

report_clock

report_clock -skew

Page 54: Bao Cao Vlsi_3

54

Trong khi tổng hợp mình xem các cổng có độ gian ra ở mức lý tưởng nên khi layout cần

phải xóa đặc tính này, sử dụng câu lệnh:

remove_ideal_network

Lưu cài đặt dữ liệu

Sau khi cai đặt xong dữ liệu cần lưu lại bước này để có thể dễ dàng xem lại các thiết lập

của mình.

sử dụng cau lệnh sau:

save_mw_cel -as data_setup

Hoặc vao File → Save Design

3.6.2 Floor Planning

Thực hiện khởi tạo nền

Floorplan → Initialize Floorplan

sau khi khởi tạo nền sẽ có hình như sau:

Page 55: Bao Cao Vlsi_3

55

Thực hiện tạo chân nối nguồn và nối đất VDD và VSS

PreRoute → Derive PG Conection

Tạo các vòng dây VDD và VSS

Preroute → Creat ring → Net(chọn VDD)

Page 56: Bao Cao Vlsi_3

56

Tiếp theo chọn VSS

Sau khi tạo được các vòng dây VDD và VSS trên hình sẽ xuất hiện như sau

Page 57: Bao Cao Vlsi_3

57

Thiết lập độ rộng cho dây nguồn dây đất cho từng lớp kim loại

Preroute → Creat power strap

VDD:

VSS:

Page 58: Bao Cao Vlsi_3

58

Tạo vòng đệm:

Preroute → Creat Pad ring

Sau khi xong bước Floorp Planning ta cần lưu lại sử dụng câu lệnh

save_mw_cel -as floorplanned

3.6.3 Placement (Sắp xếp cell) va kiểm tra tắc nghẽn

Placement → Core Placement and Optimization

Page 59: Bao Cao Vlsi_3

59

Sau khi sắp xếp các cell xong ta có:

Để kiểm tra tắc nghẽn xuất báo cáo sau:

report_congestion -grc_based -by_layer -routing_stage global

Page 60: Bao Cao Vlsi_3

60

Lưu lại quá trình thực hiện Placement:

save_mw_cel -as placed

3.6.4 Tạo clock tree

Clock → Core CTS and Optimization

Sau khi tạo được clock tree:

Page 61: Bao Cao Vlsi_3

61

Lưu lại bước tạo clock tree

save_mw_cel -as ctsed

3.6.5 Thực hiện đi dây

Route → Core Routing and Optimization

Page 62: Bao Cao Vlsi_3

62

Lưu lại kết quả sau khi đi dây tự động

save_mw_cel -as routed

3.6.6 Xuất các file .sdc, .sdf, .v, .spef,..

write_parasitics -output ./rpt/icc.spef -format SPEF

write_sdf ./rpt/icc.sdf

write_sdc ./rpt/icc.sdc

write_ddc ./rpt/icc.ddc

write_verilog ./rpt/icc.v

3.6.7 Xuất ra các file báo cáo

report_qor > ./rpt/rpt_icc_qor.txt

report_area > ./rpt/rpt_icc_area.txt

report_constraint -all_violators > ./rpt/rpt_icc_constraint.txt

report_port > ./rpt/rpt_icc_port.txt

report_power > ./rpt/rpt_icc_power.txt

Page 63: Bao Cao Vlsi_3

63

report_timing > ./rpt/rpt_icc_timing.txt

report_timing -nosplit > ./rpt/rpt_icc_timing_nosplit.txt

report_timing -delay min > ./rpt/rpt_icc_timing_delay_min.txt

report_design -physical > ./rpt/rpt_icc_design_physical.txt

Page 64: Bao Cao Vlsi_3

64

KẾT LUẬN

Chúng em đã hoàn thành thiết kế “ đồng hồ số” với các chức năng cơ bản hiển thị

giờ, phút, giây lên LED 7 thanh. Các kết quả mô phỏng chức năng trước khi tổng hợp

mạch, sau khi tổng hợp và sau khi layout đều chính xác .

Qua quá trình làm đề tài này, Chúng em đã hiểu thêm về công nghệ thiết kế ASIC,

luồng thiết kế, các bước thực hiện, được tiếp xúc với bộ công cụ phần mềm chuyên

nghiệp Synopsys, biết thêm về ngôn ngữ lập trình mô tả phần cứng verilog.

Page 65: Bao Cao Vlsi_3

65

TÀI LIỆU THAM KHẢO

1. Verilog HDL by Samir Palnitkar.

2. ASIC Design Flow – Uvision.

3. Asic Design Flow Tutorial Using Synopsys Tools by Hima Bindu Komoru Hamid

Mahmoodi.

4. Tài liệu hướng dẫn của synopsys.