Thông báo

Collapse
No announcement yet.

Tư vấn chọn đề tài thiết kế SOC

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

  • Tư vấn chọn đề tài thiết kế SOC

    Em chào các Bác!
    Em đã mày mò một thời gian về kiến thức thiết kế ic cả tương tự lẫn số. Hiện nay em đang có trong tay một số bộ công cụ thiết kế IC của hãng Cadence.
    Em đang muốn thực hiện một đề tài VLSI để có thêm kinh nghiệm và đang phân vân không biết nên chọn đề tài nào.
    Em dự định sẽ thiết kế một bộ ALU 32 bit (MIPS). Nếu ok em sẽ làm tiếp các module khác để thiết kế SoC. Tuy nhiên em chưa thiết kế số (full) bao giờ. Thành ra Em chưa có kinh nghiệm trong sử dụng công cụ cũng như kiến thức tạo Standard Cell, Verification, tổng hợp (Synthesis), phân tích timing....Dù đã hiểu quy trình thiết kế vi mạch số. Vậy nên rất mong các Bác tư vấn giúp đỡ.

    Không biết đề tài em chọn như trên có phù hợp với khả năng của em không ? Hoặc các Bác có thể đưa ra những đề tài phù hợp cho em được không?
    Hiện em đã code ngôn ngữ Verilog HDL cho module ALU 32 bit ( thực hiện được 4 lệnh MIPS : ADD, SUB, XOR, SLT ). Năm trước khi thực hiện đồ án vi xử lý, bọn em đã Verification and Check trên Modelsim, kết quả thỏa mãn function về mặt logic. Em sẽ rất vui đưa code lên trong bài sau khi mà các Bác góp ý. Trong bộ công cụ của Cadence có bộ NC-Verilog dùng để Verification.
    Em được biết sau bước trên là bước Pre-Layout Synthesis và phân tích timing và Cadence có bộ Encounter RTL compiler để thực hiện bước này ?
    Theo như em hiểu thì ở bước này, người ta gắn các Standard Cell vào bằng việc viết Constrain trên công cụ để công cụ biên dịch thành Pre-Layout netlist.
    Vậy các bác cho em hỏi Standard Cell là gì ? Ví dụ? Có phải nó là những thành phần cơ biết nhất của một module nào đó? Nếu vậy thì ALU 32 bit của em sẽ có các standart cell như sau : các cổng AND, OR, XOR, NOT...?
    Virtuoso ADE được dùng để thiết kế Standard Cell này phải không ạ?

    EM cảm ơn các Bác!
    Trân trọng!

  • #2
    Nguyên văn bởi ngoclinh_xl Xem bài viết
    Không biết đề tài em chọn như trên có phù hợp với khả năng của em không ? Hoặc các Bác có thể đưa ra những đề tài phù hợp cho em được không?
    Chỉ khi bạn bắt tay vào làm thì bạn mới biết khả năng của bạn tới đâu. Qua những gì bạn mô tả nhất là những gì bạn hỏi về standard cell thì quan điểm cá nhân của mình là con đường bạn thực hiện đề tài này sẽ gian nan đấy. Quan trọng là bạn có bị giới hạn thời gian thực hiện đề tài này không; hoặc mục tiêu đề ra là tape out hay chỉ làm tới layout?

    Nguyên văn bởi ngoclinh_xl Xem bài viết
    Em được biết sau bước trên là bước Pre-Layout Synthesis và phân tích timing và Cadence có bộ Encounter RTL compiler để thực hiện bước này ?
    Mình dùng đồ của synopsy, nhưng bạn có đồ của cadence cũng okie, tool không quan trọng bằng flow, khi bạn xác định được flow chuẩn rồi thì nó giống kiểu bạn viết thư bằng bút bi Thiên Long hay Bến Nghé mà thôi.

    Nguyên văn bởi ngoclinh_xl Xem bài viết
    Vậy các bác cho em hỏi Standard Cell là gì ? Ví dụ?
    Bạn tưởng tượng thế này cho dễ hình dung nhé, khi tool đọc thiết kế NẾU a='1' THÌ out=in1 CÒN KHÔNG THÌ out= in2, nó sẽ hiểu đây là mux. Bây giờ bạn muốn synthesis thì nghĩa là bạn chỉ cho tool của bạn chỗ để nó link tới mạch mux. Chỗ có mạch mux là standard cell library. Tuy nhiên đầu ra của nó là một file text kiểu

    MUXxxx U1( .A(in1), .B(in2), .Z(out), .S(a) );

    Ở đây đặt ra vấn đề là các standard cell cần có các view khác nhau để các tool có thể hiểu nó, ví dụ synthesis netlist cần dùng view a, timing cần thêm view b trong đó có thông tin về timing, place & route cần view c... nó không đơn thuần chỉ là mạch điện thực hiện chức năng mux mặc dù cuối cùng về mặt logic nó đúng là phần silicon thực hiện chức năng mux.

    Nguyên văn bởi ngoclinh_xl Xem bài viết
    Có phải nó là những thành phần cơ biết nhất của một module nào đó?
    Nó là thành phần cơ bản nhất để thực hiện các mạch số, không giới hạn cho một module cụ thể nào

    Nguyên văn bởi ngoclinh_xl Xem bài viết
    Nếu vậy thì ALU 32 bit của em sẽ có các standart cell như sau : các cổng AND, OR, XOR, NOT...?
    Đúng, nếu mạch alu 32 bít chỉ cần and, or, xor, not là tổng hợp được. Nhưng mình thắc mắc là nếu không có flipflop, hoặc latch thì bạn lưu data tính toán bằng cái gì.

    Nguyên văn bởi ngoclinh_xl Xem bài viết
    Virtuoso ADE được dùng để thiết kế Standard Cell này phải không ạ?
    Thiết kế standard cell = thiết kế ic tương tự + flow để standardize mạch thành các view sao cho phù hợp với yêu cầu trong thiết kế số, từ chuyên ngành là full custom design.

    Thân mến

    Comment


    • #3
      Nguyên văn bởi hithere123 Xem bài viết
      Chỉ khi bạn bắt tay vào làm thì bạn mới biết khả năng của bạn tới đâu. Qua những gì bạn mô tả nhất là những gì bạn hỏi về standard cell thì quan điểm cá nhân của mình là con đường bạn thực hiện đề tài này sẽ gian nan đấy. Quan trọng là bạn có bị giới hạn thời gian thực hiện đề tài này không; hoặc mục tiêu đề ra là tape out hay chỉ làm tới layout?
      Vâng Em chào Bác Hithere123,
      Em có đến nữa năm hoặc 1 năm để làm đề tài này vậy nên làm đến tape-out thì càng tốt ạ. Em có tham khảo khóa "Digital VLSI Chip Design with Cadence and Synopsys CAD Tools" trên trang Digital VLSI Chip Design , thì được biết là dùng virtuoso ADE để build standard cell. Trên trang wed cũng có cấp library khá là đầy đủ để design MIPS. Em nghĩ sẽ làm theo các bước như khóa này chỉ dẫn.
      Như vậy standard cell library coi như đã có sẵn. Việc tự thiết kế nên standard cell thì chắc em phải luyện kỹ lại cuốn "A Digital Integrated Circuits-A Design Perspective" thì may ra Bác nhỉ.. nên em sẽ tạm gác qua bước này. EM sẽ tham khảo thêm ý kiến của Bác Hithere123 và các Bác trong những ngày tới.
      Chân thành cảm ơn Bác!

      Comment


      • #4
        Chào bạn Ngoclinh_xl,

        Tớ không hiểu rõ ý của bạn lắm. Nếu như bạn muốn lấy kinh nghiệm thì làm bất kỳ cái gì bạn cũng đều lấy kinh nghiệm được cả. Ngoài ra, làm project có phù hợp với bạn hay không thì chỉ có bạn, hoặc thầy của bạn, sếp của bạn biết thôi, người khác làm sao biết được. Tuy nhiên tớ nghĩ chẳng ai tự nhiên đi làm cái gì vô ích cả. Hoặc là thầy của bạn yêu cầu bạn làm, hoặc là khách hàng trả tiền cho bạn làm, còn nếu không thì bạn làm làm gì. Ngành vi điện tử cũng rộng lớn lắm, analog, digital, back end, front end... có bao nhiêu thứ, bạn muốn học về phần nào, không phải bạn định làm từ A đến Z đó chứ.

        Ngoài ra tớ nghĩ rằng mầy mò tìm hiểu nghiên cứu là tốt, nhưng nếu có người chỉ dẫn thì sẽ càng nhanh, thuận lợi và tốt hơn nữa. Bạn làm sai sẽ có người chỉ và giải thích cho bạn. Vậy nên tốt nhất làm bạn hỏi ý kiến thầy hoặc sếp của mình xem mình nên làm cái gì, ai có thể hướng dẫn mình.

        Nhân tiện tớ thấy bạn có vẻ không hiểu rõ về standard cell nên tớ giải thích một chút.

        Standard cell là phần tử logic cơ bản dùng để thiết kế mạch số. Nó có thể là AND gate, NAND gate, NOR gate... Sau đây tớ giới thiệu một số tích chất của standard cell.

        1. Về layout, standard cell có dạng hình chữ nhật, có kích thước theo 2 chiều là số nguyên lần của track. Một track là chiều rộng nhỏ nhất đường kết nối (kim loại) cộng với chiều rộng nhỏ nhất khoảng cách giữa chúng. Ví dụ như kích thước nhỏ nhất của đường nối kim loại là 0.1 um, khoảng cách nhỏ nhất giữa 2 đường là 0.1 um, vậy thì track là 0.2um. Bạn cứ hình dung chip của bạn là một tờ giấy kẻ ô ly. Kích thước mỗi ô là một track. Như vậy bạn có thể xếp các standard cell khác nhau vào những ô đó (vì kích thước mỗi standard cell theo cả 2 chiều là một số nguyên lần track). Sau khi sắp xếp xong các cell thì ta cần phải kết nối chúng. Việc kết nối cũng rất dễ dàng vì các đường nối kim loại sẽ chạy dọc theo các track, và khoảng cách giữa chúng chính là chiều rộng nhỏ nhất giữa các đường nối.
        2. Thông thường các standard cell có cùng chiều cao ví dụ như 8 track, 12 track. Như vậy ta có thể xếp các standard cell này thành một hàng. Các standard cell này có đường nối với nguồn ở bên trên thường là lớp kim loại thứ nhất, và đất ở bên dưới cũng là lớp kim loại thứ nhất chạy song song theo cell. Như vậy khi xếp các cell này lại với nhau, đường nối nguồn và đất cũng tự động nối với nhau. Người ta dùng lớp kim loại thứ nhất là bởi vì IR drop sẽ nhỏ nhất. Bạn biết rằng dòng điện cuối cùng sẽ phải chạy qua lớp bán dẫn xuống đất. Nếu như dùng lớp kim loại thứ 2, thì dòng điện sẽ phải chạy qua contact 1 giữa lớp kim loại 1 và 2, qua lớp kim loại 1, qua lớp bán dẫn nên IR drop sẽ lớn hơn. Thông thường các standard cell dùng toàn bộ các lớp từ kim loại 1 trở xuống và một số điểm của kim loại 2. Toàn bộ phần còn lại dùng để tạo các đường liên kết giữa các cell.
        3. Chiều cao của standard cell là một trong những yếu tố để trade-off cho thiết kế. Thông thường chiều cao cell càng nhỏ thì sau này tổng hợp mạch càng nhỏ. Tuy nhiên vì mạch nhỏ nên thường không có chỗ cho các đường kết nối dẫn đến việc kết nối nhiều khi vòng vèo làm cho mạch thường chạy chậm hơn một chút. Chiều cao của cell lớn hơn một chút sẽ giúp mạch chạy nhanh hơn. Nói chung đây là trade-off dành cho những mạch tốc độ cao như processor. Với phần lớn thiết kế, người ta dùng những cell nhỏ khoảng 7/8 track.
        4. Những công nghệ mới yêu cầu việc layout phải tương tự nhau mới có thể tăng tỉ lệ sản phẩm. Vì vậy mà người ta bao giờ cũng phải dùng filler cell. Đó là những cell chẳng có chức năng gì cả, thêm vào chỉ để giúp cho việc layout không bị lỗi. Tuy nhiên người ta cũng lợi dụng những filler cell này để loại bỏ kểt nối bulk trong các cell thông thường rồi thêm vào trong filler cell. Việc này cũng làm giảm nhỏ chiều cao của standard cell. Có một số thiết kế dùng filler cell như một tụ điện để ổn định điện áp nguồn. Tuy nhiên việc làm này làm tăng leakage current, do mỗi tụ như vậy đều có leakage current. Việc thêm vào bao nhiều là đủ cần phải tính toán chi tiết.
        5. Thông thường mỗi một library có khoảng vài trăm (200-400) standard cell. Nếu như standard cell chỉ là mấy cổng logic cơ bản thì sao một thư viện lại có nhiều vậy. Cái này có nhiều nguyên nhân.
        -Thứ nhất, có thể là standard cell dành cho IO có điện áp cao (1.8V, 2.5V...) Loại này thiết kế với lớp silicon dioxide dày, và có kích thước lớn; có thể là cell dành cho core, chạy với điện áp thấp (0.9V...) với lớp oxide mỏng.
        -Thứ hai có thể là cell loại công suất thấp, hoặc công suất cao. Loại công suất thấp là loại có mật độ pha tạp nhỏ, sub-threadhold leakage current nhỏ, nhưng chay chậm hơn loại công suất cao và bình thường.
        -Thứ ba là mỗi một hàm logic, người ta làm nhiều cell với độ mạnh yếu đầu ra khác nhau. Cái này tương tự như điện trở có cùng trị số nhưng công suất khác nhau. Cell có độ mạnh lớn có thể dùng để đưa tín hiệu vào nhiều cell cùng một lúc.
        -Thứ tư là người ta làm một số cell complex ví dụ như y=not (A and (not B)). Tại sao người ta lại dùng loại cell này mà không kết hợp vài cell cơ bản lại. Đó là bởi vì các cell này có diện tích nhỏ hơn lại không phải dùng thêm đường kết nối. Tuy nhiên nếu cần thiết thì phần mềm cũng có thể tự động lựa chọn giải pháp tối ưu khác.

        Nếu bạn thích đọc về standard cell thì khi nào tớ kiếm sách viết về standard cell rồi gửi cho bạn.

        Comment


        • #5
          Em chào Bác Rommel.de,

          Tớ không hiểu rõ ý của bạn lắm. Nếu như bạn muốn lấy kinh nghiệm thì làm bất kỳ cái gì bạn cũng đều lấy kinh nghiệm được cả. Ngoài ra, làm project có phù hợp với bạn hay không thì chỉ có bạn, hoặc thầy của bạn, sếp của bạn biết thôi, người khác làm sao biết được. Tuy nhiên tớ nghĩ chẳng ai tự nhiên đi làm cái gì vô ích cả. Hoặc là thầy của bạn yêu cầu bạn làm, hoặc là khách hàng trả tiền cho bạn làm, còn nếu không thì bạn làm làm gì. Ngành vi điện tử cũng rộng lớn lắm, analog, digital, back end, front end... có bao nhiêu thứ, bạn muốn học về phần nào, không phải bạn định làm từ A đến Z đó chứ.
          Em không biết nên trả lời Bác câu hỏi này như thế nào nữa! Chắc em quá tự tin vào bản thân nên thế này đây. Đến đây em cũng thú nhận với Bác luôn. Quy tắc học và nghiên cứu của em làm nắm bắt sự tổng quát rồi mới đi sâu vấn đề. Vì em nghĩ khi nắm bắt được tính tổng quát của một chuỗi sự vật, hiện tượng thì dễ dàng đi sâu từng sự vật hiện tượng hơn và kiến thức cũng vậy. Từ đó sẽ dễ có những ý tưởng mới hơn đê khắc phục vấn đề tổng quát. Hơn nữa bản tính em hơi kỳ quặc, giả sử một team làm một project. Em làm phần Nguồn chẳng hạn, người A làm phần DSP, người B làm bộ nhớ RAM.... Giả sử Em đã làm tốt phần của mình, nhưng trong lòng em luôn thắc mắc là người B hay A kia nó làm ra sao, thế nào và khi ghép các phần với nhau thì thế nào...? Vì thế khi làm các đồ án thiết kế mạch board, hay mô phỏng lúc học đại học em đều làm tất, ngoại trừ viết báo cáo (report) hay gia công board mạch là giao cho những người khác trong nhóm làm, nhóm thường 3 đến 5 người. Phải công nhận đây là một tính xấu.
          Tất nhiên là việc đi sâu vào từng mảng thì lúc nào chán hoặc cảm thấy theo không nổi hoặc không có thời gian thì em lại tạm gác lại Bác ạ.


          Nhân tiện tớ thấy bạn có vẻ không hiểu rõ về standard cell nên tớ giải thích một chút.

          Standard cell là phần tử logic cơ bản dùng để thiết kế mạch số. Nó có thể là AND gate, NAND gate, NOR gate... Sau đây tớ giới thiệu một số tích chất của standard cell.

          1. Về layout, standard cell có dạng hình chữ nhật, có kích thước theo 2 chiều là số nguyên lần của track. Một track là chiều rộng nhỏ nhất đường kết nối (kim loại) cộng với chiều rộng nhỏ nhất khoảng cách giữa chúng. Ví dụ như kích thước nhỏ nhất của đường nối kim loại là 0.1 um, khoảng cách nhỏ nhất giữa 2 đường là 0.1 um, vậy thì track là 0.2um. Bạn cứ hình dung chip của bạn là một tờ giấy kẻ ô ly. Kích thước mỗi ô là một track. Như vậy bạn có thể xếp các standard cell khác nhau vào những ô đó (vì kích thước mỗi standard cell theo cả 2 chiều là một số nguyên lần track). Sau khi sắp xếp xong các cell thì ta cần phải kết nối chúng. Việc kết nối cũng rất dễ dàng vì các đường nối kim loại sẽ chạy dọc theo các track, và khoảng cách giữa chúng chính là chiều rộng nhỏ nhất giữa các đường nối.
          2. Thông thường các standard cell có cùng chiều cao ví dụ như 8 track, 12 track. Như vậy ta có thể xếp các standard cell này thành một hàng. Các standard cell này có đường nối với nguồn ở bên trên thường là lớp kim loại thứ nhất, và đất ở bên dưới cũng là lớp kim loại thứ nhất chạy song song theo cell. Như vậy khi xếp các cell này lại với nhau, đường nối nguồn và đất cũng tự động nối với nhau. Người ta dùng lớp kim loại thứ nhất là bởi vì IR drop sẽ nhỏ nhất. Bạn biết rằng dòng điện cuối cùng sẽ phải chạy qua lớp bán dẫn xuống đất. Nếu như dùng lớp kim loại thứ 2, thì dòng điện sẽ phải chạy qua contact 1 giữa lớp kim loại 1 và 2, qua lớp kim loại 1, qua lớp bán dẫn nên IR drop sẽ lớn hơn. Thông thường các standard cell dùng toàn bộ các lớp từ kim loại 1 trở xuống và một số điểm của kim loại 2. Toàn bộ phần còn lại dùng để tạo các đường liên kết giữa các cell.
          3. Chiều cao của standard cell là một trong những yếu tố để trade-off cho thiết kế. Thông thường chiều cao cell càng nhỏ thì sau này tổng hợp mạch càng nhỏ. Tuy nhiên vì mạch nhỏ nên thường không có chỗ cho các đường kết nối dẫn đến việc kết nối nhiều khi vòng vèo làm cho mạch thường chạy chậm hơn một chút. Chiều cao của cell lớn hơn một chút sẽ giúp mạch chạy nhanh hơn. Nói chung đây là trade-off dành cho những mạch tốc độ cao như processor. Với phần lớn thiết kế, người ta dùng những cell nhỏ khoảng 7/8 track.
          4. Những công nghệ mới yêu cầu việc layout phải tương tự nhau mới có thể tăng tỉ lệ sản phẩm. Vì vậy mà người ta bao giờ cũng phải dùng filler cell. Đó là những cell chẳng có chức năng gì cả, thêm vào chỉ để giúp cho việc layout không bị lỗi. Tuy nhiên người ta cũng lợi dụng những filler cell này để loại bỏ kểt nối bulk trong các cell thông thường rồi thêm vào trong filler cell. Việc này cũng làm giảm nhỏ chiều cao của standard cell. Có một số thiết kế dùng filler cell như một tụ điện để ổn định điện áp nguồn. Tuy nhiên việc làm này làm tăng leakage current, do mỗi tụ như vậy đều có leakage current. Việc thêm vào bao nhiều là đủ cần phải tính toán chi tiết.
          5. Thông thường mỗi một library có khoảng vài trăm (200-400) standard cell. Nếu như standard cell chỉ là mấy cổng logic cơ bản thì sao một thư viện lại có nhiều vậy. Cái này có nhiều nguyên nhân.
          -Thứ nhất, có thể là standard cell dành cho IO có điện áp cao (1.8V, 2.5V...) Loại này thiết kế với lớp silicon dioxide dày, và có kích thước lớn; có thể là cell dành cho core, chạy với điện áp thấp (0.9V...) với lớp oxide mỏng.
          -Thứ hai có thể là cell loại công suất thấp, hoặc công suất cao. Loại công suất thấp là loại có mật độ pha tạp nhỏ, sub-threadhold leakage current nhỏ, nhưng chay chậm hơn loại công suất cao và bình thường.
          -Thứ ba là mỗi một hàm logic, người ta làm nhiều cell với độ mạnh yếu đầu ra khác nhau. Cái này tương tự như điện trở có cùng trị số nhưng công suất khác nhau. Cell có độ mạnh lớn có thể dùng để đưa tín hiệu vào nhiều cell cùng một lúc.
          -Thứ tư là người ta làm một số cell complex ví dụ như y=not (A and (not B)). Tại sao người ta lại dùng loại cell này mà không kết hợp vài cell cơ bản lại. Đó là bởi vì các cell này có diện tích nhỏ hơn lại không phải dùng thêm đường kết nối. Tuy nhiên nếu cần thiết thì phần mềm cũng có thể tự động lựa chọn giải pháp tối ưu khác.

          Nếu bạn thích đọc về standard cell thì khi nào tớ kiếm sách viết về standard cell rồi gửi cho bạn.
          Dạ vâng, Em cảm ơn Bác! Đọc những kiến thức trên em thấy việc thiết kế standard cell chắc sẽ mất rất nhiều thời gian trong quá trình thiết kế dự án.
          Em có đọc bài viết của Bác ở #3 Thread này http://www.dientuvietnam.net/forums/...mach-so-46574/, vì vậy em kết luận như này không biết có đúng không?
          - Giả sử ta đã tạo xong 1 standard cell A. Vậy output của nó có phải là các file lef (Layout Exchange Format) là file mô tả layout của các phần tử, lib (file model để Design compiler tổng hợp mạch), sdf (Standard Delay Format), spef (standard parasitic exchange format) ? Sau đó công cụ X nào đó sẽ load các file này cùng với RTL netlist (là netlist sau khi compiler verilog code) để tạo ra layout netlist ( là netlist dùng để place and route ) ? Vậy công cụ X này trọng bộ tools của cadence là công cụ gì vậy Bác?
          P/S Nếu Bác có sách hay thì Bác hãy gửi cho chúng em với ạ. Mong có thêm những lời khuyên của các Bác.
          Trân Trọng!

          Comment


          • #6
            Chào bạn Ngoclinh_xl,

            Phần mềm của cadence synthesize từ RTL code sang gate netlist gọi là RTL compiler. Nếu bạn gọi lệnh để chạy thì là rc &.

            Nhân tiện thấy bạn thích làm từ A đến Z tớ kể chuyện vui cho mọi người nghe.

            Không biết ở đây có nhiều bạn làm về verification không. Ngày xưa thì người ta dùng directed test để verify, tức là làm testbench đó. Khi đó người ta làm verification plan trên excel, có mấy chục hoặc mấy trăm trường hợp, sau khi verify hết mấy trường hợp đó là xong. Bây giờ thì người ta dùng eplan tiện hơn excel nhưng cũng tương tự như vậy. Sau này thì người ta nghĩ ra formal verification. Formal verification không được ứng dụng nhiều lắm vì formal verification không verify được những mạch lớn, và viết formal verification khá khó, nhưng hiệu quả cho những mạch nhỏ thì không lớn. Bây giờ thì người ta hay sử dụng UVM, tự động sinh ngẫu nhiên các biến đầu vào và kiểm tra ở đầu ra.

            Chuyện vui là thế này, Verilog là ngôn ngữ mô tả phần cứng rất tốt. Vậy là người ta nghĩ mở rộng Verilog ra thành systemverilog với mục đích chính là verification. Người ta đặt ra các class, property, coverage... Sau này khi dùng UVM thì người ta lại tạo thêm ra các wrapper cho base class như uvm_driver, uvm_test... với cơ chế factory... Thật ra tất cả những cái đó chỉ là để UVM Systemverilog tương tự như ngôn ngữ specman e chuyên dùng cho verification mà thôi. Nếu như so sánh specman e với UVM Systemverilog thì specman e đơn giản và dễ sử dụng hơn. Tuy nhiên nếu bạn muốn dùng specman e thì lại phải học thêm một ngôn ngữ nữa. Nhưng mà thật ra bây giờ thì Verilog và UVM Systemverilog cũng đã có thể coi như hai ngôn ngữ khác nhau rồi. Cách tư duy và lập trình trong 2 ngôn ngữ hoàn toàn khác nhau. Ví dụ như khi mô tả mạch, code thường chạy song song, trong khi verify, code thường chạy tuần tự.

            Nhiều khi không phải cái gì cũng có thể 2 in 1 được.

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X