Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về Verilog

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

  • Cần giúp đỡ về Verilog

    mình mới học verilog, nên có nhiều chỗ còn chưa hiểu rõ mong mọi người chỉ giáo cho mình về kiểu dữ liệu net. Theo nhiều tài liệu mình đọc cả tiếng việt lẫn tiếng anh thì Wand và Wor sẽ synthesize ra cổng AND/OR nhưng mình vẫn thấy nó mâu thuẫn với những gì mình biết về Wand/Wor. Cho một ví dụ như thế này:
    Wand z;
    buff(pull1,pull0)(z,a);
    buff(pull1,pull0)(z,b);
    khi a=1,b=0 thì kết quả =0 như kết quả thu được từ cổng AND nhưng
    buff(pull1,weak0)(z,a);
    buff(pull1,weak0)(z,b);
    khi a=1,b=0 thì kết quả bằng 1
    Rõ ràng khi 2 driver cùng độ mạnh thì kết quả sẽ giống cổng logic AND nhưng khi 2 driver có độ mạnh khác nhau thì kết quả là độ mạnh và giá trị của driver có độ mạnh lớn hơn. Nhưng vấn đề là các tài liệu mà mình đọc đều nói mạch sẽ synthesize ra cổng AND như vậy trường hợp thứ 2 sẽ xử lý như thế nào. Mong mọi người cho ý kiến và giúp đỡ nhé!

  • #2
    oi, khong ai giup minh duoc a, minh dang can

    Comment


    • #3
      Chào bạn stupid_geniu,

      Theo mình biết thì kiểu dữ liệu net wand hay wor cho phép bạn nối hai hoặc nhiểu hơn đầu ra vào cùng một điểm. Tùy vào công cụ tổng hợp mạch mà nó sẽ tự động chèn loại cổng and hay or cho bạn. Và bạn thông thường sẽ không biết nó sẽ cung cấp cho bạn cổng and nào hoặc cổng or nào. Một kinh nghiệm mình học được khi làm thiết kế số là nếu mình biết, viết code thế này thì mạch thực tế nó sẽ thế nào, sẽ cực kỳ tốt (think hardware design, no software programming).

      Trong trường hợp của bạn nếu bạn khai báo z là một net loại wand, nghĩa là bạn muốn tất cả các tín hiệu ra từ khối khác nối tới z sẽ phải and lại với nhau để cho ra z, thì tại sao bạn không khai báo z chỉ là net rồi bạn chèn cổng and vào, như vậy bạn sẽ chắc chắn nhất về mạch cuối cùng của bạn sẽ thế nào. Như thế bạn sẽ không phải bận tâm nữa. Tuy nhiên bảng sự thật mà các công cụ tổng hợp mạch cung cấp cho bạn sẽ thế này:

      +wand:
      00 -> 0
      01 -> 0
      0Z -> 0
      0X -> 0
      11 -> 1
      1Z -> X
      1X -> X
      ZZ -> Z
      ZX -> X
      XX -> X

      P/S: nếu bạn thấy sai so với bảng này thì bạn cần kiểm tra lại chắc chắn kiểu dữ liệu đầu ra mạch buff của bạn

      Chúc bạn thành công!
      Thân mến,
      Last edited by hithere123; 14-03-2012, 11:43. Lý do: thêm ps

      Comment


      • #4
        Nguyên văn bởi hithere123 Xem bài viết
        Chào bạn stupid_geniu,

        Theo mình biết thì kiểu dữ liệu net wand hay wor cho phép bạn nối hai hoặc nhiểu hơn đầu ra vào cùng một điểm. Tùy vào công cụ tổng hợp mạch mà nó sẽ tự động chèn loại cổng and hay or cho bạn. Và bạn thông thường sẽ không biết nó sẽ cung cấp cho bạn cổng and nào hoặc cổng or nào. Một kinh nghiệm mình học được khi làm thiết kế số là nếu mình biết, viết code thế này thì mạch thực tế nó sẽ thế nào, sẽ cực kỳ tốt (think hardware design, no software programming).

        Trong trường hợp của bạn nếu bạn khai báo z là một net loại wand, nghĩa là bạn muốn tất cả các tín hiệu ra từ khối khác nối tới z sẽ phải and lại với nhau để cho ra z, thì tại sao bạn không khai báo z chỉ là net rồi bạn chèn cổng and vào, như vậy bạn sẽ chắc chắn nhất về mạch cuối cùng của bạn sẽ thế nào. Như thế bạn sẽ không phải bận tâm nữa. Tuy nhiên bảng sự thật mà các công cụ tổng hợp mạch cung cấp cho bạn sẽ thế này:

        +wand:
        00 -> 0
        01 -> 0
        0Z -> 0
        0X -> 0
        11 -> 1
        1Z -> X
        1X -> X
        ZZ -> Z
        ZX -> X
        XX -> X

        P/S: nếu bạn thấy sai so với bảng này thì bạn cần kiểm tra lại chắc chắn kiểu dữ liệu đầu ra mạch buff của bạn

        Chúc bạn thành công!
        Thân mến,
        Cám ơn bạn đã trả lời bài của mình nhưng mình không phải có ý đó mà mình không hiểu tại sao Wand/Wor khi synthesize ra cổng AND/OR mà các tài liệu tham khảo mà mình đọc được nói như vậy nhưng nếu dựa trên ý nghĩa mà Wand/Wor, thì chỉ khi độ mạnh của các driver bằng nhau thì kết quả mới giống cổng AND/OR nhưng khi 2 driver có độ mạnh khác nhau thì rõ ràng kết quả sẽ khác đi, như vậy thì khi synthesize ở trường hợp 2 đâu thể insert cổng AND/OR vào dây nối Wand/Wor được.

        Comment


        • #5
          Chào bạn,

          Mình nghĩ nó không nằm ở kiểu khai báo wand. Bạn có thể đưa ra giá trị đầu ra z khi a = 0/1/Z/X trong mạch buffer của bạn
          wire z;
          buff(pull1,weak0)(z,a);

          Thân mến,

          P/S: gợi ý thêm cho bạn thế này: wand thông thường sẽ không chèn cổng "and" thực sự cho bạn mà sẽ chèn dạng mạch open-drain mà có chức năng giống and. Vậy trong trường hợp đầu ra vào của and không khỏe như nhau thì nó sẽ tuân theo nguyên tắc anh nào mạnh hơn sẽ thắng. a = 1 thì đầu ra của buff là 1 với độ khỏe là "pull". b= 0 thì đầu ra của buff là 0 với độ khỏe là "weak". So sánh về độ khỏe thì "pull" khỏe hơn "weak". Do vậy kết quả mô phỏng của bạn là 1 là kết quả đúng khi mô phỏng. Tuy nhiên xuống tới mạch thì sẽ không có khái niệm pull hay weak. Nó chỉ có 3 trạng thái cơ bản sau: 0 --> VSS; 1 --> VDD; Z--> open-drain (thằng nào khỏe hơn thì sẽ ăn); và X --> nằm ở đâu đó chỉ có chúa mới biết.
          Last edited by hithere123; 14-03-2012, 15:12. Lý do: thêm p/s

          Comment


          • #6
            a, mà bạn cho mình hỏi thêm về cái open-drain. bạn có tài liệu nào nói về vấn đề này không share mình với. Cảm ơn bạn trước nha!!!

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            • bqviet
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi bqviet
              Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
              06-12-2025, 17:17
            • nguyendinhvan
              Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
              bởi nguyendinhvan
              Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
              05-12-2025, 19:59
            • afrendly
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi afrendly
              Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
              04-12-2025, 01:27
            • nick22
              Trả lời cho Máy điện châm ?
              bởi nick22
              Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
              01-12-2025, 13:23
            Đang tải...
            X