
Lõi IP là một khối logic hoặc dữ liệu được sử dụng trong FPGA hoặc mạch tích hợp dành riêng cho ứng dụng (ASIC) cho một sản phẩm.
Lý tưởng nhất, lõi IP phải hoàn toàn di động - nghĩa là có thể dễ dàng chèn vào bất kỳ công nghệ nhà cung cấp hoặc phương pháp thiết kế nào. Bộ thu / phát không đồng bộ (UART), bộ xử lý trung tâm (CPU), bộ điều khiển Ethernet và giao diện PCI là tất cả các ví dụ về lõi IP.
IP core (lõi IP) có ba loại là lõi IP mềm (soft core), lõi IP cứng (hard core) và firm core.
Lõi IP mềm đơn giản chính là RTL code (Verilog hoặc VHDL) thực hiện một chức năng nào đó. Lõi IP cứng được sinh ra từ lõi IP mềm, lõi IP sau khi được tổng hợp và layout sẽ tạo ra lõi IP cứng, lõi IP cứng chính là bản layout theo một công nghệ sản xuất chip nào đó và có thể đem đi chế tạo thành chip.
Mình xin phép không bàn đến cách thức sử dụng trên phần mềm mà chỉ giải thích làm thế nào để sử dụng một lõi IP nói chung. Bây giờ bạn hình dung một lõi IP giống như một con chip hoàn chỉnh. Vậy bình thường, làm thế nào để sử dụng một con chip? Lõi IP nào cũng sẽ có một datasheet hay một mô tả (description) của nó, thông qua tài liệu này của lõi IP bạn sẽ nắm được hai điểm quan trọng sau:
- Các tín hiệu giao tiếp
- Các thanh ghi cấu hình và điều khiển lõi IP
Về các tín hiệu giao tiếp
Ví dụ như bạn có một lõi IP I2C thì tất nhiên sẽ phải có giao tiếp I2C với hai tín hiệu SDA và SCL. Nếu lõi IP I2C của bạn chỉ là I2C master thì SCL chỉ là output. Nếu lõi I2C của bạn chỉ là slave thì SCL chỉ là input. Còn nếu lõi I2C của bạn vừa có thể là master lại vừa có thể là slave thì sẽ có SDA_OUT, SCL_OUT và SDA_IN, SCL_IN riêng và sẽ có tín hiệu xác định chiều và bạn phải kết nối theo dạng cổng ba trạng thái (tri-state) để có thể tạo thành 2 tín hiệu SDA và SCL có thể nối đến bus I2C (Bạn cần đọc kỹ mô tả của lõi IP để biết điều này). Ví dụ như sau:
Bên cạnh giao tiếp I2C, lõi IP sẽ có một nhóm tín hiệu giao tiếp thứ 2. Đây chính là nhóm tín hiệu mà thông qua đó bạn có thể sử dụng lõi IP này. Ví dụ, ta có một lõi IP có một bên là giao tiếp I2C, một bên là giao tiếp APB bus (bạn tìm đọc AMBA 2.0 bus để biết giao tiếp này) như sau:
Thì bạn có hai cách để sử dụng nó:
Cách thứ nhất, bạn nối nó đến lõi IP APB (APB bus), rồi nối APB bus đến lõi IP AHB bus (hai bus này là hai thành phần của hệ thống bus AMBA 2.0), rồi bạn nối một lõi IP CPU có giao tiếp bus AHB vào (ví dụ như lõi ARM). Sau khi kết nối xong, bạn lập trình CPU điều khiển lõi IP.
Cách thứ 2, bạn viết một đoạn code RTL (Verilog hoạc VHDL) lái trực tiếp các tín hiệu APB như chuẩn bus mô tả để điều khiển lõi IP I2C
Về các thanh ghi cấu hình và điều khiển
Trong các lõi IP sẽ có các thanh ghi cấu hình hoạt động của lõi, lựa chọn các chế độ đáp ứng, cấu hình tốc độ truyền dữ liệu, ghi dữ liệu, đọc dữ liệu, v.v... (y chang như một con chip). Sau khi hiểu về giao tiếp như trên, thông qua giao tiếp, ví dụ như ở đây là APB, bạn điều khiển ghi/đọc các thanh ghi này để sử dụng lõi IP I2C theo cách mà bạn muốn.
Nguồn: icdesignvn, whatis.techtarget
Bạn Có Đam Mê Với Vi Mạch hay Nhúng - Bạn Muốn Trau Dồi Thêm Kĩ Năng
Mong Muốn Có Thêm Cơ Hội Trong Công Việc
Và Trở Thành Một Người Có Giá Trị Hơn
Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được Chúng
Hãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON
Hotline: 0972.800.931 - 0938.838.404 (Mr Long)