Verilog là ngôn ngữ mô tả phần cứng (Hardware Description Language) được sử dụng trong việc thiết kế các hệ thống số, các IC số (Mạch tích hợp)…
Cùng với ngôn ngữ VHDL, Verilog là một trong hai ngôn ngữ mô tả phần cứng phổ biến nhất hiện nay. Ngoài ra còn một ngôn ngữ khác đó là system Verilog cũng được sử dụng rộng rãi.
GIỚI THIỆU NGÔN NGỮ MÔ TẢ PHẦN CỨNG VERILOG
Verilog lần đầu được giới thiệu vào năm 1984 bởi công ty Gateway Design Automatic. Verilog không được chuẩn hóa và đều được chỉnh sửa ở hầu hết các phiên bản sau từ năm 1984 đến năm 1990. Năm 1995 Verilog chính thức được chuẩn hóa bởi tổ chức IEEE.
Hiện giờ Việt Nam đang đầu tư phát triển về lĩnh vực vi mạch và chắc chắn rằng các bạn yêu thích lĩnh vực này không nên bỏ qua ngôn ngữ này. Công đoạn viết RTL chỉ là một công đoạn nhỏ để sản xuất ra được một IC.
Điều đầu tiên các bạn phải nắm đó là Verilog là ngôn ngữ mô tả phần cứng chứ không phải là ngôn ngữ lập trình. Lúc đầu tư duy của mình khi tiếp cận với Verilog là theo lối tư duy của ngôn ngữ C nên cảm thấy cũng khó nhai. Một phần lợi thế khi các bạn đã từng học qua ngôn ngữ lập trình C (Một phần nào đó giống với Verilog). Nếu tiếp cận đúng thì cũng sẽ dễ dàng hơn.
CÙNG NHAU HỌC LẬP TRÌNH VERILOG
Trong loạt bài hướng dẫn về lập trình Verilog này mình sẽ truyền đạt lại tất cả những gì mình tiếp thu được một cách cụ thể nhất, dễ hiểu nhất. Mình viết cho những bạn bắt đầu tiếp cận nên nếu như bạn có biết qua rồi thì có thể bỏ qua một số phần. Nếu có vấn đề gì thắc mắc hay góp ý các bạn có thể để lại comment ở dưới mỗi bài mình sẽ phản hồi.
Để học ngôn ngữ lập trình Verilog cũng như những ngôn ngữ khác thì điều đầu tiên phải nắm đó là những khái niệm cơ bản:
- Các quy ước ngôn ngữ Verilog
- Các kiểu dữ liệu
- Các chỉ thị biên dịch và task hệ thống
- Module và port
- Mô tả delay trong lập trình Verilog
Chúng ta sẽ đi vào chi tiết của những khái niệm cơ bản trong các bài lập trình Verilog
CÁC QUY ƯỚC NGÔN NGỮ TRONG LẬP TRÌNH VERILOG
Một lệnh có thể viết trên một dòng hoặc nhiều dòng. Các dòng lệnh kết thúc bằng dấu ;
Vd:
- assign a = b; //viết trên 1 dòng
- assign a
- =
- b;//trên nhiều dòng
1. Chú thích
Dùng để ghi chú những câu lệnh hay đoạn lệnh để dễ trong việc quan sát hay phát triển dự án sau này..v.v.
Chú thích một dòng sử dụng //
Chú thích trên nhiều dòng /*….*/
VD:
- assign a=b+1;//Chú thích ở đây thì chương trình sẽ không biên dịch
- /*Chú thích ở đây
- Đây
- Đây hay bao nhiêu dòng nữa vẫn được*/
- assign y = D /*y bang D cong voi 8*/ +8;
2. Đặt tên biến hàm
- Bắt đầu bằng các ký tự hoặc dấu gạch dưới.
- Không được bắt đầu bằng chữ số hoặc dấu $
- Đặc biệt trong lập trình Verilog phân biệt chữ hoa với chữ thường
VD:
- reg Xyz;// Đặt tên đúng
- reg 1xyz;//Sai quy tắc
- //Nên dùng dấu gạch dưới để là rõ hơn tên của chân tín hiệu
- input rst_n;// Đọc vào có thể dễ dàng thấy rằng chân reset tích cực mức thấp.
Đặt tên cũng là cả một nghệ thuật đấy.
3. Các toán tử
Có 3 kiểu toán tử trong lập trình Verilog
Unary đứng trước toán hạng:
assign y=!z; //~ là Unary. z là toán hạng
Binary đứng giữa hai toán hạng:
assign y=a&b;//& là Binary
Tenary có 2 toán tử nằm giữa 3 toán hạng:
assign y= a ? c : d ;//cái này cũng như lệnh if thôi y sẽ được gán bằng c nếu a đúng, bằng d nếu a sai. a //có thể là biểu thức hoặc biến.
4. Ghi các con số
Có 2 kiểu ghi các số (Giá trị) trong Verilog:
Kiểu có kích thước :
Cấu trúc : <Kích_thước>’<Định_dạng><Số>
Định dạng.
+ Số thập phân: d hoặc D. Vd: 16’d235 hoặc 16’D235.
+ Số bát phân: o hoặc O. Vd: 8’o13 hoặc 8’O13.
+ Số thập lục phân: h hoặc H. Vd: 8’ha2 hoặc 8’Ha2.
+ Số nhị phân: b hoặc B. Vd: 4’b1010 hoặc 4’B1010.
Kiểu không có kích thước thì mặc định là 32bit
Số âm được biểu diễn bằng dấu trừ trước kích thước.
VD: -16’D225
Có thể dùng dấu gạch dưới để ngăn cách giữa các con số
VD: 16’d22_5;//nó vẫn có giá trị là 225
5. Từ khóa
+ Là các từ được dành riêng cho Verilog
+ Lưu ý các từ khóa không được dùng để đặt tên cho các biến,hàm…
+ Các bạn có thể tham khảo các từ khóa trong tài liệu : Verilog HDL –A guide to Digital Design and Synthesis, Samir Palnitkar,SunSoft Press,1996.
+ Một số từ khóa thường dùng: assign, xor, case, always, @, initial, wire, reg, and, or, for, if, else, begin, end, module, endmodule…
+ Mẹo khi viết code chú ý hầu hết các chương trình đều hiển thị từ khóa là chữ màu xanh.
- Các kiểu dữ liệu
- Các chỉ thị biên dịch và task hệ thống
- Module và port
- Mô tả delay trong lập trình Verilog
Mình xin tạm ngưng bài này lại tại đây, viết tiếp thì dài quá đọc nó ngán. Thư giản một tí, đọc và nắm rõ những khái niệm cơ bản này để qua những bài sau về lập trình 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