Verilog cơ bản

Nội dung bài bác này giới thiệu các giải pháp khác biệt có thể áp dụng nhằm diễn đạt một mạch tổng hợp thực hiện Verilog HDL.

Bạn đang xem: Verilog cơ bản


*
Hình 1. Mạch tổng hợp tạo nên ngõ ra GS (Group Select) cho bộ mã hóa ưu tiên 8 bit

Phát biểu assign là một trong những Một trong những từ bỏ khóa được áp dụng phổ biến hàng đầu vào ngữ điệu Verilog HDL nhằm biểu lộ mạch tổ hợp. Thông qua bài toán kết phù hợp với những toán tử không giống, tuyên bố assign trlàm việc nên linh hoạt trong bài toán biểu đạt một số loại mạch này.
*
Hình 2. Các toán thù tử trong ngữ điệu Verilog

Cấu trúcalways cũng là 1 trong những trong những kết cấu bao gồm gia tốc áp dụng các độc nhất. Có thể sử dụng thay thế sửa chữa tương đương mang đến tuyên bố assign trong bộc lộ mạch tổng hợp. Nó có thể phối hợp thêm với các tuyên bố điều kiện (if-else-if), tuyên bố case (case/casez/casex), ... làm RTL code trngơi nghỉ nên dễ đọc với đọc rộng.
Tuy nhiên nên xem xét, kiểu dữ liệu của GS và or_out vào tuyên bố assign cùng cấu trúc always là khác nhau. Sử dụng assign, chúng được knhì báo loại wire. Sử dụng always, bọn chúng được knhì báo hình dáng reg.

Xem thêm: Cách Xếp Tên Theo Thứ Tự Abc Trong Excel, Sắp Xếp Tên Theo Thứ Tự Abc Trong Excel


Từ khóa function là 1 trong dạng khác đối với assign với always. Mạch được diễn tả do function sẽ không còn được tổng hòa hợp còn nếu như không được gọi. Việc sử dụng function nên 2 bước:
Tạo (knhị báo)functionlà để chế tạo một biểu đạt mạch chức năngHotline functionlà nhằm thực hiện hoặc tạo nên mạch công dụng mong ước Khi chạy mô bỏng hoặc tổng đúng theo. Function được Gọi thông qua những tuyên bố khác ví như assign tốt always.
function group_select; input enable; input đầu vào <7:0> data_in; group_select = enable và (|data_in<7:0>);endfunction
function group_select; đầu vào enable; input đầu vào <7:0> data_in; if (enable) group_select = |data_in<7:0>; else group_select = 0;endfunction
(*) begin GS = group_select(Ein, D<7:0>);endTuy nhiên, function áp dụng chủ yếu mang lại bài toán biểu lộ các mạch có kết cấu cố định mà lại mạch này được áp dụng lặp lại những lần vào một thi công. Như vậy được minh họa trên mạch sinh sản Q<2:0> vào cỗ mã hóa ưu tiên 8 bit.
*
Hình 3. Mạch tạo nên ngõ ra vào bộ mã hóa ưu tiên 8 bit
Mạch này thực hiện nhiều bộ MUX 2 ngõ vào, mỗi ngõ vào 3 bit. Sở MUX này được tạo bởi function
như sau:function <2:0> mux2; input đầu vào sel; đầu vào <2:0> in1; input đầu vào <2:0> in2; mux2 = sel? in1: in2;endfunctionMạch hình 3 sẽ được thể hiện bằng cách gọi function bên trên nlỗi sau:assign Q<2:0> = mux2(Ein, out_7, 3"b000);assign out_7<2:0> = mux2(D<7>, 3"b111, out_6);assign out_6<2:0> = mux2(D<6>, 3"b110, out_5);assign out_5<2:0> = mux2(D<5>, 3"b101, out_4);assign out_4<2:0> = mux2(D<4>, 3"b100, out_3);assign out_3<2:0> = mux2(D<3>, 3"b011, out_2);assign out_2<2:0> = mux2(D<2>, 3"b010, out_1);assign out_1<2:0> = mux2(D<1>, 3"b001, 3"b000);
Những thành phần xây đắp sẵn vào Verilog, Điện thoại tư vấn là built-in primitive, chứa các cổng được xây dừng sẵn, điện thoại tư vấn là built-in gate. Các cổng desgin sẵn này được Call và áp dụng tương tự nhỏng vấn đề hotline một module tất cả sẵn.
*
Hình 4. Các cổng tạo sẵn(built-in gate) hoàn toàn có thể tổng vừa lòng được vào Verilog

Để miêu tả một mạch tổ hợp bằng cách thực hiện những cổng này thì toàn bộ các ngõ ra cần được mang về dạng biểu thức boolean hoặc các mạch nguyên lý đề nghị sinh hoạt dưới dạng những cổng cơ phiên bản nlỗi liệt kê trong hình 4.