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

nghiên cứu thiết kế các lõi ip điều khiển giao tiếp bus i2c

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 (5.85 MB, 270 trang )



I

TÓM TẮT NỘI DUNG NGHIÊN CỨU

I2C là một chuẩn giao tiếp nối tiếp có kết nối phần cứng khá đơn giản( chỉ gồm 2
đường tín hiệu SDA ( Serial Data) và SCL (Serial Clock)), và tốc độ trao đổi dữ liệu
liệu lớn lên đến cả Mbps. Đây là chuẩn được tích hợp trong hầu hết các dòng vi xử lí
phổ biến hiện nay. Vì vậy, với đề tài thiết kế lõi IP I2C_controller sẽ bổ sung thêm IP
trên thị trường IP thế giới đồng thời sẽ xây dựng một tập hợp thư viện lõi IP cho Việt
Nam. Hướng đến hoàn thiện dòng vi xử lý 8-bit và 32-bit của Việt Nam do ICDREC
thiết kế. Đồng thời với những sản phẩm này với các tính năng tương tự với những sản
phẩm thương mại hiện có trên thế giới, ICDREC sẽ đưa lên sàn giao dịch IP cụ thể là
ChipEstimate và Design and Reuse.
Qua đề tài này, ICDREC tiếp tục nâng cao chất lượng đội ngũ nghiên cứu và thiết kế vi
mạch để từ đó có thể tiến đến việc nâng cao khả năng nghiên cứu và thiết kế hướng đến
rút ngắn khoảng cách công nghệ với thế giới.
Với mục tiêu trên, ICDREC đã thiết kế thành công 2 lõi IP I2C_controller:
+ Lõi IP chuyển đổi giao tiếp từ APB sang I2C (dạng lõi IP mềm và lõi IP cứng)
+ Lõi IP I2C tương thích 8584 của NXP. Đây là bộ điều khiển giao tiếp truyền
nối tiếp theo chuẩn giao tiếp bus I2C nhưng có thể đồng bộ với chuẩn giao tiếp song
song của Intel và Motorola.
Tuy nhiên, để hoàn thiện lõi IP này chúng ta cần phải thêm các tính năng tự xử lý các
“lệnh” cơ bản để giảm bớt hoạt động cho vi xử lý khi kết nối đến bộ điều khiển. Cần
cấu hình cho IP có thể hỗ trợ những chế độ như: chỉ hỗ trợ chế độ slave, chỉ hỗ trợ chế
độ master, hoặc hỗ trợ cả hai tương ứng với nhu cầu của hệ thống SoC hay vi xử lí giúp
giảm tài nguyên cũng như tăng tần số hoạt động của hệ thống SoC. Cần phát triển thêm
những tín hiệu bắt tay với DMA (Direct Memory Access) để ứng dụng những hệ thống
giao tiếp nhanh.



II

SUMMARY OF RESEARCH CONTENT

I²C (Inter-Integrated Circuit) perform peer-to-peer serial communication invented by
Philips. It uses only two bidirectional open-drain lines, Serial Data Line (SDA) and
Serial Clock (SCL). So the I2C_controller IP core is designed will provide for IP
market. And its will build a set of IP core libraries to Vietnam. It will become
peripheral to the 8 bit and 32 bit processor which was designed by ICDREC.
With the above objectives, ICDREC has successfully designed two IP cores I2C
controller:
+ IP I2C controller compliant APB bus (include soft IP cores and hard IP cores).
+ IP I2C controller compliant 8584 of NXP.
However, to complete the IP core, we configurate these IP can support the regimes
such as: supporting only slave mode, only support master mode, or support both
correspond the SoC. It will reduce resources and increased operating frequency of the
SoC. We need to develop further the handshake signals with DMA controller (Direct
Memory Access) to applications faster communication systems.


III

MỤC LỤC

TÓM TẮT NỘI DUNG NGHIÊN CỨU I
SUMMARY OF RESEARCH CONTENT II
MỤC LỤC III
Mục lục hình vẽ XIII
Mục lục bảng XVIII

CHƢƠNG 1. MỞ ĐẦU 1
1.1. Thông tin về đề tài 1
1.1.1. Tên đề tài/Dự án 1
1.1.2. Tổ chức chủ trì thực hiện đề tài/dự án 1
1.1.3. Chủ nhiệm đề tài/dự án 1
1.1.4. Thời gian thực hiện 1
1.1.5. Tổng kinh phí đề tài: 1
1.2. Mục tiêu đề tài 1
1.3. Nội dung nghiên cứu 2
1.4. Tiến độ thực hiện và hoàn thành công việc: 2
CHƢƠNG 2. TỔNG QUAN TÀI LIỆU 5
2.1. Phƣơng pháp nghiên cứu, cách tiếp cận vấn đề: 5
2.1.1. Đối với lõi IP chuyển đổi từ APB sang I2C : 5
2.1.2. Đối với lõi IP giao tiếp bus I2C tương thích với 8584: 5
2.1.3. Quy Trình Thực Hiện Đề Tài: 6
2.2. Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài: 7
2.2.1. Tình hình nghiên cứu ngoài nước: 7
2.2.2. Tình hình nghiên cứu ngoài nước: 8
2.2.2.1. Sơ lược về bức tranh nền công nghiệp bán dẫn trong nước: 8


IV

2.2.2.2. Một số đề tài liên quan: 9
2.3. Tính cấp thiết của đề tài: 10
2.3.1. Quan điểm công nghệ 10
2.3.2. Quan điểm thương mại: 10
2.4. Ý nghĩa và tính mới về khoa học và thực tiễn: 12
CHƢƠNG 3. NGHIÊN CứU VÀ THIếT Kế LÕI IP MềM CHUYểN ĐổI Từ
APB SANG I2C: 13

3.1. Giới thiệu: 13
3.1.1. Mô tả tính năng của IP: 13
3.1.2. Sơ đồ chân: 14
3.1.3. Sơ đồ khối: 15
3.2. Phân tích các khối: 16
3.2.1. APB_interface 16
3.2.1.1. Tính năng: 16
3.2.1.2. Sơ đồ chân: 24
3.2.1.3. Mô tả chân: 25
3.2.1.4. Giản đồ định thời: 28
3.2.2. Khối Control unit: 29
3.2.2.1. Tính năng: 29
3.2.2.2. Sơ đồ chân: 29
3.2.2.3. Mô tả chân: 30
3.2.2.4. Mô tả tính năng: 32
3.2.3. FIFO: 34
3.2.3.1. Tính năng: 34
3.2.3.2. Sơ đồ khối: 35
3.2.4. I2C_Interface: 36
3.2.4.1. Tính Năng: 36


V

3.2.4.2. Sơ đồ chân: 36
3.2.4.3. Mô tả chân: 37
3.2.4.4. Sơ đồ các mạch logic: 39
3.2.4.5. Giản đồ timing hoạt động của khối: 42
3.2.5. Khối Compare: 45
3.2.5.1. Sơ đồ chân khối compare: 45

3.2.5.2. Bảng mô tả chân khối compare: 46
3.2.5.3. Hoạt động chi tiết của khối compare: 46
3.2.5.4. Sơ đồ khối chi tiết của khối compare: 48
3.2.6. Clock_gen: 49
3.2.6.1. Sơ đồ chân: 49
3.2.6.1.1 Mô tả chân: 49
3.2.6.2. Tính năng: 50
3.2.7. Khối Interrupt: 50
3.2.7.1. Sơ đồ chân: 50
3.2.7.2. Mô tả chân: 51
3.2.7.3. Tính năng: 51
3.2.8. Mô hình mạch and_wire: 52
3.3. Kết quả tổng hợp trên Quartus: 53
3.4. KẾT QUẢ MÔ PHỎNG: 54
3.4.1. Mô phỏng chế độ master: 54
3.4.1.1. Chế độ master (bus data 8 bit): 54
3.4.1.2. Chế độ master (bus data 16 bit): 57
3.4.1.3. Chế độ master (bus data 32 bit): 60
3.4.2. Mô phỏng chế độ slave: 62
3.4.2.1. Chế độ slave (bus data 32 bit): 62
3.4.2.2. Chế độ slave (bus data 16 bit): 66


VI

3.4.2.3. Chế độ slave (bus data 8 bit): 72
3.5. KẾT QUẢ KIỂM TRA TRÊN FPGA: 82
3.5.1. Mô hình kiểm tra lõi IP I2C controller: 82
3.5.2. Kết quả kiểm tra: 83
3.6. So sánh những thông số của IP I2C controller chuyển đổi APB sang I2C

với IP tƣơng ứng hiện có trên thị trƣờng: 87
3.6.1. So sánh với lõi IP I2C-APB-0100 cảu ARASAN: 87
3.6.2. So sánh với lõi IP T-CS-PE-0007-100_FIFO: 88
3.6.3. So sánh với lõi DI2CM của hãng Digital Core Design: 88
3.7. Chứng nhận OCP: 90
3.7.1. Giới thiệu chuẩn OCP: 90
3.7.1.1. Hệ thống bus OCP 90
3.7.1.2. Giao diện lõi IP – I2C Controller 92
3.7.1.3. Làm OCP wrapper cho lõi IP I2C controller gắn vào hệ thống OCP
93
3.7.2. Giấy chứng nhận OCP-IP: 97
CHƢƠNG 4. NGHIÊN CứU VÀ THIếT Kế LÕI IP CứNG (ASIC) CHUYểN
ĐổI GIAO TIếP Từ APB SANG I2C: 98
4.1. TỔNG HỢP THIẾT KẾ 98
4.1.1. Quy trình tổng hợp thiết kế i2c_APB_controller 98
4.1.2. Tổng hợp thiết kế i2c_APB_controller 99
4.1.3. Ngõ vào tổng hợp 100
4.1.4. Ngõ ra tổng hợp 101
4.1.5. Kết quả tổng hợp 101
4.1.6. Các file script dùng để tổng hợp thiết kế 106
4.1.7. PLACE & ROUTE 106
4.1.8. Quy trình Place & Route 106


VII

4.1.8.1. Giới thiệu chung. 106
4.1.8.2. Lưu đồ Place and Route cho ip i2c_APB_controller. 107
4.1.8.3. Place&Route cho ip i2c_APB_controller gồm các bước sau. 107
4.1.9. Quá trình thực hiện các bước và kết quả đạt được 108

4.1.9.1. Design and Timing Setup. 108
4.1.9.2. Floorplanning 111
4.1.9.3. Placement. 113
4.1.9.4. Clock Tree Synthesis. 115
4.1.9.5. Routing. 117
4.1.9.6. Design for manufacturing. 119
4.1.9.7. Tổng kết. 121
4.1.9.8. File report sau khi Place & Route. 122
4.1.9.9. Các File kết quả đạt được. 122
4.2. KIỂM TRA VẬT LÝ I2C_APB_CONTROLLER 123
4.2.1. Giới thiệu về cộng cụ kiểm tra vật lý Hercules 123
4.2.2. Kiểm tra DRC – Design Rule Check 124
4.2.2.1. Mục đích 124
4.2.2.2. Lưu đồ kiểm tra DRC 124
4.2.2.3. Dữ liệu vào: 124
4.2.2.4. Kết quả kiểm tra DRC 126
4.2.3. Kiểm tra LVS – Layout versus Schematic 127
4.2.3.1. Mục đích 127
4.2.3.2. Lưu đồ kiểm tra LVS 128
4.2.3.3. Dữ liệu vào: 129
4.2.3.4. Thực hiện kiểm tra LVS 130
4.2.3.5. Kết quả kiểm tra LVS 131
4.3. PHÂN TÍCH ĐỊNH THỜI 132


VIII

4.3.1. Kiểm tra định thời – giai đoạn pre-layout 132
4.3.1.1. Quy trình kiểm tra 132
4.3.1.2. KIỂM TRA ĐỊNH THỜI CỦA THIẾT KẾ 133

4.3.1.3. Kết quả kiểm tra 134
4.3.1.4. KẾT LUẬN 137
4.3.2. Kiểm tra định thời – giai đoạn post-layout 137
4.3.2.1. Quy trình kiểm tra 137
4.3.2.2. Kiểm tra định thời của thiết kế 138
4.3.2.3. Kết quả kiểm tra 139
4.3.2.4. Kết luận 142
CHƢƠNG 5. NGHIÊN CứU VÀ THIếT Kế LÕI IP GIAO TIếP BUS I2C
TƢƠNG THÍCH VớI 8584: 143
5.1. Giới thiệu: 143
5.1.1. Mô tả tính năng của IP: 143
5.1.2. SƠ ĐỒ CHÂN: 144
5.1.3. SƠ ĐỒ KHỐI 146
5.2. PHÂN TÍCH CÁC KHỐI: 147
5.2.1. Khối cpu_interface: 147
5.2.1.1. Tính năng: 147
5.2.1.2. Sơ đồ chân: 149
5.2.1.3. Mô tả các thanh ghi: 152
5.2.1.4. Giản đồ định thời: 158
5.2.2. Khối Control: 160
5.2.2.1. Tính năng: 160
5.2.2.2. Sơ đồ chân: 160
5.2.2.3. Máy trạng thái: 163
5.2.3. I2C_Interface: 166


IX

5.2.3.1. Tính Năng: 166
5.2.3.2. Sơ đồ chân: 166

5.2.3.3. Chi tiết thiết kế: 168
5.2.4. Khối Compare: 173
5.2.4.1. Chức năng: 173
5.2.4.2. Sơ đồ chân khối compare: 175
5.2.4.3. Sơ đồ khối chi tiết của khối compare: 177
5.2.5. Clock_generator: 177
5.2.5.1. Tính năng: 177
5.2.5.2. Sơ đồ chân: 178
5.2.5.3. Sơ đồ khối chi tiết của clock_gen: 179
5.2.6. Khối Interrupt: 180
5.2.6.1. Tính năng: 180
5.2.6.2. Sơ đồ chân: 180
5.2.6.3. Thực hiện: 181
5.3. Kết quả tổng hợp trên Quartus: 182
5.4. KẾT QUẢ MÔ PHỎNG: 183
5.4.1. Mô phỏng chế độ master: 183
5.4.2. Mô phỏng chế độ slave: 187
5.5. KẾT QUẢ KIỂM TRA TRÊN FPGA: 192
5.5.1. Mô hình kiểm tra lõi IP I2C controller: 192
5.5.2. Kết quả kiểm tra: 193
5.6. So sánh những thông số của IP I2C controller tƣơng thích với 8584 với IP
tƣơng ứng hiện có trên thị trƣờng: 194
5.6.1. So sánh với lõi IP VCM8010 của hãng Macrocad: 194
5.6.2. So sánh với lõi IP VCM8015 của hãng Macrocad: 195
5.7. Chứng nhận OCP: 196


X

5.7.1. Giới thiệu chuẩn OCP: 196

5.7.1.1. Giao diện lõi IP – I2C Controller: 196
5.7.1.2. Làm OCP wrapper cho lõi IP I2C controller gắn vào hệ thống OCP
197
5.7.2. Giấy chứng nhận OCP-IP: 202
CHƢƠNG 6. NGHIÊN CứU VÀ THIếT Kế LÕI IP CứNG CủA BUS I2C
TƢƠNG THÍCH 8584 CủA NXP I2C: 203
6.1. TỔNG HỢP THIẾT KẾ 203
6.1.1. Quy trình tổng hợp thiết kế i2c_APB_controller 203
6.1.2. Tổng hợp thiết kế i2c_APB_controller 204
6.1.3. Ngõ vào tổng hợp 205
6.1.4. Ngõ ra tổng hợp 206
6.1.5. Kết quả tổng hợp 206
6.1.6. Các file script dùng để tổng hợp thiết kế 211
6.2. PLACE & ROUTE 211
6.2.1. Quy trình Place & Route 211
6.2.1.1. Giới thiệu chung. 211
6.2.1.2. Lưu đồ Place and Route cho ip i2c_APB_controller. 212
6.2.1.3. Place&Route cho ip i2c_APB_controller gồm các bước sau. 212
6.2.2. Quá trình thực hiện các bước và kết quả đạt được 214
6.2.2.1. Design and Timing Setup. 214
6.2.2.2. Floorplanning 216
6.2.2.3. Placement. 219
6.2.2.4. Clock Tree Synthesis. 221
6.2.2.5. Routing. 223
6.2.2.6. Design for manufacturing. 225
6.2.2.7. Tổng kết. 227


XI


6.2.2.8. File report sau khi Place & Route. 227
6.2.2.9. Các File kết quả đạt được. 227
6.3. KIỂM TRA VẬT LÝ I2C_APB_CONTROLLER 228
6.3.1. Giới thiệu về cộng cụ kiểm tra vật lý Hercules 228
6.3.2. Kiểm tra DRC – Design Rule Check 229
6.3.2.1. Mục đích 229
6.3.2.2. Lưu đồ kiểm tra DRC 229
6.3.2.3. Dữ liệu vào: 230
6.3.2.4. Thực hiện kiểm tra DRC 231
6.3.2.5. Kết quả kiểm tra DRC 232
6.3.3. Kiểm tra LVS – Layout versus Schematic 232
6.3.3.1. Mục đích 232
6.3.3.2. Lưu đồ kiểm tra LVS 233
6.3.3.3. Dữ liệu vào: 234
6.3.3.4. Thực hiện kiểm tra LVS 236
6.3.3.5. Kết quả kiểm tra LVS 237
6.4. PHÂN TÍCH ĐỊNH THỜI 238
6.4.1. Kiểm tra định thời – giai đoạn pre-layout 238
6.4.1.1. Quy trình kiểm tra 238
6.4.1.2. Kiểm tra định thời thiết kế: 239
6.4.1.3. Kết quả kiểm tra 240
6.4.1.4. Kết luận: 243
6.4.2. Kiểm tra định thời – giai đoạn post-layout 243
6.4.2.1. Quy trình kiểm tra 243
6.4.2.2. Kiểm tra định thời của thiết kế 244
6.4.2.3. Kết quả kiểm tra 245
6.4.2.4. Kết luận 247


XII


CHƢƠNG 7. KẾT QUẢ 248
7.1. Yêu cầu của đề tài 248
7.2. Kết quả đạt đƣợc: 248
7.2.1. Lõi IP chuyển đổi giao tiếp từ APB sang I2C: 248
7.2.2. Lõi IP của Bus I2C tương thích 8584 của NXP I2C: 249
7.2.3. Sản phẩm của đề tại gồm: 250
CHƢƠNG 8. KẾT LUẬN VÀ ĐỀ NGHỊ 251
8.1. Ý nghĩa 251
8.2. Hƣớng phát triển của đề tài 251
CHƢƠNG 9. PHỤ LỤC 252



XIII

Mục lục hình vẽ
Hình 3.1.1 Sơ đồ chân I2C core 14
Hình 3.1.2 Sơ đồ khối APB_I2C_Controller 15
Hình 3.1.3 Tổ chức thanh ghi 17
Hình 3.1.4 Cách truy xuất thanh ghi 19
Hình 3.1.5 Thanh ghi Control 19
Hình 3.1.6 Thanh ghi Status 21
Hình 3.1.7 Thanh ghi địa chỉ 22
Hình 3.1.8 Sơ đồ chân khối apb_interface 24
Hình 3.1.9 Chu kì ghi dữ liệu vào thanh ghi 28
Hình 3.1.10 Chu kì đọc dữ liệu vào thanh ghi 28
Hình 3.1.11 Sơ đồ chân khối control 29
Hình 3.1.12 Máy trạng thái 33
Hình 3.1.13 Sơ đồ khối FIFO 35

Hình 3.1.14 Sơ đồ chân khối I2C_Interface 36
Hình 3.1.15 Khối điều khiển thanh ghi dịch 41
Hình 3.1.16 Mạch điều khiển SDAO 41
Hình 3.1.17 Mạch điều khiên phát xung SCL 42
Hình 3.1.18 Timing các tín hiệu cơ bản 43
Hình 3.1.19 Phân xử bus 43
Hình 3.1.20 Đồng bộ xung SCL 44
Hình 3.1.21 Quá trình đọc data từ bus I2C 44
Hình 3.1.22 Sơ đồ chân khối compare 45
Hình 3.1.23 Giản đồ so sánh địa chỉ 7 bit 47
Hình 3.1.24 So sánh địa chỉ 10 bit 48
Hình 3.1.25 Sơ đồ chân khối gclkgen 49
Hình 3.1.26 Sơ đồ chân khối interrupt 50


XIV

Hình 3.1.27 Mạch tạo cờ ngắt 52
Hình 3.1.28 Mạch and_wire 52
Hình 3.1.29 Mô hình kit kiểm tra lõi IP I2C 82
Hình 3.1.30 Hệ thống SoC với wrapped bus và OCP-compliant IPs 90
Hình 3.1.31 Sơ đồ chân wrapper OCP 92
Hình 3.2.1 Mô tả quy trình tổng hợp mức ASIC 98
Hình 3.2.2 Lưu đồ tổng hợp thiết kế i2c_APB_controller 99
Hình 3.2.3 Tổng quan thiết kế 102
Hình 3.2.4 Diện tích thiết kế 102
Hình 3.2.5 Report định thời 103
Hình 3.2.6 Kiểm tra capacitance 103
Hình 3.2.7 Kiểm tra transition 104
Hình 3.2.8 Flip Flop 105

Hình 3.2.9 Kết quả tổng hợp i2c_APB_controller 105
Hình 3.2.10 Cấu trúc các khối bên trong i2c_APB_controller sau khi tổng hợp 106
Hình 3.2.11 Lưu đồ Place and Route cho i2c_APB_controller 107
Hình 3.2.12 Lưu đồ thực hiện timing and design setup 109
Hình 3.2.13 Kết quả kiểm tra design 110
Hình 3.2.14 Mô tả các yếu tố tạo ra thư viện thiết kế cho i2c_APB_controller 110
Hình 3.8.15 Cell i2c_APB_controller đầu tiên sau các thiết lập ban đầu 111
Hình 3.8.16 Lưu đồ thực hiện floorplaning cho i2c_APB_controller 111
Hình 3.2.17 IP i2c_APB_controller sau bước floorplanning 112
Hình 3.2.18 Lưu đồ thực hiện Placement các cell 113
Hình 3.2.19 Phân tích Congestion sau khi placement 114
Hình 3.2.20 Lưu đồ thực hiện tổng hợp cây clock và tối ưu 115
Hình 3.2.21 Cây clock trước khi tổng hợp 116
Hình 3.2.22 Cây clock đã được tổng hợp 116
Hình 3.2.23 Lưu đồ thực hiện Routing 117


XV

Hình 3.2.24 Lưu đồ thực hiện Routing 118
Hình 3.2.25 Cell i2c_APB_controller sau khi thực hiện xong bước Route 119
Hình 3.2.26 IP i2c_APB_controller sau khi thực hiện tối ưu post_route 119
Hình 3.2.27 Lưu đồ thực hiện thiết kế để chế tạo chip 120
Hình 3.2.28 IP i2c_APB_controller_dfm sau khi đã thực hiện các bước DFM 121
Hình 3.2.29 Bảng tổng kết các thông số thiết kế lõi i2c_APB_controller 121
Hình 3.2.30 Kiểm tra DRC lõi IP i2c_APB_controller 126
Hình 3.2.31 Kết quả kiểm tra lõi IP i2c_APB_controller 127
Hình 3.2.32 Kiểm tra LVS cho lõi IP i2c_APB_controller 131
Hình 3.2.33 Kết quả kiểm tra LVS lõi IP i2c_APB_controller 131
Hình 3.2.34 Lưu đồ thực hiện kiểm tra 133

Hình 3.2.35 Lưu đồ thực hiện kiểm tra 138
Hình 5.1.1 Sơ đồ chân I2C core 144
Hình 3.3.2 Sơ đồ khối I2C_Controller 146
Hình 3.3.3 Sơ đồ chân khối cpu_interface 149
Hình 3.3.4 Đọc dữ liệu từ thanh ghi(Motorola mode) 158
Hình 3.3.5 Đọc dữ liệu từ thanh ghi(Intel mode) 158
Hình 3.3.6 Ghi dữ liệu vào thanh ghi(Motorola mode) 159
Hình 3.3.7 Ghi dữ liệu vào thanh ghi(Intel mode) 159
Hình 5.2.8 Sơ đồ chân khối control 160
Hình 3.3.9 Máy trạng thái 164
Hình 3.3.10 Sơ đồ chân khối I2C_Interface 166
Hình 3.3.11 Mạch phát hiện bus lỗi 170
Hình 3.3.12 Mạch phát hiện bus mất điều phối 170
Hình 3.3.13 Mạch điều khiển tín hiệu sda_en 171
Hình 3.3.14 Mạch điều khiển tín hiệu scl_en 171
Hình 3.3.15 Sơ đồ chân khối compare 175
Hình 3.3.16 Mạch tạo tín hiệu compare 177


XVI

Hình 3.3.17 Sơ đồ chân khối gclkgen 178
Hình 3.3.18 Sơ đồ khối chi tiết của clock_gen 179
Hình 3.3.19 Sơ đồ chân khối interrupt 180
Hình 3.3.20 Mạch tạo cờ ngắt 181
Hình 3.3.21 Master ghi data ra bus I2C 186
Hình 3.3.22 Master đọc data từ bus I2C 186
Hình 3.3.23 Slave nhận data từ master gởi tới. 190
Hình 3.3.24 Slave ghi data tới master. 190
Hình 3.3.25 Mô hình kit kiểm tra lõi IP I2C 192

Hình 3.3.26 Sơ đồ chân wrapper I2C 196
Hình 3.4.1 Mô tả quy trình tổng hợp mức ASIC 203
Hình 3.4.2 Lưu đồ tổng hợp thiết kế i2c_8584 204
Hình 3.4.3 Tổng quan thiết kế 207
Hình 3.4.4 Diện tích thiết kế 207
Hình 3.4.5 Report định thời 208
Hình 3.4.6 Kiểm tra capacitance 208
Hình 3.4.7 Kiểm tra transition 209
Hình 3.4.8 Flip Flop 210
Hình 3.4.9 Kết quả tổng hợp i2c_8584 210
Hình 3.4.10 Cấu trúc các khối bên trong i2c_8584 sau khi tổng hợp 211
Hình 3.4.11 Lưu đồ Place and Route cho i2c_8584 212
Hình 3.4.12 Lưu đồ thực hiện timing and design setup 214
Hình 3.4.13 Kết quả kiểm tra design 215
Hình 3.4.14 Cell i2c_8584 đầu tiên sau các thiết lập ban đầu 216
Hình 3.4.15 Lưu đồ thực hiện floorplaning cho i2c_8584 216
Hình 3.4.16 IP i2c_8584sau bước floorplanning 218
Hình 3.4.17 Lưu đồ thực hiện Placement các cell 219
Hình 3.4.18 Phân tích Congestion sau khi placement 220


XVII

Hình 3.4.19 Lưu đồ thực hiện tổng hợp cây clock và tối ưu 221
Hình 3.4.20 Cây clock trước khi tổng hợp 222
Hình 3.4.21 Cây clock đã được tổng hợp 222
Hình 3.4.22 Lưu đồ thực hiện Routing 223
Hình 3.4.23 Cell i2c_APB_controller sau khi thực hiện xong bước Route 224
Hình 3.4.24 IP i2c_APB_controller sau khi thực hiện tối ưu post_route 224
Hình 3.4.25 Lưu đồ thực hiện thiết kế để chế tạo chip 225

Hình 3.4.26 IP i2c_8584_dfm sau khi đã thực hiện các bước DFM 226
Hình 3.4.27 Bảng tổng kết các thông số thiết kế lõi i2c_8584 227
Hình 3.4.28 Kiểm tra DRC lõi IP i2c_8584 231
Hình 3.4.29 Kết quả kiểm tra lõi IP i2c_8584 232
Hình 3.4.30 Kiểm tra LVS cho lõi IP i2c_8584 236
Hình 3.4.31 Kết quả kiểm tra LVS lõi IP i2c_8584 237
Hình 3.4.32 Lưu đồ thực hiện kiểm tra 239
Hình 3.4.33 Lưu đồ thực hiện kiểm tra 244





XVIII


Mục lục bảng
Bảng 3.1.1 Mô tả chức năng chân 14
Bảng 3.1.2 Mô tả thanh ghi 18
Bảng 3.1.3 Thanh ghi control 20
Bảng 3.1.4 Thanh ghi status 21
Bảng 3.1.5 Thanh ghi địa chỉ 22
Bảng 3.1.6 Chức năng chân khối APB_interface 25
Bảng 3.1.7 Chức năng chân khối control 30
Bảng 3.1.8 Chức năng chân khối I2C_Interface 37
Bảng 3.1.9 Mô tả chân wrapper IP I2C controller 92
Bảng 5.1.1 Mô tả chức năng chân 144
Bảng 3.3.2 Chức năng các tín hiệu khối cpu_interface 150
Bảng 3.3.3 Mô tả chức năng chân khối control 161
Bảng 3.3.4 Chức năng chân của khối i2c_interface 167

Bảng 3.3.5 Mô tả chân khối compare 176

1

Chƣơng 1. MỞ ĐẦU

1.1. Thông tin về đề tài
1.1.1. Tên đề tài/Dự án
Nghiên cứu thiết kế các lõi IP điều khiển giao tiếp Bus I2C.
1.1.2. Tổ chức chủ trì thực hiện đề tài/dự án
Trung tâm Nghiên cứu và Đào tạo Thiết kế Vi mạch (ICDREC)
– Đại học Quốc Gia TP. Hồ Chí Minh
1.1.3. Chủ nhiệm đề tài/dự án
ThS. Nguyễn Minh Chánh
1.1.4. Thời gian thực hiện
Từ tháng 10/2009 đến tháng 10/2010.
1.1.5. Tổng kinh phí đề tài:
 Kinh phí được duyệt: 450 triệu đồng.
 Kinh phí đã cấp:
- 300 triệu đồng theo TB số: 161/TB-SKHCN
- 105 triệu đồng theo TB số 64/TB-SKHCN
1.2. Mục tiêu đề tài
 Nghiên cứu và thiết kế lõi IP chuyển đổi giao tiếp từ APB sang I2C hoạt động ở các
chế độ sau (sản phẩm gồm cả lõi IP mềm và cứng) :
- Master Transceiver
- Master Receiver
- Slave Transceiver
- Slave Receiver

2


 Nghiên cứu và thiết kế lõi IP của Bus I2C tương thích 8584 của NXP I2C (sản phẩm
gồm cả lõi IP mềm và cứng).
 Tạo ra nền tảng của một hệ thống thư viện IP I2C controller có chất lượng, đạt các
tiêu chuẩn công nghiệp, có khả năng đưa ra chào hàng với các đơn vị kinh doanh
trong và ngoài nước.
 Nâng cao năng lực của đội ngũ thiết kế phục vụ nghiên cứu, đào tạo.
1.3. Nội dung nghiên cứu
- Nghiên cứu và thiết kế lõi IP mềm FPGA chuyển đổi giao tiếp từ APB sang I2C
(Dạng lõi IP mềm ).
- Thực hiện viết code RTL theo chuẩn I2C –Rev 2.1 theo các chức năng:
+ Lõi kết hợp cả chế độ Master và Slave.
- Kiểm tra hoạt động bằng phần mềm DC của Synopsys , mô phỏng và kiểm tra trên
các kit FPGA của Altera.
- Thiết kế kit và viết chương trình để test lõi IP giao tiếp với device I2C.
- Sau khi sản phẩm được thiết kế ở dạng IP mềm trên FPGA thì sẽ được chuyển thành
dạng IP cứng là ASIC.
1.4. Tiến độ thực hiện và hoàn thành công việc:
 Tiến độ thực hiện sản phẩm đề tài
TT
Các nội dung, công
việc
chủ yếu cần đƣợc
thực hiện
(các mốc đánh giá
chủ yếu)
Sản phẩm
phải đạt

Thời

gian
(bắt đầu,
kết
thúc)
Ngƣời,
cơ quan
thực hiện
Tình trạng
01
Nghiên cứu và thiết
Lõi IP mềm bộ
09/2009
ICDREC
Đã hoàn

3

kế lõi IP mềm chuyển
đổi giao tiếp từ APB
sang I2C.
FPGA chuyển
đổi giao tiếp
APB sang I2C
đạt chứng
nhận OCP-IP.

12/2009
thành
02
Thiết kế kit chạy

demo cho lõi IP
chuyển đổi giao tiếp
từ APB sang I2C trên
nền FPGA
Kit
12/2009

01/2010
ICDREC
Đã hoàn
thành
03
Nghiên cứu và thiết
kế lõi IP cứng chuyển
đổi giao tiếp từ APB
sang I2C.
Lõi IP cứng
ASIC chuyển
đổi giao tiếp
APB sang I2C.
11/2009

01/2010
ICDREC
Đã hoàn
thành
04
Nghiên cứu và thiết
kế lõi IP mềm của
Bus I2C tương thích

8584 của NXP I2C.
Lõi IP mềm bộ
FPGA giao
tiếp Bus I2C
tương thích
8584 đạt
chứng nhận
OCP-IP.
01/2010

03/2010
ICDREC
Đã hoàn
thành
05
Thiết kế kit chạy
demo cho IP của Bus
I2C tương thích 8584
của NXP I2C trên nền
FPGA.
Kit
03/2010

04/2010
ICDREC
Đã hoàn
thành
06
Nghiên cứu và thiết
kế lõi IP cứng của

Bus I2C tương thích
8584 của NXP I2C.
Lõi IP cứng
ASIC giao tiếp
Bus I2C tương
thích 8584.
04/2010

07/2010
ICDREC
Đã hoàn
thành

4

07
Viết báo cáo nghiệm
thu đề tài
Báo cáo
08/2010

09/2010
ICDREC
Đã hoàn
thành

5


Chƣơng 2. TỔNG QUAN TÀI LIỆU

2.1. Phƣơng pháp nghiên cứu, cách tiếp cận vấn đề:
2.1.1. Đối với lõi IP chuyển đổi từ APB sang I2C :
- Nghiên cứu và tìm hiểu chuẩn giao tiếp APB của ARM .
- Nghiên cứu và tìm hiểu chuẩn giao tiếp I2C .
- Thiết kế lõi IP chuyển đổi giao tiếp APB sang I2C ở dạng FPGA trên các kit
Altera.
- Thiết kế kit chạy demo cho IP trên nền FPGA.
- Chuyển đổi từ lõi IP mềm FPGA sang dạng ASIC .
2.1.2. Đối với lõi IP giao tiếp bus I2C tƣơng thích với 8584:
- Tìm hiểu, nghiên cứu chuẩn giao tiếp I2C của Philips.
- Tìm hiểu chuẩn giao tiếp song song của Intel và Motorola .
- Thiết kế lõi IP mềm điều khiển giao tiếp I2C tương thích với chuẩn giao tiếp
của Intel hay Motorola trên các kit của Altera.
- Thiết kế kit chạy demo cho IP trên nền FPGA.
- Thực hiện chuyển đổi sang IP cứng ASIC.

6

2.1.3. Quy Trình Thực Hiện Đề Tài:
Để thực hiện lõi IP này, nhóm đề tài làm theo một quy trình được xây dựng cơ bản dựa
theo quy trình thiết kế ASIC và điều chỉnh lại cho phù hợp với mục tiêu thực hiện trên
FPGA của đề tài. Sau đây là các bước nghiên cứu và thực hiện đề tài:
1. Yêu cầu đề tài: Các yêu cầu của đề tài được liệt kê và phân chia giai đoạn thực
hiện
2. Specification:
a. Đọc và nghiên cứu tài liệu: Sử dụng các tài liệu mô tả specification, các
quy định chuẩn, các trang web tham khảo và các tài liệu lý thuyết lên
quan khác.
b. Thiết kế mức cao: Đưa ra mô hình tổng quan, phân tích các chức năng và
đưa ra sơ đồ khối, sơ đồ chân tương ứng.

c. Thiết kế mức thấp: Phân tích chi tiết từng khối ở mức cổng logic, thanh
ghi, máy trạng thái và viết mô tả thiết kế.
d. Viết RTL code: Dựa trên bản mô tả thiết kế mức thấp để thực hiện viết
RTL code cho các khối và kết nối thành một thiết kế hoàn chỉnh.
3. Verification: Kiểm tra chức năng sử dụng RTL code. (Sau khi tổng hợp sẽ được
kiểm tra lại một lần nữa)
4. Physical Design:
a. Tổng hợp logic: Thực hiện tổng hợp thiết kế, báo cáo về tài nguyên,
timing, diện tích, nhiệt độ. (Sau khi tổng hợp, thiết kế được kiểm tra lại
lần nữa thông qua bƣớc 3)
b. Place and Route: Thực hiện sắp đặt các cell, kết nối và layout để tạo ra
hard IP. File kết quả có thể đem đi sản xuất.
5. Thực hiện kiểm tra trên FPGA: Thực ra quá trình này được thực hiện song song
với bƣớc 4 nhằm tiết kiệm thời gian.
a. Thực hiện mạch DEMO: Thực hiện mạch kết nối nhiều LCD cho phép
quan sát kết quả truyền/nhận dữ liệu và giá trị các thanh ghi trong thiết
kế.
Viết chương trình DEMO và kiểm tra: Chương trình DEMO ở đây là các khối
điều khiển nhập dữ liệu, cấu hình cho lõi IP và khối hiển thị kết quả truyền/nhận dữ
liệu.

7

2.2. Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài:
2.2.1. Tình hình nghiên cứu ngoài nƣớc:
Với khả năng tích hợp ngày càng cao, xu hướng phát triển của nền công nghiệp
vi mạch số hiện đại là tích hợp nhiều tính năng trong một con IC nhằm đơn giản hóa
phần cứng, tiết kiệm chi phí sản xuất đồng thời giúp các thiết bị điện tử ngày càng nhỏ
gọn đáp ứng nhu cầu thị trường . Một vi mạch số ngày nay không đơn giản chỉ là một
mạch nhỏ thực hiện một chức năng đơn giản nào đó mà là cả một hệ thống bao gồm: vi

xử lý, các khối chức năng đặc biệt (xử lý số tín hiệu, truy xuất bộ nhớ…), các khối giao
tiếp thực hiện các chuẩn khác nhau (SPI, I2C…). Một hệ thống phức tạp như vậy được
xem là hệ-thống-trên-chip (SoC – system on chip)
Khi hệ thống trong vi mạch ngày càng lớn và việc thiết kế càng trở nên phức tạp thì các
hãng thiết kế chip thường không đặt vấn đề thiết kế từ đầu tất cả các khối chức năng.
Điều đó làm thời gian thiết kế kéo dài rất lâu và hàm chứa nhiều rũi ro do sai hỏng dễ
xảy ra trong quá trình thiết kế. Do vậy, các hãng thường đặt vấn đề dùng lại các thiết
kế trước đó nếu có hoặc mua các bản thiết kế từng khối từ các hãng khác. Đây là lý do
phát sinh ra thị trường IP. IP là sở hữu trí tuệ , là bản thiết kế có sẵn của một số hãng.
Các hãng sản xuất IP thiết kế các lõi IP mà họ tin chắc rằng chúng cần được dùng từ
nhiều hãng thiết kế chip và sẵn sàng cung cấp cho các hãng này.
I2C là một chuẩn giao tiếp rất thông dụng và có nhiều ưu điểm. Do đó, bus I2C cũng
được nhiều công ty fabless lớn như Qualcomm hay Xilinx thiết kế dạng IP với nhiều
tính năng khác nhau nhằm đáp ứng cho cầu trên thị trường. Với việc thiết kế IP, bus
I2C càng trở nên linh động và phổ biến hơn, hầu như mọi dòng vi xử lí hiện nay như
PIC, AVR, ARM,… đều có tích hợp sẵn bus I2C bên trong.
Trên thị trường IP trên thế giới, có rất nhiều dạng IP điều khiển bus I2C được thiết
kế, đơn cử như :
+ ARASAN I2C-APB-0010 : IP cầu chuyển đổi bus APB sang bus I2C và ngược lại
của hãng Arasan.

×