







Preview text:
  
Bài T ậ p Th ự c Hành VLSI   Đề  Bài   1. Yêu Cầu Chung 
- Viết ặc tả kỹ thuật cho thiết kế (Specification): 
o Sơ ồ tổng quan tín hiệu vào – ra (Input – Output Block Diagram) o Sơ ồ kiến trúc chi tiết của 
thiết kế mức RTL (Architecture) o Sơ ồ timing (Timing Diagram) mô tả ầy ủ các chức năng và  trường hợp xảy ra 
- Triển khai thiết kế (thiết kế RTL), sử dụng ngôn ngữ Verilog hoặc SystemVerilog 
- Kiểm thử thiết kế (Kiểm thử RTL) bằng phương pháp kiểm thử trực tiếp. Yêu cầu kiểm thử ầy ủ các 
chức năng và trường hợp có thể xảy ra. 
- Tổng hợp thiết kế, kiểm thử kết quả tổng hợp ược (Kiểm thử Netlist): 
o Thiết kế sau khi tổng hợp gồm bao nhiêu cell? Nhận biết chức năng của từng cell. 
o Kiểm thử Netlist cho kết quả mô phỏng trùng khớp với kiểm thử RTL 
- Vẽ ầy ủ Stick Diagram cho các cổng logic cơ bản ược sử dụng trong thiết kế o Ít break od/poly, tối 
thiểu số ường kết nối o Output ngắn, thẳng o Tín hiệu ngắn gọn, không cắt nhau o Nhiều ường 
Power nhất có thể o Tính thẩm mỹ (nhìn sạch ẹp, màu rõ ràng nếu có), stick kèm theo mạch nguyên  lý + các path sharing, 
- Vẽ Layout o Layout ầy ủ cho từng cell cơ bản 
▪ Đúng chuẩn template của standard cell 
▪ Chỉ ược dùng cao nhất ến Metal 2 
▪ Đảm bảo ầu ủ các tiêu chí ã nêu ở phần Stick Diagram 
▪ LVS, mạch phải úng logic cho từng cell cơ bản 
▪ DRC, ã sửa hết lỗi DRC cho từng cổng logic cơ bản o Layout Mạch Top (Toàn bộ thiết  kế) 
▪ Mạch top yêu cầu nhỏ nhất có thể (xếp khít, không có khoảng trống giữa 2 cell cạnh 
nhau), cố gắng bố trí theo hình vuông 
▪ Các cell không ược è lên nhau, chỉ ược tiếp xúc bởi layer bbox (id/datatype: 108;0) 
▪ Dùng cao nhất ến Metal 5, càng dùng ít layer metal càng tốt 
▪ Không ược i metal vượt khỏi vùng bbox mà ược hợp bởi bbox của các cel khi i dây  trên mạch top  ▪ Pass LVS  ▪ Pass DRC    Dolphin Technology Inc.  Company Confidential  1      lOMoAR cPSD| 59703641
Bài T ậ p Th ự c Hành VLSI   Đề  Bài     
2. Công Cụ Tham Khảo 
- Chạy mô phỏng: iVerilog, gtkwave  - Chạy tổng hợp: Yosys  - Vẽ Layout: DLayout  3. Đề Bài 
3.1. Đề Bài 01 – Bộ Đếm 3-bit nhị phân dti_bincnt_ckprn 
Thiết kế bộ ếm nhị phân 3-bit dti_bincnt_ckprn với các ầu vào – ra, và chức năng như sau: 
Bảng 1. Mô tả tín hiệu Input – Output của bộ ếm dti_bincnt_ckprn   Tên Tín Hiệu   Độ Rộng   Chiều   Mô Tả   clk  1 
Input Clock, mạch tuần tự hoạt ộng ồng bộ theo sườn dương của clock này  reset_n  1 
Input Reset không ồng bộ, tích cực mức thấp  count_to  3 
Input Giá trị cần ếm, là một số nguyên không dấu  load  1 
Input Nạp giá trị cần ếm  count_en  1  Input Cho phép ếm  done  1 
Output Cờ báo hiệu hoàn thành việc ếm  Yêu cầu chức năng: 
- Mạch ồng bộ hoạt ộng theo sườn dương của clock ầu vào. 
- Đầu ra done ược chốt bằng Flip Flop (Nói cách khác, done ược nối trực tiếp với ầu ra Q hoặc QN  của 1 Flip Flop). 
- Giá trị của bộ ếm, tạm gọi là count, ược nạp mới hoặc thay ổi giá trị tại sườn dương clock theo quy  tắc trong bảng sau:     
Bảng 2. Quy tắc ếm dti_bincnt_ckprn  load   count_en   done   count   1’b1  x  x 
Nạp mới, giá trị nạp ược xác ịnh bởi count_to  1’b0  1’b1  1’b0  Giảm 1 ơn vị  1’b0  1’b1  1’b1  Giữ nguyên giá trị  1’b0  1’b0  x  Giữ nguyên giá trị  Chú ý: x = don’t care       
- Trước khi có load = 1, cờ done giữ giá trị 1’b0. Cờ done bật lên 1’b1 cùng lúc với count = 0 và giữ 
nguyên cho tới lần load tiếp theo.    Dolphin Technology Inc.  Company Confidential  2      
Bài T ậ p Th ự c Hành VLSI   Đề  Bài  
3.2. Đề Bài 02 – Bộ Đếm 3-bit nhị phân dti_bincnt_ckprp 
Thiết kế bộ ếm nhị phân 3-bit dti_bincnt_ckprp với các ầu vào – ra, và chức năng như sau: 
Bảng 3. Mô tả tín hiệu Input – Output của bộ ếm dti_bincnt_ckprp   Tên Tín Hiệu   Độ Rộng   Chiều   Mô Tả   clk  1 
Input Clock, mạch tuần tự hoạt ộng ồng bộ theo sườn dương của clock này  reset  1 
Input Reset không ồng bộ, tích cực mức cao  count_to  3 
Input Giá trị cần ếm, là một số nguyên không dấu  load  1 
Input Nạp giá trị cần ếm  count_en  1  Input Cho phép ếm  done  1 
Output Cờ báo hiệu hoàn thành việc ếm  Yêu cầu chức năng: 
- Mạch ồng bộ hoạt ộng theo sườn dương của clock ầu vào. 
- Đầu ra done ược chốt bằng Flip Flop (Nói cách khác, done ược nối trực tiếp với ầu ra Q hoặc QN  của 1 Flip Flop). 
- Giá trị của bộ ếm, tạm gọi là count, ược nạp mới hoặc thay ổi giá trị tại sườn dương clock theo quy  tắc trong bảng sau: 
Bảng 4. Quy tắc ếm dti_bincnt_ckprp  load   count_en   done   count   1’b1  x  x 
Nạp mới, giá trị nạp ược xác ịnh bởi count_to  1’b0  1’b1  1’b0  Giảm 1 ơn vị  1’b0  1’b1  1’b1  Giữ nguyên giá trị  1’b0  1’b0  x  Giữ nguyên giá trị  Chú ý: x = don’t care       
- Trước khi có load = 1, cờ done giữ giá trị 1’b0. Cờ done bật lên 1’b1 cùng lúc với count = 0 và giữ 
nguyên cho tới lần load tiếp theo. 
3.3. Đề Bài 03 – Bộ Đếm 3-bit nhị phân dti_bincnt_cknrn 
Thiết kế bộ ếm nhị phân 3-bit dti_bincnt_cknrn với các ầu vào – ra, và chức năng như sau: 
Bảng 5. Mô tả tín hiệu Input – Output của bộ ếm dti_bincnt_cknrn   Tên Tín Hiệu   Độ Rộng   Chiều   Mô Tả   clk_n  1 
Input Clock, mạch tuần tự hoạt ộng ồng bộ theo sườn âm của clock này  reset_n  1 
Input Reset không ồng bộ, tích cực mức thấp  count_to  3 
Input Giá trị cần ếm, là một số nguyên không dấu  load  1 
Input Nạp giá trị cần ếm  count_en  1  Input Cho phép ếm  done  1 
Output Cờ báo hiệu hoàn thành việc ếm  Yêu cầu chức năng: 
- Mạch ồng bộ hoạt ộng theo sườn âm của clock ầu vào.    Dolphin Technology Inc.  Company Confidential  3      lOMoAR cPSD| 59703641
Bài T ậ p Th ự c Hành VLSI   Đề  Bài     
- Đầu ra done ược chốt bằng Flip Flop (Nói cách khác, done ược nối trực tiếp với ầu ra Q hoặc QN  của 1 Flip Flop). 
- Giá trị của bộ ếm, tạm gọi là count, ược nạp mới hoặc thay ổi giá trị tại sườn âm clock theo quy tắc  trong bảng sau: 
Bảng 6. Quy tắc ếm dti_bincnt_cknrn  load   count_en   done   count   1’b1  x  x 
Nạp mới, giá trị nạp ược xác ịnh bởi count_to  1’b0  1’b1  1’b0  Giảm 1 ơn vị  1’b0  1’b1  1’b1  Giữ nguyên giá trị  1’b0  1’b0  x  Giữ nguyên giá trị  Chú ý: x = don’t care       
- Trước khi có load = 1, cờ done giữ giá trị 1’b0. Cờ done bật lên 1’b1 cùng lúc với count = 0 và giữ 
nguyên cho tới lần load tiếp theo. 
3.4. Đề Bài 04 – Bộ Đếm 3-bit nhị phân dti_bincnt_cknrp 
Thiết kế bộ ếm nhị phân 3-bit dti_bincnt_cknrp với các ầu vào – ra, và chức năng như sau: 
Bảng 7. Mô tả tín hiệu Input – Output của bộ ếm dti_bincnt_cknrp  Tên Tín Hiệu   Độ Rộng   Chiều   Mô Tả   clk_n  1 
Input Clock, mạch tuần tự hoạt ộng ồng bộ theo sườn âm của clock này  reset  1 
Input Reset không ồng bộ, tích cực mức cao  count_to  3 
Input Giá trị cần ếm, là một số nguyên không dấu  load  1 
Input Nạp giá trị cần ếm  count_en  1  Input Cho phép ếm  done  1 
Output Cờ báo hiệu hoàn thành việc ếm  Yêu cầu chức năng: 
- Mạch ồng bộ hoạt ộng theo sườn âm của clock ầu vào. 
- Đầu ra done ược chốt bằng Flip Flop (Nói cách khác, done ược nối trực tiếp với ầu ra Q hoặc QN  của 1 Flip Flop). 
- Giá trị của bộ ếm, tạm gọi là count, ược nạp mới hoặc thay ổi giá trị tại sườn âm clock theo quy tắc  trong bảng sau: 
Bảng 8. Quy tắc ếm dti_bincnt_cknrp  load   count_en   done   count   1’b1  x  x 
Nạp mới, giá trị nạp ược xác ịnh bởi count_to  1’b0  1’b1  1’b0  Giảm 1 ơn vị  1’b0  1’b1  1’b1  Giữ nguyên giá trị    Dolphin Technology Inc.  Company Confidential  4      
Bài T ậ p Th ự c Hành VLSI   Đề  Bài   1’b0  1’b0  x  Giữ nguyên giá trị  Chú ý: x = don’t care       
- Trước khi có load = 1, cờ done giữ giá trị 1’b0. Cờ done bật lên 1’b1 cùng lúc với count = 0 và giữ 
nguyên cho tới lần load tiếp theo. 
3.5. Đề Bài 05 – Bộ Đếm 4-bit LFSR dti_lfsrcnt_ckprn 
Thiết kế bộ ếm LFSR 4-bit dti_lfsrcnt_ckprn với các ầu vào – ra, và chức năng như sau: Bảng 9. 
Mô tả tín hiệu Input – Output của bộ ếm dti_lfsrcnt_ckprn   Tên Tín Hiệu   Độ Rộng   Chiều   Mô Tả   clk  1 
Input Clock, mạch tuần tự hoạt ộng ồng bộ theo sườn dương của clock này  reset_n  1 
Input Reset không ồng bộ, tích cực mức thấp  count_to  4 
Input Giá trị cần ếm, khác 0 (0 là giá trị cấm)  load  1 
Input Nạp giá trị cần ếm  count_en  1  Input Cho phép ếm  done  1 
Output Cờ báo hiệu hoàn thành việc ếm  Yêu cầu chức năng: 
- Mạch ồng bộ hoạt ộng theo sườn dương của clock ầu vào. 
- Đầu ra done ược chốt bằng Flip Flop (Nói cách khác, done ược nối trực tiếp với ầu ra Q hoặc QN  của 1 Flip Flop). 
- Sử dụng a thức P(x) = x4 + x3 + 1 
- Giá trị của bộ ếm, tạm gọi là count, ược nạp mới hoặc thay ổi giá trị tại sườn dương clock theo quy  tắc trong bảng sau:     
Bảng 10. Quy tắc ếm dti_lfsrcnt_ckprn  load   count_en   done   count   1’b1  x  x 
Nạp mới, giá trị nạp ược xác ịnh bởi count_to  1’b0  1’b1  1’b0 
Chuyển ến trạng thái tiếp theo  1’b0  1’b1  1’b1  Giữ nguyên giá trị  1’b0  1’b0  x  Giữ nguyên giá trị  Chú ý: x = don’t care       
- Trước khi có load = 1, cờ done giữ giá trị 1’b0. Cờ done bật lên 1’b1 cùng lúc với count = 4’b1111 và 
giữ nguyên cho tới lần load tiếp theo.    Dolphin Technology Inc.  Company Confidential  5      lOMoAR cPSD| 59703641
Bài T ậ p Th ự c Hành VLSI   Đề  Bài     
3.6. Đề Bài 06 – Bộ Đếm 4-bit LFSR dti_lfsrcnt_ckprp 
Thiết kế bộ ếm LFSR 4-bit dti_lfsrcnt_ckprp với các ầu vào – ra, và chức năng như sau: Bảng 
11. Mô tả tín hiệu Input – Output của bộ ếm dti_lfsrcnt_ckprp   Tên Tín Hiệu   Độ Rộng   Chiều   Mô Tả   clk  1 
Input Clock, mạch tuần tự hoạt ộng ồng bộ theo sườn dương của clock này  reset  1 
Input Reset không ồng bộ, tích cực mức cao  count_to  4 
Input Giá trị cần ếm, khác 0 (0 là giá trị cấm)  load  1 
Input Nạp giá trị cần ếm  count_en  1  Input Cho phép ếm  done  1 
Output Cờ báo hiệu hoàn thành việc ếm  Yêu cầu chức năng: 
- Mạch ồng bộ hoạt ộng theo sườn dương của clock ầu vào. 
- Đầu ra done ược chốt bằng Flip Flop (Nói cách khác, done ược nối trực tiếp với ầu ra Q hoặc QN  của 1 Flip Flop). 
- Sử dụng a thức P(x) = x4 + x3 + 1 
- Giá trị của bộ ếm, tạm gọi là count, ược nạp mới hoặc thay ổi giá trị tại sườn dương clock theo quy  tắc trong bảng sau: 
Bảng 12. Quy tắc ếm dti_lfsrcnt_ckprp  load   count_en   done   count   1’b1  x  x 
Nạp mới, giá trị nạp ược xác ịnh bởi count_to  1’b0  1’b1  1’b0 
Chuyển ến trạng thái tiếp theo  1’b0  1’b1  1’b1  Giữ nguyên giá trị  1’b0  1’b0  x  Giữ nguyên giá trị  Chú ý: x = don’t care       
- Trước khi có load = 1, cờ done giữ giá trị 1’b0. Cờ done bật lên 1’b1 cùng lúc với count = 4’b1111 và 
giữ nguyên cho tới lần load tiếp theo. 
3.7. Đề Bài 07 – Bộ Đếm 4-bit LFSR dti_lfsrcnt_cknrn 
Thiết kế bộ ếm LFSR 4-bit dti_lfsrcnt_cknrn với các ầu vào – ra, và chức năng như sau: Bảng 
13. Mô tả tín hiệu Input – Output của bộ ếm dti_lfsrcnt_cknrn   Tên Tín Hiệu   Độ Rộng   Chiều   Mô Tả   clk_n  1 
Input Clock, mạch tuần tự hoạt ộng ồng bộ theo sườn âm của clock này  reset_n  1 
Input Reset không ồng bộ, tích cực mức thấp  count_to  4 
Input Giá trị cần ếm, khác 0 (0 là giá trị cấm)  load  1 
Input Nạp giá trị cần ếm  count_en  1  Input Cho phép ếm  done  1 
Output Cờ báo hiệu hoàn thành việc ếm    Dolphin Technology Inc.  Company Confidential  6      
Bài T ậ p Th ự c Hành VLSI   Đề  Bài   Yêu cầu chức năng: 
- Mạch ồng bộ hoạt ộng theo sườn âm của clock ầu vào. 
- Đầu ra done ược chốt bằng Flip Flop (Nói cách khác, done ược nối trực tiếp với ầu ra Q hoặc QN  của 1 Flip Flop). 
- Sử dụng a thức P(x) = x4 + x3 + 1 
- Giá trị của bộ ếm, tạm gọi là count, ược nạp mới hoặc thay ổi giá trị tại sườn âm clock theo quy tắc  trong bảng sau: 
Bảng 14. Quy tắc ếm dti_lfsrcnt_cknrn  load   count_en   done   count   1’b1  x  x 
Nạp mới, giá trị nạp ược xác ịnh bởi count_to  1’b0  1’b1  1’b0 
Chuyển ến trạng thái tiếp theo  1’b0  1’b1  1’b1  Giữ nguyên giá trị  1’b0  1’b0  x  Giữ nguyên giá trị  Chú ý: x = don’t care     
- Trước khi có load = 1, cờ done giữ giá trị 1’b0. Cờ done bật lên 1’b1 cùng lúc với count = 4’b1111 và 
giữ nguyên cho tới lần load tiếp theo. 
3.8. Đề Bài 08 – Bộ Đếm 4-bit LFSR dti_lfsrcnt_cknrp 
Thiết kế bộ ếm LFSR 4-bit dti_lfsrcnt_cknrp với các ầu vào – ra, và chức năng như sau: 
Bảng 15. Mô tả tín hiệu Input – Output của bộ ếm dti_lfsrcnt_cknrp  Tên Tín Hiệu   Độ Rộng   Chiều   Mô Tả   clk_n  1 
Input Clock, mạch tuần tự hoạt ộng ồng bộ theo sườn âm của clock này  reset  1 
Input Reset không ồng bộ, tích cực mức cao  count_to  4 
Input Giá trị cần ếm, khác 0 (0 là giá trị cấm)  load  1 
Input Nạp giá trị cần ếm  count_en  1  Input Cho phép ếm  done  1 
Output Cờ báo hiệu hoàn thành việc ếm  Yêu cầu chức năng: 
- Mạch ồng bộ hoạt ộng theo sườn âm của clock ầu vào. 
- Đầu ra done ược chốt bằng Flip Flop (Nói cách khác, done ược nối trực tiếp với ầu ra Q hoặc QN  của 1 Flip Flop). 
- Sử dụng a thức P(x) = x4 + x3 + 1 
- Giá trị của bộ ếm, tạm gọi là count, ược nạp mới hoặc thay ổi giá trị tại sườn âm clock theo quy tắc  trong bảng sau:    Dolphin Technology Inc.  Company Confidential  7      lOMoAR cPSD| 59703641
Bài T ậ p Th ự c Hành VLSI   Đề  Bài     
Bảng 16. Quy tắc ếm dti_lfsrcnt_cknrp  load   count_en   done   count   1’b1  x  x 
Nạp mới, giá trị nạp ược xác ịnh bởi count_to  1’b0  1’b1  1’b0 
Chuyển ến trạng thái tiếp theo  1’b0  1’b1  1’b1  Giữ nguyên giá trị  1’b0  1’b0  x  Giữ nguyên giá trị  Chú ý: x = don’t care       
- Trước khi có load = 1, cờ done giữ giá trị 1’b0. Cờ done bật lên 1’b1 cùng lúc với count = 4’b1111 và 
giữ nguyên cho tới lần load tiếp theo.    Dolphin Technology Inc.  Company Confidential  8