Thông báo

Collapse
No announcement yet.

Analog IC design

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

  • các bác cho em hỏi chút ạ! phần mềm ở trang này sử dụng dc cho việc layout IC k ạ?
    http://opencircuitdesign.com/magic/

    Comment


    • Vừa rồi có một bạn nhắn tin hỏi mình tại sao để chống hiện tượng latch-up thì trong pmos người ta thêm n+ tap, còn trong nmos người ta thêm p+ tap, mình có thể trả lời bạn như sau:

      Trước hết bạn đọc lại bài viết số #80 trang 8 cũng trong chủ để này để hiểu nguyên lý gây ra latch-up. Theo đó, lý do để duy trì dòng điện (hồi tiếp dương) trong cấu trúc pnpn và npnp là điện trở nwell và pwell có giá trị tương đối lớn đủ để thông pnp và npn. Trong pmos thì đế là loại N, nếu thêm n+ tap thì sẽ làm cho điện trở nwell nhỏ, tương tự với nmos, nếu thêm p+ tap thì sẽ làm điện trở pwell có giá trị nhỏ.
      Như vậy khi điện áp output là -1V (điều kiện test latchup) chẳng hạn, Vbe của Q2 đủ lớn để thông. nếu R Nwell của PMOS nhỏ thì dòng Ic của Q2 * R Nwell của PMOS = Vbe của Q1 sẽ không đủ lớn để làm thông Q1. Như vậy hiện tượng latch-up sẽ không xảy ra.

      Hy vọng là đã trả lời đúng ý câu hỏi của bạn.

      Thân mến.

      @ robocon2011,
      Theo những tài liệu trong link bạn gửi thì phần mềm đó dùng để thiết kế layout được, nhưng có vẻ chỉ cho vi mạch tương tự, chứ không phải là công cụ tổng hợp mạch số.

      Comment


      • Cảm ơn anh hithere123 rất nhiều. Em đã hiểu vấn đề này.
        Vậy là việc thêm n+tap và p+ tap thay vì ta để như ban đầu không có chúng là để cho R nhỏ hơn. Vậy là, nếu lý tưởng, khi 2 điện trở của 2 vùng này bằng 0 thì latchup sẽ không bao giờ xảy ra.

        Chúc mọi người vui vẻ.
        Ôi cuộc đời!!!

        Comment


        • Rất thank bác hithere . Nếu bác có một bản design mẫu nào về bất cứ một block của analog ic thì gửi lên cho mọi người xem nhé ( chỉ cần đến phần mô phỏng ). Vì nói chung các bước chung chung thì em nắm được , nhưng nếu có cái nhìn trực quan trong tính toán và design hay mô phỏng thì hay nhất vẫn có một bài mẫu .

          Comment


          • Chào bạn,
            Bạn có thể tải về tài liệu "Analysis_and_Design_of_LDO_Voltage_Regulator. pdf" ở bài viết số #32 trang 4 cũng trong luồng thảo luận này để tham khảo cách tính toán thiết kế mạch LDO. Ngoài ra, nếu bạn muốn ví dụ chi tiết tính toán kích thước W/L của từng MOSFET của một mạch cụ thể bạn có thể xem qua ví dụ tính toán mạch op-amp hai tầng trong sách "CMOS Analog Circuit Design', 2nd Edition, của tác giả Phillip E.Allen, Douglas R.Holberg, trang 276. Ở đó tác giả đưa ra yêu cầu tính toán mạch điện sao cho hệ số khuếch đại là 5000, và một số yêu cầu khác dựa trên các tham số công nghệ có thể dùng để mô phỏng. Theo mình đó là một ví dụ rất tốt nếu bạn đã nắm chắc các khái niệm cơ bản về thiết kế vi mạch tương tự. Bạn cũng có thể tải về phần mềm miễn phí LTSPICE và file công nghệ mình đã đưa lên trong các trang trước để tự thiết kế mạch op-amp này và so sánh. (Mình đã thử phần mềm và file công nghệ dựa vào thiết kế này trước khi đưa lên diễn đàn, do đó bạn có thể yên tâm về tính thực tế của phần mềm)
            Hy vọng thông tin trên sẽ giúp ích cho bạn.
            Thân mến.

            Comment


            • Anh hithere cho em hỏi là ở Hà Nội có nơi nào dạy về thiết kế analog IC không ạ?

              Comment


              • Nguyên văn bởi cachep Xem bài viết
                Anh hithere cho em hỏi là ở Hà Nội có nơi nào dạy về thiết kế analog IC không ạ?
                Chào bạn cachep,

                Theo như mình biết thì khoa điện tử viễn thông ĐHBKHN có dạy môn VLSI, và trong đó có định hướng về vi mạch tương tự và vi mạch số.

                Thân mến.

                Comment


                • Em đang phải làm một phần design với yêu cầu là Thiết kế khối khuếch đại so sánh:
                  + Điện áp vào: 2.5-5V.
                  + Hệ số khuếch đại 2000
                  + Độ chính xác hệ số khuếch đại: 5%.
                  + Dòng tiêu thụ: 30uA
                  Các bác có thể cho em chút chỉ dẫn không ạ ? Thanks !

                  Comment


                  • Chào bạn,

                    [1] Bạn cần làm rõ các yêu cầu đầu vào trước khi bắt tay vào thiết kế
                    - Khối khuếch đại so sánh mà bạn đề cập tới có tác dụng là nếu điện áp P>N thì đầu ra = VDD hoặc ngược lại phải không?
                    - Điện áp vào 2.5V-5V là điện áp VDD hay điện áp vào của hai đầu P,N (+/-) ?
                    - Hệ số khuyếch đại là 2000 với độ chính xác 5% tức là đảm bảo hệ số khuyếch đại hở mạch từ 1950 tới 2050 với tất cả các điều kiện về dải điện áp cũng như các corner của linh kiện và nhiệt độ?

                    [2] Lựa chọn sơ đồ khối chức năng là một tầng hay hai tầng
                    --> bước này dựa vào hệ số khuếch đại, nếu là 2000 thì nhiều khả năng là 2 tầng.

                    [3] Quyết định hệ số khuyếch đại mỗi tầng A= A1*A2 = (gm1*ro1)*(gm2*ro2)
                    --> bước này sẽ cần đến dòng tiêu thụ, phân chia dòng tiêu thụ cho mỗi tầng. Giả sử tầng một là cặp vi sai, tầng hai là một tầng khuyếch đại đơn thì hay dùng nhất là mỗi bên cặp vi sai 5uA, tầng đơn thứ 2 là 5uA (như vậy vẫn còn 15uA để dự phòng.)

                    [4] Sau khi có thông số về dòng điện, gm, ro cho mỗi tầng thì có thể tính ra W/L cho mỗi MOSFET rồi.

                    Đến bước này bạn vẫn chỉ cần dùng đến bút chì và giấy trắng

                    [5] Lắp vào sơ đồ, mô phỏng xem có đúng như tính toán không? nếu kết quả mô phỏng so với tính toán sai khoảng 10-20% là có thể chấp nhận được.

                    Đến đây thì cơ bản hoàn thành xong thiết kế phần thô. Bạn có thể tham khảo một số tài liệu mình đưa lên từ những trang đầu về thiết kế OPAMP cũng như các yêu cầu mô phỏng để tìm hiểu thêm.

                    [6] Vì là hai tầng nên sẽ cần bù pha để mạch không bị dao động.

                    [7] Thêm mạch on/off nữa để tiết kiệm điện khi mạch không hoạt động.


                    Vấn đề đảm bảo sai số 5% và bước [6] và [7] sẽ được thảo luận tiếp sau khi bạn đã hoàn thành phần thô và có một vài kết quả nào đó để thảo luận tiếp. Hy vọng những thông tin trên có thể giúp ích cho bạn phần nào. Chúc bạn thành công!

                    Thân mến.

                    Comment


                    • Nguyên văn bởi robocon2011 Xem bài viết
                      bác Intran ơi to mấy foder đó có thể tạo bằng tay k ạ! em em như hướng dẫn k dc a? mong bác giúp em!
                      Không biết bạn đã cài được Cadence chưa. Nếu chưa thì mình khuyên bạn nên lên google và tìm hiểu một ít về các lệnh trong linux. Bài hướng dẫn của anh lntran ngắn gọn nên nếu bạn mới nhập môn linux mà làm theo y chang thì sẽ gặp nhiều lỗi. Hiện mình đang cài Cadence ic610 trên Ubuntu 10.10. Cài ngon lành nhưng không hiểu sao vào library thì lại thiếu rất nhiều
                      Dưới đây là bài hướng dẫn cài Cadence ic 610 mình kiếm được trên mạng. Bài viết theo mình là rất rõ ràng và dễ hiểu.

                      IC610 and MMSIM61 installation:

                      ************************************************** *****************
                      First of all installation from hard disk is recommended for any eda software, because installation process is too sensitive to read errors and some errors might occur without warning that cause abnormal behavior or library errors later and the cause of the error is almost impossible to find. Therefore in this guide we will assume that the installation folders are located in /home/username/edasrc/ folder.
                      ************************************************** *****************
                      Second it is assumed that minimum 8 GB free space is available in /home/ folder. If this is not the case, you should either allocate more space to /home/ folder, or install the software another location which have sufficient space.
                      ************************************************** *****************
                      Third the selected Linux system is very important. I recommend RHEL 3 (Red Hat Linux Enterprise 3) as it is still the industrial standard Linux system. I tested a wide range of systems and although it is possible to install IC610 to almost any Linux host, including 2.6.23 kernels, there are always some problems to solve like documentation viewer crashes, Java library inconsistencies, kernel specific issues, library or licensing errors, etc. In short, if you do not like surprises, install RHEL 3 in VMware (a virtual machine) with 'Development Tools' and 'Legacy Software Development', and forget the problems.
                      ************************************************** *****************
                      The following symbols are used in this documentation.

                      $: The standard user command prompt

                      #: Super-user (root) command prompt

                      %: In-line notes and comments

                      It is assumed that BASH is used as primary scripting language. If you have no idea what I am talking about, do not worry as you are probably using BASH.

                      ************************************************** *****************
                      Before installing, make sure of the following steps:

                      1. Type the following command in order to check the uncompress command.

                      $ which uncompress

                      You should skip this step if it returns '/usr/bin/uncompress', else the terminal output is something like '/usr/bin/which: no uncompress in (...)' and type

                      $ which compress

                      If it returns no result then try

                      $ which gunzip

                      If you still get no result then you should install gunzip. Switch to super-user mode by

                      $ su

                      Password: % type root password.

                      If you have 'compress' type

                      # ln -s /usr/bin/compress /bin/uncompress

                      if you have gunzip type

                      # ln -s /usr/bin/gunzip /bin/uncompress


                      2. You can replace netscape with mozilla, as follows:

                      $: su

                      Password: % root password

                      #: ln -s /usr/bin/mozilla /usr/bin/netscape

                      If you do not have mozilla or netscape, try getting netscape 7.x or try the above linking with firefox which I think can work.

                      ************************************************** *****************
                      Now start the installation process:

                      IMPORTANT: Only use first 5 Base install CDROMs of the IC610. DO NOT install ISR CDROMs or your licensing will fail as the license is only valid for Base install.

                      Copy first 5 IC610 installation CDROMs to '/home/username/edascr/ic610/' folder. Then copy 2 MMSIM61 installation CDROMs to the '/home/username/edascr/MMSIM61/' folder.

                      Prepare the installation folders by

                      $: su

                      Password: % root password

                      # cd /home

                      # mkdir eda

                      # chown username eda

                      # chgrp username eda

                      # exit

                      $ cd /home/eda

                      $ mkdir ic610

                      $ mkdir installscape

                      $ mkdir mmsim61

                      You can also change the read/write permissions to 777 if there are more then one users but in fact it is not necessary.

                      ************************************************** *****************
                      Go to the setup directory of MMSIM61

                      $ cd /home/username/edasrc/mmsim61/CDROM1

                      and run the setup script

                      $ sh SETUP.SH

                      Press ENTER until you see 'Specify path of install directory [OR type [RETURN] to exit]:' prompt if you do not already see it. Enter

                      : /home/eda/mmsim61

                      Answer (n) to the 'Do you have InstallScape for lnx86 platform installed somewhere [y/n]?' prompt.

                      Then answer (y) to the 'Do you want to install InstallScape for lnx86[y/n]:' prompt.

                      Type '/home/eda/installscape' as the path to InstallScape installation directory.

                      A graphical user interface should appear. Press OK.

                      Select the setup source path as '/home/username/edasrc/mmsim61/CDROM1' and press NEXT.

                      Select manual selection option and press NEXT.

                      Select the setup destination path as '/home/eda/mmsim61' and press NEXT.

                      Check all products and press NEXT. Press INSTALL. Installation takes a few minutes. Then press CLOSE and close the Wizard View.

                      Create a required symbolic link by

                      $ ln -s /home/eda/mmsim61/tools.lnx86 /home/eda/mmsim61/tools

                      ************************************************** *****************
                      Go to the setup directory of IC610

                      $ cd /home/username/edasrc/ic610/CDROM1

                      and run the setup script

                      $ sh SETUP.SH

                      Press ENTER until you see 'Specify path of install directory [OR type [RETURN] to exit]:' prompt if you do not already see it. Enter

                      : /home/eda/ic610

                      Answer (y) to the 'Do you have InstallScape for lnx86 platform installed somewhere [y/n]?' prompt.

                      Type '/home/eda/installscape' as the path to InstallScape installation directory.

                      Then answer (y) to update the InstallScape.

                      The same graphical user interface should appear. Select '/home/username/edasrc/ic610/CDROM1' and press NEXT.

                      Select manual selection option and press NEXT.

                      Select the setup destination path as '/home/eda/ic610' and press NEXT.

                      Check all products and press NEXT. Press INSTALL.

                      A new window will appear after a few minutes where you should press ENTER. Ignore two following windows as they will close themselves in 20 seconds by default. Take a long break now as it will take more then one hour to install.

                      Press CLOSE after the installation and close the Wizard View.

                      Go to the installed directory and create a new folder named OA.

                      $ cd /home/eda/ic610

                      $ mkdir OA

                      Now rerun Wizard View.

                      $ sh /home/eda/installscape/iscape/bin/iscape.sh

                      Click to the CONFIGURE button. Enter '/home/eda/ic610' as the install directory. Press NEXT.

                      Check all options and press NEXT. A configuration screen should appear. Press ENTER in first screen and then skip all following configuration requests until you see OpenAccess update request. Press ENTER. Enter '/home/eda/ic610/OA' and press ENTER. Press CLOSE and exit the Wizard View.

                      ************************************************** *****************
                      Now do the ic610 configuration:

                      1. License

                      Use gedit or any other text editor to open provides license file and make sure it has the following two lines:

                      SERVER localhost ANY 5280

                      DAEMON cdslmd $CDS_ROOT/tools/bin/cdslmd

                      Now edit the 'localhost' with your local host name. You can query your host name by

                      $ hostname

                      which will return 'localhost.localdomain'. We are interested with the part before the point which the host name of the computer.

                      Make sure to rename file as 'license.dat' and copy it to the '/home/eda/ic610/share/license/' folder.

                      2. Environment variables

                      Edit your sturtup script by entering

                      $ gedit /home/username/.bashrc

                      or opening it from Gedit window. However you should select show hidden files option in order to view files starting with point.

                      Add following statements into the '.bashrc':

                      ##################################################

                      alias lmli='/home/eda/ic610/tools/bin/lmgrd -c /home/eda/ic610/share/license/license.dat'

                      export OA_HOME=/home/eda/ic610/OA

                      export CDS_ROOT=/home/eda/ic610

                      export MMSIM_ROOT=/home/eda/mmsim61

                      export CDS_LIC_FILE=5280@localhost

                      export LM_LICENSE_FILE=$CDS_ROOT/share/license/license.dat

                      export CDS_Netlisting_Mode=Analog

                      export PATH=$MMSIM_ROOT/tools/bin:$MMSIM_ROOT/tools/spectre/bin:$CDS_ROOT/tools/bin:$CDS_ROOT/tools/dfII/bin:$PATH

                      export MOZILLA_HOME=/usr/bin/netscape

                      alias cdsbook='$CDS_ROOT/tools/bin/cdsdoc'

                      ##################################################
                      3. Work directory

                      Create a work directory from where you will invoke Cadence

                      $ mkdir /home/username/cds_work

                      4. Reboot or invoke

                      $ source /home/username/.bashrc

                      ************************************************** *****************
                      Go to the work directory

                      $ cd /home/username/cds_work

                      Launch license

                      $ lmli

                      Start Cadence by

                      $ icfb &

                      start ic610 documentation by

                      $ cdsbook &

                      and start mmsim61 documentation by

                      $ cdsdoc &[/code][/quote]

                      ---------------------------------Done ! ------------

                      Good luck
                      Last edited by sqtran; 07-11-2010, 23:54.

                      Comment


                      • Vô cùng cảm ơn anh hithere . Thế này là rất chi tiết rồi . Vượt quá cả mong đợi của em khi hỏi . Không biết bác có ở hn không hôm nào mời bác cốc bia có được không ạ ? ^^

                        Comment


                        • Gửi bác hithere !
                          Từ các thông số mà em đã tính toán ra được W/L của 7 con MOS và khi mô phỏng kêt quả cũng tương đối ổn . Tuy nhiên để thay đổi Av thì có thể thay đổi tỉ số W/L của một số con MOS tương ứng của cả tầng visai và tần kđ đơn . Có nghĩa là thay đổi dòng cấp . Em h đang tắc phần độ chính xác Av . Mong bác gợi ý tiếp . Thanks !

                          Comment


                          • Chào bạn mrnvhien,
                            Theo mình hiểu chỗ này của ban:

                            Nguyên văn bởi mrnvhien Xem bài viết
                            Tuy nhiên để thay đổi Av thì có thể thay đổi tỉ số W/L của một số con MOS tương ứng của cả tầng visai và tần kđ đơn . Có nghĩa là thay đổi dòng cấp .
                            có nghĩa là bạn đã thay đổi dòng cấp để điều chỉnh Av, vậy bạn đã thay đổi W/L của một số mosfet CHÍNH của tầng visai và tầng khuếch đại đơn ĐỂ thay đổi dòng cấp? hay bạn đã thay đổi W/L của mosfet nào trong tầng khuếch đại visai và tầng khuếch đại đơn để thay đổi dòng cấp? Bạn nói rõ hơn là bạn đã thay đổi W/L bao nhiêu phần trăm và Av đã thay đổi bao nhiêu phần trăm. Như thế chúng ta sẽ có dữ kiện để hiểu thêm về mạch của bạn và đi tới phân tích tìm cách ĐẢM BẢO độ chính xác của Av.

                            Thân mến.

                            Comment


                            • Gửi bác hithere !
                              Theo em hiểu yêu cầu của mạch này là độ chính xác 5% , em đã tính ra được W/L6 = W/L1=W/L2 =1 khi chọn Av1=73 . Av2 =27 . Nếu em chọn tiếp I6=18u thì sẽ có Av khoảng 1930 . Còn nếu chọn I6=20u thì Av khoảng 1850 . Em muốn hỏi là có thể chọn dòng theo kiểu như vậy không ? Hay phải thay W/L của M6 . Vì W/L6=1 nếu ta tăng chỉ một đơn vị thôi thì Av sẽ tăng căn 2 lần . Rất mong được bác trả lời ! Thanks !

                              Comment


                              • Chào bạn mrvnhien,

                                Mình không biết sơ đồ mạch của bạn nên không rõ mosfet6,1,2 đóng vai trò gì, tuy nhiên mình đoán đó là mosfet CHÍNH của tầng vi sai (mosfet1,2) và tầng khuếch đại đơn (mosfet6). Tuy nhiên, theo kết quả mô phỏng của bạn có thể thấy: khi dòng ở tầng khuếch đại đơn tăng lên ~11% thì hệ số khuếch đại giảm ~4%; và nếu bạn thay đổi tỷ số của mosfet6 thì hệ số khuếch đại của bạn có thay đổi lớn hơn. Nhưng cả hai cách này đều rất khó đạt được yêu cầu về độ chính xác 5% (+/-2.5%) của hệ số khuếch đại hở mạch vì đảm bảo độ chính xác của dòng điện ~10% là không đơn giản. Sở dĩ mình nói điều này là hệ số khuếch đại hở mạch của bạn quyết định bởi gm và ro, trong khi gm và ro phụ thuộc rất nhiều vào yếu tố công nghệ và không dễ để có thể điều khiển được độ chính xác của sai số công nghệ đối với hai thông số này. Do vậy bạn cần nghĩ cách để hệ số khuếch đại không phụ thuộc vào gm hoặc ro, hoặc cả hai, tức là làm sao để chuyển những thành tố cơ bản quyết định hệ số khuếch đại về các đại lượng mà bạn có thể điều khiển tương đối dễ dàng, ví dụ hệ số khuếch đại của bạn phụ thuộc vào tỷ số hai điện trở R1/R2 chẳng hạn vì nếu bạn chọn điện trở R1, R2 là cùng loại thì tỷ số R1/R2 gần như là không đổi với sự thay đổi của công nghệ.

                                Lúc đầu khi bạn đưa ra con số 5% cho sai số hệ số khuếch đại, mình có thắc mắc là 5% đối với hệ số khuếch đại hở mạch hay kín mạch, vì thông thường đối với hệ số khuếch đại hở mạch ta không quan tâm tới độ chính xác mà chỉ quan tâm tới độ lớn tuyệt đối của nó mà thôi. Bạn hỏi lại về ý nghĩa của con số 5% này nhé. Tuy nhiên mình hiểu lúc đầu là 5% này chỉ đối với những điều khiện hạn chế, tức là bạn không có thông tin về các tham số công nghệ worst case và best case mà chỉ có thông tin về các thông số công nghệ ở trường hợp typical, và không phải mô phỏng montecarlo. Nếu vậy bạn chỉ cần phải quan tâm tới sự thay đổi của hệ số khuếch đại với yếu tố nhiệt độ mà thôi. Tức là sau khi bạn thiết kế xong bạn sẽ mô phỏng nhiệt, thay đổi từ -30oC tới 125oC chẳng hạn, và xem hệ số khuếch đại thay đổi bao nhiêu phần trăm.

                                Nếu 5% vẫn là đối với hệ số khuếch đại hở mạch và với tất cả sự thay đổi của tham số công nghệ thì mình chỉ có thể đưa ra những hướng để giảm thiểu tối đa sai số của hệ số khuyếch đại hở mạch mà không đảm bảo đạt được con số 5%. Một trong những hướng đó là đảm bảo dòng điện tham chiếu có sai số +/-7%. Con số này là thực tế đối với một vài công nghệ cụ thể, mình đã mô phỏng thành công mạch này cách đây hai năm đối với công nghệ 0.5um. (chính là vấn đề mình đề cập khi mở luồng thảo luận này).

                                Tóm lại, trước tiên bạn cần kiểm tra về ý nghĩa và điều kiện của con số 5%. Nếu chỉ thay đổi theo nhiệt thì bạn hãy thử mô phỏng xem sai số theo nhiệt của mạch hiện nay của bạn là bao nhiêu, sau khi có một vài con số cụ thể thì chúng ta sẽ có thêm dữ liệu để thảo luận tiếp.

                                Thế nhé, chúc bạn thành công!

                                Thân mến.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X