Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Create an account
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
wafer.jpg

Reg và Wire trong Verilog

E-mail Print PDF

Trong ngôn ngữ verilog, có nhiều loại tín hiệu để chúng ta sử dụng. Mỗi loại tín hiệu có đặc trung riêng cho phần cứng, ví dụ như: Net, phần tử nhớ, phần tử 3 trạng thái .... Trong đó, 2 loại phổ biến thường gặp là wire và reg.

 

1. Wire:

Ngay từ tên gọi của loại tín hiệu này, các bạn có thể liên tưởng đến "dây dẫn tín hiệu". Thực sự mà nói, điều này hoàn toàn là sự liên tưởng chính xác. Một tín hiệu được khai báo dạng wire trong verilog thì tín hiệu đó sẽ là tín hiệu dẫn các giá trị logic. Giá trị của tín hiệu này được "lái" bởi các phần tử phía trước nó, ví dụ như output của một cổng logic, hoặc input của một module. Sau đây là hình ảnh ví dụ về wire trong thiết kế phần cứng. Mỗi thành phần net_* đều là 1 wire. Tùy vào các phần mềm mà các bạn đang sử dụng, có trường hợp một số wire sẽ được phần mềm đó tự ngầm hiểu, và chúng ta không cần phải khai báo.

Lưu ý, một tín hiệu dang wire không bao giờ xuất hiện tại LHS ( Left Hand Side ) của các phép gán bên trong vòng always. Nó được gán thông qua câu lệnh assign trong verilog:

Ví dụ: assign net_b = ! net_a;

 

Cách khai báo:

wire [n-1:0] wire_name;

Trong đó, n là số bit của tín hiệu wire_name.

 

2. Reg:

Reg là viết tắt của register. Cái tên cũng gợi cho các bạn liên tưởng đến một phần tử nhớ nào đó. Thông thường, khai báo dạng reg ám chỉ đến một flipflop. Phụ thuộc vào cách code, mà tín hiệu được khai báo là reg vẫn có thể trở thành dạng net ( giống như wire )

Một tín hiệu khai bảo kiểu reg thì nó có các đặc điểm như sau:

- Nó luôn luôn được gán trong 1 vòng always nào đó. ( LHS )

- Nó có thể trở thành wire, hoặc flipflop tùy vào cách coding.

- Nếu nó được code để trở thành flipflop thì nó có thể tham gia vào logic của chính nó, có nghĩa là giá trị của nó có thể được dùng để tính toán các giá trị tiếp theo của chính nó.

Cách khai báo:

reg [n-1:0] reg_name;

Trong đó, n là số bit của tín hiệu reg_name.

Nguồn: degic.freeforums

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)

 

 

Related Articles

Chat Zalo