Thông báo

Collapse
No announcement yet.

Analog IC design

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

  • hithere123
    replied
    Chào bạn Rommel.de,

    Mình không có ý nói

    Nguyên văn bởi Rommel.de Xem bài viết
    ... nếu không có chân "Enable" thì ta có thể thiết kế để tất cả các chip chuyển sang chế độ test mode trong lúc khởi động phải không? Sau một thời gian nếu không có gì thì chip mới chuyển sang chế độ hoạt động bình thường.
    Trong bài trước mình đề cập tới khía cạnh “enter test mode” của các IC tương tự với hai ý độc lập nhau: một là bằng một cách nào đó, lợi dụng một chân chức năng thông thường để làm nhiệm vụ test khi cần; hai là chỉ test IC trong giai đoạn khởi động để tránh trường hợp xấu nhất xảy ra khi chip không phân biệt được chức năng thông thường và chức năng test của cùng một chân (PIN). Trong kịch bản tệ nhất với thiết kế DFT, chip chỉ có 3 chân, thì vẫn có cách để test được vì lợi dụng đặc điểm trong lúc khởi động có thể coi các chân là không có giá trị ứng dụng trừ chân nguồn và đất. Do đó, ta có thể test bằng chân OUT thay vì chân ENABLE.

    Nếu thỏa mãn điều kiện sau một thời gian nếu không có gì thì chip mới chuyển sang chế độ hoạt động bình thường thì vô hình chung ta đã can thiệp vào chức năng thông thường của chíp như làm cho thời gian khởi động lâu hơn chẳng hạn. Điều này nên tránh; và tốt nhất là về mặt chức năng thì IC có DFT hay không có DFT đều hoạt động như nhau, chỉ khác là khi có DFT thì chip sẽ “thông minh” hơn mà thôi.

    Liên quan đến mạch xác định thời điểm nguồn ổn định, thì như bạn Rommel.de nói, đó là thiết kế mạch so sánh điện áp. Tuy nhiên cần thêm hysteresis để tránh glitch cũng như sự đảm bảo ổn định tại đầu ra của bộ so sánh vì điện áp nguồn với ripple ~20mV là có thể làm cho đầu ra của bộ so sánh này mất ổn định nếu nguồn cung cấp có giá trị ở khoảng giá trị ngưỡng so sánh. Nhưng thật ra ngưỡng này thông thường không phải mang ý nghĩa báo hiệu nguồn ổn định mà thực chất nghiêng về ý nghĩa báo hiệu IC sẽ ở chế độ hoạt động đầy đủ (full). Theo nguyên lý ở trên thì cần có một điện áp chuẩn để so sánh, tức là mạch tạo điện áp chuẩn đã ổn định rồi. Nên thực chất mạch xác định điểm khởi đầu thường là mạch phát hiện dòng. Mà mạch phát hiện dòng đơn giản nhất có thể dùng chính là mạch gương dòng. Không biết đây có phải ý mà bạn Rommel.de đề cập tới không vì mình hiểu dòng lúc ổn định và không ổn định khác xa nhiều là so sánh một bên là có dòng và một bên là không có dòng. Mình cũng chưa từng có kinh nghiệm làm qua mạch nào phức tạp để thực hiện chức năng này nên không biết mô tả kỹ hơn như thế nào.

    Về khía cạnh tín hiệu reset thì cần đề cập tới internal reset, exernal reset, fault reset, hay power reset. Chắc bạn muốn đề cập tới power reset, nếu đúng vậy thì tạo ra tín hiệu power rest là một mạch tương tự và nó gần với những ý mình đã đề cập ở trên.

    Một vài dòng trao đổi thêm,
    Chúc mọi người thêm một cuối tuần vui vẻ!

    Thân mến.

    Leave a comment:


  • Rommel.de
    replied
    Chào bạn Hithere123,

    Tớ muốn hỏi lại bạn một chút do co điểm chưa được rõ. Theo như bạn nói nếu không có chân "Enable" thì ta có thể thiết kế để tất cả các chip chuyển sang chế độ test mode trong lúc khởi động phải không? Sau một thời gian nếu không có gì thì chip mới chuyển sang chế độ hoạt động bình thường.

    Nhân tiện bạn có thể mô tả chi tiết mạch khởi động (để xác định thời điểm bật nguồn). Tớ hồi lâu rồi có từng xem một thiết kế này nhưng đã không còn nhớ nữa. Đây là một mạch rất hay nhưng để thiết kế ổn định cũng không dễ. Nếu tớ nhớ không nhầm thì người ta thay vì so sánh điện áp vào có chuyển từ thấp lên cao và vượt trên ngưỡng hay chưa (vào thời điểm ban đầu điện áp tăng dần lên), người ta so sánh dòng điện vì dòng điện khi chưa có nguồn và dòng điện sau khi có nguồn ổn định khác rất xa so với dòng chuẩn nên độ tin cậy cao hơn nhiều. Bây giờ mấy mạch bọn tớ làm đều có tín hiệu reset nên những mạch khởi động như vậy không cần thiết nữa nhưng tớ nghĩ rằng đây là những ví dụ thiết kế mạch rất hay.

    Leave a comment:


  • hithere123
    replied
    Tổng quan về khái niệm DFT trong thiết kế mạch tương tự (tiếp)

    Chào mọi người,

    Rất vui vì bạn Rommel.de đã nhiệt tình bổ xung thêm cho phần DFT đối với mạch số, các khái niệm về stuck @ 0/1 hay LFSR là hết sức cơ bản khi đề cập tới vấn đề này. Sau đây mình sẽ tiếp tục trình bày thêm một khía cạnh nữa về DFT đối với mạch tương tự.

    Ở bài viết trước mình có đề cập tới test mode và một cách đơn giản để “enter test mode” đó là thiết lập ENABLE = -5V. Nhưng vấn đề lại không đơn giản như vậy. Bài toán đặt ra như sau: khi ở chế độ hoạt động bình thường nếu xuất hiện một spike ở chân ENABLE của LDO chẳng hạn, và trường hợp xấu nhất là điện áp ENABLE có thể bằng -5V, thì IC sẽ tự động nhảy sang hoạt động ở trạng thái test mode và chức năng hoạt động bình thường của LDO sẽ bị vi phạm. Đây là kịch bản không mong muốn và nhiệm vu của thiết kế DFT là đảm bảo trong mọi tình huống những kịch bản kiểu như vậy sẽ không xảy ra. Có thể nói đây là một trong những vấn đề cơ bản đòi hỏi người kỹ sư phải nghĩ tới đầu tiên.

    Với thiết kế số thì vấn đề này được giải quyết tương đối đơn giản, vì để thiết kế thêm một vài thanh ghi đặc biệt làm nhiệm vụ thiết lập các trạng thái hoạt động bên trong của IC là không có gì khó khăn. Về mặt nguyên tắc chúng ta hoàn toàn có thể áp dụng cách này với thiết kế tương tự, nhưng chúng ta sẽ phải trả giá là cần thiết kế thêm phần giao tiếp với các thanh ghi đặc biệt này. Vậy với thiết kế tương tự thì bài toán này sẽ được giải quyết như thế nào?

    Một cách tương đối, chúng ta có thể coi như trong khoảng thời gian IC khởi động thì mọi giá trị đầu ra là “không có giá trị” về mặt ứng dụng (application). Lợi dụng chính điểm này DFTsẽ thiết kế sao cho test mode chỉ diễn ra khi và chỉ khi IC đang trong quá trình khởi động. Như thế, IC sẽ an toàn trong chế độ hoạt động bình thường. Và người kỹ sư cũng sẽ có nhiều lựa chọn hơn trong việc sử dụng các chân của IC cho thiết kế DFT do lợi dụng đặc điểm trong khoảng thời gian này các chân chức năng không có giá trị ở mặt ứng dụng thông thường. Đây cũng chính là gợi ý ‎cho câu hỏi trong bài trước mình đề cập: nếu LDO không có chân ENABLE thì IC sẽ được test như thế nào. Và gần như hầu hết IC tương tự có DFT hiện nay được thiết kế theo cách này.

    Tóm lại, vấn đề thiết kế trạng thái test mode cho IC tương tự đã được bổ xung thêm đầy đủ hơn, các bài viết tiếp theo mình sẽ đề cập tới một vài kỹ thuật bên trong IC ở khía cạnh DFT này.

    Thân mến.

    Leave a comment:


  • Rommel.de
    replied
    Chào các bạn,

    Để tớ giới thiệu thêm một chút về DFT cho phần logic.

    Mạch số hiện nay đã rất phức tạp lên đến hàng triệu cổng logic. Chính vì vậy để test mạch có hiệu quả người ta thường dùng phương pháp "Chia để trị" (Divide and conquer). Phương pháp này xuất hiện chắc từ thời tiền sử và vẫn được dùng hiệu quả đến tận bây giờ. Nguyên tắc của nó là chia mạch ra thành từng khối nhỏ và test các khối này. Test mạch logic như bạn Hithere123 nói người ta phải chia ra phần combinational và phần sequential logic. Tớ giả thiết mạch cần test là một Moore machine. Như vậy mạch này cần phải được biểu diễn bằng 2 hàm logic f1, f2 trong đó f1 làm hàm logic xác định trạng thái của mạch dựa theo giá trị đầu vào và trạng thái của mạch tại thời điểm trước đó, và hàm f2 xác định đầu ra của mạch dựa vào trạng thái của mạch tại thời điểm hiện tại. Trạng thái của mạch được xác định bằng giá trị của các flipflop bên trong mạch. Như vậy nếu ta biết được giá trị đầu vào của mạch, giá trị đầu ra của mạch và trạng thái của mạch thì ta có thể test 2 hàm f1, và f2 này.

    Việc đọc/ghi giá trị trạng thái của mạch thông qua các flipflop ở bên trong có rất nhiều cách. Đơn giản nhất là dùng scan-chain test. Trong một số trường hợp đơn giản người ta không cần thiết phải đọc ghi trực tiếp giá trị trạng thái của mạch. Ở đây tớ cứ giả thiết bằng một cách nào đó ta có thể xác định được giá trị của trạng thái mạch. Như vậy vấn đề chỉ còn là xác định xem hàm logic có chạy đúng hay không khi có thể biết được đầu vào và đầu ra.

    Hai phương pháp đơn giản nhất để test hàm logic là exhausted test và random test. Exhausted test là test tất cả các trường hợp. Ví dụ như ta có N đầu vào vậy là ta phải sử dụng 2 mũ N testing vector để kiểm tra rồi so sánh với đầu ra. Phương pháp này chỉ dùng đối với những mạch nhỏ còn những mạch lớn thì quá chậm. Tớ lấy một ví dụ là mạch cộng/trừ 32 bit. Mạch này có tất cả là 66 bit đầu vào (32 bit giá trị A, 32 bit giá trị B, 1 bit carry in, 1 bit add/sub). Nếu dùng phương pháp exhausted test thì bạn chạy chắc đến sang năm. Phương pháp thứ 2 là random test, tức là ta đưa giá trị ngẫu nhiên ở đầu vào rồi kiểm tra ở đầu ra. Người ta nhận thấy chỉ cần sử dụng một số lượng testing vector ngẫu nhiên tương đối lớn thì ta sẽ có thể bao quát gần như tất cả các lỗi trong mạch.

    Phương pháp test ngẫu nhiên sử dụng Linear Feedback Shift Register để tạo số ngẫu nhiên. Giá trị khởi đầu của thanh ghi này được nạp vào từ bên ngoài. Sau đó mạch sẽ tự chạy N chu kỳ.

    Hai phương pháp exhausted test và random test có ưu điểm là người làm thiết kế chẳng cần quan tâm đến mạch bên trong như thế nào cả. Họ chỉ cần quét hết đầu vào hoặc dùng bộ sinh số ngẫu nhiên là đủ. Nhưng nhược điểm của nó là test rất lâu, và có thể không bao quát hết lỗi. Vậy nên mới xuất hiện phương pháp thứ 3 ad-hoc tức là giá trị của testing vector được xác định tùy theo mạch.

    Để làm phương pháp thứ 3 này thì các bạn phải để ý lại bài viết trước của tớ về fault (stuck at 1 and stuck at 0). Trong trường hợp này người thiết kế phải nhìn vào mạch điện gồm hàng loạt các cổng logic sao cho khi ta thay đổi giá trị đầu vào thì giá trị ở các điểm trung gian thay đổi cả 0, và 1. Như vậy trong trường hợp điểm trung gian này bị lỗi stuck at 1, ta phải đưa giá trị đầu vào để điểm trung gian này có giá trị là 0. Bên cạnh đó vì ta chỉ có thể kiểm tra được tín hiệu đầu ra, không kiểm tra được tín hiệu trung gian, ta cũng phải đảm bảo testing vector không mask lỗi này. Tớ lấy một ví dụ đơn giản để cho các bạn dễ hiểu. Ta có một mạch X=A & B; Y= X & C. Đầu vào là A, B, C, đầu ra là Y, trung gian là X. Nếu một kiểm tra X có bị stuck at 0 hay không ta phải đưa giá trị 11 vào 2 đầu A, B; và để có thể đo được tín hiệu X từ đầu ra Y ta phải cho C giá trị 1.

    Phương pháp ad-hoc này làm với mạch nhỏ thì OK chứ mạch lớn thì chết chắc. Cũng có thể hiện này người ta đã làm ra nhưng EDA tool mới mà tớ không biết để xác định các testing vector này. Nhưng giả sử như ta vẫn phải dùng phương pháp thủ công (cách đây 10 năm rồi) thì người ta sẽ kết hợp phương pháp thứ 2 và thứ 3. Tức là người ta sẽ sử dụng random test để test khoảng 90% mạch. Phần còn lại mới sử dụng ad-hoc. Nếu bạn để ý, trong phương pháp random test, giá trị khởi đầu của LFSR được nạp vào từ bên ngoài. Người ta sẽ sử dụng phương pháp ad-hoc để nạp các giá trị khác nhau vào, và test với chu kỳ khác nhau. Một ưu điểm khác nữa là ta không phải liên tiếp đưa giá trị testing vector vào từ bên ngoài mà LFSR có thể tự sinh ra trong các chu kỳ sau đó. Điều này làm giảm đi yêu cầu về số chân tín hiệu probe trong lúc test.

    Trong quá trình test, giá trị đầu ra cần phải được đọc ra để kiểm tra với giá trị đã lưu trữ sẵn từ trước trên máy. Tuy nhiên do số lượng chân tín hiệu quá ít, việc đọc ra liên tục là điều không thể làm được. Vì thế người ta thường nén dữ liệu lại trước rồi mới đọc ra để kiểm tra. Có rất nhiều phương pháp nén dữ liệu và trong đó đơn giản nhất là dùng LFSR để tạo ra kiểm tra CRC.

    Leave a comment:


  • Rommel.de
    replied
    Chào bạn Hithere123,

    Bài viết vừa rồi về DFT bạn viết khó hiểu quá. Tớ đọc cũng hoa cả mắt. Để tớ trình bày lại vấn đề này một chút hi vọng sẽ dễ hiểu hơn. Tớ thật ra không làm về DFT nên kiến thức của tớ trong vấn đề này chỉ là trong sách và cũng đã lạc hậu hết gần 10 năm rồi. Nếu có bạn nào trên 4rum làm về DFT chắc chắn sẽ trình bày hay hơn tớ.

    Tớ trước hết trình bày về DFT kiểu cổ điển sau đó mới nói đến một số vấn đề của hiện nay. Lỗi chip kiểu cổ điển gồm có đứt mạch, chập mạch... Đây là những lỗi vật lý gọi là defect. Đối với mạch số, người ta có thể tổng quát hóa thành lỗi logic (fault) gọi là "stuck at 1", và "stuck at 0", tức là có một tín hiệu nào đó bị nối chặt vào nguồn và vào đất. Test theo kiểu cổ điển tức là làm sao đặt lên đầu vào một testing vector sao cho đầu ra trong trường hợp bình thường khác với đầu ra khi có fault ở một số điểm nào đó trong mạch. Tớ sẽ trình bày rõ hơn ở đoạn sau. Hiện nay các công nghệ mới phải đối mặt với một vấn đề rất lớn là sai số của công nghệ quá cao (process variation), và điều này cũng tạo nên lỗi. Các bạn đều biết transistor khi sản xuất ra có thể xuất hiện các corner case khác nhau như fast, slow, hay typical. Hiện nay sai số bên trong chip (intradie variation) nhiều khi còn cao hơn cả sai số giữa các chip (interdie variation). Khi sai số công nghệ lớn như vậy thì dòng điện khi ta đóng/mở transistor có thể khác nhau đến mấy lần. Đối với mạch số điều này không ảnh hưởng đến giá trị logic nhưng nó làm thay đổi thời gian phóng nạp dẫn đến tốc độ trong các phần của chip thay đổi rất khác nhau và có thể tạo ra metastability. Bên cạnh đó 2 yếu tố làm vấn đề này trầm trọng hơn là crosstalk và IR drop. Crosstalk tức là trường hợp tín hiệu trên 2 đường kết nối đi song song với nhau ảnh hưởng lẫn nhau. Khi 2 đường kết nối đi song song với nhau chúng sẽ có một giá trị điện dung kí sinh lẫn nhau ta tạm gọi là C0. Nếu như 2 tín hiệu này cùng đồng thời chuyển từ 0 sang 1 hoặc từ 1 sang 0 thì giá trị C0 này không có ảnh hưởng gì nên mạch sẽ được phóng nạp trong thời gian T0. Nếu trong 2 tín hiệu này có một tín hiệu không đổi giá trị còn 1 tín hiệu chuyển mức giá trị thì ta cần tính thêm giá trị điện dung ký sinh C0 và thời gian phóng nạp sẽ là T1 lớn hơn T0. Còn trong trường hợp 2 tín hiệu này thay đổi ngược nhau ví dụ từ 0 thành 1 và tín hiệu kia từ 1 thành 0, thì ta phải tính giá trị điện dung ký sinh là 2C0 và thời gian phóng nạp sẽ là T2 lớn hơn T1. IR drop là trường hợp mạch tiêu thụ nhiều công suất thì điện áp cung cấp sẽ bị sụt giảm do điện trở bên trong dây dẫn của phần cấp nguồn và đất. Điện áp giảm cũng làm mạch chạy chậm lại khá nhiều gân nên metastability.

    Các mạch thiết kế kiểu cổ điển người ta thường nhắc đến critical path. Khái niệm này hiện nay vẫn được sử dụng rộng rãi nhưng đối với những công nghệ mới do intradie process variation quá lớn trong mạch rất nhiều đường có khả năng trở thành critical path. Delay trong chip trước đây thường chỉ là logic delay thì ngay nay là kết hợp giữa logic delay và interconnect delay (người ta còn gọi là RC delay). Để có thể test cho mạch chạy đúng trong tần số cao với những chip hiện đại vẫn còn là một vấn đề. Bên cạnh đó vấn đề này còn trầm trọng hơn nếu người ta sử dụng kỹ thuật Adaptive Voltage Scaling (AVS). Đây là một kỹ thuật rất mới tớ chưa làm bao giờ mà chỉ mới đọc về nó thôi. Nguyên tác của nó là ta làm một mạch mô phỏng lại delay của đường critical path, sau đó đưa tín hiệu đồng hồ qua mạch mô phỏng này. Độ trễ của tín hiệu ra sẽ được so sánh với tín hiệu đồng hồ chuẩn rồi điều chỉnh lại mức điện áp cấp nguồn. Mạch so sánh độ trễ để chuyển sang mức điện áp cũng tương tự như mạch Phase Frequency Detector và Charge Pump trong mạch PLL. Nguyên lý của mạch là khi nhiệt độ thấp hoặc chịp là loại fast corner, ta có thể hạ thấp điện áp làm việc để tiết kiệm công suất. Một vấn đề đặt ra là mạch mô phỏng đường critical path phải làm thế nào. Như tớ nói trong mạch có thể xuất hiện rất nhiều đường critical path và độ trễ có thể do mạch logic hoặc do đường kết nối. Khi thay đổi mức điện áp độ trễ do mạch logic và độ trễ do đường kết nối cũng thay đổi khác nhau. Chính vì vậy mạch mô phỏng này là loại có thể lập trình để kết hợp cả độ trễ do mạch logic và đường kết nối. Nhưng cũng vì thế mà test mấy con chip này là một vấn đề.

    Hôm nay viết đến đây thôi, hôm khác tớ viết tiếp về việc thiết kế các mạch để test các lỗi này.

    Leave a comment:


  • hithere123
    replied
    Chào mọi người,

    Bạn Rommel.de đã đề cập qua về DFT trong thiết kế vi mạch số, mình sẽ trao đổi thêm một chút về anh này, cũng là tiện để các bạn so sánh sự khác nhau và giống nhau ở khía cạnh DFT giữa thiết kế số và tương tự.

    Trong mạch số, có thể nói tất cả các mạch đều được cấu tạo từ các đơn vị logic cơ bản (AND, OR, FF …. ) và thêm ưu điểm rất rõ của thiết kế số là cái gì cũng rất rõ ràng, một là một hai là hai nên một triệu cổng hay vài chục cổng thì nguyên lý cũng như nhau, khác nhau chỉ là quy mô mà thôi. Tức là, nếu mình đảm bảo test được mạch đơn giản gồm hai FF và 4,5 anh AND, OR nối ở đầu vào và đầu ra của hai FF chẳng hạn là có thể suy ra nguyên lý hoạt động của DFT cho mạch số. Để giải thích những khái niệm này, sử dụng hình vẽ sẽ đơn giản hơn, tuy nhiên sẽ mất khá nhiều thời gian nên mình sẽ mô tả sơ qua như sau để các bạn hình dung:

    Ví dụ để test mạch AND hai cổng vào, một cổng ra thì cho đầu vào là (11) sau đó kiểm tra xem đầu ra có bằng 1 không. Ví dụ khác, để test D-FF thì cho tín hiệu vào cổng D, sau đó đưa vào một xung clock xem tín hiệu ra có đúng bằng tín hiệu vào không. Ở đây, (11) hay tín hiệu cho vào cổng D gọi là test vector cho cổng AND và D-FF. Vấn đề đặt ra ở đây là: với một chíp tích hợp lên đến khoảng triệu cổng cả FF và AND,OR, … thì làm sao thiết kế được test vector để kiểm tra hết được các thành phần logic trong IC?

    Rất may là trong thiết kế số, máy tính hỗ trợ rất nhiều nên việc phức tạp này sẽ do máy tính dảm nhiệm, nhưng mình cần hiểu rõ nguyên lý để có thể bảo máy tính làm giúp mình.

    Giả sử mạch số có cấu tạo như sau: Đầu vào A1,2, ..n  qua một đống anh logic AND, OR, … tới chân D1 của FF1. Đầu vào B1,2,…l cùng với đầu ra Q1 của FF1  qua tiếp một đống anh logic AND, OR, .. tới chân D2 của FF2. Một đống anh logic AND, OR kẹp giữa FF1 và FF2 có thêm một đống đầu ra nữa X1,2..i kết hợp với đầu ra Q2 của FF2  qua một đống anh logic AND, OR, .. cho ra Đầu ra Y1,2, ..k. Mô tả thì phức tạp vậy nhưng với kỹ sư DFT thì chỉ nhìn thấy mạch đó có 2 ông chính: Ba đống logic AND, OR, .. (ở đầu vào FF1, kẹp giữa FF1 và FF2, và ở đầu ra FF2) và Hai ông FF (FF1 và FF2).

    Với một đống cổng logic thì cũng chả khác gì một cổng logic vì với đại số Boolean thì với một vector input sẽ tính ra một vector output. Vấn đề là làm sao để điều khiển/quản lý dữ liệu vào/ra đảm bảo mục tiêu tối thượng của việc test là với tập hợp input và tập hợp output đó thì khả năng phát hiện lỗi là cao nhất.

    Với FF thì khác một chút, để có thể đưa tín hiệu vào đầu vào và đo tín hiệu ở đầu ra, người ta sẽ làm thế này, sau bước synthesis thông thường để có netlist bao gồm FF “lý tưởng” và các cổng logic (đảm bảo đúng chức năng như RTL) thì tất cả FF lý tưởng sẽ được thay thế bằng FF “thật” (có thể test được). FF thật thường có thêm hai chân nữa so với FF lý tưởng gọi là TI (test in) và TE (test enable). Trong đó FF thật = FF lý tưởng + MUX (có hai đầu vào là TI và D, chân điều khiển là TE và đầu ra đưa vào D của FF lý tưởng). Scan-chain sẽ được cấu tạo như sau: chân scan_in được nối tới chân TI của FF1, Q1 của FF1 sẽ nối tới TI của FF2, Q2 của FF2 sẽ được nối tới TI của FF3, cứ thế tiếp tục cho đến Qn của FFn sẽ đưa ra scan_out, các TE sẽ được nối chung vào chân TE. Như vậy khi TE = 1 thì tất cả các FF1,2..n sẽ hình thành một thanh ghi dịch, tín hiệu đưa vào scan_in sẽ xuất hiện ở đầu ra scan_out sau n xung. Bằng cách này người ta test được các FF.

    Với mạch hỗn hợp cả FF và cổng logic thì cần kết hợp giữa hai thao tác là shift và capture.
    Ví dụ với mạch số ở trên để test đầu ra của khôi logic đầu vào FF1 người ta làm như sau:
    - đặt TE = 0
    - thiết lập test vector in với A1,..n, B1,..l
    - đưa một xung clock  kết quả đầu ra của khổi logic sẽ được capture tại đầu ra của FF1 và vector out Y1,..k (chế độ capture).
    Để đưa ra giá trị capture tại đầu ra của FF1 ra bên ngoài thì làm như sau:
    - đăt TE=1
    - đưa thêm xung vào thì giá trị tại đầu ra của các khối logic sẽ lần lượt xuất hiện ở scan_out (chế độ shift)

    Tóm lại bằng cách điều khiển linh hoạt chân TE, Clock, Scan_in cộng thêm xử lý dữ liệu ra ở scan_out và Y1,..k cho phép có thể test được tất cả các mạch trong IC số.

    Trên đây là nguyên lý để test mạch số và mới chỉ nói tới một phần của DFT là scan design chứ chưa phải là phần chính (quan trọng) của DFT. Đó là phần thiết kế thêm vào để có thể điều khiển (control) và đo (observe) các giá trị vào ra của mạch số như mô tả ở ví dụ trên.

    Đến đây một vài thuật ngữ/khái niệm thường được nhắc đến:
    - ATPG (Automatic Test Pattern Generation): đây chính là phần tạo ra vector đầu vào giống như vector (11) để test mạch AND. Phần này sẽ được công cụ phần mềm tự động tạo ra một cách ngẫu nhiên đảm bảo khả năng phát hiện sai là cao nhất (>99%). Vector này cũng sẽ được mô phỏng kiểm tra lại và được làm đầu vào cho các máy ATE (Automatic Test Equipment)
    - EDT (Embedded Deterministic Testing): đây là một kỹ thuật hay được nói đến đi kèm với ATPG, nó cho phép giải nén/nén dữ liệu test giúp giảm đáng thời gian test.

    Lúc đầu bài viết này định đề cập sâu vào hai khái niệm ở trên (ATPG và EDT), tuy nhiên chủ đề này chủ yếu nói về kỹ thuật tương tự nên mình chỉ giới thiệu sơ qua, nếu bạn nào có hứng thú thì tìm hiểu thêm.

    Tuy bài viết tương đối dài và còn một vài chỗ chưa thật chặt chẽ nhưng hy vọng các bạn sẽ tìm được một vài thông tin hữu ích về khái niệm DFT với mạch số.

    Thân mến.

    Leave a comment:


  • Rommel.de
    replied
    Chào bạn Hithere123,

    Bạn giới thiệu về DFT cho analog quả là thú vị. Trước khi đọc bài viết của bạn tớ cũng không biết người ta có thể dùng điện áp -5V để test. Nhưng mấy con chip mà bọn tớ làm chắc khó có thể vừa dùng điện áp +5V lẫn -5V được. Nhân tiện tớ cũng góp vui với bạn về DFT nhưng về mắt số.

    DFT tớ nhận thấy nó có 3 mục đích chính. Thứ nhất là post silicon debug. Tức là bạn thiết kế xong con chip rồi thì đem kiểm tra xem nó hoạt động có OK không có chỗ nào cần hiệu chỉnh có chỗ nào có thể nâng cấp. Với mục đích này thì 2 yêu cầu quan trọng nhất là quan sát được và điều khiển được (observability and controllability). Quan sát được thì dễ hiểu rồi tức là bạn có thể đọc ra tín hiệu bên trong con chip để biết chip chạy như thế nào. Còn điều khiển được tức là bạn có thể thay đổi các giá trị bên trong để xem hoạt động của chip thay đổi như thế nào có tốt hơn hay không, có thể hiệu chỉnh lại các sai số hay không. Tớ lấy một ví dụ rất đơn giản để các bạn thấy đó là mạch DCXO. Các bạn biết là các mạch điện tử để cần có một giao động chuẩn rồi từ đó người ta mới dùng mạch PLL để sinh ra các tín hiệu đồng hồ để đồng bộ hoạt động của toàn mạch. Tín hiệu chuẩn thường là dùng thạch anh, và thực tế tần số do thạch anh phát ra cũng chẳng chuẩn một tý nào. Vì vậy người ta cần mạch DCXO để có thể tăng/giảm giá trị điện dung của tụ điện mắc song song với thạch anh (tụ này ở bên trong chip). Thay đổi giá trị điện dung sẽ làm thay đổi tần số giao động chuẩn. Việc tăng hay giảm giá trị điện dung có thể làm rất đơn giản thông qua các switch. Ngoài ra bên số cũng thường dùng phương pháp scan-chain test để đọc và ghi giá trị các flip-flop bên trong chip. Cái này tương tự như chipscope của Xilinx dùng Jtag để kiểm tra dữ liệu. Bạn nào làm việc với xilinx chắc biết rõ rồi.

    Mục đích thứ 2 là cho ATE (Automation Test Equipment). Yêu cầu của mạch DFT cho ATE đó là ít chiếm diện tích, cần ít chân tín hiệu, và test nhanh nhất. Nói một cách đơn giản là rẻ tiền nhất. Các máy ATE cũng chỉ có một số ít probe nên yêu cầu có ít chân tín hiệu là điều dễ hiểu. Nếu tớ không nhầm thì hình như mỗi phút test trên máy ATE tốn hết 10cent. Vậy nên bạn cần test càng nhanh càng tốt. Các mạch điện hiện này rất lớn lên đến hàng triệu cổng logic. Nếu chúng ta không có những thiết kế DFT tốt thì không biết chúng ta phải trả bao nhiêu tiền cho ATE nữa. Để test cho ATE thường người ta không dùng scan-chain test vì làm như vậy việc đọc/ghi dữ liệu quá quá lâu. Họ có thể dùng bộ sinh dữ liệu bên trong chip ví dụ như counter, Linear Feedback Shift Register... và dữ liệu đọc ra thường được nén lại trước ở bên trong.

    Mục đích thứ 3 là cho Burnin mode. Cái này anh Paddy có nói với mọi người rồi. Yêu cầu thiết kế cho Burnin mode là phải nâng cao điện áp cấp, chạy tất cả các mạch để xem sau đó mấy con chip có bị chết hay không. Việc chạy trong chế độ burnin mode có thể là hoàn toàn sai và ta cũng chẳng cần kiểm tra. Tớ lấy ví dụ trong điều kiện hoạt động bình thường mạch A chạy thì mạch B nghỉ và ngược lại. Trong chế độ burnin mode thì ta có thể mở hết cả 2 mạch này để chạy. Trong chế độ burnin mode các mạch analog thường vẫn cần có tín hiệu vào để hoạt động nhưng mạch số thì không cần. Để đơn giản người ta có thể thiết kế một mạch để trong chế độ burnin mode nó sẽ tự chạy. Ví dụ như tín hiệu đồng hồ thay vì cấp từ bên ngoài thì ta chuyển sang dùng ring oscillator. Các tín hiệu đầu vào thay vì được cấp từ bên ngoài thì dùng Linear Feedback Shift Register để tạo ra...

    Bạn Hithere giới thiệu cách dùng mức điện áp -5V để chuyển sang test mode rất thú vị. Nhưng bên tớ thường sử dụng số để mạch chuyển sang chế độ test mode. Các con chip bao giờ cũng có một số thanh ghi gọi là mode registers. Các thanh ghi này được nạp giá trị ngay sau khi bật điện lên, và có thể thay đổi trong quá trình hoạt động. Việc dùng số để test có khá nhiều ưu điểm như rất đơn giản và dễ dùng. Các bạn có thể sử dụng mux hoặc switch để kiểm tra các tín hiệu bên trong và ghi giá trị và các register file hay flipflop để thay đổi hoạt động bên trong. Thêm vào đó mạch số nói chung nhỏ hơn mạch tương tự khá nhiều. Ví dụ như với công nghệ 40nm, chiều dài kênh dẫn của transistor trong mạch số chỉ là 40nm trong khi đó trong mạch tương tự để tránh short channel effect chiều dài này thường là 1um. Một cổng NAND có kích thước khoảng 1um*0.5um nhỏ hơn nhiều lần mạch tương tự.

    Leave a comment:


  • hithere123
    replied
    Tổng quan về khái niệm DFT trong thiết kế mạch tương tự

    Để hoàn chỉnh phần giới thiệu về thiết kế IC tương tự thì không thể không nói tới khái niệm DFT (design-for-test). Với quy trình thiết kế số nói chung thì DFT được tách riêng ra và được chuẩn hóa thành một bước riêng biệt ở những bước cuối cùng của chu trình thiết kế, tuy nhiên với mạch tương tự thì DFT nhất thiết cần phải được nghĩ ngay từ khâu thiết kế concept. Lý do chủ yếu là với thiết kế tương tự thì gần như không có một mạch chung cho phần test.

    DFT có thể hiểu tổng quát là khi thiết kế một mạch bất kỳ thì cần đảm bảo yếu tố có thể kiểm tra được chức năng và phẩm chất của tất cả các mạch thông qua các phép đo cụ thể. Để đơn giản, mình lấy ví dụ về thiết kế DFT cho LDO. LDO thường có 4 chân IN, OUT, ENABLE và GND. (tạm thời chỉ nói tới back-end test).

    Theo logic thông thường với 4 chân chỉ thực hiện chức năng IN,OUT,ENABLE và GND thuần túy (không có mạch DFT) thì rất khó xác định độ chính xác của mạch band-gap trong IC. Giả thiết bài toán như sau: khi IC có sự chênh lệch tương đối lớn so với yêu cầu về độ biến đổi điện áp ra so với biến đổi điện áp vào thì bệnh có thể do band-gap không tốt, hoặc mạch khuếch đại không đủ gain, hoặc phần feedback có vấn đề, … Nếu không có DFT thì thông thường sẽ phải mổ IC ra, và tiến hành đo để biết nguyên nhân (việc này tương đối tốn tiền). Nhưng nếu có mạch DFT kiểm tra band-gap thì việc debug lỗi sẽ đỡ tốn tiền hơn.

    Vậy ví dụ về thiết kế mạch DFT phục vụ test band-gap ở trường hợp này sẽ như thế nào? Về lý thuyết có thể thực hiện như sau: bên cạnh việc thiết kế điện áp ở chân ENABLE có hai mức là ON/OFF, ta thiết kế thêm một mức điện áp nữa (-5V) chẳng hạn sao cho khi mức điện áp ENABLE = -5V thì IC sẽ hoạt động ở trạng thái “test-mode”, ở đó điện áp band-gap được nối tắt ra chân OUT, tức là ta có thể đo được điện áp band-gap một cách trực tiếp. Tuy nhiên nếu chúng ta không có chân ENABLE, chỉ có chân IN,OUT và GND thì bài toán sẽ được thực hiện như thế nào? Các bạn thử đưa ra các giải pháp xem thế nào nhé.

    Đây chính là phần thú vị của DFT trong thiết kế IC tương tự vì với các IC phức tạp có nhiều mạch chức năng bên trong nhưng lại hạn chế số lượng chân bên ngoài thì thiết kế mạch sao cho có thể kiểm tra hết các mạch bên trong thực sự là bài toán khó chưa kể đến việc yêu cầu các mạch DFT không được làm cho diện tích IC tăng và gây nhiễu đến mạch chức năng chính.

    Đến đây hy vọng các bạn có một chút khái niệm về thiết kế DFT cho mạch tương tự, và cũng hy vọng chúng ta sẽ cùng bàn tiếp về chủ đề này trong các bài viết tới.

    Thân mến.

    Leave a comment:


  • Rommel.de
    replied
    Chào bạn Hithere123,

    Tớ có hỏi lại đứa bạn đồng nghiệp, nó nói bọn nó chỉ dùng công nghệ BiCMOS SiGe của IBM để làm những chip này. Ngày trước nó dùng công nghệ 0.5 um, sau này bọn nó sử dụng tiếp công nghệ 0.18, rồi đến 0.13. Công nghệ 90nm IBM không đưa ra vì có quá ít khách hàng hi vọng vài năm nữa có.

    Tớ với nó nói chuyện với nhau về công nghệ BiCMOS SiGe này thì công nghệ này cung cấp cho bạn MOS transistor giống hệt công nghệ CMOS thông thường tức là đế Si; NMOS, PMOS... và Bipolar Transistor npn sử dụng lớp tiếp xúc SiGe ở cực Base. Lớp SiGe này rất mỏng và đây cũng là điểm khác biệt căn bản với công nghệ CMOS. Transistor này gọi là Heterojunction Bipolar Transistor (HBT).

    Trong thiết kế BiCMOS SiGe phần số sử dụng NMOS và PMOS hoàn toàn giống công nghệ CMOS thông thường, còn thiết kế tương tự dùng HBT.

    HBT SiGe có đặc điểm hiệu suất cực cao, nó nhanh khoảng gấp 2 lần BJT dùng Si thông thường. Tần số cắt của nó lên đến khoảng 500 GHz nên rất phù hợp để làm những chip thu phát ở bước sóng mm ví dụ như radar. Ngoài ra nó có nhiễu rất nhỏ phù hợp với yêu cầu của RF. Về ứng dụng không gian và hàng không thì loại này làm việc ở nhiệt độ cực thấp (như bài báo tờ nhắc đến lần trước nó làm việc ở nhiệt độ -200) chịu được trong môi trường phóng xạ. Về mặt số thì mạch chỉ cần chạy đúng 0, 1 là đủ mà mạch số cũng chịu nhiễu tốt nên mạch CMOS là OK. Chỉ có mạch tương tự thì có vấn đề nên dùng HBT.

    Tớ có hỏi nó về mấy loại IC dùng cho điện áp cao, nhiệt độ cao ví dụ như những chỗ gần động cơ tên lửa thì nó nói bọn nó không có làm mấy cái này. Những linh kiện này thường chỉ là loại Driver nên chẳng cần thiết kế, tốt nhất là mua các driver có sẵn.

    Tớ nghe nói VN đang định làm trung tâm nghiên cứu không gian do Nhật đầu tư. Nếu ở đây có bạn nào sẽ thiết kế chip cho các vệ tinh của VN thì tớ hi vọng các bạn sẽ thấy bài viết này của tớ hữu ích.

    Leave a comment:


  • hithere123
    replied
    Chào mọi người,

    Nhân tiện bạn Rommel.de đề cập tới một vài thuật ngữ liên quan đến công nghệ, mình cũng muốn giải thích thêm để các bạn sinh viên có thể nắm được một cách tổng quát về những thuật ngữ này:

    - Công nghệ CMOS và công nghệ BiCMOS: Một cách tương đối thì có thể nói rằng công nghệ CMOS dùng cho thiết kế mạch số thuần túy và công nghệ BiCMOS sinh ra nhằm mục đích áp dụng lợi thế giá thành rẻ của công nghệ CMOS vào trong các thiết kế mạch tương tự. Trước BiCMOS, người kỹ sư tương tự dùng công nghệ Bipolar (có lẽ quen hơn vơi thuật ngữ màng dày, màng mỏng) để làm IC. CMOS ra đời với giá thành rẻ hơn đã bắt đầu cho xu hướng tích hợp ngày càng nhiều linh kiện trên chip (scale down) và cũng bắt đầu cho kỷ nguyên số. Nhưng với tương tự thì vẫn rất cần linh kiện bipolar trong các thiết kế, và công nghệ CMOS cho phép tạo ra linh kiện bipolar bằng việc thêm vào một vài bước chế tạo nữa (tăng thêm mask), tất nhiên giá thành chế tạo cao hơn CMOS và chất lượng bipolar không xịn như công nghệ bipolar nhưng BiCMOS lại cho phép chỉ cần dùng một công nghệ mà tạo ra được cả mạch tương tự và mạch số, quan trọng hơn nữa là đưa tính chất scale down của mạch số vào mạch tương tự. Những ai làm tương tự với công nghệ nhỏ hơn 0.35um sẽ thấy fab cung cấp các lựa chọn về đặc tính của các linh kiện như bipolar, tụ điện, điện trở cho người kỹ sư tùy ý lựa chọn, ví dụ muốn pnp loại này thì sẽ thêm mask này đồng thời với thời gian fab và giá tiền sẽ thế này, ...

    - STI (chắc bạn Rommel.de muốn đề cập tới shallow trend isolation): Đây là kỹ thuật để làm phần cách ly (isolation). Các linh kiện trên wafer được cách ly bằng oxide. Trước kia (với công nghệ cỡ 1um chẳng hạn) thì phần oxide cách ly này được làm rất đơn giản: mở một cửa số trên bề mặt wafer rồi tiến hành oxi hóa, nhưng có một đặc điểm của quá trình oxi hóa là phần oxide thực tế hình thành sẽ rộng hơn phần cửa sổ tạo ra (có thể tìm hiểu thêm với thuật ngữ bird's beak). Vấn đề này với công nghệ kênh dài thì không thành vấn đề vì phần mở rộng ra đó không đáng bao nhiêu nhưng khi scale down xuống 90nm, 65nm, ... thì phần mở rộng này là đáng kể. Để giải quyết thì người ta dùng đến kỹ thuật cách ly STI, tức là sau khi mở cửa số với kích thước đã cho, người ta đào sâu xuông wafer tạo thành cái giếng sau đó mới oxi hóa. Bằng cách này thì phần cách ly sẽ không bị ăn ra hai bên như cách oxi hóa truyền thống ở trên. Lại nói về phần cách ly, phần này rất quan trọng vì nó đảm bảo cho các linh kiện chế tạo trên wafer độc lập với nhau và quan trọng hơn nữa là nó tạo ra không gian để nối dây. Nếu các bạn nhìn vào một chip sẽ thấy khoảng 40% diện tích chip là chỉ dùng để nối dây (không có linh kiện bên dưới) tức là cũng ngần đấy diện tích được oxi hóa.

    Một vài dòng chia sẻ,

    Thân mến.
    P/S: Bạn Rommel.de có thể hỏi chuyện tay đồng nghiệp đó xem có phải làm chip cho vũ trụ thì các đặc tính điện của linh kiện sẽ khác với chip thông thường không vì chip toàn hoạt động ở môi trường nhiệt độ âm. Mình đoán là sẽ không dùng Si vì ở nhiệt độ âm Ge tốt hơn Si,

    Leave a comment:


  • Rommel.de
    replied
    Chào các bạn,

    Tớ vừa mới hỏi một thằng bạn đồng nghiệp về thiết kế trong lĩnh vực quân sự. Thằng này ngày trước làm PhD trong một nhóm thiết kế radar cho bộ quốc phòng Mỹ. Nó nói với tớ công nghệ dùng cho lĩnh vực quân sự cũng tương tự như dùng cho lĩnh vực thương mại nhưng dùng loại đắt tiền ví dụ như nó trước đây dùng loại BiCMOS vì LNA thiết kế bằng BiCMOS có noise figure nhỏ hơn nhiều công nghệ CMOS. Một số thiết kế dùng công nghệ SiGe thay vì Si thông thường.

    Nó nói với tớ các thiết kế cho hàng không và vũ trụ cần phải thiết kế đặc biệt để chống lại các tia vũ trụ gây lỗi bit. Để làm việc này các standard cell đều phải dùng guard ring bọc lại và STI ngăn cách với nhau. Thiết kế như vậy rất lớn nhưng tăng tính ổn định.

    Nó giới thiệu với tớ một paper viết về ADC dùng trong lĩnh vực vũ trụ và quốc phòng có nhiệt độ làm việc từ -180 đến 120 độ trong môi trường các hạt phóng xạ nặng. Nếu bạn nào quan tâm đến thiết kế trong lĩnh vực quân sự có thể tham khao:

    http://www.eng.auburn.edu/~daifa01/T...per2008-03.pdf

    Leave a comment:


  • Rommel.de
    replied
    Chào anh Paddy,

    Kỹ thuật dán 2 wafer vào với nhau dùng cho SOI gọi là smart cut. Trên wiki cũng có giới thiệu một chút về công nghệ này

    http://en.wikipedia.org/wiki/Smart_Cut

    Em có xem lại về Epitaxy thì đúng là loại này có thể tạo được đơn tinh thể như anh nói nhưng không biết vì lý do gì khác nữa mà kỹ thuật này không dùng được cho SOI. Kỹ thuật smart cut rất đắt và em nghĩ nếu dùng Epitaxy được thì người ta đã không sử dụng smart cut.

    Em làm bên thiết kế nên không rành hết về công nghệ. Kỹ thuật High K dielectric này quả thật em mới thấy gần đây. Ngày trước người ta không dùng có lẽ vì sử dụng Si02 rẻ tiền chăng.

    Nhân tiện tớ tớ cũng muốn nói lại với các bạn: bài viết trước của tớ đúng là nhầm lẫn như bạn Hithere123 nói. Những kỹ thuật mà tớ nói đến đúng là dùng cho IC thương mại với kích thước nhỏ như 65nm, 40nm. Các công nghệ cũ thì dòng subthreshold và gate leakage nhỏ hơn nhiều dòng P-N junction từ source và drain vào bulk. Vậy nên nếu dùng SOI cho những công nghệ này thì dòng leakage sẽ cực kỳ nhỏ đúng như bạn Hithere123 nói. Tại tớ hiện giờ đang làm với mấy công nghệ mới này nên bị bệnh nghề nghiệp quên mất.

    Leave a comment:


  • Paddy
    replied
    Nguyên văn bởi Rommel.de Xem bài viết
    Chào các bạn,

    Tớ muốn làm rõ một chút điểm bạn Hithere nói:



    Tớ sợ rằng một số bạn sinh viên hoặc những bạn mới làm về ASIC có thể hiểu lầm ý của bạn Hithere123 về công nghệ SOI. Lớp Silicon được phủ lên trên bề mặt lớp oxide không phải sử dụng công nghệ epitaxi hay bốc hơi hóa học như các lớp kim loại vì lớp silicon để tạo transistor phải là loại đơn tinh thể. Nếu bạn dùng công nghệ epitaxi thì chỉ tạo được một lớp silicon vô định hình. Silicon đơn tinh thể chỉ được tạo ra trong quá trình kéo wafer vì vậy việc tạo lớp oxide bên dưới chỉ có 2 cách làm. Cách thứ nhất là bắn các phân tử oxi vào sâu bên trong tấm silic sau đó gia nhiệt để tạo lớp oxide bên trong. Tuy nhiên phương pháp này làm hỏng cấu trúc tinh thể trên bề mặt nên hiện nay người ta không còn dùng. Cách thứ hai như tớ nói đó là gắn 2 wafer vào với nhau.
    Bác lầm to về epi đấy. Epi có thể dùng làm đơn tinh thể. Kiếm chữ epitaxial crystal là một số bài viết về epi.

    Cách gắn 2 wafer vào nhau có phải là WSIP không ?


    Tớ nghĩ bạn Hithere123 có lẽ hơi nhầm khi nói công nghệ SOI có dòng điện dò cực kỳ nhỏ. Thật ra công nghệ SOI gần như không có dòng điện dò từ cực drain và source vào cực bulk như công nghệ bulk-silicon nhưng dòng sub-threshold và dòng gate leakage thì vẫn vậy và hiện nay 2 dòng dò này mới là chủ yếu. Bởi vậy nên các bạn thấy vi xử lý của AMD không tiết kiệm điện hơn vi xử lý của Intel mặc dù AMD dùng công nghệ SOI còn Intel dùng Bulk-silicon. Nhân tiện nói về dòng dò, tớ thấy 2 công nghệ mới của Intel là high-k dielectric và metal gate mới thật sự là những công nghệ hay. Công nghệ high-k dielectric bắt nguồn từ các hãng làm DRAM sử dụng chất có hằng số điện môi cao để làm tụ điện. Hiện nay người ta phủ một lớp chất có hằng số điện môi cao này lên trên lớp SiO2 để tạo cực gate. Như vậy với cùng một giá trị điện dung, người ta có thể làm dày lớp cách điện dẫn đến dòng gate leakage giảm theo hàm mũ. Giá trị điện dung cần phải giữ cố định vì điện tích tụ tập bên dưới lớp đế là do tụ điện này tạo nên và chính nó tạo nên kênh dẫn cho transistor. Nếu tớ không nhầm thì hiện nay người ta đã làm những vật liệu có hằng số điện môi trên 20, và vấn đề gate leakage current gần như được giải quyết hoàn toàn.
    High K dielectric này có vài chục năm nay rồi không phải là mới đâu.

    Leave a comment:


  • hithere123
    replied
    Chào bạn Rommel.de,

    Với công nghệ SOI mình mới chỉ dừng lại ở bước mô phỏng công nghệ (thay đổi bề dày gate oxide, nồng độ source/drain, chiều dài kênh, ...) một linh kiện SOI mục đích thỏa mãn sự tò mò về đặc tính điện của loại này chứ chưa hề thiết kế một mạch nào sử dụng loại này nên ở bài trước mình không có ý khẳng định SOI dùng cho thiết kế tương tự thì hoạt động của mạch thật và chạy mô phỏng là giống nhau. Ý mình muốn nói tới, đó là những đòi hỏi cho việc thiết kế IC trong quân sự rất cần đảm bảo yếu tố lý tưởng tức là cần giảm tối đa các yếu tố unknown, trong đó các linh kiện dạng SOI đáp ứng được. Và mình chỉ so sánh một vài đặc tính mình biết giữa hai dạng này mà thôi (chủ yếu phân tích các yếu tố không thể điều khiển được đối với kỹ sư nếu dùng mos thông thường.)

    Còn về những trao đổi bạn phân tích ở trên có lẽ nó nằm ở một khía cạnh khác, đó là các giải pháp cho vấn đề gặp phải khi scale down công nghệ (mang tính thương mại nhiều hơn.) Với các công nghệ 65nm và nhỏ hơn, yêu cầu bề dày lớp gate oxide cỡ 7nm hoặc nhỏ hơn, với chiều dày này thì điện tử rất dễ đi qua lớp oxide này (được giải thích rất thuyết phục bởi các yếu tố tương tác vật lý cơ lượng tử.) Chính vì vậy cần có các vật liệu mới như high-k dielectric hay metal gate để làm cho chiều dày vật lý thực sự của lớp gate oxide cỡ ~x0nm nhưng chiều dày về mặt điện của lớp gate oxide chỉ cỡ 3-7 nm. Việc so sánh công nghệ chíp AMD với Intel theo mình đó là so sánh công nghệ giữa chip thương mại với nhau chứ không phải so sánh công nghệ chíp dùng cho quân sự.

    Ngoài ra, vấn đề floating body đúng là vấn đề lớn với SOI mos khi scale down vì áp dụng các kỹ thuật body contact sẽ làm mất đi ý nghĩa scale down (diện tích sẽ chẳng giảm nhỏ đi bao nhiêu.) Một lần nữa theo mình đây lại là vấn đề mang tính kinh tế chứ không phải là các vấn đề khi đề cập tới IC làm cho ứng dụng trong quân sự.

    Một vài dòng trao đổi thêm,

    Thân mến.

    Leave a comment:


  • Rommel.de
    replied
    Chào các bạn,

    Tớ muốn làm rõ một chút điểm bạn Hithere nói:

    Nguyên văn bởi hithere123 Xem bài viết
    Tức là với miếng wafer thông thường người ta sẽ tiến hành oxi hóa trên toàn wafer tạo thành lớp oxit khá dày ( ~x00nm) sau đó là cấy một lớp Si lên trên, tiếp đến là tạo cực drain và source lên lớp Si này với đặc điểm là chiều sâu của cực drain và source chạm tới lớp oxit trên miếng wafer đế.
    Tớ sợ rằng một số bạn sinh viên hoặc những bạn mới làm về ASIC có thể hiểu lầm ý của bạn Hithere123 về công nghệ SOI. Lớp Silicon được phủ lên trên bề mặt lớp oxide không phải sử dụng công nghệ epitaxi hay bốc hơi hóa học như các lớp kim loại vì lớp silicon để tạo transistor phải là loại đơn tinh thể. Nếu bạn dùng công nghệ epitaxi thì chỉ tạo được một lớp silicon vô định hình. Silicon đơn tinh thể chỉ được tạo ra trong quá trình kéo wafer vì vậy việc tạo lớp oxide bên dưới chỉ có 2 cách làm. Cách thứ nhất là bắn các phân tử oxi vào sâu bên trong tấm silic sau đó gia nhiệt để tạo lớp oxide bên trong. Tuy nhiên phương pháp này làm hỏng cấu trúc tinh thể trên bề mặt nên hiện nay người ta không còn dùng. Cách thứ hai như tớ nói đó là gắn 2 wafer vào với nhau.

    Tớ nghĩ bạn Hithere123 có lẽ hơi nhầm khi nói công nghệ SOI có dòng điện dò cực kỳ nhỏ. Thật ra công nghệ SOI gần như không có dòng điện dò từ cực drain và source vào cực bulk như công nghệ bulk-silicon nhưng dòng sub-threshold và dòng gate leakage thì vẫn vậy và hiện nay 2 dòng dò này mới là chủ yếu. Bởi vậy nên các bạn thấy vi xử lý của AMD không tiết kiệm điện hơn vi xử lý của Intel mặc dù AMD dùng công nghệ SOI còn Intel dùng Bulk-silicon. Nhân tiện nói về dòng dò, tớ thấy 2 công nghệ mới của Intel là high-k dielectric và metal gate mới thật sự là những công nghệ hay. Công nghệ high-k dielectric bắt nguồn từ các hãng làm DRAM sử dụng chất có hằng số điện môi cao để làm tụ điện. Hiện nay người ta phủ một lớp chất có hằng số điện môi cao này lên trên lớp SiO2 để tạo cực gate. Như vậy với cùng một giá trị điện dung, người ta có thể làm dày lớp cách điện dẫn đến dòng gate leakage giảm theo hàm mũ. Giá trị điện dung cần phải giữ cố định vì điện tích tụ tập bên dưới lớp đế là do tụ điện này tạo nên và chính nó tạo nên kênh dẫn cho transistor. Nếu tớ không nhầm thì hiện nay người ta đã làm những vật liệu có hằng số điện môi trên 20, và vấn đề gate leakage current gần như được giải quyết hoàn toàn.

    Còn công nghệ metal gate được sử dụng để làm giảm dòng sub-threshold. Nguyên lý của nó cũng tương đối đơn giản. Nếu các bạn nhìn vào biểu đồ điện áp vẽ theo các mức năng lượng trong bán dẫn, các bạn sẽ thấy điện áp đặt lên cực gate của transistor được chia thành 3 phần. Phần thứ nhất nằm trên lớp polysilicon của cực gate, phần thứ 2 nằm trên lớp SiO2 của tụ, và phần thứ 3 nằm trên lớp silicon của đế. Phần thứ 3 mới là phần quan trọng nhất vì chính nó tạo ra kênh dẫn hay nói cách khác chính nó đã chuyển bán dẫn từ n sang p và ngược lại. Khi sử dụng metal gate, phần điện áp trên lớp polysilicon bị loại bỏ vì điện áp bên trong kim loại luôn bằng 0. Chính vì vậy threshold voltage giảm xuống. Hoặc người ta có thể thay đổi độ pha tạp của đế để giữ nguyên mức điện áp threshold voltage nhưng khi đó dòng sub-threshold lại giảm đi khá nhiều. Công nghệ metal gate này tương đối đắt đỏ vì sau khi tạo source, drain, người ta phải bóc bỏ lớp polysilicon tạo cực gate và thay vào bằng lớp kim loại. Bên cạnh đó phương pháp này cũng không giải quyết triệt để dòng sub-threshold. Tuy vậy tớ tin rằng các hãng sẽ sớm sử dụng cả 2 công nghệ này vào những thế hệ IC mới.

    Việc loại bỏ dòng sub-threshold người ta mong chờ nhất là dùng FIN FET. Tuy nhiên công nghệ này chưa chín muồi nên tớ không muốn giới thiệu với các bạn. Tớ giới thiệu với các bạn thêm một cách nữa được các hãng làm DRAM sử dụng. Samsung gọi công nghệ này là "Recess Channel Array Transistor" còn Qimonda gọi công nghệ này là "Burried word-line". Theo đó cực gate không phải được tạo ra bên trên bề mặt lớp silicon mà người ta dùng plasma để đào một rãnh trên bề mặt lớp silicon, tạo cực gate rồi phủ lại. Ưu điểm lớn nhất của công nghệ này là làm word-line và bit-line cách xa nhau nên giảm được parasitic capacitance của bit-line. Ngoài ra do cực gate nằm giữa source và drain, nên điện tử không thể chạy thẳng giữa 2 cực source và drain như trước nữa. Thay vào đó nó phải chạy vòng xuống bên dưới cực gate. Chính điều này làm giảm dòng sub-threshold nhưng nó cũng làm cho chiều dài kênh dẫn tăng lên nên không được sử dụng cho công nghệ logic.

    Lại nói về công nghệ SOI. Ngoài lý do công nghệ này đắt đỏ, người thiết kế không muốn sử dụng công nghệ này vì nó có hiệu ứng "Floating body effect". Ta thấy rõ ràng transistor dùng công nghệ SOI không có chỗ nào để nối cực bulk. Chính vì thể threshold voltage của nó thay đổi do hiệu ứng body effect và thay đổi này có tính chất nhớ. Nói cách khác threshold voltage của transistor phụ thuộc vào trạng thái hoạt động của transistor vào thời điểm trước đó. Tớ không làm về SOI nên không biết chính xác nhưng đây thật sự là một thách thức lớn với những người thiết kế. Theo suy nghĩ của tớ thì việc sử dụng SOI cho thiết kế tương tự chưa chắc đã lý tưởng như bạn Hithere123 nói và hoạt động của mạch thật và chạy mô phỏng chưa chắc đã hoàn toàn giống nhau.

    Leave a 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