Chào bạn Themummy,
Thật ra tớ cũng chưa được hiểu rõ ý bạn Hithere123 lắm nhưng nếu như bạn nói về việc power up/down của phần số thì thật ra vấn đề không nằm ở isolation cell. Thiết kế isolation cell rất đơn giản không có gì đáng nói. Vấn đề là trong thiết kế số người ta không làm theo kiểu thu công mà tự động tổng hợp mạch bằng các phần mềm EDA. Mạch được mô tả bằng các file netlist. Về nguyên tắc bạn hoàn toàn có thể chèn một cách thủ công như tạo ra một netlist mới bao bên trong netlist cũ và đưa thêm vào các isolation cell nhưng nếu được thì người thiết kế muốn những công việc như vậy cần phải làm tự động. Việc làm tự động sẽ tránh được sai sót vì việc làm thủ công rất dễ gây ra sai sót và khi bạn xem một file netlist cực lớn thì bạn chẳng thể tìm ra lỗi ở đâu. Ngoài ra như tớ nói isolation cell chỉ cần khi tín hiệu chuyển từ phần bị tắt nguồn sang phần đang hoạt động. Tất cả những việc tạo isolation cell, điều khiển isolation cell... cần phải được tạo ra một cách tự động để tránh sai sót.
Lỗi mà bạn Hithere123 nhắc đến có lẽ là lỗi ở khi chuyển tiếp giữa 2 khối. Lỗi này xảy ra khi 2 người kỹ sư thiết kế 2 khối khác nhau. Đối với từng khối riêng thì họ đều đã kiểm tra kỹ nên không bị lỗi nhưng khi đưa vào cả hệ thống thì chúng hoạt động không đồng bộ với nhau vì mỗi người suy nghĩ một cách khác nhau. Tớ lấy ví dụ tớ thiết kế khối A và tớ nghĩ rằng khi tớ làm một công việc nào đó thì tớ có thể cắt bỏ nguồn của khối C. Một người khác thiết kế khối B và cứ nghĩ rằng khối C luôn hoạt động (mà không biết là tớ đã cắt bỏ nguồn). Những lỗi như vậy xảy ra rất phổ biến. Cách phát hiện các lỗi này là chạy full-chip simulation. Full-chip simulation thường chia ra 2 loại. Loại thứ nhất là spice simulation. Loại này chạy rất chậm nhưng chính xác dùng để kiểm tra cả về mặt thời gian hoạt động của toàn bộ mạch. Ngày nay để tăng thời gian chạy, người ta chuyển sang dùng mix signal simulation. Với kiểu mix signal này thì phần analog vẫn dùng kiểu spice simulation còn phần số (chính là các phần tử trong standard cell library) sẽ được chạy verilog simulation. Mặc dù vậy spice full-chip simulation chỉ dùng để chạy các chức năng cơ bản. Để chạy mô phỏng một cách kỹ lưỡng tránh xảy ra các trường hợp không ngờ tới người ta dùng verilog full-chip simulation. Trong kiểu này các khối analog được viết lại thành các verilog model và sau đó chạy rất nhiều hoạt động khác nhau thậm chỉ có thể sử dụng kiểu khởi tạo ngẫu nhiên để chạy các loại lệnh, các loại trường hợp một cách ngẫu nhiên. Với kiểu chạy này nếu như có lỗi xảy ra người ta có thể phát hiện ra.
Thật ra tớ cũng chưa được hiểu rõ ý bạn Hithere123 lắm nhưng nếu như bạn nói về việc power up/down của phần số thì thật ra vấn đề không nằm ở isolation cell. Thiết kế isolation cell rất đơn giản không có gì đáng nói. Vấn đề là trong thiết kế số người ta không làm theo kiểu thu công mà tự động tổng hợp mạch bằng các phần mềm EDA. Mạch được mô tả bằng các file netlist. Về nguyên tắc bạn hoàn toàn có thể chèn một cách thủ công như tạo ra một netlist mới bao bên trong netlist cũ và đưa thêm vào các isolation cell nhưng nếu được thì người thiết kế muốn những công việc như vậy cần phải làm tự động. Việc làm tự động sẽ tránh được sai sót vì việc làm thủ công rất dễ gây ra sai sót và khi bạn xem một file netlist cực lớn thì bạn chẳng thể tìm ra lỗi ở đâu. Ngoài ra như tớ nói isolation cell chỉ cần khi tín hiệu chuyển từ phần bị tắt nguồn sang phần đang hoạt động. Tất cả những việc tạo isolation cell, điều khiển isolation cell... cần phải được tạo ra một cách tự động để tránh sai sót.
Lỗi mà bạn Hithere123 nhắc đến có lẽ là lỗi ở khi chuyển tiếp giữa 2 khối. Lỗi này xảy ra khi 2 người kỹ sư thiết kế 2 khối khác nhau. Đối với từng khối riêng thì họ đều đã kiểm tra kỹ nên không bị lỗi nhưng khi đưa vào cả hệ thống thì chúng hoạt động không đồng bộ với nhau vì mỗi người suy nghĩ một cách khác nhau. Tớ lấy ví dụ tớ thiết kế khối A và tớ nghĩ rằng khi tớ làm một công việc nào đó thì tớ có thể cắt bỏ nguồn của khối C. Một người khác thiết kế khối B và cứ nghĩ rằng khối C luôn hoạt động (mà không biết là tớ đã cắt bỏ nguồn). Những lỗi như vậy xảy ra rất phổ biến. Cách phát hiện các lỗi này là chạy full-chip simulation. Full-chip simulation thường chia ra 2 loại. Loại thứ nhất là spice simulation. Loại này chạy rất chậm nhưng chính xác dùng để kiểm tra cả về mặt thời gian hoạt động của toàn bộ mạch. Ngày nay để tăng thời gian chạy, người ta chuyển sang dùng mix signal simulation. Với kiểu mix signal này thì phần analog vẫn dùng kiểu spice simulation còn phần số (chính là các phần tử trong standard cell library) sẽ được chạy verilog simulation. Mặc dù vậy spice full-chip simulation chỉ dùng để chạy các chức năng cơ bản. Để chạy mô phỏng một cách kỹ lưỡng tránh xảy ra các trường hợp không ngờ tới người ta dùng verilog full-chip simulation. Trong kiểu này các khối analog được viết lại thành các verilog model và sau đó chạy rất nhiều hoạt động khác nhau thậm chỉ có thể sử dụng kiểu khởi tạo ngẫu nhiên để chạy các loại lệnh, các loại trường hợp một cách ngẫu nhiên. Với kiểu chạy này nếu như có lỗi xảy ra người ta có thể phát hiện ra.
Comment