Chào bạn Hithere123,
Cám ơn bạn đã nói rõ. Bây giờ tớ hiểu ý bạn rồi. Lúc trước tớ cũng hiểu nhầm ý của bạn. Lúc đầu tớ nghĩ rằng bạn nói đến dòng chuẩn Iref cấp ra từ nguồn, nhưng bạn muốn nói đến dòng trong các mạch điện đúng không. Đúng là dòng trong các mạch điện được tạo ra từ dòng chuẩn thông qua mạch gương dòng điện không thể nào chuẩn 100% được. Sai số này chính là do tải đầu vào. Cái này tớ hiểu nhầm ý bạn. Tại vì với người thiết kế mạch nguồn, người đó chỉ có nhiệm vụ tạo ra dòng chuẩn Iref cung cấp đến tất cả các mạch điện. Còn dòng thực chất trong mạch điện thế nào là do người thiết kế mạch điện đó quyết định.
Thông qua việc trim dòng điện, giá trị điện áp và dòng điện chuẩn tớ thấy rất chính xác ví dụ bác muốn dòng 10um thì không có vấn đề gì. Trim dòng điện là để loại bỏ sai số điện trở và diode. Còn sai số do nhiệt độ và điện áp thì tớ thấy người ta mô phỏng sai số chỉ khoảng 1, 2% (đây chỉ là mô phỏng trên máy còn thực tế thế nào thì tớ cũng không biết). Nhưng đó chỉ là dòng Iref thôi chứ dòng trong mạch điện thì tớ nghĩ chắc cũng đến 10% như bạn nói.
Cám ơn.
Thông báo
Collapse
No announcement yet.
Analog IC design
Collapse
X
-
Chào bạn Rommel.de,
Đúng là mạch điện trở và diode tạo dòng của bạn mình đã hiểu sai lúc đầu, tuy nhiên về nguyên lý thì hoàn toàn giống nhau. Và mình đồng ý với bạn là dòng thay đổi theo nhiệt độ ta hoàn toàn có thể khống chế được với sai số thấp. Với mạch thông thường chưa cần "trim" đã có thể khống chế trong phạm vi +/-3%. Nếu thêm 3 bit trim thì ta hoàn toàn có thể khống chế ở mức +/-1%. Tuy nhiên người ta không dùng trim để khống chế sai số của dòng điện theo nhiệt độ vì khi thiết kế hệ số nhiệt ở giá trị typical phải đảm bảo rất tốt, và trim dùng để đưa dòng điện thực (sau khi silicon out) về giá trị typical đó. Mạch trim thường có từ 3-5 bít trim. Có thể trim thủ công sau khi silicon out, sẽ trim ở bước wafer test hoặc auto-calibration (sẽ phức tạp thêm một chút nhưng giảm giá thành testing).
Bây giờ mình nói về sai số công nghệ:
- Sai số điện trở: Điện trở poly thông thường mình dùng có sai số +/-20%. Tức là ở trường hợp slow: R=1.2*Rtyp và ở trường hợp fast: R=0.8*Rtyp. Ở đây chưa nói tới hệ số thay đổi nhiệt. Dòng điện Iref = Ires + Idiode. Như vậy Ires sẽ bị sai số công nghệ tác động khá lớn. Và mình tin chắc hiện nay chưa có công nghệ nào khống chế sai số này dưới +/- 5%
- Sai số MOSFET: Vth thường có sai khác khoảng +/- 100mV. Tức là ở trường hợp slow Vth = Vthtyp + 100mV và ở trường hợp fast: Vth = Vthtyp - 100mV. Cũng tương tự như vậy, hiện nay chưa có công nghệ nào khống chế sai số này dưới ngưỡng x0mV. Tất nhiên không tính tới các linh kiện dùng cho mục đích quân sự và trong không gian nhé vì các loại linh kiện này được chế tạo đặc biệt.
Đến đây thì chắc bạn sẽ hiểu thêm và đồng ý với tớ về thực chất của việc cần có switch (hay tớ gọi là trim dòng điện) là do sai số công nghệ. Và các mạch thực sự yêu cầu giá trị chính xác của dòng thực tế so với dòng tính toán thì bắt buộc phải dùng "trim" chính vì người kỹ sư không đảm bảo được sai số do công nghệ mang lại. Tức là với các mạch không có yêu cầu đặc biệt thì sai số dòng Iref là khá lớn.
Tiếp đến, mình nói thêm về gương dòng điện, qua những thông tin bạn trao đổi có thể đoán bạn đang làm việc ở công nghệ xung quanh 65nm. Sở dĩ mình đoán vậy là bạn đưa ra thông số cho mosfet khoảng 1um. Mình toàn dùng cỡ L=4um, 10um và 20um cho các mạch gương dòng. Tuy nhiên như bài trước mình đã đề cập, vấn đề không phải nằm ở mạch gương dòng. Giả sử bạn có Iref chuẩn qua NMOS1 (diode) gương ra NMOS2 tạo dòng I1. Nếu mạch là cascode, matching tốt và hở mạch thì mình đồng ý Iref = I1 (sai số rất nhỏ). Nhưng nếu dòng I1 nối vào một tải là PMOS, và thường là tải ở nhánh I1 và nguồn dòng nhánh Iref không hoàn toàn đối xứng (rất khó đảm bào điều này vì mỗi khối có một cấu trúc khác nhau). Mình không nói tới yếu tố nhiệt độ mà chỉ nói tới yếu tố công nghệ, nếu NMOS làm việc ở Slow và PMOS làm việc ở fast thì bạn đã có offset cho hai linh kiện này là ~200mV. Offset này chính là yếu tố mismatch của mạch gương dòng điện (sẽ làm cho điểm làm việc trên nhánh Iref và I1 là khác nhau) dẫn đến dòng trên nhánh Iref và I1 là khác nhau. Sử dụng mạch cascode chính là để làm tăng nội trở ra của nguồn dòng, làm cho nguồn dòng ít phụ thuộc vào tải tuy nhiên chỉ có tác dụng với những tải có sự khác biệt lớn so với nội trở ra này mà thôi và bản thân nó không có khả năng đề kháng với sai số công nghệ. Những mismatch kiểu này nhiều khi làm cho sai số dòng điện lên tới 40%.
Theo kinh nghiệm của bản thân mình khi thiết kế nguồn dòng cho khối dao động tạo xung dùng cho các mạch lọc đặc biệt, dòng Iref sẽ được tạo riêng và dòng Iref này được đưa trực tiếp vào mạch tạo dao động luôn. Có thể dùng một "chuẩn" nào đó để auto-calibration cho dòng Iref này, hoặc phải trim dòng Iref này về giá trị tính toán ở bước wafer test.
Hy vọng qua những trao đổi này, bạn sẽ hiểu thêm những ý mình nói tới.
Thân mến.
Leave a comment:
-
Chào bạn Hithere123,
Có lẽ tớ viết hơi ngắn gọn nên có một số điểm bạn hiểu nhầm tớ. Về Vref có lẽ tớ với bạn đã hiểu ý nhau. Nói chung ta cần một mạch bandgap, và một mạch khuếch đại. Đây là một mạch vi sai thông thường có sử dụng hồi tiếp điện trở. Người ta sử dụng transistor để trim giá trị điện trở hồi tiếp để đưa ra một điện áp chuẩn chính xác không phụ thuộc vào nhiệt độ và nhiễu nguồn. Giá trị Vref này không thể có sai số lớn vì giả sử như ta định dùng điện áp 1.2V để cấp cho các mạch mà điện áp ra là 1.1V thì mạch chết chắc. Bạn cũng đồng ý với tớ là sai số của Vref có thể bỏ qua.
Bây giờ tớ nói rõ hơn về Iref. Tớ nói dòng điện qua điện trở và diode thật ra là 2 dòng điện song song nhau, chứ không phải nối tiếp như bạn nói. Nhờ có 2 dòng điện này song song nhau và một dòng tăng khi nhiệt độ tăng một dòng giảm khi nhiệt độ tăng nên tổng 2 dòng mới không đổi theo nhiệt độ. Dòng qua diode được tạo ra bằng cách đặt điện áp chuẩn lên một diode thực chất là một mạch gương dòng điện. Dòng qua diode sẽ được nhân lên 8, 9, hay 10 lần tùy theo việc bác sử dụng switch. Cái này cũng phải thực hiện trong quá trình calibration. Dòng qua điện trở được tạo ra bằng cách đặt Vref lên một chuỗi các điện trở mắc nối tiếp. Người ta cũng dùng switch để ngắn mạch các điện trở này nếu muốn nên giá trị điện trở có thể thay đổi ví dụ 8R, 9R, 10R... Sau đó dòng điện này lại thông qua mạch gương dòng điện để đưa ra ngoài. 2 dòng này sau đó kết hợp với nhau thành một dòng tổng có giá trị không đổi theo nhiệt độ. Cái này tớ thật sự đã từng thấy người ta thiết kế rồi và sau khi chạy mô phỏng sai số chỉ khoảng 1, 2%. Nói chung để dòng điện này không đổi theo nhiệt độ một cách tuyệt đối là không được, nhưng thường người thiết kế điều chỉnh để khi nhiệt độ tăng thì dòng này tăng lên một chút xíu. Đó là bởi vì khi nhiệt độ tăng, các transistor làm việc chậm lại. Khi dòng tham chiếu tăng nó sẽ làm cho mạch chạy nhanh lên nên đây là cách tối ưu của người thiết kế.
Cuối cùng Iref sẽ thông qua mạch cascode current mirror để đưa đi tất cả các nơi trong chip ví dụ input port, PLL, mạch khuếch đại. Bạn nói mạch này sai số lớn thì tớ không đồng ý với bạn. Thứ nhất tải ở đầu còn lại của mạch cascode là một diode mà thôi, vì tại mạch cuối người ta lại dùng mạch gương dòng điện để tạo ra dòng bias từ Iref. Diode này không thể có ảnh hường gì đến dòng trong mạch cascode được. Còn tại đầu mạch cascode các transistor được thiết kế để nó match tối đa với nhau nên dòng là hoàng toàn giống nhau. Do đây là dòng một chiều, và dòng điện bằng nhau tại mọi điểm nên dòng Iref hết sức chuẩn không bị ảnh hưởng bởi nhiễu, hay các thông số khác nhau của mạch.
Còn về sai số do corner case như fast, slow, typical tớ cũng đã có nói. Người ta sử dụng các transistor lớn mà sai số của transistor tỷ lệ nghịch với diện tích nên sai số này là nhỏ. Thêm vào đó vì ta sử dụng các switch để trim các thông số nên giá trị ra tớ thấy cực chuẩn. Dòng Iref này có thể không quá quan trọng trong mấy mạch khuếch đại, nhưng rất quyết định trong những mạch như PLL. Nếu dòng bị dịch chuyển nó sẽ làm thay đổi tần số khóa trung tâm của mạch. Nếu nó bị nhiễu thì mạch sẽ phát sinh phase noise rất căng.
Cuối cùng tớ cũng phải nói việc sử dụng transistor để trim giá trị sau khi calibration làm mạch trở nên lớn. Nhưng vì đây là mạch tham chiếu cho toàn bộ chip nên ta không thể tiết kiệm được.
Làm việc ở vùng subthreshold thì tớ không có kinh nghiệm gì. Mong bạn có thể chỉ thêm.
Leave a comment:
-
Chào bạn Rommel.de,
Bạn mô tả khá đúng về cách tạo dòng điện tham chiếu (Iref) trong các mạch thiết kế thông dụng hiện nay, tuy nhiên không biết bạn đã mô phỏng mạch điện cung cấp dòng điện cho tất cả các khối trong một IC và quan sát sự thay đổi của dòng điện chuẩn Iref so với các dòng điện I1, I2, I3, ... In ở các khối chức năng đối với sự thay đổi của công nghệ slow(nmos) fast(pmos), slow(nmos) fast(pmos) chưa. Sở dĩ mình nói sai số dòng điện lớn là bởi một số nguyên nhân chính sau đây:
- Sai số dòng Iref đối với yếu tố công nghệ: giả sử điện áp Vref chuẩn có sai số 0.5% (có thể bỏ qua), bạn đưa vào điện trở poly và diode để tạo Iref, như vậy Iref = (Vref - Vdiode)/Rpoly.
Ở đây, ta gần như có thể bù được hệ số nhiệt bậc một giữa điện trở và diode tuy nhiên vẫn còn hệ số nhiệt bậc hai và quan trọng là ta không điều khiển được giá trị tuyệt đối của điện trở poly (thông thường sẽ là +/-10%_điện trở trong mạch tích hợp như vậy là xịn rồi đấy). Nhưng vấn đề quan trọng nhất là Vdiode thay đổi khá lớn (so với giá trị Iref) giữa trường hợp slow và fast. Muốn triệt tiêu thông số này thì bạn sẽ chọn Rpoly lớn, như thế lại ảnh hưởng tới giá trị bù nhiệt mà bạn đã tính toán ở trên. Bạn thử mô phỏng chỉ riêng mạch này thôi ở trường hợp fast và slow (chưa cần tới mô phỏng montecarlo) để xem Iref của bạn thay đổi bao nhiêu phần trăm. Con số mình đưa ra là không dưới 15% với các công nghệ tử 130nm trở lên.
Việc dùng Switch để thay đổi giá trị dòng điện chính là cách "trim" dòng để có thể điều khiển Iref về giá trị 5uA như yêu cầu thiết kế. Nếu Iref theo đúng tính toán và có giá trị sai số nhỏ như bạn nói thì mình nghĩ người ta không cần dùng switch để đạt được 5uA. Vì việc dùng switch này là giải pháp rất tốn kém (diện tích mạch tăng + thời gian testing cho mỗi IC tăng). Và người ta thông thường chỉ dùng để điều khiển dòng cho một khối vô cùng quan trọng nào đó ví dụ như mạch tạo dao động trong các khối PLL như bạn nói ở trên. Với dòng điện trong các khối so sánh khuếch đại thông thường thì giải pháp này thường không được chọn. Nhưng nếu mạch khuếch đại của bạn mrnvhien nhất thiết yêu cầu 5% sai số của hệ số khuyếch đại hở mạch thì có lẽ phải dùng trim dòng để đảm bảo dòng cung cấp luôn trong phạm vi 5%.
- Sai số gương dòng điện: Mặc dù mạch gương là cascode tuy nhiên, để tạo gương thì vẫn phụ thuộc vào công thức nối tiếng Idrain=hàm của (Vgate-Vt). Và khi Vgate thay đổi một đơn vị thì Idrain thay đổi bình phương lần. Nhưng vấn đề lớn nhất lại nằm ở chỗ tải của nguồn gương dòng này là các phần tử tích cực chứ không phải lúc nào cũng là điện trở, do đó trường hợp xấu nhất sẽ là nguồn dòng NMOS, tải PMOS, mô phỏng ở trường hợp slow(nmos) và fast(pmos). Ví dụ Iref(typ) = 5uA, tuy nhiên I1 ở nhánh khuếch đại đo được sẽ là 3.5uA ở trưởng hợp slow(nmos) và fast(pmos). --> sai số 30%.
Theo mình, hiện nay việc tạo dòng tham chiếu có sai số dưới 10% (không dùng trim dòng)vẫn là một thách thức với các kỹ sư thiết kế vi mạch tương tự, một vài phát minh gần đây gợi ý lợi dụng đặc tính làm việc của MOSFET ở vùng subthreshold với nguyên tắc gần tương tự mạch tạo điện áp tham chiếu, nhưng chỉ thành công rất hạn chế với giá trị dòng x00nA và ở một vài công nghệ cụ thể chứ vẫn chưa phổ biến ở mức dòng uA được.
Một vài dòng trao đổi thêm như vậy, hy vọng sẽ có thêm nhiều nữa cơ hội trao đổi với bạn trong thời gian tới.
Chúc bạn thành công!
Thân mến.
Leave a comment:
-
Chào bạn Hithere123,
Bạn cho tớ hỏi một chút, bạn nói rằng sai số của dòng điện lên đến 10% không biết bạn muốn nói đến giá trị hay sự thay đổi trong quá trình làm việc do nhiệt độ... Nếu đây là dòng điện tham chiếu thì 10% là quá lớn, không thể sử dụng cho các mạch nhạy cảm như PLL, DLL. Theo mình biết sai số của reference current khi nhiệt độ thay đổi từ -20 đến 85 độ cũng chỉ khoảng 1, 2%.
Đây là cách mình biết mọi người làm. Trước tiên người ta sử dụng mạch voltage bandgap để sinh ra điện áp. Giá trị điện áp này rất ổn định không thay đổi theo nhiệt độ và nhiễu nguồn. Điện áp này sau đó được khuếch đại lên thành điện áp chuẩn. Hệ số khuếch đại có thể điều chỉnh bằng các switch. Quá trình calibration người ta sẽ điều chỉnh hệ số khuếch đại này để tạo ra reference voltage theo yêu cầu. Tớ thấy điện áp này được tạo ra cực chuẩn và không bị thay đổi khi hoạt động. Điện áp tiêu chuẩn này được đưa vào regulator và charge pump.
Từ điện áp tiêu chuẩn người ta tạo ra dòng điện tiêu chuẩn reference current bằng cách đặt điện áp này lên một điện trở là polysilicon, và diode. Dòng qua điện trở sẽ giảm khi nhiệt độ tăng và dòng qua diode tăng khi nhiệt độ tăng nên dòng tổng cộng không đổi. Người ta cũng sử dụng switch để thay đổi giá trị của dòng điện khi calibration. Cuối cùng ta có một dòng tiêu chuẩn không đổi theo điện áp bên ngoài, và nhiệt độ. Dòng này thông qua mạch cascode current mirror đưa ra toàn bộ mạch.
Thêm vào đó mấy mạch nguồn không sử dụng short channel transistor. Mấy transistor dùng trong mạch nguồn ít thì cũng 0.3, 0.5 um, nhiều thì 1um nên process variation khá nhỏ. Vì thế tớ thấy dòng tiêu chuẩn không có sai số lớn như bác nói đâu. Bác có thể cho ý kiến của bác không.
Leave a comment:
-
E đang học được nhiều điều thú vị về VLSI từ bác ! Thank bác rất nhiều !!!Nguyên văn bởi hithere123 Xem bài viếtChà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.
Leave a 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.
Leave a 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 !
Leave a comment:
-
Chào bạn mrnvhien,
Theo mình hiểu chỗ này của ban:
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.Nguyên văn bởi mrnvhien Xem bài viếtTuy 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 .
Thân mến.
Leave a 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 !
Leave a 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 ạ ? ^^
Leave a comment:
-
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ềuNguyên văn bởi robocon2011 Xem bài viếtbá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!
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.
Leave a 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.
Leave a 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 !
Leave a comment:
-
Chào bạn cachep,Nguyên văn bởi cachep Xem bài viếtAnh hithere cho em hỏi là ở Hà Nội có nơi nào dạy về thiết kế analog IC không ạ?
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.
Leave a comment:
Bài viết mới nhất
Collapse
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamCháu nghe thử trên youtube xem sao? : https://www.youtube.com/watch?v=Opm0BszTmFQ...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:23 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cháu không vào được để nghe thử. Mời bác nghe thử bản phối điệu Techno này xem thế nào nhé! Chúc bác vui.
( Cháu nhìn lyrics và cứ thế một mmạch hát demo rồi đưa vào suno. nó hát đạt 80% melody!)...-
Channel: Tâm tình dân kỹ thuật
27-04-2026, 17:00 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Bài này cháu phải "Creat" trên 30 lần rồi cắt ghép mới tạm có hồn tí đó bác. Quá nản luôn!!!
HẸN ƯỚC XUÂN SANG
Sáng tác: Hoàng Đình Thường
Hòa âm & hát: Suno AI
---25/04/2026----
[Verse 1]
Gió...-
Channel: Tâm tình dân kỹ thuật
25-04-2026, 11:05 -

Leave a comment: