Thông báo

Collapse
No announcement yet.

Giới thiệu về ASIC

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

  • Giới thiệu về ASIC

    Lời tựa của yesme@ -
    /************************************************** ************************************************** ***********************************
    - Công nghệ ASIC là một công nghệ chế tạo các vi mạch tích hợp dành cho các ứng dụng riêng. Nói vậy có nghĩa lịch sử phát triển của nó bắt đầu từ những phát minh về bán dẫn rồi đến công nghệ CMOS, rồi đến ... và ... . Với thời gian hạn chế, mình chỉ muốn đưa ra một vài khái niệm cơ bản để các bạn có thể hình dung và tìm tài liệu đọc tiếp.
    - Những gì mình viết sau đây là những cái mà mình đọc được từ các nguồn tài liệu khác nhau và những gì mình tổng kết được trong quá trình làm việc. Hình ảnh cũng có thể là tự vẽ, cũng có thể là cóp nhặt ở đâu đó do vậy không bàn nhiều về vấn đề bản quyền tác giả.
    - Đây chưa phải là một tutorial chính thức mà nó mới chỉ là một phiên bản v.0.000001 nên có thể có lỗi -- vui lòng báo lại để cùng sửa chữa.[/quote]
    ************************************************** ************************************************** *************************************/

    Phần I - Giới thiệu về ASIC

    ASIC - phát âm là "a-sick" - là từ viết tắt của "Application-Specific Integrated Circuits". Tiếng việt tạm dịch là các mạch tích hợp ứng dụng riêng (hay đặc thù).

    Trước khi trả lời cho câu hỏi "ASIC là gì ?" thì chúng ta lướt qua đôi nét về mạch tích hợp (Integrated Circuit).
    Hình 1.1(a) chỉ cho chúng ta một vỏ IC (đây là một mảng lưới chân vào/ra nhìn từ phía dưới lên; những chân này sẽ được xuyên qua các lỗ cắm chân linh kiện trên bản mạch in). Chúng ta thường gọi vỏ IC là chip (hay vi mạch) nhưng thực ra chip silicon (thường được gọi là die) chỉ là cái mà được gắn trong cái lỗ hổng và được che đậy bởi một cái nắm bên trên, xem hình 1.1(b). Vỏ của IC có thể được làm bằng gốm hoặc plastic.
    Attached Files
    Last edited by yesme@; 29-08-2005, 19:32.



  • #2
    Kích thước của phiến silicon (chip không vỏ) chỉ khoảng vài milimét cho đến khoảng 1 inch (~2,54 cm) theo mỗi chiều. Tuy nhiên, với các nhà thiết kế chip thì họ lại ít khi nói đến kích thước vật lý của chip mà nói đến số lượng cổng logic hoặc số lượng transistor của chip. Đại lượng cổng lôgíc ở đây thường nhắc tới cổng NAND. Do vậy khi nói một chip 100 gate thì các bạn nên hiểu là 100 cổng NAND.

    - Ngành công nghệp bán dẫn bắt đầu từ những năm 1970 với các vi mạch SSI (Small Scale IC) gồm khoảng 1 đến 10 cổng NAND, đến vài chục cổng NAND. Các vi mạch thông thường chỉ là các cổng NAND, NOR, hay tập hợp các vi mạch NAND, NOR, OR, XOR,...
    - Tiếp đến các vi mạch MSI (Medium-Scale IC) cho phép tích hợp nhiều hơn. Các vi mạch đã có thể thực hiện các chức năng như mạch đếm (counter), mạch so sánh,...
    - Rồi đến các vi mạch LSI (Large-Scale IC) đã bắt đầu xuất hiện các bộ vi xử lý hay các vi mạch xử lý các chức năng logic cỡ vừa.
    - Sau LSI là các vi mạch VLSI. VLSI cho phép chúng ta xây dựng các bộ vi xử lý 64-bit cùng với các bộ nhớ đệm và các khối xử lý toán học. Số lượng transistor đã lên đến một triệu.

    Với công nghệ CMOS ngày càng phát triển, kích thước của transistor ngày càng được thu nhỏ => cho phép tích hợp ngày càng nhiều transistor trên một chip (thường tính theo đơn vị 1 inch vuông). Dự đoán trong những năm tới số lượng transistor tích hợp trên chip không dừng ở con số trăm triệu. Một số nhà nghiên cứu ở Nhật đã được ra một thuật ngữ mới cho một thế hệ IC trong tương lai: ULSI (Untra-large Scale Integration). Tuy nhiên, tại thời điểm hiện nay chúng ta vẫn đang dừng lại ở thuật ngữ VLSI. Dự báo rằng công nghệ CMOS đã tiến gần tới giới hạn thu nhỏ cho phép và đòi hỏi các nhà nghiên cứu phải tìm ra một loại vật liệu mới để thay thế silicon.


    Comment


    • #3
      1.1. Phân loại ASIC

      1.1. Phân loại ASIC

      Có khá nhiều cách phân loại các mạch ASIC như phân loại theo dung lượng cổng lôgic, phân loại theo ứng dụng, phân loại theo phương pháp thiết kế,... Ở đây chúng ta chỉ tập trung vào việc phân loại theo phương pháp thiết kế nhằm làm sáng tỏ quá trình phát triển của công nghệ ASIC.
      Với cách phân loại này chúng ta có các loại ASIC điển hình sau:

      ASIC đặc chế hoàn toàn - Full costum ASIC

      Một IC đặc chế (thuật ngữ tiếng anh gọi là "full-custom IC") là một vi mạch có các tế bào lôgic (logic cell) và các lớp mặt nạ được xây dựng (đặc chế hóa) theo yêu cầu của khách hàng. Những IC đặc chế này thường nhắm tới các ứng dụng riêng biệt và do đó, chúng ta có thể gọi một số IC đặc chế này là ASIC đặc chế.

      ASIC dựa trên các tế bào chuẩn (Standard-Cell-Based ASIC)

      ASIC dựa trên mảng cổng lôgíc (Gate-Array-Based ASIC)

      Các vi mạch lập trình được (PLD: Programmable Logic Devices)

      Mảng cổng lôgíc có thể lập trình được theo trường (FPGA: Field-Programmable Gate Array)
      Last edited by yesme@; 29-11-2005, 00:42.


      Comment


      • #4
        Sao lâu rồi không thấy anh yesme@ viết tiếp ?hiện em cũng được học về cái này, và chắc chắn một điều là sinh viên trường em không thể thực hành rồi. Nên kinh nghiệm thực tế của anh về ASIC sẽ giúp ích được cho rất nhiều người.

        Mà anh làm design ASIC có tới mức layout không?em thấy mấy cái layout là váng hết cả đầu hehe,chắc phải tìm đọc thêm về công nghệ CMOS mới hiểu được.

        Comment


        • #5
          Bác yesme@ viết tiếp đi ạ, đọc bài trên của bác đang đến đoạn hay , em chưa biết tí gì nhưng sau khi đọc cũng nắm được một chút khái niệm , và thấy nó khá là bổ ích, thú vị , vì thế em cổ vũ bác viết tiếp
          Dấu hỏi vòng vòng
          Dấu ngã cong cong
          Khi ngã ta lại hỏi
          Ngã lần này có đứng dậy nữa không

          Comment


          • #6
            Dạo này bận chăm con nên không viết được. Trao đổi vài dòng thì okie nhưng viết tài liệu thì ... công việc đang chất như núi.


            Comment


            • #7
              anh "yes_hello" có thể phân biệt dùm em sự khác biệt chính giữa asic custom và các aisc khác đi. em thấy mình vẫn còn rối rắm lắm!

              Comment


              • #8
                Nguyên văn bởi yesme@
                1.1. Phân loại ASIC

                Có khá nhiều cách phân loại các mạch ASIC như phân loại theo dung lượng cổng lôgic, phân loại theo ứng dụng, phân loại theo phương pháp thiết kế,... Ở đây chúng ta chỉ tập trung vào việc phân loại theo phương pháp thiết kế nhằm làm sáng tỏ quá trình phát triển của công nghệ ASIC.
                Với cách phân loại này chúng ta có các loại ASIC điển hình sau:

                ASIC đặc chế hoàn toàn - Full costum ASIC

                Một IC đặc chế (thuật ngữ tiếng anh gọi là "full-custom IC") là một vi mạch có các tế bào lôgic (logic cell) và các lớp mặt nạ được xây dựng (đặc chế hóa) theo yêu cầu của khách hàng. Những IC đặc chế này thường nhắm tới các ứng dụng riêng biệt và do đó, chúng ta có thể gọi một số IC đặc chế này là ASIC đặc chế.

                ASIC dựa trên các tế bào chuẩn (Standard-Cell-Based ASIC)

                ASIC dựa trên mảng cổng lôgíc (Gate-Array-Based ASIC)

                Các vi mạch lập trình được (PLD: Programmable Logic Devices)

                Mảng cổng lôgíc có thể lập trình được theo trường (FPGA: Field-Programmable Gate Array)
                Làm ASIC full custom hay ASIC semicustom là làm gì vậy? ý em nói ở đây là cụ thể. Anh yesme@ nói ở trên một phần đứng trên cơ sở người làm IC,còn mình là người thiết kế, yêu cầu của mình cũng khác,phải cần phần mềm gì? phần cứng gì? muốn tạo ra một IC full custom mình trải qua những bước nào? việc layout ra mức cổng bằng công cụ Alliance như một số người thường làm thì có thể xếp vào loại ASIC được không? nó thuộc loại nào?

                Còn nhiều câu hỏi nữa,vì cái này khá mập mờ,em chưa hình dung được,anh yesme@ trả lời xong,em post tiếp.

                Comment


                • #9
                  Thiết kế ASIC thường dựa trên một số cell chuẩn đã được thiết kế sẵn (layout sẵn rồi) và tập hợp thành thư viện. Nếu tự thiết kế lại các cell chuẩn này thì gọi là full custom. Nếu dùng một số cell chuẩn trong thư viện, tự thiết kế một số cell khác thì gọi là semicustom. Các thư viện cell chuẩn thường được các FAB cung cấp tùy thuộc vào công nghệ chế tạo (0.35u, 0.18u...). Bạn cũng có thể search thấy một số thư viện cell chuẩn dạng free.
                  Alliance là một bộ công cụ thiết kế vi mạch, có cung cấp sẵn thư viện cell chuẩn. Tất cả đều free.

                  Comment


                  • #10
                    Với full-custom ASIC, designers phải thiết kế một số hoặc tất cả các cell, các mạch hay layout đặc biệt cho một ASIC. Điều đó có nghĩa là designers sẽ sử dụng các cell chưa được chuẩn hóa cho một phần hoặc tất cả ASIC.

                    Còn semi-custom ASIC, designers sử dụng các cells đã được thiết kế sẵn và đã được chuẩn hóa cùng với một số (có thể tất cả) lớp mặt nạ đặc chế.

                    Thông thường thì designers không làm full-custom ASIC mà làm semi-custom ASIC. Các thư viện cells chuẩn thường được mua lại (hoặc thuê lại) từ các hãng sản xuất lớn như STMicro, Philips, Atmel, etc. Việc tái sử dụng các thư viện giúp designers giảm thời gian thiết kế, giảm khối lượng công việc thiết kế.

                    Semi-custom ASIC lại được chia nhỏ thành 2 loại:
                    a) standard-cell–based ASICs: nghĩa là designers thiết kế dựa trên thư viện các cells chuẩn.
                    b) gate-array–based ASICs: loại này còn được gọi là ASIC lập trình được (programmable ASICs). Với gate-array-based ASIC, các cells đã được xây dựng và không có lớp mặt nạ đặc chế. Loại này lại được chia thành hai loại: PLDs (các thiết bị lôgic khả trình) và FPGAs.
                    Last edited by yesme@; 23-06-2006, 21:09.


                    Comment


                    • #11
                      Lấy thí dụ về FPGA của hãng xilinx,nó là ASIC lập trình được,thiết kế của mình được dựa trên việc cấu hình các khối CLB thành một khối chức năng cụ thể, có thể gọi là cell? (thực sự một số hãng cũng gọi là cell),sao có tên là kĩ thuật mảng cổng (gate-array–based ASICs)?
                      Cell chuẩn trong full or semi custom có ý nghĩa như thế nào? nó ở những level nào?đại loại ý nghĩa của nó có giống như IP của xilinx hay mega function của altera ?
                      Có thể hình dung thiết kế theo kiểu semicustom như bác yesme@ nói như thiết kế một shematic trên Orcad chẳng hạn,chỉ việc lấy những cell trong thư viện ra rồi lắp ghép để thành một board mạch hoàn chỉnh?rùi cái mask đó mình tạo ra hay lấy từ đâu? nó dùng vào việc gì trong quá trình fab?

                      Comment


                      • #12
                        hinh nhu cong nghe FPGA khac voi cong nghe ASIC.
                        FPGA la lap trinh tren 1 con chip co san. FPGA viet bang ngon ngu VHDL.
                        ASIC che tao ra 1 con chip moi. De che tao ra con chip nguoi ta se dung ngon ngu Verilog HDL tao ra file RTL sau do bien dich thanh cac cong logic --> dua tren mach logic nay nguoi ta se ve lai cac transistor vat ly ( ko phai ki hieu). sau do thi den di che tao.

                        Comment


                        • #13
                          e có chương trình này nhờ mọi người giúp ná. mình đọc rất nhiều lần rồi mà không hiểu

                          library IEEE;
                          use IEEE.STD_LOGIC_1164.ALL;
                          use IEEE.STD_LOGIC_ARITH.ALL;
                          use IEEE.STD_LOGIC_UNSIGNED.ALL;
                          use work.CALC1_PAK.all;ENTITY CNTRL_FSM_TB_vhd IS

                          END CNTRL_FSM_TB_vhd;

                          ARCHITECTURE behavior OF CNTRL_FSM_TB_vhd IS

                          COMPONENT CNTRL_FSM
                          PORT(
                          DATA_FRAME : IN MY_RECORD;
                          CLK : IN std_logic;
                          RESET : IN std_logic;
                          A_OP : OUT std_logic_vector(3 downto 0);
                          B_OP : OUT std_logic_vector(3 downto 0);
                          C_IN : OUT std_logic;
                          OP_CODE : OUT std_logic_vector(3 downto 0);
                          EXP : OUT std_logic_vector(3 downto 0);
                          MEM_EN : OUT std_logic;
                          ALU_EN : OUT std_logic ;
                          COMP_EN : OUT std_logic ;
                          ADDR : OUT std_logic_vector(2 downto 0) );
                          END COMPONENT;

                          SIGNAL DATA_FRAME : MY_RECORD := ("0000", "0000","0000",'0',"0000");
                          SIGNAL CLK : std_logic := '0';
                          SIGNAL RESET : std_logic := '0';
                          SIGNAL A_IN, B_IN : std_logic_vector(3 downto 0);
                          SIGNAL C_IN : std_logic;
                          SIGNAL OP_CODE : std_logic_vector(3 downto 0);
                          SIGNAL EXP : std_logic_vector(3 downto 0);
                          SIGNAL ALU_EN, MEM_EN, COMP_EN : std_logic;
                          SIGNAL ADDR : std_logic_vector(2 downto 0);
                          BEGIN
                          uut: CNTRL_FSM PORT MAP(
                          DATA_FRAME => DATA_FRAME,
                          CLK => CLK,
                          RESET => RESET,
                          A_IN => A_IN,
                          B_IN => B_IN,
                          C_IN => C_IN,
                          OP_CODE => OP_CODE,
                          EXP => EXP,
                          ALU_EN => ALU_EN, MEM_EN => MEM_EN, COMP_EN => COMP_EN ,
                          ADDR => ADDR );

                          CLK <= not CLK after 20 ns;
                          RESET <= '1' after 10 ns, '0' after 25 ns;

                          tb : PROCESS
                          BEGIN
                          DATA_FRAME <= ("1000", "0100","0000",'0',"0000");
                          wait for 100 ns;
                          DATA_FRAME <= ("1000", "0100","0101",'0',"0000");
                          wait for 100 ns;
                          DATA_FRAME <= ("1000", "0100","0100",'0',"0000");
                          wait; -- will wait forever
                          END PROCESS;

                          END TEST;

                          Comment

                          Về tác giả

                          Collapse

                          yesme@ Tìm hiểu thêm về yesme@

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

                          Collapse

                          Đang tải...
                          X