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
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.
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.
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
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.
Đầ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
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
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_bits
sec
Extract_bits
min
Extract_bits
hour
Led_7_segment
Tens_sec
Led_7_segment
Units_sec
Led_7_segment
Tens_min
Led_7_segment
Units_min
Led_7_segment
Tens_hour
Led_7_segment
Units_hour
Second_w
Minute_w
tens_sec_w
units_sec_w
tens_min_w17 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
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]
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
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
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