dft la gi

Bài viết lách này trình diễn tổng quan về định nghĩa DFT (Design For Test), vì sao cần được sở hữu DFT? và chuyên môn DFT được vận dụng như vậy nào?

DFT là 1 chuyên môn hỗ trợ cho một design hoàn toàn có thể được đánh giá (test) đơn giản dễ dàng và không thiếu thốn rộng lớn sau thời điểm phát triển trở nên chip tuy nhiên ko cần thiết quan hoài cho tới công dụng của mạch (thiết kế). Một tiến độ phát triển ko thể đáp ứng toàn cỗ chip được phát triển rời khỏi đều đạt unique và không tồn tại lỗi. Lỗi ở đó là lỗi cơ vật lý (physical fault) sinh rời khỏi so sánh quy trình phát triển, ko nên lỗi công dụng hoặc lỗi logic (logical fault) tự design sai. Lỗi công dụng tự design sai nên được vạc hiện nay Lúc tế bào phỏng và đánh giá trước lúc phát triển.
Một số lỗi cơ vật lý hoàn toàn có thể bắt gặp như nối khu đất GND (stuck-at-0, s-a-0), nối nguồn  VCC (stuck-at-1, s-a-1), ngắn ngủi mạch (short), hở mạch (open). Một lỗi cơ vật lý sinh rời khỏi tiếp tục thực hiện cho tới sinh hoạt của chip bị sai hoặc ko thể sinh hoạt.

Bạn đang xem: dft la gi

Để dễ dàng tưởng tượng, chúng ta hãy liên tưởng cho tới việc đánh giá những bo mạch in (PCB), một bo mạch in sau thời điểm phát triển nên được đánh giá coi những lối mạch sở hữu bị nối GND, VCC, ngắn ngủi mạch hoặc hở mạch (bị đứt) hay là không. CPU cũng cần phải đánh giá những lỗi vì vậy. Một chip bao gồm nhì phần logic là user logic và DFT logic. Trong số đó, user (function) logic là bộ phận xử lý những công dụng dành riêng cho những người người sử dụng chip, DFT logic dùng để làm test chip.

Hình 2: Một vi mạch bao gồm User logic and DFT logic

Tóm lại, chuyên môn DFT là chuyên môn gom đánh giá chip đơn giản dễ dàng và không thiếu thốn rộng lớn bằng phương pháp tăng những logic người sử dụng cho tới việc test nhập vào chip. Nếu không tồn tại DFT, một chip vẫn hoàn toàn có thể được đánh giá trải qua đo lường và chạy những test công dụng (fucntion test) bên trên chip tuy nhiên thời hạn test rất rất lâu và ko đáp ứng toàn cỗ chip được test không thiếu thốn (coverage thấp). Ví dụ, một chip không tồn tại DFT, nếu như chạy những test công dụng hoàn toàn có thể tổn thất 30 giây (hoặc nhiều hơn) cho 1 chip thì tổng thời hạn test cho 1 lô thành phầm 100.000 chip là khoảng chừng 35 ngày, cho một triệu chip là 347 ngày. Nhưng với chuyên môn DFT, tổng thời hạn test hoàn toàn có thể tách rộng lớn 10 lượt. Tuy nhiên, việc vận dụng chuyên môn DFT tiếp tục thực hiện độ cao thấp chip to hơn tự nên tăng những logic đáp ứng việc test.
2) Mạch DFT được triển khai như vậy nào?
Phần này tiếp tục trình diễn một trong những ví dụ cơ phiên bản nhằm hiểu chuyên môn DFT được triển khai như vậy nào? vận dụng ở bước này nhập tiến độ design vi mạch số? và những định nghĩa cơ phiên bản tương quan cho tới chuyên môn DFT. Để minh họa cho tới phần này, tất cả chúng ta xét ví dụ hình 3. Mạch này còn có công dụng lần nút logic cướp ưu thế kể từ những ngõ nhập in1, in2 và in3:

  • Nếu 2 hoặc 3 ngõ nhập sở hữu nút logic "0" thì ngõ rời khỏi out_z = 0
  • Nếu 2 hoặc 3 ngõ nhập sở hữu nút logic "1" thì ngõ rời khỏi out_z = 1

Verilog code của mạch này như sau:

assign a12 = ~(in1 & in2);
assign a13 = ~(in1 & in3);
assign a23 = ~(in2 & in3);
assign out_z = ~(a12 & a13 & a23);
Hình 3: (a) Bảng thực sự (b) Sơ vật nguyên vẹn lý

Trước Lúc gửi phiên bản design chuồn phát triển, những lỗi công dụng (function/logic fault) của mạch hình 3 sẽ tiến hành nhìn thấy trải qua đánh giá công dụng (function verification) bằng phương pháp hỗ trợ những độ quý hiếm nguồn vào cho tới in1, in2 và in3 và giám sát độ quý hiếm ngõ rời khỏi out_z trải qua một testbench nếu dùng cách thức tế bào phỏng (simulation) hoặc tự một quy mô tương tự nếu như dùng cách thức đánh giá formal. Nếu out_z luôn luôn trúng với toàn bộ những tập luyện độ quý hiếm ngõ nhập in1, in2 và in3 như bảng thực sự thì tớ phát biểu công dụng của mạch này được coverage 100% (function coverage).
Sau Lúc phát triển trở nên chip hoàn hảo, nhằm hoàn toàn có thể vạc hiện nay được những lỗi sinh rời khỏi nhập quy trình phát triển tất cả chúng ta sở hữu thể:

  • Chạy demo nghiệm từng công dụng ví dụ của chip. Cách này tiêu tốn nhiều thời hạn test như vẫn trình diễn ở chỗ bên trên.
  • Sử dụng chuyên môn DFT. Cách này tách thời hạn test tuy nhiên hoàn toàn có thể nên tăng nhiều logic nhằm tương hỗ việc này.

Trước Lúc chip được phát triển, người design nên phân tách "chiến lược" (kế hoạch) test chip nhằm xác lập coi design thời điểm hiện tại sở hữu tài năng test được những lỗi cơ vật lý tại mức chip hoặc không? Về cơ phiên bản, nhì sinh hoạt chủ yếu của việc phân tách và design DFT là:

  • Mô hình hóa những lỗi cơ vật lý (fault modelling) để tham gia đoán những lỗi hoàn toàn có thể xuất hiện nay và thể hiện biện pháp nhằm vạc hiện nay những lỗi này.
  • Thiết kế tiếp logic tương hỗ việc vạc hiện nay những lỗi cơ vật lý nếu như cần thiết. Chú ý, việc tăng DFT logic là sẽ giúp đỡ việc test tại mức chip đơn giản dễ dàng rộng lớn, tuy vậy nhập một trong những tình huống, DFT logic không cần thiết phải tăng vẫn hoàn toàn có thể test được.

Giả sử, xét lối liên kết nội cỗ a12, nhập sinh hoạt thường thì, lối a12 tiếp tục đáp ứng nhu cầu theo dõi những độ quý hiếm của nhì ngõ nhập in1 và in2. Nhưng nếu như sở hữu lỗi cơ vật lý xẩy ra như bị nối GND hoặc nối VCC, độ quý hiếm lối này hoàn toàn có thể bị lưu giữ cố định và thắt chặt tại mức logic "0" (stuck-at-0) hoặc "1" (stuck-at-1). Stuck-at-1 và stuck-at-0 đó là những quy mô lỗi (fault model). Làm thế này nhằm đánh giá nhì lỗi này bên trên lối a12?

  • Để đánh giá stuck-at-1: Lái a12 được lái mà đến mức logic 0 và đánh giá a12. Nếu a12 trúng tự "0" thì Kết luận a12 không biến thành lỗi stuck-at-1.
  • Để đánh giá stuck-at-0: Lái a12 được lái mà đến mức logic 1 và đánh giá a12. Nếu a12 trúng tự "1" thì Kết luận a12 không biến thành lỗi stuck-at-0.

Tiếp theo dõi, biện pháp nhằm vạc hiện nay những lỗi đang được quy mô hóa cho tới lối a12 là gì? Làm sao nhằm lái a12 cho tới độ quý hiếm ao ước muốn? Làm sao nhằm giám sát độ quý hiếm bên trên lối a12 là trúng hoặc sai? Tại nút chip, việc tinh chỉnh và điều khiển và giám sát những tín hiệu (đường) nội cỗ, như a12, a13 và a23, chỉ hoàn toàn có thể trải qua những chân (port, pin) chip, ví như là in1, in2, in3 và out_z nhập tình huống này.
Một lối liên kết phía bên trong chip chỉ được đánh giá Lúc nó hoàn toàn có thể được tinh chỉnh và điều khiển cho tới độ quý hiếm mong ước (controllable) và hoàn toàn có thể được giám sát (observable). Trong ví dụ hình 3, a12 hoàn toàn có thể được tinh chỉnh và điều khiển cho tới độ quý hiếm mong ước trải qua in1 và in2. Đường a12 hoàn toàn có thể được đánh giá trải qua ngõ rời khỏi out_z. Như vậy, lối a12 sở hữu cả nhì tính chất controllable và observable.

Hình 4: Khả năng test tại mức chip

Để đánh giá một lối liên kết phía bên trong chip, một hoặc nhiều tập luyện độ quý hiếm ngõ nhập được tạo nên nhằm lái lối cần thiết test cho tới độ quý hiếm mong ước. Các tập luyện độ quý hiếm này gọi là những "mẫu kiểm tra" (test-pattern). Để test nhì quy mô lỗi stuck-at-1 và stuck-at-0 cho tới lối a12, tất cả chúng ta cần thiết những test-pattern như sau:

  • Stuck-at-1:
    • Test-pattern 1: in1=in2=1 nhằm a12 = 0 và in3=0 nhằm a13=a23=1, ngõ rời khỏi out_z sẽ tiến hành giám sát và đánh giá với độ quý hiếm mong ước là out_z=1. Nếu chỉ người sử dụng test-pattern 1, sản phẩm ko đầy đủ nhằm xác minh "a12 không biến thành lỗi struck-at-1" vì như thế out_z=1 hoàn toàn có thể tự a13=0 hoặc a23=0 nếu như 1 trong những hai tuyến đường này bị stuck-at-0. Vì vậy, tất cả chúng ta cần thiết tăng test-pattern nhằm xác minh a13 và a23 không biến thành stuck-at-0.
    • Test-pattern 2: in1=in2=in3=0 nhằm a12=a13=a23=1 và giám sát ngõ rời khỏi out_z=0. Kết ngược của test-pattern này hoàn toàn có thể xác minh a13 và a23 ko thể bị stuck-at-0 vì như thế out_z=0 chỉ Lúc a12=a13=a23=1.
  • Stuck-at-0: Để đánh giá tình huống này, tất cả chúng ta hoàn toàn có thể người sử dụng test-pattern in1=in2=in3=0 và giám sát ngõ rời khỏi out_z=0. Chú ý, nếu như out_z=0, tất cả chúng ta hoàn toàn có thể Kết luận "a12 không biến thành lỗi stuck-at-0" còn nếu như out_z=1 tất cả chúng ta ko thể Kết luận "a12 bị lỗi stuck-at-0" vì như thế hoàn toàn có thể là vì a13 hoặc a23 bị lỗi này. Tuy nhiên, việc xác lập lối này bị lỗi ko cần thiết nhập tình huống này vì như thế nếu như test-pattern này FAIL vì như thế bất kể nguyên vẹn nhân này thì chip tiếp tục bị nockout vứt và ko được dùng.

Trong phân tách bên trên, lỗi struck-at-1 cần thiết 2 test-pattern nhằm đánh giá, lỗi stuck-at-0 chỉ việc 1 test-pattern nhằm đánh giá. Trong số đó, test-pattern nhằm vạc hiện nay lỗi stuck-at-0 hoàn toàn có thể là trùng với test-pattern 2 dùng để làm vạc hiện nay lỗi stuck-at-1. Dường như, nhằm vạc hiện nay lỗi stuck-at-0, tất cả chúng ta hoàn toàn có thể dùng một trong số test-pattern sau nhằm giám sát out_z=0:

  • in1=in2=in3=0
  • in1=in2=0, in3=1
  • in1=in3=0, in2=1
  • in2=in3=0, in1=1

Với design nhập ví dụ hình 2, fake sử đó là một design chip hoàn hảo, tất cả chúng ta ko cần thiết tăng DFT logic nhằm test vì như thế phiên bản thân mật mạch này vẫn tương hỗ tài năng test tại mức chip. Trường phù hợp này, tất cả chúng ta chỉ việc tạo nên những test-pattern nhằm dùng. Các test-pattern này không cần thiết phải không thiếu thốn toàn cỗ những tổng hợp độ quý hiếm ngõ nhập của in1, in2 và in3 vì như thế tiềm năng của tất cả chúng ta là đánh giá được những quy mô lỗi nhằm lần rời khỏi những lỗi cơ vật lý chứ không hề nên đánh giá không thiếu thốn công dụng.
Trước Lúc phát triển, những test-pattern được dùng nhằm review tài năng vạc hiện nay lỗi trải qua bước tế bào phỏng lỗi (fault simulation). Fault simulation là tế bào phỏng một design nhập ĐK lỗi. Cách tế bào phỏng này dùng để làm review coi sở hữu từng nào lỗi hoàn toàn có thể được vạc hiện nay bên trên một trong những lượng test-pattern ví dụ. Số lượng lỗi hoàn toàn có thể vạc hiện nay sẽ tiến hành thể hiện nay tự thông số kỹ thuật fault coverage.

fault coverage (%) = (tổng số lỗi được vạc hiện/tổng số lỗi hoàn toàn có thể vạc hiện)*100

Fault coverage review tài năng vạc hiện nay lỗi của một tập luyện test-pattern ứng với 1 quy mô lỗi chắc chắn, ví như quy mô lỗi stuck-at.

Xem thêm: chiến long vô song

Hình 5: Mô hình tế bào phỏng lỗi - Fault simulation

Fault simulation được triển khai bằng phương pháp đối chiếu sản phẩm của một design ko lỗi (golden design) và một design chứa chấp những quy mô lỗi cần thiết test (design with fault model) bên trên và một tập luyện test-pattern. Nếu sản phẩm nhì ngõ rời khỏi không giống nhau, nghĩa là 1 lỗi đang được vạc hiện nay. Nếu sản phẩm nhì ngõ rời khỏi giống như nhau, tức là test-pattern thời điểm hiện tại ko thể vạc hiện nay lỗi đang được giả thiết.
Ví dụ hình 3 là 1 mạch tổng hợp giản đơn, nhập tình huống mạch tuần tự động sở hữu chứa chấp FF thì sao? tất cả chúng ta xét ví dụ về một design như hình 6, đó là một thanh ghi dịch được cho phép ghi độ quý hiếm ban sơ Lúc we=1.

Hình 6: Một thanh ghi dịch được cho phép ghi độ quý hiếm ban đầu

Làm sao nhằm vạc hiện nay lỗi bên trên những lối liên kết nội cỗ như n0, a0, a1, a2, a3, or0 hoặc or1? Mạch tuần tự động thực tế bao gồm 2 phần cơ phiên bản là phần mạch tổng hợp và FF. Chúng tớ hoàn toàn có thể tách riêng biệt những phần mạch tổng hợp rời khỏi nhằm đánh giá từng phần như hình 7.

  • com0 là phần mạch tổng hợp bên trên ngõ nhập của FF0. com0 chỉ là 1 thừng dẫn.
  • com1 là phần mạch tổng hợp bên trên ngõ nhập của FF1.
  • com2 là phần mạch tổng hợp bên trên ngõ nhập của FF2.

Hình 7: Phân tách phần mạch tổng hợp và FF nhằm coi xét

Ví dụ, xét lối a0 của com1, lối này hoàn toàn có thể được tinh chỉnh và điều khiển đơn giản dễ dàng trải qua những chân ngõ nhập và sản phẩm được giám sát trải qua độ quý hiếm chân shift_out[1].

  • Kiểm tra stuck-at-1: we=0, FF0 được gán độ quý hiếm 0 trải qua din[0], đánh giá độ quý hiếm bên trên shift_out[1] nên tự 0.
  • Kiểm tra stuck-at-0:  we=0, FF0 được gán độ quý hiếm 1 trải qua din[0], đánh giá độ quý hiếm bên trên shift_out[1] nên tự 1.
Hình 8: Mô phỏng lỗi nhằm xác lập stuck-at-0 (trái) và stuck-at-1 (phải)

Đối với ví dụ này, những lối phía bên trong design vẫn hoàn toàn có thể được lái đơn giản dễ dàng trải qua những ngõ nhập design và giám sát qua chuyện những ngõ rời khỏi design nên ko cần thiết tăng những DFT logic nhập tình huống này. Do mạch sở hữu FF nên cần thiết xem xét thời gian hỗ trợ test-pattern cho tới design và thời gian giám sát sản phẩm là không giống nhau. Trong hình 8, phía phía trái, test-pattern được hỗ trợ trong tầm kể từ T1 cho tới T2 tuy nhiên sản phẩm được giám sát trong tầm kể từ T3 cho tới T4.
Xét một ví dụ không giống hình 9, mạch này còn có công dụng "X", so với chuyên môn đánh giá DFT, tất cả chúng ta ko quan hoài cho tới công dụng (function) của mạch tuy nhiên chỉ quan hoài thực hiện thế này nhằm test đơn giản dễ dàng một liên kết nhập design nên người sáng tác gọi đó là mạch "X".

Hình 9: Sơ vật mạch "X"

Trong mạch X, tương tự động, tất cả chúng ta xác lập được nhì group mạch tổng hợp của FF1 và FF2 là com0 và com1. Các liên kết nội cỗ như n0, or0, a0, na0, a1 và x0 chỉ hoàn toàn có thể được lái tự ngõ rời khỏi của những FF0, FF1 và FF2 nên nhằm test những lối liên kết nội cỗ tất cả chúng ta phải ghi nhận công dụng của mạch để hiểu lúc nào những FF lái lối cần thiết test cho tới độ quý hiếm mong ước. Thiết kế tiếp càng rộng lớn thì việc test theo dõi công dụng mạch tiếp tục phức tạp và tổn thất thời hạn vì như thế tài năng tinh chỉnh và điều khiển (controllable) và giám sát (observable) của những lối liên kết nội cỗ càng khó khăn, thậm chí là là ko thể được. Kỹ thuật DFT sẽ hỗ trợ xử lý yếu tố này.
Như vẫn phân tách, nhập design những FF là thành phần lưu lưu giữ độ quý hiếm và lái những mạch tổng hợp. Ví dụ, nhằm đánh giá lối a1 của mạch com1 không biến thành stuck-at-0, a1 cần phải lái cho tới độ quý hiếm 1. Trong tình huống này, những độ quý hiếm cấp cho cho tới mạch tổng hợp com1 như sau:

  • a1 được lái tự 1 Lúc out[1]=1 và n0=1. Trong số đó, n0=1 Lúc FF0./Q=0 bằng phương pháp lái in_0=1.
  • out[2] được lái tự 0

Sau tê liệt, giám sát độ quý hiếm bên trên x0 nên tự "1". Nhận xét, việc test a1 tiếp tục giản dị và đơn giản nếu như những FF (FF0, FF1, FF2) hoàn toàn có thể được lái (gán) độ quý hiếm đơn giản dễ dàng. Như vậy, "làm sao nhằm lái độ quý hiếm cho những FF Lúc test tuy nhiên ko tùy theo công dụng mạch?". Như vậy được triển khai bằng phương pháp thêm 1 MUX nhằm hoàn toàn có thể lựa lựa chọn độ quý hiếm cho tới FF Lúc cần thiết test như hình 10:

  • test_mode = 0: mạch sinh hoạt theo dõi công dụng thường thì (user mode)
  • test_mode = 1: độ quý hiếm bên trên chân "?" sẽ tiến hành hấp thụ cho những FF. Vấn đề là "?" lấy kể từ đâu?
Hình 10: Thêm một MUX nhằm tinh chỉnh và điều khiển độ quý hiếm của FF Lúc test

Trong hình 10, tất cả chúng ta thấy nhằm lái những FF cho tới độ quý hiếm mong ước, những MUX nên được thêm nữa cho từng FF và một chân (pin) mới nhất của chip được sinh rời khỏi nhằm tinh chỉnh và điều khiển là chân test_mode. Mỗi lốt "?" hoàn toàn có thể được nối cho tới một chân chip như hình 11. Tuy sử dụng phương pháp này trọn vẹn hoàn toàn có thể triển khai tuy nhiên Lúc con số FF rộng lớn, nó sẽ bị thực hiện số chân chip tiếp tục tăng nên cơ hội này sẽ không được dùng bên trên thực tiễn.

Hình 11: Một cơ hội lái FF Lúc test_mode=1 tuy nhiên sẽ không còn được sử dụng bên trên thực tiễn Lúc con số FF quá lớn

Thay vì như thế hấp thụ độ quý hiếm cho tới FF Theo phong cách "song song" như hình 11, tất cả chúng ta tiếp tục hấp thụ Theo phong cách "nối tiếp" như hình 12. Theo sử dụng phương pháp này, Lúc test_mode=1, ngõ rời khỏi Q của một FF tiếp tục nối cho tới ngõ nhập D của một FF không giống tạo ra trở nên một chuỗi FF tiếp nối đuôi nhau gọi là chuỗi scan (scan chain) và sinh hoạt như 1 thanh ghi dịch (shift regsiter) sở hữu nguồn vào là scan_in và Output là scan_out.

Hình 12: Mạch logic được vận dụng chuyên môn DFT

Hình 12 là 1 ví dụ quan trọng, nhập tình huống này, chân in_0 hoàn toàn có thể dùng để làm chân scan_in và MUX ngõ nhập của FF0 hoàn toàn có thể được vô hiệu hóa. Chân out[2] hoàn toàn có thể dùng để làm chân scan_out. Như vậy, chip ko cần phải có tăng nhì chân mới nhất. Tuy nhiên, tình huống tổng quát lác tất cả chúng ta sẽ sở hữu được 3 chân mới nhất là test_mode, scan_in và scan_out.

Hình 13: (a) Mạch không tồn tại DFT và (b) sở hữu DFT

3) Quá trình test với mạch sở hữu DFT
Một chip Lúc vẫn vận dụng chuyên môn DFT, quy trình test tiếp tục bao gồm quá trình cơ phiên bản sau:

Xem thêm: đứa bé không phải con của anh

  1. Cung cấp cho tài liệu test (test pattern) cho những FF bằng phương pháp lái test_mode=1 và dịch từng bit của test pattern nhập chuỗi scan qua chuyện chân scan_in theo dõi từng xung clock.
  2. Lấy hình mẫu (sample, capture) độ quý hiếm cần thiết giám sát bằng phương pháp lái test_mode=0 trong một chu kỳ luân hồi xung clock. Giá trị ngõ rời khỏi của những mạch tổng hợp được hấp thụ nhập những FF nhập chuỗi scan.
  3. Thu thập tài liệu giám sát qua chuyện chân scan_out bằng phương pháp lái test_mode=1.

Để test lối a1 không biến thành stuck-at-0, như vẫn phân tách tất cả chúng ta cần:

  • Lái FF0./Q là 0, ứng FF0.Q=1
  • Lái FF1.Q=1
  • Lái FF2.Q=0

Test pattern mong ước là chuỗi bit 011, 0 được đi vào trước vì như thế nó dùng để làm lái FF2 nằm ở vị trí cuối chuỗi scan. Dữ liệu giám sát mong ước là 1XX. Trong số đó, "1" là độ quý hiếm mong ước được lấy hình mẫu kể từ chân x0 của com1 và lưu nhập FF2, còn "X" là độ quý hiếm được lưu nhập FF1 và FF0. Chú ý, "X" biểu thị ý nghĩa sâu sắc "không quan lại tâm" (don't care) nhập test pattern này chứ không hề nên là 1 độ quý hiếm ngẫu nhiên hay là không xác lập.

Hình 14: Mô phỏng đánh giá lỗi cho tới lối a1 ở hình 12

Chú ý, trật tự liên kết những FF nhập chuỗi scan hoàn toàn có thể được lựa chọn tùy ý chứ không hề chắc chắn là FF0->FF1->FF2 như ví dụ minh họa. Nghĩa là chân scan_in hoàn toàn có thể đặt tại FF1 hoặc FF2; chân scan_out hoàn toàn có thể đặt tại FF0 hoặc FF1. Nhưng Lúc thay cho thay đổi chuỗi scan, trật tự độ quý hiếm của test pattern cũng nên được kiểm soát và điều chỉnh ứng.
Tóm lại, nội dung bài viết này nhắm tiềm năng hỗ trợ một chiếc nhìn cơ phiên bản về chuyên môn DFT. Với chuyên môn scan, test pattern được đi vào chân scan_in và độ quý hiếm giám sát được lấy bên trên chân scan_out.
Nếu chúng ta sở hữu chủ ý cần thiết trao thay đổi học tập gom ý, van nài comment bên dưới nội dung bài viết hoặc gửi tin nhắn cho tới [email protected].