2015-11-01 10 views
8

Sự khác biệt giữa reg và dây là gì? Khi nào chúng ta phải sử dụng reg và khi nào chúng ta phải sử dụng dây trong một mô-đun Verilog. Tôi cũng đã nhận thấy đôi khi một đầu ra được khai báo một lần nữa như là một reg. Ví dụ: reg Q trong một flip flop D. Tôi đã đọc điều này ở đâu đó - "Đầu ra đích của các câu lệnh gán thủ tục phải là kiểu dữ liệu reg." Các câu lệnh chuyển nhượng thủ tục là gì? Tôi đã googled thông qua điều này nhưng không thể tìm thấy một lời giải thích rõ ràng.Sự khác nhau giữa reg và dây trong mô-đun Verilog là gì

+0

Bạn đã kiểm tra [link] này (http://electronics.stackexchange.com/questions/31624/what-is-the-difference-between-reg-and-wire-after-synthesizing) – ssgr

Trả lời

9

Wire: -

> Wires are used for connecting different elements. They can be treated 
> as physical wires. They can be read or assigned. No values get stored 
> in them. They need to be driven by either continuous assign statement 
> or from a port of a module. 

Reg: -

> Contrary to their name, regs don't necessarily correspond to 
> physical registers. They represent data storage elements in 
> Verilog/SystemVerilog. They retain their value till next value is 
> assigned to them (not through assign statement). They can be 
> synthesized to FF, latch or combinatorial circuit. (They might not be 
> synthesizable !!!) 

Dây điện và Regs có mặt từ Verilog khung thời gian. SystemVerilog đã thêm loại dữ liệu mới được gọi là logic cho họ. Vì vậy, câu hỏi tiếp theo là loại dữ liệu lôgic này và cách nó khác với loại dây cũ cũ của chúng tôi /reg.

Logic: -

Như chúng ta đã thấy, loại reg dữ liệu được chút mis-dẫn đầu trong Verilog. Bổ sung loại dữ liệu logic của SystemVerilog là xóa sự nhầm lẫn ở trên . Ý tưởng đằng sau là có một kiểu dữ liệu mới được gọi là logic mà ít nhất không tạo ra ấn tượng rằng nó là phần cứng tổng hợp. Loại dữ liệu logic không cho phép nhiều trình điều khiển. Nó có một hành vi cuối cùng được phân bổ trong trường hợp có nhiều bài tập (có nghĩa là nó không có phần cứng tương đương). Loại dữ liệu Reg/Wire cho X nếu nhiều trình điều khiển cố gắng thúc đẩy chúng với các giá trị khác nhau. Loại dữ liệu lôgic chỉ đơn giản là gán giá trị gán cuối cùng. Sự khác biệt tiếp theo giữa reg/dây và logic là logic có thể được cả hai điều khiển bởi khối assign, sản lượng của một cổng và bên trong một khối thủ tục như thế này

logic a; 
    assign a = b^c;     // wire style 
    always (c or d) a = c + d;   // reg style 
    MyModule module(.out(a), .in(xyz)); // wire style 
2

Các khối thủ tục đề cập đến các khối always, always_ff, always_comb, always_latch, initial vv. Trong khi các câu lệnh chuyển nhượng thủ tục đề cập đến việc chỉ định các giá trị cho số nguyên, số nguyên, v.v., nhưng không phải là dây (lưới).

wire các phần tử phải là liên tục điều khiển bởi một cái gì đó và không thể lưu trữ giá trị. Từ nay trở đi, chúng được gán giá trị sử dụng các câu lệnh liên tục chỉ định.

reg có thể được sử dụng để tạo các sổ đăng ký trong các khối thủ tục. Do đó, nó có thể lưu trữ một số giá trị.

reg yếu tố thể được sử dụng như đầu ra trong một thực tế mô-đun khai. Tuy nhiên, các yếu tố regkhông thể được kết nối với cổng đầu ra của mô-đun instantiation.

Do đó, một reg có thể lái xe một dây như RHS của một câu lệnh assign. Ngược lại, một đường dây có thể lái xe reg ở dạng RHS của một khối thủ tục.

Đối với ý tưởng rõ ràng về lời tuyên bố của reg hoặc wire, tham khảo hình dưới đây:

enter image description here

Vì vậy, bất cứ khi nào suy luận logic tuần tự, mà các cửa hàng/tổ chức một số giá trị, tuyên bố rằng biến/cổng như reg . Ở đây, Q là một regbên một module, nhưng trong khi instantiating module này bên trong một số mô-đun khác, sau đó cổng này phải được kết nối với một wire.

Hãy nhớ rằng, wire chỉ có thể phỏng đoán logic combinational, trong khi reg có thể suy ra logic tổ hợp hoặc tuần tự.

Blog của Dave là một nguồn thông tin chi tiết tốt. Để biết thêm thông tin, hãy tham khảo các liên kết synthesizing differenceVerilog wire-reg.

0

khác biệt đơn giản giữa reg và dây là, các reg được sử dụng trong mạch tổ hợp hoặc tuần tự trong verilog và dây được sử dụng trong mạch tổ hợp

reg được sử dụng để lưu trữ một giá trị nhưng dây liên tục điều khiển một số điều và dây được kết nối với outport khi khởi tạo mô-đun nhưng reg là không được kết nối

Các vấn đề liên quan