Tải bản đầy đủ (.pdf) (65 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.18 MB, 65 trang )

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 (10
3
÷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
ASIC
Gate 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_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_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_bits
Extracts_bits
Leg_7_Segment
Leg_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

×