Hướng dẫn cai systemc cho linux
Bài viết này hướng dẫn cách cài đặt và sử dụng thư viện SystemC UVM (Universal Verification Methodology) và SCV phục vụ cho việc xây dựng môi trường mô phỏng UVM-SystemC. Danh sách các bài viết liên quan: 1) Tổng quan Để xây dựng một môi trường mô phỏng UVM với SystemC chúng ta cần các thành phần thư viện như sau:
Các thưc viện trên có thể tải miễn phí với mã nguồn mở tại website của Accellera ở các liên kết sau đây:
Các bước cơ bản để cài đặt và sử dụng các thư viện của SystemC như sau:
2) Môi trường cài đặt Môi trường cài đặt và sử dụng các thư viện SystemC dùng để minh họa trong bài viết này có thông số như sau:
Các gói thư viện được sử dụng:
Mọi lệnh được trình bày sau đây đều thực hiện trên Cygwin terminal. Các bạn hãy tham khảo cách cài đặt và sử dụng chi tiết ở bài viết sau. 3) Cài đặt thư viện SystemC Hướng dẫn này đã được trình bày trong bài viết sau đây nên sẽ không trình bày lại. Hiện nay, phiên bản mới nhất là 2.3.3 tuy nhiên nó chưa được kiểm tra với thư viện SCV. Thư viện SCV mới nhất chỉ hỗ trợ tốt trên phiên bản 2.3.1, 2.3.0 và 2.2.0 tùy vào hệ điều hành. Các nền tảng cài đặt được hỗ trợ gồm: o Linux * Architectures - x86 (32-bit) - x86_64 (64-bit) - x86 (32-bit) application running on x86_64 (64-bit) kernel (../configure --host=i686-linux-gnu) o Mac OS X * Architectures - x86 (32-bit) - x86_64 (64-bit) - powerpc (32-bit) [deprecated] - powerpc64 (64-bit) [deprecated] o Solaris * Architectures - SPARC (32-bit) o BSD * Architectures - x86 (32-bit) - x86_64 (64-bit) o Windows * Compatibility layer - Cygwin - MinGW / MSYS * Architectures - x86 (32-bit) - x86_64 (64-bit) Trình biện dịch được hỗ trợ gồm:
Giả sử sau khi cài đặt đường dẫn thư mục cài đặt thư viện SystemC của bạn là: /cygdrive/d/20.Project/0.Library/001_SystemC/002_Lib/SystemC233_lib Chú ý, đường dẫn này sẽ sử dụng cho các phần hướng dẫn tiếp theo. 4) Cài đặt thư viện SystemC-UVM 4.1) Tạo thư mục để cài đặt Lệnh: mkdir UvmSystemC_lib Kết quả: ví dụ đường dẫn thư mục đã tạo là: /cygdrive/d/20.Project/0.Library/001_SystemC/002_Lib/UvmSystemC_lib 4.2) Giải nén gói thư viện ở một thư mục bất kỳ Lệnh: tar -xzf uvm-systemc-1.0-beta2.tar.gz Kết quả: thư mục chứa source cài đặt được tạo uvm-systemc-1.0-beta2 4.3) Chuyển đến thư mục đã giải nén Lệnh: cd uvm-systemc-1.0-beta2 Nội dung thư mục source:
4.4) Cấu hình cài đặt Lệnh: khai báo đường dẫn thư mục cài đặt ở prefix và đường dẫn thư viện SystemC đã cài đặt trước đó ở --with-systemc ./configure --prefix=/cygdrive/d/20.Project/0.Library/001_SystemC/002_Lib/UvmSystemC_lib --with-systemc=/cygdrive/d/20.Project/0.Library/001_SystemC/002_Lib/SystemC233_lib Kết quả: Nếu không có bất kỳ lỗi nào phát sinh trong quá trình cấu hình, bạn sẽ nhận được một bảng tóm tắt thông báo các thông tin cấu hình:
Lưu ý, thư mục cài đặt vẫn rỗng sau bước này nếu nó là một thư mục được tạo mới.
4.5) Cài đặt thư viện Nếu thư mục cài đặt đã được cài thư viện trước đó và đây là lần cài đặt lại thì cần thực thi lệnh sau để xóa bỏ dữ liệu cũ trước khi cài đặt:
Kết quả: Thư mục cài đặt sẽ xuất hiện các thành phần của thư viện UVM-SystemC:
5) Cài đặt thư viện SCV 5.1) Tạo thư mục để cài đặt (nếu muốn) Lệnh: mkdir scv201_lib Kết quả: ví dụ đường dẫn thư mục đã tạo là: /cygdrive/d/20.Project/0.Library/001_SystemC/002_Lib/scv201_lib Lưu ý, bạn có thể không cần tạo thư mục này mà có thể cài thư viện SCV vào cùng thư mục với thư viện SystemC. 5.2) Giải nén gói thư viện SCV ở một thư mục bất kỳ Lệnh: tar -xzf scv-2.0.1.tar.gz Kết quả: thư mục chứa source cài đặt được tạo scv-2.0.1 5.3) Chuyển đến thư mục đã giải nén Lệnh: cd scv-2.0.1 Nội dung thư mục source:
5.4) Cấu hình cài đặt Thư viện SCV phiên bản 2.0.1 không hỗ trợ gcc 7.4 và nền tảng cygwin. Trong script cấu hình cài đặt SCV, phiên bản hệ điều hành và trình biên dịch sẽ được kiểm tra. Nếu script phát hiện nền tảng hoặc trình biên dịch đang dùng không nằm trong danh sách được hỗ trợ, nó sẽ báo lỗi và không thực hiện việc cấu hình cài đặt.
Để có thể sử dụng trên nền tảng Cygwin và trình biên dịch gcc 7.4, bạn cần chỉnh sửa lại script cấu hình trong thư mục mã nguồn, file scv-2.0.1/configure. Đầu tiên, tìm đến dòng "checking for supported operating system" trong script, dòng 16109 và 16110. Bạn sẽ thấy đoạn code dưới đây: case "$target_os" in solaris2.5*|solaris2.6|solaris2.7|solaris2.8|solaris2.9|solaris2.10|solaris2.11|hpux11*|linux-gnu|darwin* |mingw32) Đoạn code trên liệt kê một danh sách các hệ điều hành và nền tảng được hỗ trợ như mingw32, linux-gnu, solaris2.5, ... và không có cygwin. Bạn hãy thêm cygwin vào danh sách kiểm tra này. case "$target_os" in solaris2.5*|solaris2.6|solaris2.7|solaris2.8|solaris2.9|solaris2.10|solaris2.11|hpux11*|linux-gnu|darwin* |mingw32|cygwin) Tiếp theo, tìm đến dòng 16084, bắt đầu với chuỗi ký tự SUPPORTED_CXX_VERSIONS, nội dung dòng này liệt kê các phiên bản gcc được hỗ trợ. Bạn cần thêm 7.4 vào danh sách này. SUPPORTED_CXX_VERSIONS="(3.2|3.4|4.1|4.2|4.3|4.4|4.5|4.6|4.7|4.8|4.9|5.4|6.1|6.3|7.4)" Sau đó, chạy lệnh cấu hình cài đặt với đường dẫn thư mục thư viện SystemC đã cài trước đó: ./configure --with-systemc=/cygdrive/d/20.Project/0.Library/001_SystemC/002_Lib/SystemC233_lib Lệnh trên không chứa tùy chọn "--prefix" nên thư viện SCV sẽ được cài vào thư mục SystemC233_lib, chung với thư viện SystemC. Trong quá trình, script configure thực thi, bạn sẽ thấy hiệu quả của việc chỉnh sửa trên qua hai thông báo sau trên cygwin terminal: checking for supported C++ compiler... gcc 7.4 is supported Lưu ý, việc gcc 7.4 và cygwin không có trong danh sách được hỗ trợ là bởi vì thư viện chưa được kiểm tra đầy đủ và toàn diện trên các nền tảng này. Việc chỉnh sửa để có thể cài đặt và sử dụng có thể gây ra lỗi "nào đó". Nếu bạn không muốn gặp rủi ro thì hãy cài đặt và sử dụng trên các nền tảng đã được khuyến cáo.
Nếu thư mục cài đặt đã được cài thư viện trước đó và đây là lần cài đặt lại thì cần thực thi lệnh sau để xóa bỏ dữ liệu cũ trước khi cài đặt:
Tiếp theo, thực hiện một số chỉnh sửa ở file /scv-2.0.1/src/scv/scv_init_seed.cpp trước khi cài đặt như sau:
Nếu các dòng trên không được chỉnh sửa, lỗi sau đây sẽ xuất hiện khi thực thi cài đặt:
Biên dịch lại mã nguồn: make
Thực thi lệnh cài đặt:
Kết quả: Trong thư mục /cygdrive/d/20.Project/0.Library/001_SystemC/002_Lib/SystemC233_lib/include sẽ có thư viện SCV gồm:
6) Kiểm tra các thư viện đã cài đặt
setenv SYSTEMCLIB cygdrive/d/20.Project/0.Library/001_SystemC/002_Lib/SystemC233_lib
Dữ liệu có thể tải: Lịch sử cập nhật: 1. 2019.Apr.29 - Tạo lần đầu Danh sách tác giả: 1. Trương Công Hoàng Việt 2. Lê Hoàng Vân 3. Nguyễn Hùng Quân |