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

Kiểu dữ liệu trong Verilog – Học Verilog thật dễ

E-mail Print PDF

Các Kiểu dữ liệu trong Verilog phổ biến

  1. Tập giá trị
    Các giá trị được sử dụng phổ biến nhất trong Verilog:

Mức giá trị

Ý nghĩa trong mạch

0

Mức logic 0 quy định điều kiện sai

1

Mức logic 1 quy định điều kiện đúng

X

Giá trị không xác định

Z

Trạng thái trở kháng cao, hở mạch
  1. Kiểu net
    Net tập hợp tất cả các kiểu dữ liệu như: wire, wand, wor, tri, trior,….
    Tưởng tượng net đơn giản chỉ là phần mô tả kết nối giữa các thành phần phần cứng
    Kiểu wire là kiểu được sử dụng nhiều nhất. Nó như một sợi dây dẫn nối giữa các thành phần với nhau và nhớ rằng giá trị mặc định của kiểu wire là z.
    Ví dụ:
    1. wire a,b,c;
    2. assign c =a&b;

    Kiểu wand nó tương tự như một cổng and mở rộng vậy “Không biết hiểu thế này đúng không nữa”. các bạn đọc ví dụ sau để hình dung nha.

Ví dụ:

  1. wand d;
  2. wire a,b;
  3. assign d=a;
  4. assign d=b;//Giá trị tương ứng của d = a&b;

Các kiểu còn lại nếu gặp các bạn có thể tìm kiếm trên mạng.

  1. Kiểu thanh ghi
    Mô tả các phần tử lưu trữ dữ liệu.
    – Từ khóa reg.
    – Giá trị mặt định x.
    Chú ý: Đừng nhầm lẫn thuật ngữ trong Verilog với phần cứng thật.
    Trong Verilog thuật ngữ thanh ghi (register) nghĩa là một biến có thể lưu giá trị.Kiểu thanh ghi lưu trữ các con số không dấu.
    Ví dụ: Khai báo biến reset để lưu trữ giá trị (trạng thái tín hiệu).
    1. reg reset;
    2. initial begin // Cấu trúc này sẽ được thảo luận sau.
    3. reset = 1’b1; // Khởi tạo reset = 1 để reset mạch số.
    4. #100 reset = 1’b0; // Sau 100 đơn vị thời gian reset = 0.
    5. end
  1. Kiểu vector
    – Kiểu net or reg có thể khai báo như vector (độ rộng nhiều bit).
    – Nếu độ rộng không được định thì mặt định là 1-bit (scalar).
    – Vector có thể khai báo [high# : low#] hoặc [low# : high#] những bit bên trái dấu ngoặc vuông luôn luôn là bit có trọng số lớn nhất.
    – Trong ví dụ bên dưới bit 0 là bit có trọng số lớn nhất của virtual_addr.
    1. wire a; // Biến net mặc định.
    2. wire [31:0]busA, busB, busC; // 3 bus rộng 32-bit
    3. reg clock; // Biến reg mặc định
    4. reg [0:40] virtual_addr; // virtual_addr rộng 41-bit
  1. Kiểu bộ nhớ
    Kiểu bộ nhớ tương tự như một mảng 2 chiều trong C vậy.
    Khai báo bộ nhớ: reg <chieu_rong>tenbonho<chieu_sau>
                  <chieu_rong> và <chieu_sau> khai báo như kiểu vector.
    Truy xuất bộ nhớ: tenbonho<dia_chi>
    Ví dụ:
    Khai báo bộ nhớ mem1bit
                reg mem1bit[0:1023];
    Khai báo bộ nhớ membyte
                 reg [16:0]membyte[0:1023];
    Truy xuất bộ nhớ membyte tại địa chỉ 969
                 assign rdata = membyte[969];
    Tưởng tượng nếu như khai bao reg [7:0]mem[1:0] thì nó sẽ ra như thế này
                 Mem:

kiểu dữ liệu trong Verilog

  1. Kiểu tham số
              Verilog cho phép một hằng số được định nghĩa trong module bằng từ khóa parameter. Cái này rất quan trọng trong việc thay đổi thiết kế. Ví dụ như một bộ nhớ không muốn độ sâu là 4 nữa mà là 8 thì ta chỉ cần thay đổi thông số của parameter chứ không phải sửa trên toàn bố cục của RTL. Đây là một kiểu quan trọng của các kiểu dữ liệu trong Verilog
    Ngoài ra parameter còn được sử dụng trong trạng thái máy (sẽ đề cập vào những bài sau).
    Tham số không được sử dụng như một biến.
    Ví dụ:
    1. parameter width = 7; // Định nghĩa hằng số width.
    2. parameter data_bus = 16; // Định nghĩa độ rộng bus dữ liệu.
    3. //Sử dụng tham số.
    4. reg [width:0]addr_bus;
  1. Kiểu số nguyên
    Là kiểu dữ liệu thanh ghi đa mục đích được sử dụng để tính toán các con số.
    Từ khóa integer
    Kiểu này chỉ sử dụng trong việc mô phỏng thiết kế
    Số nguyên lưu trữ các con số có dấu.
    Số bit mặt định là 32-bit.
    Ví dụ:
    1. integer counter; // Định nghĩa biến integer gọi là counter.
    2. initial
    3. counter = -1; // counter lưu trữ giá trị -1.
Kiểu số thực
Kiểu dữ liệu thanh ghi số thực. Cũng như kiểu nguyên là một trong số những kiểu dữ liệu trong Verilog chỉ dùng trong mô phỏng.
Khai báo với từ khóa real.
Không có khai báo giới hạng bit.
Giá trị mặt định là 0.
Khi gán một số thực đến một biến nguyên thì số thực được làm tròn đến số nguyên gần nhất.
  1. real delta; // Định nghĩa biến real gọi là delta
  2. initial begin
  3. delta = 4e10; // delta được gán theo ký hiệu khoa học
  4. delta = 2.13; // delta được gán giá trị 2.13
  5. end
  6. integer i; // Định nghĩa biến integer gọi là i.
  7. initial
  8. i = delta; // i lấy giá trị 2 (làm tròn từ giá trị 2.13)
  9. //các kiểu dữ liệu trong verilog

 

Nguồn: http://laptrinhvnc.com

 Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn

đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON

  HotLine: 0972 800 931 or 0938 838 404  Ms Duyên

 

 

Related Articles

Chat Zalo