Đặc biệt là trong lĩnh vực Điện – Điện tử với sự xuất hiện của các vi mạch, các IC tích hợp nhiều chức năng, xử lý các tín hiệu độc lập với kích thước ngày càng nhỏ gọn và tiện lợi hơn..
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC
NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ – VIỄN
THÔNG CHUYÊN NGÀNH: ĐIỆN TỬ MÁY TÍNH – TRUYỀN
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC
NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ – VIỄN
THÔNG CHUYÊN NGÀNH: ĐIỆN TỬ MÁY TÍNH – TRUYỀN
Trang 3{Trang trắng này dùng để dán bản Nhận xét của người hướng dẫn, hoặc thay trang này bằng Nhận xét của người hướng dẫn}
Trang 4{Trang trắng này dùng để dán bản Nhận xét của người phản biện, hoặc thay trang này bằng Nhận xét của người phản biện}
Trang 5TÓM TẮT
Sinh viên thực hiện gồm:
Tóm tắt: Đồ án được chia làm 4 chương gồm
Chương 1: Tổng quan về ASIC và giao thức APB – AMBA
Chương 2: Hệ điều hành Linux và ngôn ngữ Verilog
Chương 3: Thiết kế bộ Timer 8 Bit theo giao thức APB – AMBA
Chương 4: Mô phỏng bộ Timer 8 Bit bằng QUESTASIM trên hệ điều hành Linux
Trang 6{Trang trắng này dùng để dán bản Nhiệm vụ đồ án tốt nghiệp, hoặc thay trang này bằng Nhiệm vụ đồ án tốt nghiệp}
Trang 7LỜI NÓI ĐẦU
Cùng với sự phát triển của xã hội hiện đại những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng ta đã và đang ngày một thay đổi, văn minh và tiến bộ hơn trong mọi lĩnh vực Đặc biệt là trong lĩnh vực Điện – Điện tử với sự xuất hiện của các
vi mạch, các IC tích hợp nhiều chức năng, xử lý các tín hiệu độc lập với kích thước ngày càng nhỏ gọn và tiện lợi hơn
Đối với các vi mạch có các chức năng khác nhau, có thể chọn các chuẩn giao tiếp khác nhau như: chuẩn I2C, AMBA, UART, có các ưu điểm và nhược điểm khác nhau Vi mạch được ứng dụng rộng rãi trong các thiết bị, sản phẩm phục cụ cho nhu cầu sinh hoạt hằng ngày của con người tuy nhiên ngành chế tạo ở nước ta vẫn chưa phát triển mạnh
Nhận thấy tầm quan trọng của nguyên cứu thiết kế, chế tạo vi mạch và ứng dụng rộng rãi của vi mạch cùng với quá trình phát triển Khoa học – Kỹ thuật trong tương lai Nhóm em đã chọn đề tài “Thiết kế IP Timer 8 Bit theo giao thức APB – AMBA” làm đồ án tốt nghiệp nhằm vận dụng kiến thức đã học nghiên cứu nguyên cứu theo hướng này để hiểu biết thêm về quá trình thiết kế vi mạch và ứng dụng của trong tương lai
Trong thời gian nghiên cứu và làm đồ án dựa vào kiến thức đã được đào tạo ở trường, qua một số tài liệu liên quan, cùng với sự giúp đỡ tận tình của cô Ngô Thị Minh Hương nhóm em đã hoàn thành đúng tiến độ đề ra Em xin chân thành cảm ơn cô!
Trang 8CAM ĐOAN
Kính gửi: Hội đồng Bảo vệ Tốt nghiệp khoá 18 Khoa Điện – Điện tử ngành Công nghệ kỹ thuật Điện tử - Viễn thông
Nhóm em gồm:
Hà Văn Hào, sinh viên lớp 18DT2, khoa Điện – Điện tử
Nguyễn Văn Tuấn, sinh viên lớp 18DT1, khoa Điện – Điện tử
Em xin cam đoan rằng đề tài “Thiết kế IP Timer 8 Bit theo giao thức APB – AMBA” được tiến hành một cách minh bạch, công khai Mọi thứ được dựa trên sự cố gắng cũng như sự nỗ lực của bản thân cùng với sự giúp đỡ của cô Ngô Thị Minh Hương
Các số liệu và kết quả nghiên cứu được đưa ra trong đồ án là trung thực và không sao chép hay sử dụng kết quả của bất kỳ đề tài nghiên cứu nào tương tự Nếu như phát hiện rằng có sự sao chép kết quả nghiên cứu đề những đề tài khác bản thân em xin chịu hoàn toàn trách nhiệm
Đã bổ sung, cập nhật theo yêu cầu của Giảng viên phản biện và Hội đồng chấm
Đồ án tốt nghiệp họp ngày 17, 18/6/2022
Sinh viên thực hiện
Trang 9MỤC LỤC
Nhận xét của người hướng dẫn
Nhận xét của người phản biện
Tóm tắt
Nhiệm vụ đồ án
LỜI NÓI ĐẦU i
CAM ĐOAN ii
MỤC LỤC iii
DANH SÁCH CÁC BẢNG, HÌNH VẼ vi
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT viii
MỞ ĐẦU 1
Chương 1: TỔNG QUAN VỀ ASIC VÀ GIAO THỨC APB – AMBA 2
1.1 Giới thiệu về ASIC 2
1.1.1 ASIC là gì 2
1.1.2 Phân loại ASIC 2
1.1.2.1 Phân loại ASIC đặc chế hoàn toàn – Full custom ASIC 2
1.1.2.2 Phân loại ASIC dựa trên các tế bào chuẩn (Standard – Cell – Based ASIC) 2
1.1.2.3 Phân loại ASIC dựa trên mảng cổng logic (Gate – Array – Based ASIC) 2
1.1.2.4 Phân loại ASIC tiền cấu trúc 3
1.1.2.5 Phân loại ASIC dùng thư viện logic và các phần tử thiết kế sẵn 3
1.2 Quy trình thiết kế ASIC 3
1.2.1 Specification 4
1.2.2 RTL Simulation 4
1.2.3 Synthesis: 4
1.2.4 Design For Test (DFT ) 5
1.2.5 Layout 5
1.2.6 STA (Static Timing Analysis) 5
Trang 101.2.7 Equivalence: 5
1.2.8 Gate simulation: 6
1.3 Giao tiếp APB – AMBA 6
1.3.1 Giới thiệu APB 6
1.3.2 Các tín hiệu giao tiếp APB 6
1.3.3 Chế độ Master - Slave APB 7
1.3.4 Đặc trung cơ bản của APB – AMBA 7
1.3.4.2 Quá trình ghi dữ liệu 8
1.3.4.3 Quá trình đọc dữ liệu 9
Chương 2: HỆ ĐIỀU HÀNH LINUX VÀ NGÔN NGỮ VERILOG 10
2.1 Ngôn ngữ Verilog 10
2.1.1 Verilog là gì? 10
2.1.2 Các mức mô tả của Verilog 10
2.1.2.1 Behavioral level 10
2.1.2.2 Register - Transfer Level 10
2.1.2.3 Gate Level 10
2.2 Phần mềm giả lập Linux MobaXterm và mô phỏng Questa Sim 10
2.2.1 Giới thiệu phần mềm MobaXterm 11
2.2.1.1 Khái niệm: 11
2.2.1.2 Tính năng : 11
2.2.2 Một số thao tác cơ bản trên Linux 11
2.2.3 Giới thiệu phầm mềm Questa Sim: 13
2.2.3.1 Khái quát: 13
Chương 3: THIẾT KẾ BỘ TIMER 8 BIT THEO GIAO THỨC APB – AMBA 16
3.1 Chức năng 16
3.2 Tính năng: 16
3.3 Sơ đồ khối chung 16
Trang 113.4 Bảng thiết kế Interface 16
3.5 Sơ đồ khối chi tiết và interface table cho mỗi khối 17
3.5.1 Khối được tạo và chọn Clk_in 17
3.5.2 Khối đếm 18
3.5.3 Khối phát hiện tràn / tràn dưới 19
3.6 Bảng thanh ghi 19
3.7 Timing chart 21
Chương 4: MÔ PHỎNG BỘ TIMBER 8 BIT BẰNG QUETASIM TRÊN HỆ ĐIỀU HÀNH LINUX 23
4.1 Checklist Timer 8 Bit 23
4.2 Mô phỏng các Register: 26
4.2.1 Tsr write read test: 26
4.2.2 reg_write_read_test: 31
4.3 Mô phỏng các Operation: 37
4.3.1 Counter up Clk2 test 37
4.3.2 Counter up Clk4 test: 39
4.3.3 Counter up Clk8 test: 41
4.3.4 Counter up Clk16 test: 43
4.3.5 Counter down Clk16 test: 45
4.3.6 Counter down Clk8 test: 47
4.3.7 Counter down Clk4 test 49
4.3.8 Counter down Clk2 test: 51
KẾT LUẬN 53
TÀI LIỆU THAM KHẢO 54
PHỤ LỤC 1
Trang 12
DANH SÁCH CÁC BẢNG, HÌNH VẼ
HÌNH VẼ
Hình 1.1: Quy trình thiết kế 4
Hình 1.2: Minh họa về kết nối của APB bus 7
Hình 1.3: Minh họa một kết nối bus hệ thống trong vi điều khiển 7
Hình 1.4: Các trạng thái hoạt động của bus APB 8
Hình 1.5: Giản đồ thời gian quá trình ghi dữ liệu 9
Hình 1.6: Giản đồ thời gian quá trình đọc dữ liệu 9
Hình 2.1: Trình tự mô phỏng Questa Sim: 14
Hình 3.1: Sơ đồ khối chung 16
Hình 3.2: Khối tạo và chọn clk_in 17
Hình 3.3: khối đếm 18
Hình 3.4: Khối phát hiện tràn 19
Hình 3.5: Counter up 21
Hình 3.6: Counter down 21
Hình 3.7: Overflow 21
Hình 3.8: Underflow 22
BẢNG Bảng 2.1: Thao tác trên Linux 11
Bảng 3.1: Bảng thiết kế Interface 17
Bảng 3.2: Interface cho Khối tạo và chọn clk_in 18
Bảng 3.3: Interface cho khối đếm 18
Bảng 3.4: Bảng interface cho khối phát hiện tràn 19
Bảng 3.5: Bảng TDR 19
Trang 13Bảng 3.7: Bảng TSR 20
Bảng 4.1: Checklist Timer 8 Bit 23
Trang 14DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Read Only Memory
Bộ nhớ chỉ đọc lập trình có thể xóa bằng điện
phần tử logic lập trình
Trang 15SDC Synopsys Design Constraints Các ràng buộc về thiết kế
chuẩn
đồng bộ
thời gian
Hardware Description Language
Ngôn ngữ mô tả phần cứng tích hợp cho vi mạch tốc độ cao
Trang 16
Phương pháp nghiên cứu: Tìm hiểu lý thuyết từ các tài liệu liên quan, tổng hợp, sau
đó viết chương trình trên MobaXterm và mô phỏng trên Questa Sim Cuối cùng, phân tích kết quả mô phỏng
Cấu trúc đồ án:
Phần mở đầu,
Chương 1: Tổng quan về ASIC và giao thức APB – AMBA
Chương 2: Hệ điều hành Linux và ngôn ngữ Verilog
Chương 3: Thiết kế bộ Timer 8 Bit theo giao thức APB – AMBA
Chương 4: Mô phỏng bộ Timer 8 Bit bằng QUESTASIM trên hệ điều hành Linux
Trang 17Chương 1: TỔNG QUAN VỀ ASIC VÀ GIAO THỨC APB – AMBA
1.1 Giới thiệu về ASIC
dây chuyền công nghiệp, v.v
1.1.2 Phân loại ASIC [7]
Phân loại theo phương pháp thiết kế nhằm làm sáng tỏ quá trình phát triển của công nghệ ASIC Cụ thể được phân loại như sau:
1.1.2.1 Phân loại ASIC đặc chế hoàn toàn – Full custom ASIC
Một IC đặc chế (Full - Custom IC) là một vi mạch có các tế bào logic (logic cell)
và các lớp mặt nạ được xây dựng (đặc chế hóa) theo yêu cầu của khách hàng Những
IC đặc chế nhắm tới các ứng dụng riêng biệt và do đó có thể gọi là ASIC đặc chế Công nghệ sản xuất ASIC đặc chế hoàn toàn bao hàm toàn bộ các quá trình để sản xuất IC, kể cả giai đoạn in khắc bán dẫn quang học (Photo lithographic)
Ưu điểm của sản phẩm là tính tối ưu về diện tích, tăng hiệu suất làm việc của IC, khả năng tích hợp tốt hơn với các thiết bị tương tự hay các phần tử thiết kế sẵn khác Nhược điểm là quy trình thiết kế tốn nhiều thời gian, đòi hỏi đầu tư cơ sở vật chất tốn kém
1.1.2.2 Phân loại ASIC dựa trên các tế bào chuẩn (Standard – Cell – Based ASIC)
Có mặt nạ là một thiết kế tùy chỉnh, nhưng silicon được tạo thành từ các thành phần thư viện Điều này mang lại mức độ linh hoạt cao, miễn là các chức năng tiêu chuẩn có thể đáp ứng các yêu cầu
Thư viện phần tử logic chuẩn (Standard cell library) là thư viện cung cấp tất cả các phần tử cơ bản tạo thành vi mạch như logic AND, OR, XOR, v.v., kèm theo các thông
số vật lý như thời gian trễ, điện cảm, điện dung, v.v Được định dạng chuẩn cho phép các công cụ thiết kế có thể đọc, sau đó sẽ biên dịch bản thiết kế ra dạng mô tả chi tiết
sử dụng các phần tử của thư viện chuẩn
1.1.2.3 Phân loại ASIC dựa trên mảng cổng logic (Gate – Array – Based ASIC)
Trang 18Để thiết kế IC còn có một phương pháp khác là sử dụng mảng logic (GSate array)
“gate” dùng như một đơn vị để đo khả năng chứa các phần tử logic của vi mạch bán dẫn
Ưu điểm của ASIC thiết kế có chi phí sản xuất rẻ do vi mạch sản xuất hàng loạt và
có cấu trúc tương tự như nhau Tính linh động của thiết kế phụ thuộc vào loại mảng logic được sử dụng Ví dụ vi mạch lập trình dùng PROM chỉ được lập trình một lần suy nhất trong khi với vi mạch dùng công nghệ EEROM hay FPGA thì có thể lập trình lại, FPGA còn cho phép người thiết kế lập trình lại mà không cần công cụ đặc biệt nào
Nhược điểm không có được sự tối ưu như ASIC trên cơ sở thư viện phần tử logic hay ASIC đặc chế hoàn toàn, yêu cầu phần mềm thiết kế phức tạp hơn
1.1.2.4 Phân loại ASIC tiền cấu trúc
ASIC sử dụng những cấu trúc định sẵn Tùy vào từng loại ứng dụng mà cấu trúc định sẵn này sẽ khác nhau
Với mảng logic người thiết kế có thể tạo vi mạch để thực hiện bất kỳ hàm logic nào trong tài nguyên cho phép, còn với vi cấu trúc định sẵn chỉ giải quyết một lớp bài toán hẹp hơn Đẩy nhanh quá trình sản xuất, giảm giá thành và trong một số trường hợp thì tối ưu hóa hơn so với dạng ASIC dùng mảng logic
Có thể xếp ASIC tiền cấu trúc nằm giữa hai loại ASIC trên cơ sở thư viện phần tử logic chuẩn và ASIC dựa trên mảng logic
1.1.2.5 Phân loại ASIC dùng thư viện logic và các phần tử thiết kế sẵn
Các phần thiết kế có thể tồn tại ở dạng “mềm”, chỉ có mã HDL mức cao, hay ở dạng “cứng” Toàn bộ sơ đồ thiết kế chi tiết trên một thư viện cụ thể và sẵn sàng đưa trực tiếp vào quá trình sản xuất bán dẫn Với phần cứng cũng xuất hiện cộng đồng mở,
là nơi xây dựng và phổ biến những IP - core miễn phí
Ví dụ: IP - cores nhân của bộ vi xử lý, USB module, Ethernet, RAM, ROM, v.v
1.2 Quy trình thiết kế ASIC [6]
Trang 19Hình 1.1: Quy trình thiết kế
1.2.1 Specification
Đây là các phần mô tả và yêu cầu về chức năng logic cũng như các yêu cầu về physical, timing dành cho CHIP
Mục đích của việc này là để xác nhận lại với phía khách hàng các yêu cầu một cách
cụ thể trước khi bắt tay vào thiết kế
Ở bước này có thể thiết kế cả mô tả cho testbench và hệ thống mô phỏng, trong đó, các quy định về dữ liệu, waveform chuẩn (đầu ra mong muốn của các test pattern) Sau khi có các yêu cầu về Logic, kỹ sư bắt đầu vào thực hiện việc coding
Đầu ra của công đoạn này là các file code Nó sẽ là đầu vào của 2 bước tiếp theo là Simulation và Synthesis
1.2.3 Synthesis:
Đây là bước chuyển design ở dạng code, sang dạng cổng logic Dựa vào các quy ước về syntax của RTL code và các loại cell có trong library mà Tool sẽ map RTL code sang dang Gate Bước này bắt đầu sử dụng đến các thư viện cell (technology library) Kết quả của bước Synthesis này là tiền đề cho các bước tiếp theo trong cả quy trình thiết kế Trong đó, đối tượng output chính là Gate Level Netlist
Trang 20Để thực hiện được bước này, cần RTL code, thư viện cell và một số yêu cầu về tần
số, timing delay … Các yêu cầu này được mô tả trong một file gọi là SDC (Synopsys Design Constraints)
1.2.4 Design For Test (DFT )
Việc kiểm tra này thường được thực hiện bởi các máy Tester Đầu vào của các máy test này là các mẫu thử, được tạo ra bởi các kỹ sư DFT
Sau khi Synthesis xong sẽ có được Gate Level Netlist của design Kỹ sư DFT sẽ tiến hành chèn thêm các mạch phục vụ cho việc test bên trên Đồng thời, dựa vào đặc điểm và cấu trúc của design, kỹ sư DFT sẽ tạo ra các mẫu thử thông qua việc vận hành các Tool đặc thù cho DFT Các mẫu thử này phải được kiểm tra trên Gate Level Design trước, sau đó mới được mang đi test trên CHIP thật tại nhà máy
1.2.5 Layout
Layout là bước tiếp theo, sử dụng Netlist sau khi chèn DFT circuit Tại bước này,
có một quy trình riêng khá phức tạp cho công việc của các kỹ sư Layout Họ sẽ phải sắp đặt các cell có trong Netlist sao cho thỏa mãn các yên cầu về sự sắp xếp này từ phía khách hàng Ví dụ như, diện tích của CHIP, vị trí các IO, vị trí các memory, macro v.v Tiếp theo họ sẽ phải giải quyết vấn đề quan trọng, đó là Timing, để đảm bảo các yêu cầu về tốc độ, các quy định, ràng buộc từ phía khách hàng và từ nhà máy sản xuất vv
Ngoài ra, kỹ sư Layout còn phải làm việc về các vấn đề liên quan đến physical như
áp, dòng, các lỗi DRC (Design Rule Check)
Sản phẩm cuối cùng của bước này là file GDSII File này được giao cho phía nhà máy
để người ta tiến hành các bước tiếp theo để sản xuất ra CHIP trên wafer
1.2.6 STA (Static Timing Analysis)
Đây là bước có liên quan mật thiết với bước số 5 STA sử dụng dữ liệu (Netlist + SDF hoặc Netlist + SPEF) từ Layout để tính toán Timing dựa vào timing constraint (SDC) Bước này cần đảm bảo tất cả các Constraint (Ràng buộc) đều thoả mãn (MET)
1.2.7 Equivalence:
Bước này có mục đích để kiểm tra tính tương đồng về logic giữa 2 designs nào đó
Ở bước này, kết quả có thể là Passed hoặc Failed Nếu kết quả Failed, sẽ không làm bước sau Do đó, kỹ sư có trách nhiệm tìm hiểu vấn đề và phát hiện ra nguyên nhân và
đề xuất cách khắc phục
Trang 21Có thể so sánh giữa RTL với Netlist, Netlist với Netlist Trong đó, Netlist có thể là Netlist ở những bước khác nhau trong quy trình thiết kế Thông thường, Netlist được chia theo phase như:
- Pre - DFT Netlist: Netlist sau khi synthesis mà chưa được chèn mạch DFT
- Post - DFT Netlist: Netlist sau khi đã được chèn mạch DFT
- Post - CTS: Netlist post - DFT được làm qua bước CTS (Clock Tree Synthesis)
- Post - Route: Netlist sau khi làm Routing
Cách gọi này có thể thay đổi tùy theo quy định của từng công ty, tập đoàn
1.2.8 Gate simulation:
Phần này ý nghĩa tương tự như bước số 3 Đối tượng đầu vào của Simulation thay
vì RTL code thì là Netlist
Phần Gate Simulation được chia thành 2 loại:
- No Delay Simulation: Chạy simulation cho Gate Level mà không bao gồm thông tin delay của Cell và Net
- Back - Annotation Simulation: Chạy simulation cho Gate Level có bao gồm cả thông tin delay của Cell và Net Thông tin Delay đó được lấy từ SDF file của bước Layout
Phần test pattern của bước này sẽ môi trường mô phỏng sẽ có sự khác nhau do những đặc tính khác nhau của RTL code và Gate Level Netlist
1.3 Giao tiếp APB – AMBA
1.3.1 Giới thiệu APB [1]
Giao tiếp APB (Advanced Peripheral Bus) là một trong bộ giao tiếp AMBA (Advanced Microcontroller Bus Architecture) AMBA là một cấu trúc bus hệ thống sử dụng trong các vi điều khiển được phát triển bởi ARM AMBA có nhiều cấu trúc bus khác nhau như AXI, AHB, ASB, APB Trong đó, APB là bus dùng để giao tiếp với
các ngoại vi không đòi hỏi tốc độ xử lý nhanh như UART, SPI, I2C,
1.3.2 Các tín hiệu giao tiếp APB
PRDATA: dữ liệu đọc APB có giao tiếp đơn giản gồm các tín hiệu như sau:
PCLK: Tín hiệu clock đồng bộ hoạt động theo cạnh lên
PADDR: địa chỉ thanh ghi được truy xuất
PWRITE: tín hiệu cho phép ghi
PSEL: tín hiệu cho phép
PENABLE: tín hiệu báo pha ENABLE của một truy xuất đọc hoặc ghi
PWDATA: dữ liệu ghi
Trang 221.3.3 Chế độ Master - Slave APB [5]
Master APB: Thành phần lái các tín hiệu điều khiển của bus APB Master APB
thường là một bus khác có tốc độ cao hơn trong hệ thống bus, ví dụ như AXI, AHB,
… nó cũng có thể là một Master đầu cuối có giao tiếp trực tiếp đến bus APB
Slave APB: Thành phần nhận các tín hiệu điều khiển của bus APB Bộ điều khiển
EEPROM trong bài này là một slave APB
Hình 1.2: Minh họa về kết nối của APB bus Hình minh họa sau đây là một ví dụ về kết nối bus hệ thống Trong đó, master APB
là DMA-230 và bus AHB
Hình 1.3: Minh họa một kết nối bus hệ thống trong vi điều khiển
1.3.4 Đặc trung cơ bản của APB – AMBA [5]
Hoạt động của giao tiếp APB đơn giản gồm 3 pha (trạng thái):
IDLE: Khi PSEL = 0 Lúc này, PENABLE cũng phải bằng “0” và slave APB
không quan tâm đến giá trị các tín hiệu điều khiển còn lại trên bus như PWRITE, PWDATA hay PADDR
Trang 23SETUP: khi PSEL = 1 và PENABLE = 0 Lúc này, các tín hiệu điều khiển trên bus
phải có giá trị hợp lệ Các tín hiệu điều khiển bao gồm PADDR, PWRITE và PWDATA nếu là một truy cập “ghi”
ENABLE: khi PSEL = 1 và PENABLE = 1 Lúc này, slave APB phải nhận xong
các giá điều khiển và phải lái PRDATA đến giá trị hợp lệ nếu đó là một truy cập “đọc”
Chú ý, mỗi truy cập “đọc” hoặc “ghi” từ master APB đến Slave APB phải qua 2
bước là SETUP và ENABLE Sau bước ENABLE nếu không có truy cập nào khác thì trạng thái truy cập sẽ về IDLE, nếu Master APB tiếp tục có truy cập tiếp theo thì có thể lái trực tiếp qua trạng thái SETUP
Hình 1.4: Các trạng thái hoạt động của bus APB
1.3.4.1 Quá trình ghi dữ liệu
Trang 24Hình 1.5: Giản đồ thời gian quá trình ghi dữ liệu
Quá trình ghi dữ liệu được bắt đầu với các tín hiệu chọn, tín hiệu ghi, dữ liệu ghi và tín hiệu địa chỉ được thay đổi sau sườn lên của xung clock Chu kỳ clock đầu tiên của quá trình ghi dữ liệu được gọi là chu kỳ SETUP Tại sườn lên clock kế tiếp sau đó, PENABLE được tích cực mức 1, chỉ ra rằng chu kỳ ENABLE đang diễn ra Quá trình ghi được hoàn thành cuối chu kỳ này
1.3.4.2 Quá trình đọc dữ liệu
Hình 1.6: Giản đồ thời gian quá trình đọc dữ liệu
Hình trình bày timing của các tín hiệu dò, tín hiệu chọn, địa chỉ, ghi cũng tương tự như quá trình ghi dữ liệu Trong trường hợp đọc dữ liệu, Slave phải cung cấp dữ liệu suốt chu kỳ ENABLE Dữ liệu được lấy mẫu tại sườn lên của xung clock cuối chu kỳ ENABLE
1.4 Kết luận chương
Chương này đã tìm hiểu cơ sở lý thuyết và quy trình thiết kế ASIC, giới thiệu về APB – AMBA và các đặc trưng cơ bản của APB
Trang 25Chương 2: HỆ ĐIỀU HÀNH LINUX VÀ NGÔN NGỮ VERILOG
2.1 Giới thiệu chương
Trong chương này sẽ nói về ngôn ngữ Verilog, phần mềm MobaXTerm và phần mềm mô phỏng Questa Sim
2.2.2.2 Register - Transfer Level
Các thiết kế sử dụng Mức truyền thanh ghi xác định các đặc tính của mạch bằng các hoạt động và việc truyền dữ liệu giữa các thanh ghi Một đồng hồ rõ ràng được sử dụng Thiết kế RTL chứa các giới hạn thời gian chính xác: Các hoạt động được lên lịch để xảy ra vào những thời điểm nhất định Định nghĩa mã RTL hiện đại là “Bất kỳ
mã nào có thể tổng hợp được gọi là mã RTL”
2.2.2.3 Gate Level
Trong mức logic, các đặc tính của hệ thống được mô tả bằng các liên kết logic và các thuộc tính thời gian của chúng Tất cả các tín hiệu đều là tín hiệu rời rạc Chúng chỉ có thể có các giá trị logic xác định (`0‘,`1’,`X‘,`Z`) Các hoạt động có thể sử dụng
là các nguyên thủy logic được xác định trước (cổng AND, OR, NOT, v.v.) Sử dụng
mô hình mức cổng có thể không phải là một ý tưởng hay cho bất kỳ mức thiết kế logic nào Mã cấp cổng được tạo bởi các công cụ như công cụ tổng hợp và danh sách mạng này được sử dụng để mô phỏng cấp cổng và cho chương trình phụ trợ
2.3 Phần mềm giả lập Linux MobaXterm và mô phỏng Questa Sim
Trang 262.3.1 Giới thiệu phần mềm MobaXterm [4]
2.3.1.1 Khái niệm:
MobaXTerm là giải pháp phần mềm MobaXTerm Reviews với chức năng và chi phí phù hợp cho các doanh nghiệp từ nhỏ và vừa (SMEs) tới các doanh nghiệp lớn Phần mềm MobaXTerm được đánh giá cao bởi cả người dùng lẫn chuyên gia trong lĩnh vực Remote Desktop Software
• Kết nối một server vô nhiều giao thức khác nhau
• Miễn phí hoàn toàn
• Hỗ trợ lưu session, không cần gõ lại mật khẩu mà chỉ cần nhập username là
nó tự tìm session phù hợp
• Remote vào máy tính khác, giống như Team viewer
• Tự động truy cập vào thư mục trên Sftp nơi SSH đang thực thi
• Hỗ trợ quay lại Macro, ví dụ như nếu bạn lười gõ mấy command để cài ứng dụng gì đó thì có thể lưu vào Macro và lần sau muốn dùng chỉ cần ấn 1 cái
• Tích hợp nhiều công cụ nhỏ như Editor, máy tính và kể cả game giải trí trong lúc chờ đợi làm việc nữa
• Và nhiều tính năng linh ta linh tinh khác, nó khá rộng lớn
2.3.2 Một số thao tác cơ bản trên Linux
Bảng 2.1: Thao tác trên Linux
cat a.txt/sed’a/duong/nam/’>duong.txt
Tìm kiếm chuỗi “duong” trong file a.txt thay thế “duong” thành “nam” và rồi lưu thanh file mới tên là duong.txt
đứng
Trang 27cd- Trở lại thư mục vừa đứng
mục
Trang 28Ls List, giống như dir của windows
Trang 29Questa SIM hỗ trợ biên dịch các thiết kế viết bằng Verilog HDL, VHDL và System
C và hỗ trợ mô phỏng các đối tượng viết bằng Verilog HDL, VHDL, System C, System Verilog, PSL, UPF (Unified Power Format)
Việc chạy mô phỏng với Questa SIM có thể thực hiện bằng giao diện phần mềm (GUI – Graphical User Interface), bằng chế độ lệnh (Command-line) hoặc bằng chế độ batch
• GUI: Chế độ sử dụng giao diện phần mềm để thực thi mô phỏng bằng các nút, menu tùy chọn hoặc bằng cách lệnh trong cửa sổ transcript mà giao diện hỗ trợ
• Command - line: Dùng lệnh để chạy mô phỏng bằng cửa sổ lệnh (Command prompt) của hệ điều hành Questa Sim sẽ bắt đầu thực thi với các biến được đặc tả trong file modelsim.ini, một file được trình mô phỏng tự động tạo ra, hoặc một file do tùy chọn do người dùng tạo ra
• Batch: Dùng lệnh để chạy mô phỏng bằng cửa sổ lệnh của hệ điều hành với các biến được nhập trực tiếp từ ngõ vào chuẩn (bàn phím) hoặc từ file; và xuất ra ngõ ra chuẩn (màn hình) hoặc file
Hình 2.1: Trình tự mô phỏng Questa Sim:
1 Thu thập các file đầu vào (Verilog, VHDL, System C) và ánh xạ các thư viện Bước này tự động tạo ra file modelsim.ini
2 Phân tích kiểm tra code và biên dịch
Trang 303 Tối ưu và tạo cơ sở dữ liệu đã biên dịch
Trang 31Chương 3: THIẾT KẾ BỘ TIMER 8 BIT THEO GIAO THỨC APB –
• Đếm từ một giá trị ban đầu được tải thủ công
• Detect overflow and underflow
3.3 Sơ đồ khối chung
Hình 3.1: Sơ đồ khối chung
3.4 Bảng thiết kế Interface
Trang 32Bảng 3.1: Bảng thiết kế Interface
PORT
bit
phải truyền dữ liệu
điểm bắt đầu chuyển
W thực hiện hành động Đọc và ngược lại
Giao thức APB, cao khi quá trình chuyển giao có thể hoàn tất quá trình chuyển giao vào kỳ tiếp theo
3.5 Sơ đồ khối chi tiết và interface table cho mỗi khối
3.5.1 Khối được tạo và chọn Clk_in
Trang 33Bảng 3.2: Interface cho Khối tạo và chọn clk in
bộ đếm
Trang 343.5.3 Khối phát hiện tràn / tràn dưới
Hình 3.4: Khối phát hiện tràn
Bảng 3.4: Bảng interface cho khối phát hiện tràn
của bộ đếm
Trang 35hoạt động ở mức cao 1: load data to CNT (tải dữ liệu vào CNT) 0: normal operation (hoạt động bình thường)
1: counter up 0: counter down
Bảng 3.7: Bảng TSR
Trang 363.7 Timing chart
Hình 3.5: Counter up
Hình 3.6: Counter down
Hình 3.7: Overflow
Trang 38Chương 4: MÔ PHỎNG BỘ TIMBER 8 BIT BẰNG QUETASIM TRÊN
HỆ ĐIỀU HÀNH LINUX
4.1 Checklist Timer 8 Bit
Bảng 4.1: Checklist Timer 8 Bit
Control signal to enable/disable the counter
Confirm R/W normally
Control signal to control count up or count down Confirm R/W normally
Control signal to decide which clock to use for the counter
Bit indicates whether the counter is
overflow or not
Trang 39and can write 0 only
2 Wait 256 cycle clk_in (512 cycle pclk)
3 Read form TSR and confirm read value TSR
is 8'h01
4 Write value 8'h00 to TSR
5 Read value form TSR and confirm read value TSR is 8'h00
count_up_clk2_test.v
clk4
1 Write value 8'h31 to TCR to star count up with clk_in = clk4
2 Wait 256 cycle clk_in (1024 cycle pclk)
3 Read form TSR and confirm read value TSR
is 8'h01
4 Write value 8'h00 to TSR
5 Read value form TSR and confirm read value TSR is 8'h00
count_up_clk4_test.v
clk8
1 Write value 8'h32 to TCR to star count up with clk_in = clk8
2 Wait 256 cycle clk_in (2048 cycle pclk)
3 Read form TSR and confirm read value TSR
is 8'h01
4 Write value 8'h00 to TSR
5 Read value form TSR and confirm read value TSR is 8'h00
count_up_clk8_test.v
Trang 402.1.4 Count Up with
clk16
1 Write value 8'h33 to TCR to star count up with clk_in = clk16
2 Wait 256 cycle clk_in (4096 cycle pclk)
3 Read form TSR and confirm read value TSR
is 8'h01
4 Write value 8'h00 to TSR
5 Read value form TSR and confirm read value TSR is 8'h00
2 Wait 256 cycle clk_in (512 cycle pclk)
3 Read form TSR and confirm read value TSR
is 8'h02
4 Write value 8'h00 to TSR
5 Read value form TSR and confirm read value TSR is 8'h00
count_down_clk2_test.v
clk4
1 Write value 8'h11 to TCR to star count down with clk_in = clk4
2 Wait 256 cycle clk_in (1024 cycle pclk)
3 Read form TSR and confirm read value TSR
is 8'h02
4 Write value 8'h00 to TSR
5 Read value form TSR and confirm read value TSR is 8'h00
count_down_clk4_test.v