bao cao vlsi_3
TRANSCRIPT
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
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
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.
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:
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.
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
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.
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.
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.
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
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.
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
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
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.
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
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
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
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:
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
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
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”.
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
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
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.
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
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”
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ổ:
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
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
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:
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
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
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ỹ
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ơ đồ:
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)
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
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
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.
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.
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
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”
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
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
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.
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.
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
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”
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:
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
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
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ế.
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+
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
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:
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)
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
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:
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
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
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:
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
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
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
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.
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.