Thông báo

Collapse
No announcement yet.

Các bước và công cụ tương ứng cho thiết kế vi mạch số

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

  • Các bước và công cụ tương ứng cho thiết kế vi mạch số

    dưới đây là các công cụ của cadence,mentor,synopsys,magma cho thiết kế vi mạch số

    mỗi hãng có một chu trình các bước thiết kế khác nhau ,đây chỉ là tổng hợp chung của tôi sau gần 1 năm tìm hiểu tính năng và cách sử dụng chúng

    không phải tất cả IC đều làm như các bước trên
    ,có thể bỏ một vài bước hoặc đổi thứ tự ...
    khi có thời gian tôi sẽ làm các bước cùng hình minh họa đi kèm

    ở đây có rất nhiều projects mở như ARM,DES,AES,controller ... bằng VHDL,verilog ,... các bạn có thể tham khảo

    http://opencores.org/


    1,Design Entry (vhdl,verilog,systemC…)


    2,RTL simulation:NC verilog,modelsim,vcs


    3,RTL synthesis :RTL compiler,DC Compiler ,blast create


    4,Gate level simulation:NC verilog,modelsim


    5,Formal checking: Formality,Conformal


    6,Design for Test(scan insertion,memory bist,boundary scan chain insertion ,atpg):cadence et ,mentor DFT,synopsys Tetramax


    7,Silicon virtual prototyping (consists of I/O,P/R plament,Floorplan planning,Feasibility check ,constraint generation ): encounter,ic compiler,magma(blast plan,blast fusion)


    8,Hierachy floorplan (define partition,timming budgeting,pin optimizatio):encounter,ic compiler


    9,Block /top level (timming ,S/I driven P/R ,physical optimization ,S/I closure ,Block model gen) :encounter,ic compiler ,nanoroute ,global router ,celtIC,pks


    10,Chip assembly and signoff(design flatten,RC extraction ,SI,STA analyze ,power comsumption) :encounter,ic compiler,starrcxt,primetime ,signalstorm,fire&ice,cadence Ets …


    11,Verification (drc,lvs,pex,erc)and Chip finish :virtuoso , assura ,calibre

  • #2
    Bạn ơi, một số khái niệm trên mình không hiểu lắm, cũng do mình mới bắt đầu học thôi, không biết bạn có thể giải thích thêm về từng bước thiết kế không?Thanks!

    Comment


    • #3
      Chào bạn Vuhungster,

      Nếu bạn mới bắt đầu học thì thật khó để có thể giải thích cho bạn hiểu được toàn bộ quá trình thiết kế chip. Ngay cả tớ có nhiều khâu không làm nên cũng không rành hết. Nhưng tớ sẽ cố gắng giải thích từng bước để bạn hiểu. Có lẽ tớ phải viết vài bài mới trình bày hết nổi.

      Trước hết tớ nói sơ lược một chút. Phương pháp thiết kế mạch số thông thường là netlist cái này khác hoàn toàn với thiết kế theo kiểu mạch (schematic). Khi bạn học trong trường người ta thường vẽ các mạch để dạy sinh viên đó là phương pháp schematic. Phương pháp này chỉ có thể vẽ các mạch nhỏ. Nếu mạch có chứa hàng triệu cổng logic thì chẳng ai có thể vẽ nổi. Khi đó mạch được mô tả bằng netlist tức là một file text ghi rõ các phần tử bên trong mạch và cách nối giữa chúng. Có nhiều loại netlist ví dụ như để chạy mô phỏng spice thì có spice netlist, đối với mạch số thì có verilog netlist... Một số các file được sử dụng phụ trợ ví dụ 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) cũng đều là những file text mô tả các thuộc tích khác nhau tương tự như file netlist. Chính vì vậy khi thiết kế theo phương pháp netlist bạn sẽ phải thành thạo với việc đọc các file text này và làm việc hoàn toàn với các file text thay vì các mạch điện theo kiểu truyền thống. Thật ra những người thiết kế như tớ đọc các file netlist nhỏ thì còn hiểu được chứ quá lớn thì cũng không hiểu gì. Nhưng không sao vì điều quan trọng là các phần mềm EDA hiểu là được. Nói vậy không có nghĩa là các bạn chẳng cần hiểu gì về mấy file này vì trong một số trường hợp phần mềm đọc file không đúng hay có thể các bạn làm không đúng thì vẫn cần phải kiểm tra theo cách thủ công tức là mở từng file ra kiểm tra. Nếu các bạn không hiểu các file đó thì không thể tìm ra được vấn đề.

      Điểm thứ 2 tớ muốn lưu ý các bạn là phương pháp này được gọi là semi-custom design vì các công cụ EDA sẽ hỗ trợ rất nhiều cho việc tổng hợp mạch. Nhưng cũng chính vì điều này mà nhiều người có thể ỷ lại vào công cụ. Về mặt lý thuyết các công cụ hoàn toàn có thể hỗ trợ các bạn là từ A đến Z nhưng kết quả thu được sẽ kém xa việc bạn kiểm soát các công cụ một cách chặt chẽ. Tớ hình tượng hóa một chút. Các bạn giống như một vị tướng nắm trong tay nhiều binh lính để đi đánh trận. Cách thứ nhất bạn có thể chẳng cần làm gì cứ sai lính ra trận mà đánh nhau chết bao nhiêu mặc kệ. Cách thứ 2 bạn tìm hiểu xem đối phương bố trí binh lực như thế nào, với các loại vũ khí gì... rồi từ đó bạn điều động quân đội hợp lý, đưa ra chiến lược cho cuộc chiến. Theo cách thứ 2, bạn cũng hoàn toàn không cần phải làm gì vì việc đánh nhau đã có binh lính lo, nhưng kết quả thu được tất nhiên sẽ rất cao. Thiết kế theo phương pháp này cũng vậy. Bạn cần phải hiểu rất rõ mạch bạn cần phải thiết kế là như thế nào và phải biết điều khiển các công cụ để có thể tổng hợp được mạch theo đúng ý muốn của mình. Tớ lấy một số ví dụ để các bạn dễ hiểu hơn.

      Giả thiết bạn cần một vùng bộ nhớ làm buffer. Bạn lựa chọn loại bộ nhớ có băng thông rộng nhưng lại hạ thấp tần số làm việc, và giảm bớt điện áp nguồn cấp. Khi đó dòng điện rò của buffer sẽ được giảm nhỏ. Bên cạnh đó bạn đặt vùng bộ đệm vào sát phần xử lý tín hiệu DSP để giảm quãng đường truyền tải dữ liệu và mạch DSP tiêu thụ nhiều công suất tỏa nhiều nhiều đặt bên cạch phần bộ nhớ tương đối lớn nhưng tiêu thụ công suất ít hơn nên nhiệt phần DSP sẽ được tỏa sang phần bộ đệm giúp giảm nhiệt độ của DSP. Tất cả những thứ như vậy bạn cần phải vẽ sẳn ra trong đầu trước khi làm mặc dù bạn không trực tiếp làm.

      Về việc kiểm soát các công cụ tớ lấy một ví dụ đơn giản. Các bạn viết verilog và tổng hợp mạch. Khi bạn viết verilog bạn cũng phải hiểu rõ cách thức phần mềm tổng hợp tạo mạch để lựa chọn câu lệnh, không phải muốn viết thế nào thì viết. Ví dụ như khi bạn viết câu điều kiện "if" thì bạn cũng biết mạch sẽ sử dụng "mux", khi bạn viết tạo flipflop thì bạn phải sử dụng một đoạn code riêng với đoạn này sẽ chạy phụ thuộc vào xung đồng hồ... Trong nhiều trường hợp các phần mềm EDA hiện nay rất thông minh đủ sức giúp bạn tự tổng hợp một cách tối ưu nhưng cũng không nên dựa hoàn toàn vào chúng. Vì thế các bạn cũng cần hiểu nguyên lý hoạt động của các phần mềm tổng hợp để khi sử dụng chúng có thể đạt được như ý muốn.

      Hôm sau tớ sẽ viết tiếp về các bước thiết kế.

      Comment


      • #4
        Chào các bạn,

        Hôm nay tớ viết thêm một chút.

        Thiết kế mạch trước hết là làm ở mức cao. Cái này tớ cũng không rành lắm và lĩnh vực này rất rộng. Tùy theo từng ứng dụng cụ thể các bạn có thể dùng C++ hay Matlab để mô phỏng hoạt động của mạch. Ví dụ như người ta thiết kế các mạch xử lý tín hiệu... có thể dùng Matlab để mô phỏng rất tốt. Bên cạnh đó hiện nay có xu hướng hardware/software codesign tức là ứng dụng của bạn có một phần chạy bằng phần mềm có một phần chạy bằng phần cứng. Bạn có thể hiểu cái này đơn giản như việc dùng máy tính ở nhà. Máy tính có sound card để xử lý tín hiệu âm thanh nhưng cũng cần vi xử lý để điều khiển những hoạt động khác ví dụ như đọc file từ ổ cứng. Làm codesign cũng tương tự như vậy tức là bạn có một core processor ví dụ mips để điều khiển toàn bộ hệ thống, kết nối với các IP core khác thông qua mạng OCP. Mảng này quá rộng tớ cũng không thể nói hết được.

        Sau khi đã có những thiết kế sơ bộ bạn sẽ bắt đầu thiết kế chi tiết. Bạn sử dụng nhưng ngôn ngữ mô tả phần cứng như VHDL, Verilog để mô tả về mạch bạn muốn thiết kế. Tớ lưu ý lại một lần nữa đây là ngôn ngữ mô tả phần cứng nên mạch của bạn thế nào bạn phải mô tả chính xác như vậy nếu không phần mềm tổng hợp sẽ tổng hợp sai. Bạn không thể đem kiến thức viết ngôn ngữ lập trình vào đây được. Tớ lấy ví dụ một đoạn code:

        always @ (*)
        case (s)
        2'b01: y=a;
        2'b10: y=b;
        2'b11: y=c;
        endcase

        Đoạn code trên nếu bạn tổng hợp sẽ xuất hiện latch vì trường hợp s='00' không xuất hiện trong vòng case nên khi s=00 y sẽ có giá trị trước đó. Dưới đây tớ viết một đoạn code khác tương tự như vậy.

        always @ (*)
        casez (s) //Synopsys_parallel_case
        2'b01: y=a;
        2'b10: y=b;
        2'b11: y=c;
        default: y=1'bx;
        endcase

        Bạn sẽ thấy rằng với đoạn code mới khi s có giá trị 00, thì ta không quan tâm đến giá trị của y. Ngoài ra tớ yêu cầu synopsys tổng hợp đoạn code này một cách song song thay vì tuần tự từng lệnh một. Các ví dụ như trên có rất nhiều và tớ cũng không thể nói hết được. Tớ chỉ có thể lưu ý các bạn khi viết code phải nhớ kĩ rằng các bạn đang mô tả mạch điện không phải đang lập trình.

        Sau đó bạn có thể sử dụng các phần mềm mô phỏng để chạy kiểm tra ví dụ như dùng NC sim của cadence. Chạy mô phỏng để kiểm tra trong một số trường hợp sẽ rất lâu khi mạch có nhiều đầu vào. Ví dụ như mạch có N đầu vào thì các bạn cần có 2 mũ N testing vector. Để kiểm tra nhanh hơn các bạn có thể sử dụng các công cụ formal verification ví dụ như Formality của synopsys. Khi sử dụng formal verification các bạn thay vì viết các testing vector thì các bạn mô tả thuộc tính của mạch. Formal verification cũng có hạn chế là chỉ có thể chạy được những mạch nhỏ vì có sử dụng bộ nhớ cực kì nhiều và chạy sẽ rất chậm với những mạch lớn. Tớ ngày xưa có thấy mọi người dùng qua nhưng tớ không dùng formal verification bao giờ.

        Viết code thì đương nhiên là có lỗi và các bạn phải sử lỗi. Có một lỗi mà nhiều người đã mắc phải nhưng gần như không thể kiểm tra trong quá trình mô phỏng đó là lỗi overflow. Lỗi này cũng không có gì lạ nếu bạn cộng 2 số dương rất lớn lại có thể tổng là một số âm do bị overflow. Mạch cộng của bạn hoàn toàn chính xác, giải thuật của bạn hoàn toàn chính xác như khi dữ liệu vào quá lớn thì nó lại chạy sai. Tên lửa Ariane 5 thử nghiệm bị nổ cũng vì lỗi thiết kế này. Tên lửa thử nghiệm sử dụng bộ điều khiển Ariane 4, nhưng lại dùng động cơ thế hệ mới. Động cơ mới có gia tốc quá lớn nên khi nó bị lệch quỹ đạo bộ điều khiển cố gắng chỉnh lại quỹ đạo nhưng lại bị overflow dẫn đến kết quả tên lửa bị nổ tung. Tớ cũng đã từng thấy một số thiết kế do sai số của công nghệ nên chip khi chế tạo ra ở một số corner như SF bị overflow còn trong trường hợp bình thường TT thì lại chạy đúng. Nói chung lỗi overflow này cần đặc biệt chú ý vì nó rất khó bị phát hiện

        Mấy hôm nữa tớ sẽ nói đến việc tổng hợp mạch

        Comment


        • #5
          Thầy của em cũng hay nói: "khi nghiên cứu hay thực thi một vấn đề gì các bạn nền đứng ra xa một chút nhìn tổng quan rồi sau đó mới bắt tay vào làm những việc cụ thể". Hôm nay đọc bài anh Rommel.de thấy học được nhiều cái hay, đặc biệt cách tiếp cận vấn đề với những ví dụ cụ thể (^^). Khi nào có thời gian tranh thủ viết chia sẻ cho tụi em đi sau nha anh, thanks!

          Comment


          • #6
            Chào bạn Edimark,

            Tớ rất vui khi được bạn động viên và cám ơn bạn. Từ từ rồi tớ sẽ tranh thủ viết thêm. Nhân tiện tớ cũng rất muốn biết phản hồi của các bạn để có thể trình bày hiệu quả hơn. Nếu có phần nào tớ nói chưa được rõ hay bạn muốn tớ trình bày kỹ hơn thì hãy nêu ý kiến. Tớ cũng hi vọng các bạn khác có nhiều kinh nghiệm cùng đóng góp.

            Comment


            • #7
              nói chung quan trọng nhất vẫn là vẫn là mình nghiên cứu,tính toán viết ra code thực thi chương trình và mô phỏng chức năng của nó (modelsim .nc ..) cho đúng với ý tưởng của mình ,sau đó mô phỏng ,phân tích tối ưu về mặt thời gian ,công suất ,nhiễu crosstalk ,giá thành chế tạo ,tổng hợp tức quá trình từ file code ban đầu chúng ta mô tả đầu ra ,vào ,phương thức hoạt đọng của mạch .. +thư viện do foundry cung cấp qua công cụ này nó sẽ tạo ra netlist chuyển về các thành phần chuẩn bên trong thư viện ,trong bước này chúng ta có thể phân tích về mặt thời gian ,công suất .... sau đó mô phỏng cái netlist này nếu không vừa ý có thể tổng hợp lại cùng nhiều tùy chọn trong công cụ .....

              Comment


              • #8
                Chào các bạn,

                Bạn Hungthientu viết thế này thì đúng là ngoài bạn ra có chúa mới hiểu ý bạn muốn nói gì. Những bạn mới bắt đầu làm thiết kế mà đọc hướng dẫn của bạn có thể làm được chắc tớ chết quá. Tớ nghĩ rằng lần sau nếu bạn muốn hướng dẫn mọi người làm thì cũng nên bỏ chút công sức, hướng dẫn đầy đủ rõ rằng hơn.

                Hôm trước tớ đã nói đến việc các bạn sử dụng VHDL hoặc Verilog để mô tả mạch điện cần thiết kế rồi chạy mô phỏng bằng NC sim để sửa lỗi. Hôm nay tớ trình bày tiếp về việc tổng hợp mạch.

                Xét về lý thuyết thì bạn đã mô tả mạch như thế nào thì khi tổng hợp bạn sẽ được mạch như thế. Nhưng trên thực tế các phần mềm tổng hợp mạch như design compiler thường thực hiện việc tối ưu các hàm logic. Chính vì thế ta cần phải biết design compiler có khả năng tối ưu những cái gì và không thể làm nhưng cái gì. Thứ nhất design compiler chỉ có thể tối ưu hàm combinational logic, tức là bên trong không có chứa latch hoặc flipflop. Cái này cũng không có gì là lạ. Một phần nào đó nó cũng tương tự như việc các bạn sử dụng Karnaugh map để tối thiếu hàm logic vậy. Chính vì vậy mà design compiler không có khả năng thay đổi các trạng thái trong FSM, cũng như thay đổi số tầng pipeline. Vì lý do đó nên khi viết RTL code bạn phải xác định chính xác các trạng thái cũng như phân chia pipeline chính xác ngay từ ban đầu.

                Khả năng tối ưu thứ 2 rất tốt của design compiler đó là việc chia sẻ các module để giảm nhỏ diện tích. Tớ lấy ví dụ một đoạn code như thế này.

                if (select)
                y=a+b;
                else
                y=a-b;

                Ta có thể nhận thấy rằng lệnh cộng và lệnh trừ không bao giờ cùng diễn ra. Vì thế ta có thể sử dụng 1 bộ cộng duy nhất để thực hiện việc cộng hoặc việc trừ thay vì sử dụng 2 bộ cộng và trừ riêng biệt. Cái này design compiler làm rất tốt các bạn không cần lo lắng.

                Bây giờ tớ nói một chút về tối ưu về delay time. Bên cạch việc tối thiểu hóa hàm logic, mạch tổng hợp cũng cần phải đảm bảo về mặt thời gian tức là phải chạy đủ nhanh. Tớ lấy một ví dụ đơn giản về sự tối ưu này: Y= (((a & b) & c) & d) Y= ( (a & b) & (c & d)). Các bạn có thể thấy nếu mạch tổng hợp theo cách thứ nhất thì độ trễ là 3 cổng AND, còn theo cách thứ 2 thì độ trễ là 2 cổng AND. Nói chung design compiler tối ưu mặt này cũng rất tốt.

                Tớ nói sơ qua một chút về độ trễ của các cổng logic. Độ trễ này được xác định bằng 3 yếu tố, độ trễ của bản thân cổng logic, độ trễ của tín hiệu đầu vào, và độ trễ của tín hiệu ra. Độ trễ của tín hiệu đầu vào sẽ thay đổi khi điện dung của tải ở đầu vào khác nhau dẫn đến thời gian phóng nạp khác nhau. Tương tự như vậy độ trễ của tín hiệu đầu ra thay đổi khi điện dung ở đầu ra thay đổi dẫn đến việc phóng nạp ở đầu ra cũng khác nhau. Khi điện dung của đầu ra cao hơn rất nhiều điện dung đầu vào người ta có thể sử dụng phương pháp logic effort để giảm tối đa độ trễ cho hàm logic. Về nguyên tắc logical effort tức là bạn chia hàm logic thành từng tầng và sau mỗi tầng ta sử dụng các cổng logic ngày một lớn hơn. Các bạn có thể xem thêm về logical effort ở đây http://en.wikipedia.org/wiki/Logical_effort

                Design compiler khi tối ưu độ trễ cũng sử dụng phương pháp logical effort và đây thực sự là một con dao hai lưỡi. Một mặt nó có thể giúp bạn tối ưu hàm logic nhưng nếu như việc tối độ trễ là không quá quan trọng thì việc sử dụng các cổng logic ngày một lớn lên không nhưng làm tăng diện tích mạch điện mà còn tăng công suất tiêu thụ lên rất nhiều. Chính vì thế khi bạn cần tổng hợp những mạch có điện dung đầu ra rất lớn, tốt nhất bạn không nên tổng hợp mạch trực tiếp. Trong trường hợp này bạn nên khởi tạo thủ công nhưng bộ đệm ở đầu ra, làm cho điện dung ở đầu ra trở nên nhỏ và tổng hợp phần mạch ở trước theo cách thông thường. Nói tóm lại các buffer nên được chèn vào một cách thủ công không nên tổng hợp mạch.

                Một nhược điểm nữa của design compiler là khi tổng hợp mạch, nó làm cho hàm logic trở nên rối loạn rất khó phân biệt. Điều này ảnh hướng đặc biệt lớn đến các đường bus ở trong mạch. Tớ lấy ví dụ trong mạch của bạn có một bus dữ liệu 32 bit kết nối với 4 IP core và 1 SRAM array. Một điều rất rõ rằng là ta muốn dữ liệu chạy trên 32 đường này phải hoàn toàn giống nhau để cho dữ liệu trên cả 32 đường đến và đi đồng thời. Nếu như bạn để design compiler tổng hợp mạch thì chẳng thể nào đảm bảo được điều này. Chính vì thể các mạch trên đường bus như mux... cần phải khởi tạo thủ công để đảm bảo chúng giống hệt nhau.

                Cuối cùng một số mạch đặc biệt bạn cũng không muốn design compiler tổng hợp mà sẽ thiết kế riêng và yêu cầu design compiler tạo đúng theo như vậy. Trong quá trình tổng hợp design compiler tối ưu mạch bằng cách thử nhiều lần cho đến khi đạt được yêu cầu đề ra. Như vậy nếu như ta đã biết chắc mạch phải được thực hiện như thế nào thì chẳng có lý do gì phải tổng hợp và nhiều khi mạch tổng hợp có chất lượng không đạt.

                Sau đây tớ viết một đoạn code để lấy ví dụ làm sao yêu cầu design compiler không tự động tổng hợp mạch:

                function [3:0] mux_4;
                //Synopsys map_to_module my_mux
                //Synopsys return_port_name y
                input[3:0] a, b;
                input s;
                begin //simulation only
                mux_4=(s)?a:b;
                end
                endfunction

                module my_mux(a,b,s,y)
                input [3:0] a, b;
                input s;
                output [3:0] y;
                //Synopsys dc_script_begin
                //dont_touch current_design
                //Synopsys dc_script_end
                MUX1 M01(a[3],b[3],s,y[3]);
                MUX1 M02(a[2],b[2],s,y[2]);
                MUX1 M03(a[1],b[1],s,y[1]);
                MUX1 M04(a[0],b[0],s,y[0]);
                endmodule

                Như bạn có thể thấy hàm mux_4 tớ viết ở trên chỉ là để chạy mô phỏng. Khi tổng hợp mạch Synopsys sẽ nhận ra cần phải map hàm này vào module my_mux. Bên trong module my_mux tớ đã khởi tạo sẵn 4 cổng mux và yêu cầu design compiler không được thay đổi.

                Sau khi các bạn đã biết design compiler làm được những gì, không làm được những gì, cũng như chúng ta cần phải làm thế nào để mạch có thể được tổng hợp theo ý muốn thì cuối cùng chỉ là viết design constraint script. Để tổng hợp mỗi mạch, bạn cần phải chỉ rõ thư viện standard cell cần sử dụng, tần số đồng hồ mạch chạy, skew của đồng hồ, độ trễ tín hiệu đầu vào, độ trễ tín hiệu đầu ra, tải đầu ra, driver đầu vào. Ngoài ra để việc tổng hợp mạch được nhanh và theo ý muốn, bạn cũng nên chỉ rõ những đường critical path để design compiler biết để tối ưu, các đường multi-cycle và false path cũng phải được xác định. Các đường multi-cycle là những đường mà độ trễ của nó là vài xung đồng hồ. False paths là những đường mà tín hiệu sẽ không bao giờ chạy qua.

                Cuối cùng bạn tổng hợp mạch và sẽ thu được một file verilog netlist. Đây là một file verilog bên trong ghi rõ các cổng logic và cách nối giữa chúng trong mạch. Nếu như bạn hiểu và thực hiện chính xác các bước mà tớ nhắc đến thì mạch sau khi tổng hợp sẽ chính xác như mạch bạn muốn thiết kế trong đầu.

                Mấy hôm nữa tớ sẽ giới thiệu với các bạn về standard cell library.

                Comment


                • #9
                  Thank rommel.de .đúng là mình không thể viết chi tiết và cụ thể như bạn được ,bạn có lẽ rất có kinh nghiệm trong vấn đề giảng dạy cho người khác hiểu

                  Comment


                  • #10
                    Thôi tớ cũng chẳng biết phải viết gì vì nó nhiều quá. Tốt nhất bạn nào muốn tìm hiểu thì đọc sách.

                    http://www.mediafire.com/?a3o572nwn56p973

                    Đây là quyển "Advanced ASIC Chip Synthesis: Using Synopsys Design Compiler, Physical Compiler, and PrimeTime: Using Synopsys Design Compiler, Physical Compiler and PrimeTime". Quyển này chủ yếu viết về tool của Synopsys nhưng viết rất khá đặc biệt là phần viết về Design compiler. Phần viết về PrimeTime thì có lẽ cần phải update thêm vì phần này chủ yếu trình bày về Static timing analysis. Cái này với những công nghệ cũ thì cũng vẫn dùng tốt nhưng với những công cụ mới thì cần phải bổ sung thêm phần power, nhất là static power do leakage current. Physical compiler thì bây giờ đã được thay thế bằng IC compiler rồi.

                    Comment


                    • #11
                      Cám ơn Rommel.de và các bạn, các bạn thật tốt khi tận tình giúp đỡ người khác còn chưa hiểu. Nhân tiện đây mình có một tài liệu nói về quy trình thiết kế SOC do cô mình gửi cho cả lớp học. Nói thực là từ đầu mình cũng không có đam mê nhiều về ASIC, vì một phần mình nghĩ nó là cái gì đó khá phức tạp và đòi hỏi nghiên cứu, đầu tư thời gian và trí tuệ rất nhiều. Phần nữa là ở Việt nam mình thì lĩnh vực này phát triển chưa có nhiều, nếu có thì chỉ là làm lại những công nghẹ của thế giới đã làm cách đây cả một thập kỷ rùi. Ở trường học, mặc dù thầy cô đã cố gắng truyền dạy hết những kiến thức cho sv, nhưng có ai chắc chắn chừng đó thôi là sv đã biết việc tự mình thiết kế một con chip đơn giản nào đó hay chưa, kiến thức đã là bắt kịp với mức độ phatd triển công nghệ hiện nay hay chưa?
                      Mình có vài ý kiến chủ quan của cá nhân muốn chia sẻ với các bạn, chứ không có ý nào cả. Have fun!
                      http://www.mediafire.com/?s6avy6yb1pudjf7

                      Comment


                      • #12
                        Chào bạn Vuhungster,

                        Thật sự tớ rất vui mừng khi thấy ngành thiết kế ASIC ngày một phát triển ở VN và càng lúc càng có nhiều bạn quan tâm đến lĩnh vực này. Nhân tiện tớ cũng muốn chia sẻ một số suy nghĩ của tớ với các bạn.

                        Bạn có suy nghĩ rằng VN dù cố gắng phát triển cũng chỉ làm những thứ mà thế giới đã làm từ cách đây cả thập kỷ. Theo tớ cách suy nghĩ của bạn hơi lạc hậu. Vào thế kỷ 19, thế kỷ 20 thì đúng là các nước cố gắng phát triển các công nghệ để đuổi theo và vượt các nước khác nhưng ngày nay đã khác rồi. Bây giờ là thời đại toàn cầu hóa, công nghệ, sản xuất được đưa vào từ khắp nơi trên thế giới và sản phẩm cũng được tiêu thụ toàn thế giới. Tớ lấy một ví dụ nhỏ để bạn thấy như thế này. Những hãng như Sonny, Samsung... đang sản xuất các TV LCD, Plasma theo tiêu chuẩn HD, và sẽ là 3D. Nếu như bạn sản xuất ra TV dùng công nghệ ống tia điện tử thì bạn sẽ có được bao nhiêu cơ hội tồn tại trên thị trường? Nếu như những hãng như Nokia, Apple đã làm những smartphone đời mới mà bạn sản xuất ra những cục gạch có thể gọi điện thì ai sẽ là khách hàng của bạn? Vì vậy bạn hãy luôn nghĩ rằng tôi phải làm ra những sản phẩm tốt nhất và không bao giờ được nghĩ rằng tôi sẽ làm ra sản phẩm tốt nhì. Sẽ không có cơ hội cho kẻ đứng thứ 2 đâu bạn.

                        Một điểm nữa tớ cũng cảm nhận được là sự cạnh tranh trong tất cả các ngành nói chung và ngành điện tử nói riêng ngày càng tàn khốc. Nó thật sự là cuộc đại chiến của những tập đoàn khổng lồ. Trong thế kỷ 19, 20, chúng ta chứng kiến sự bành trướng lãnh thổ và ảnh hưởng của các cường quốc; ban đầu là Anh, Pháp; sau đó là Đức, Ý, Nhật Mỹ... và kết quả là 2 trận đại chiến thế giới, và cuộc đối đầu giữa cộng sản và tư bản. Hiện nay tớ đang chứng kiến những tập đoàn lớn mua lại hoặc đánh sập những công ty nhỏ, để trở thành những tập đoàn ngày càng lớn hơn mạnh hơn và nhất định tớ và các bạn sẽ chứng kiến những trận đại chiến của các tập đoàn trong thế kỷ 21 này. Nói cụ thể hơn một chút về ngành vi điện tử, ngày xưa người ta thiết kế vi mạch cũng đơn giản như các bạn học trong sách vậy. Còn ngày nay một con chip là sản phẩm của rất rất nhiều phần mà nên. Các con chip hiện nay được thiết kế vừa có cả phẩn cứng, vừa có cả phẩn mềm. Trong phần cứng vừa có cả tương tự, vừa có cả số. Đó là công sức làm việc của cả những người làm giải thuật, những người thiết kế, những người sản xuất, và những người test. Thậm chí ngay cả một công việc cụ thể như thiết kế IO cho chip cũng ngày càng trở nên phức tạp. Ngày xưa IO chỉ đơn giản là Inverter kết hợp với diode và resistor để chống ESD. Sau này để tăng tốc độ truyền dữ liệu, người ta dùng bộ khuyếch đại vi sai cho mạch vào, và mạch ra có thêm phần số điều khiển dòng để phối hợp trở kháng. Như vậy cũng chưa đủ, mạch khuyếch đại vi sai cũng có sai số như offset voltage, mạch ra cũng có sai số nên phối hợp trở kháng kém, vậy là người ta nghĩ ra mạch digital calibration để loại bỏ các sai số này. Và mới gần đây hơn người ta thấy tín hiệu truyền đi vừa bị nhiễu (random, crosstalk, ISI), vừa suy hao, tùy theo hàm truyền đạt của kênh dẫn. Vậy là mạch phát có thêm bộ pre-emphasis, mạch thu có thêm bộ equalizer. Equalizer cũng chia ra thành linear equalizer (LE) và decision feedback equalizer (DFE). Người làm thiết kế IO ngày nay không những phải hiểu rõ về thiết kế ASIC mà còn phải biết về xử lý tín hiêu, truyền số liệu, Signal Integrity... Bản thân tớ là người làm trong ngành cũng cảm thấy áp lực ngày một lớn trong công việc.

                        Nói tóm lại bây giờ là thời đại toàn cầu hóa. Các tập đoàn đang dùng tất cả tiền bạc, công nghệ, nhân lực, kỹ thuật của mình để thu mua, triệt hạ, cũng như tàn sát lẫn nhau. Sẽ không có một cơ hội nào cho những người muốn đứng ở vị trí thứ 2, những người muốn làm những công việc đơn giản, những người không muốn đầu tư thời gian, tiền bạc, hay công sức nghiên cứu. Điều này cũng tương tự như việc VN thời nhà Nguyễn, nếu như không thể trở thành cường quốc như Nhật Bản thì sẽ trở thành thuộc quốc cho Pháp (không có sự lựa chọn thứ 3).

                        Bên cạnh sự cạnh tranh tàn bạo hiện nay như vậy tớ cũng nhìn thấy vô vàn cơ hội cho VN cũng như các bạn. Chắc các bạn cũng đồng ý với tớ rằng trình độ công nghệ VN còn kém xa những nước phương tây. Như vậy VN phải làm gì? Tớ lấy một ví dụ đơn giản để tiện hình dung. Một đứa trẻ khi lớn lên cần phải đi học để có kiến thức. Sau khi học xong thì đi làm để có kinh nghiệm. Đến khi nào đứa trẻ đó đầy đủ kiến thức, kinh nghiệm và vốn thì nó có thể ra làm riêng, trở thành ông chủ. Vậy lời khuyên của tớ dành cho các bạn đó là hãy sang những trường danh tiếng trên thế giới để học tập, hãy vào những tập đoàn lớn để lấy kinh nghiệm, và rồi đến một ngày các bạn sẽ trở thành những ông chủ lớn. Đương nhiên điều gì cũng có ngoại lệ như Bill Gates không cần học đại học cũng thành ông chủ lớn nhưng các trường hợp như vậy có được bao nhiêu. Trong thời đại toàn cầu hóa này, chỉ cần bạn có khả năng, bạn có lòng quyết tâm, thì lúc nào cũng có cơ hội cho bạn vào được những trường danh tiếng, hay những tập đoàn khổng lồ. Các tập đoàn lớn lúc nào cũng cần những người giỏi trên nhiều lĩnh vực để tăng cường sức mạch và tàn sát lẫn nhau. Chuyện phải sống ở VN đã là điều của thế kỷ trước rồi. Cuối cùng tớ muốn kết lại một lời cho ngành vi điện tử. Nó thật sự rất khó và cạnh tranh rất cao những có lẽ tất cả các ngành trên thế giới đều khó và đều phải cạnh tranh cao. Ngành vi điện tử sẽ cần ngày một nhiều những người là chuyên gia trên nhiều lĩnh vực, nhiều mặt, và đương nhiên cơ hội dành cho các bạn cũng sẽ càng nhiều. Và vấn đề cuối cùng chỉ là các bạn có muốn nắm lấy những cơ hội này hay sẽ trở thành người thứ 2, tụt lại phía sau dòng chảy của nhân loại.

                        Nhân tiện tớ có xem qua tài liệu do cô bạn làm. Tài liệu viết rất khá, giải thích đầy đủ những nét đơn giản trong ngành vi điện tử.

                        Comment


                        • #13
                          Nguyên văn bởi Rommel.de Xem bài viết
                          Chào bạn Vuhungster,

                          Thật sự tớ rất vui mừng khi thấy ngành thiết kế ASIC ngày một phát triển ở VN và càng lúc càng có nhiều bạn quan tâm đến lĩnh vực này. Nhân tiện tớ cũng muốn chia sẻ một số suy nghĩ của tớ với các bạn.

                          Bạn có suy nghĩ rằng VN dù cố gắng phát triển cũng chỉ làm những thứ mà thế giới đã làm từ cách đây cả thập kỷ. Theo tớ cách suy nghĩ của bạn hơi lạc hậu. Vào thế kỷ 19, thế kỷ 20 thì đúng là các nước cố gắng phát triển các công nghệ để đuổi theo và vượt các nước khác nhưng ngày nay đã khác rồi. Bây giờ là thời đại toàn cầu hóa, công nghệ, sản xuất được đưa vào từ khắp nơi trên thế giới và sản phẩm cũng được tiêu thụ toàn thế giới. Tớ lấy một ví dụ nhỏ ...
                          Thực ra điều này bạn ko nói thì tất cả chúng ta cũng biết rõ đấy chứ, công nghệ sản xuất chip 90nm, 45nm, 32nm trong tương lai gần, điện thoại thông minh kịck cỡ càng ngày một thu nhỏ, các siêu máy tính với tốc độ xử lý tính tới phần tỷ giây, ... Nhưng tất cả đều là của người ta bạn ah, mình muốn được kết quả như vậy hoặc chờ thêm vài thế kỷ nữa làm cách mạng khoa học như ở Anh hay một sơ nước châu Âu, hoặc có thật nhiều tiền để mua công nghệ nước ngoài, mà điều này thì VN hiện tại mình biết là điều không thể như với một bộ máy lãnh đạo như hiện nay.


                          Nguyên văn bởi Rommel.de Xem bài viết
                          Nhân tiện tớ có xem qua tài liệu do cô bạn làm. Tài liệu viết rất khá, giải thích đầy đủ những nét đơn giản trong ngành vi điện tử.
                          hehe, cám ơn nha, cô mình giỏi mà, cô mình sắp đi du học nữa đó mặc dù còn rất trẻ.

                          Comment


                          • #14
                            Chào bạn Vuhungster,

                            Tớ nghĩ rằng bạn chưa thật sự hiểu ý của tớ muốn nói. Quan điểm của bạn không có gì sai nhưng có lẽ cách nhìn nhận và đánh giá của bạn hơi lạc hậu. Bạn cho rằng VN không thể làm được những công nghệ như 45nm hay 32nm cũng đúng với yêu cầu rằng người VN ở trong nước tự mình nghiên cứu và đưa ra thị trường công nghệ 45nm, hay 32nm. Nhưng nếu bạn nhìn nhận trên một góc độ khác: người VN ra nước ngoài học và làm việc cho những hãng như TSMC, Globalfoundries... thì chẳng có gì là không được cả. Điều mà tớ cố gắng muốn nói chỉ là bạn hay từ bỏ cách nhìn nhận thứ nhất và chuyển sang đánh giá mọi việc theo cách thứ 2.

                            Hiện nay thế giới đang toàn cầu hóa, rất nhiều cơ hội đến với các bạn để được ra nước ngoài học tập và làm việc trong những điều kiện tốt nhất. Đây thật sự là điều mà những thế hệ trước có khi nằm mơ cũng không được. Đến khi nào bạn có đủ kiến thức, kinh nghiệm và vốn bạn quay trở về giúp phát triển VN cũng chưa muộn. Những muốn nắm bắt được những cơ hội này bạn trước hết phải thay đổi quan điểm của mình, phải có cái nhìn rộng ra toàn thế giới. Nếu bạn có kiến thức về những vấn đề và lĩnh vực mà thế giới đang cần đến cơ hội sẽ lúc nào cũng có. Ngược lại nếu bạn chỉ làm những thứ đã được làm cách đây 10 năm, bạn sẽ bị bỏ lại sau sự vận động của nhân loại.

                            Tớ nghĩ rằng quá trình toàn cầu hóa vẫn còn đang diễn ra nên nhiều bạn chưa cảm nhận được hết những thách thức và cách nhìn nhận vẫn còn chưa thay đổi. Rồi sẽ đến một ngày những tập đoàn lớn trên thế giới đưa sản phẩm của họ vào VN, cạnh tranh với những công ty nhỏ bé trong nước thua kém trên tất cả các mặt từ vốn, nhân lực đến công nghệ thì một hậu quả tất yếu là toàn bộ ngành công nghiệp nhỏ bé đó của VN sẽ sụp đổ. Tớ nghĩ rằng tớ nhận ra được điều này sớm hơn các bạn có lẽ vì tớ đang sống và làm việc trong môi trường quốc tế. Tớ cảm nhận được sự bùng nổ cạnh tranh và thâu tóm của các tập đoàn. Nhìn lại ngành công nghiệp điện tử VN, thật tớ không biết dùng lời gì để nói. Hi vọng ngày đó sẽ không xảy ra, và nếu như có xảy ra, các bạn sẽ không phải là một thành viên trong đó.

                            Tớ nghĩ rằng bạn đã có thể hiểu rõ quan điểm của tớ. Thay vì tự mày mò cố gắng đuổi theo các nước, các bạn nên học hỏi làm việc với các nước để rồi đến một ngày sẽ tách ra tự mở công ty, phát triển theo hướng riêng của mình. Vô vàn cơ hội sẽ đến với các bạn. Chẳng nói đâu xa, cô giáo của bạn đã là ví dụ rõ rằng nhất rồi. Cô giáo của bạn chẳng phải cũng nghiên cứu về một lĩnh vực mà bạn cho rằng không có tương lai ở VN hay sao. Nhưng không biết cô giáo bạn có ý định về phục vụ đảng và chính phủ hay sẽ ở lại giúp cho nền tri thức nhân loại đây. Tớ có một cậu bạn vừa từ Nhật về VN nói với tớ nhất định không có về VN. Mọi người hiểu sao về tớ thì tùy nhưng sự thật vẫn cứ là như vậy đó.

                            Comment


                            • #15
                              Nguyên văn bởi Rommel.de Xem bài viết
                              Chào bạn Vuhungster,

                              Tớ nghĩ rằng bạn chưa thật sự hiểu ý của tớ muốn nói. Quan điểm của bạn không có gì sai nhưng có lẽ cách nhìn nhận và đánh giá của bạn hơi lạc hậu. Bạn cho rằng VN không thể làm được những công nghệ như 45nm hay 32nm cũng đúng với yêu cầu rằng người VN ở trong nước tự mình nghiên cứu và đưa ra thị trường công nghệ 45nm, hay 32nm. Nhưng nếu bạn nhìn nhận trên một góc độ khác: người VN ra nước ngoài học và làm việc cho những hãng như TSMC, Globalfoundries... thì chẳng có gì là không được cả. Điều mà tớ cố gắng muốn nói chỉ là bạn hay từ bỏ cách nhìn nhận thứ nhất và chuyển sang đánh giá mọi việc theo cách thứ 2.

                              Hiện nay thế giới đang toàn cầu hóa, rất nhiều cơ hội đến với các bạn để được ra nước ngoài học tập và làm việc trong những điều kiện tốt nhất. Đây thật sự là điều mà những thế hệ trước có khi nằm mơ cũng không được....
                              Tớ hiểu rồi, cám ơn bạn, Rommel.de vì bạn đã giúp tớ có một cái nhìn tích cực hơn về những định hướng và mục tiêu trong lĩnh vực thiết kế, chế tạo IC. Đúng như bạn nói, sv bọn tớ ngoài những kiến thức của thầy cô trên lớp, bọn tớ rất ít có cơ hội tìm hiểu thực tế, thiếu mục tiêu, định hướng của ngành nghề mình nguyện theo đuổi trong tương lai. Từ đó cảm thấy thiếu tự tin và và để mất đi cơ hội nhiều lắm. Qua những gì bạn nói, mình sẽ cố gắng thay đổi cái tư duy trước đó để tự tin hơn với bản thân và quan trọng là cố gắng trong tương lai sẽ tìm được một học bổng để được ra nước ngoài học tập, có cơ hội tìm hiểu xem tại sao họ lại làm được những cái mà mình vẫn chưa làm được.
                              Hi vọng trong tương lai chúng ta sẽ có nhiều những dịp cùng nhau chia sẻ thông tin, kinh nghiệm, những đánh giá nhận xét quan điểm của nhau để cùng xây dựng một cộng đồng nhằm chia sẻ giúp đỡ cùng nhau phát triển, và góp phần nhỏ bé để xây dựng đất nước mở sang trang mới tốt đẹp hơn. Chúc bạn có nhiều sức khỏe và có nhiều thành công hơn trong công việc!

                              Comment

                              Về tác giả

                              Collapse

                              hungthientu nguyen van duong Tìm hiểu thêm về hungthientu

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

                              Collapse

                              Đang tải...
                              X