Thông báo

Collapse
No announcement yet.

Hỏi về công dụng khi khai báo biến REG

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Hỏi về công dụng khi khai báo biến REG

    Em mới học ngôn ngữ verilog, xin hỏi công dụng khi khai báo biến REG, có phải kiểu khai báo này dùng cho các biến output không ?

    ví dụ đoạn code sau

    module part3(S,U,V,W,X,Y,M,ledr);
    input [2:0] S,U,V,W,X,Y;
    output [2:0] M;
    output [17:0] ledr;
    assign ledr [17:15]=S;
    assign ledr [14:12]=U;
    assign ledr [11:9]=V;
    assign ledr [8:6]=W;
    assign ledr [5:3]=X;
    assign ledr [2:0]=Y;

    reg [2:0] M;
    always @(S)
    begin
    case (S)
    3'b000: M=U;
    3'b001: M=V;
    3'b010: M=W;
    3'b011: M=X;
    3'b100: M=Y;
    default: M=Y;
    endcase
    end
    endmodule

    Giải thích giùm em công dụng khi khai báo reg [2:0] M

  • #2
    Nguyên văn bởi kataraus Xem bài viết
    Giải thích giùm em công dụng khi khai báo reg [2:0] M
    Có 2 thể loại cho internal drivers:

    * wire - Đường ra tự động là ở thể loại này. Thể loại này chỉ có thể viết vô ở ngoài khối "always"
    * reg - Thể loại này chỉ có thể viết vô ở trong khối "always"
    Chúc một ngày vui vẻ
    Tony
    email : dientu_vip@yahoo.com

    Comment


    • #3
      Nguyên văn bởi tonyvandinh Xem bài viết
      Có 2 thể loại cho internal drivers:

      * wire - Đường ra tự động là ở thể loại này. Thể loại này chỉ có thể viết vô ở ngoài khối "always"
      * reg - Thể loại này chỉ có thể viết vô ở trong khối "always"
      Dễ hiểu nhầm reg là register nhỉ :-s

      Comment


      • #4
        Nguyên văn bởi jefflieu Xem bài viết
        Dễ hiểu nhầm reg là register nhỉ :-s
        Chắc đa số dùng khối "always" cho clock process và đường ra của khối này đều synthesize ra register nhưng có đôi khi khối "always" còn được dùng để thiết kế combinational logic cho nên cái tên reg đôi lúc làm mọi người hiểu lầm là cho register .
        Chúc một ngày vui vẻ
        Tony
        email : dientu_vip@yahoo.com

        Comment


        • #5
          Hi kataraus,

          Do bạn đang tập viết verilog nên luyện văn phong trong viết code rất quan trọng. Văn phong sẽ giúp cho bạn gợi nhớ chức năng của từng biến, từng module, từng vòng lặp. Ví dụ khi bạn viết một module có nhiều biến reg, trong đó một số dùng mô tả mạch tổ hợp, một số lại dùng mô tả mạch tuần tự. Do đó bạn phải tìm cách gợi nhớ, đơn giản nhất là đặt tên biến đó.
          ví dụ: reg <name 0>_reg; // Cho mạch tuần tự
          reg <name 1>; // Cho mach tồ hợp
          wire <name 2>_w; // Cho dây nối
          input <name 3>_in;
          output <name 4>_out;
          ...
          Bạn có thể lên google tìm thêm tài liệu về coding style cho verilog. Bạn có thể tham khảo thêm các code mẫu của Altera, Xilinx, Metor-Graphics, Synosys, Opencore.org.

          Chúc vui
          Last edited by danbeo85; 17-04-2010, 18:21.

          Comment

          Về tác giả

          Collapse

          kataraus Tìm hiểu thêm về kataraus

          Bài viết mới nhất

          Collapse

          Đang tải...
          X