{"id":18,"date":"2026-04-17T19:16:21","date_gmt":"2026-04-17T11:16:21","guid":{"rendered":"https:\/\/www.asuka002.com\/?page_id=18"},"modified":"2026-10-03T11:56:42","modified_gmt":"2026-10-03T03:56:42","slug":"%e9%a6%96%e9%a1%b5","status":"publish","type":"page","link":"https:\/\/www.asuka002.com\/","title":{"rendered":"\u9996\u9875"},"content":{"rendered":"\n<div class=\"asuka-home\">\n  <div class=\"asuka-home-intro\">\n    <span class=\"eyebrow\">ASUKA \/ NOTES<\/span>\n    <h2>\u7b14\u8bb0\u4e0e\u6587\u7ae0<\/h2>\n    <p>\u5c04\u9891 IC\u3001\u6a21\u62df IC\uff0c\u4ee5\u53ca\u7535\u5f71\u548c\u65e5\u5e38\u8bb0\u5f55\u3002<\/p>\n  <\/div>\n\n  <a class=\"asuka-latest\" href=\"https:\/\/www.asuka002.com\/index.php\/2026\/10\/02\/jia-2018-ka-band-power-amplifier\/\">\n    <span class=\"asuka-latest-copy\">\n      <span class=\"eyebrow\">\u6700\u8fd1\u66f4\u65b0 \u00b7 \u5c04\u9891 IC<\/span>\n      <strong class=\"asuka-latest-title\">Haikun Jia\uff1a\u78c1\u8026\u5408\u8c10\u632f\u5668\u4e0e\u5168 Ka \u6ce2\u6bb5\u529f\u653e<\/strong>\n      <span class=\"asuka-latest-desc\">\u53cc\u6a21\u6001\u5e73\u5766\u6761\u4ef6\u3001\u5339\u914d\u8bbe\u8ba1\u4e0e\u5b9e\u6d4b\u3002<\/span>\n      <span class=\"asuka-latest-more\">\u9605\u8bfb\u7b14\u8bb0 \u2192<\/span>\n    <\/span>\n    <img decoding=\"async\" src=\"https:\/\/www.asuka002.com\/wp-content\/uploads\/2026\/10\/jia-2018-home-cover.png\" alt=\"\" loading=\"lazy\">\n  <\/a>\n\n  <section class=\"asuka-reading-route\" aria-labelledby=\"asuka-route-title\">\n    <div class=\"asuka-route-head\">\n      <h2 id=\"asuka-route-title\">\u9605\u8bfb\u8def\u7ebf<\/h2>\n      <p>\u4ece\u5355\u7ea7\u589e\u76ca\u3001\u9891\u7387\u8865\u507f\u5230\u8f68\u5230\u8f68\u7ed3\u6784<\/p>\n    <\/div>\n    <div class=\"asuka-route-list\">\n      <a class=\"asuka-route-step\" href=\"https:\/\/www.asuka002.com\/index.php\/2026\/04\/17\/%e6%a8%a1%e6%8b%9fic%e5%ad%a6%e4%b9%a0\/\">\n        <span class=\"route-number\">01 \/ \u57fa\u7840<\/span>\n        <strong>\u5957\u7b52\u5f0f\u5171\u6e90\u5171\u6805<\/strong>\n        <span class=\"route-desc\">\u4ece\u8bbe\u8ba1\u6307\u6807\u5230\u504f\u7f6e\u4e0e\u589e\u76ca\u4f30\u7b97\u3002<\/span>\n      <\/a>\n      <a class=\"asuka-route-step\" href=\"https:\/\/www.asuka002.com\/index.php\/2026\/04\/21\/%e4%ba%8c%e7%ba%a7%e8%bf%90%e6%94%be\/\">\n        <span class=\"route-number\">02 \/ \u8865\u507f<\/span>\n        <strong>\u4e8c\u7ea7\u8fd0\u653e<\/strong>\n        <span class=\"route-desc\">\u68b3\u7406\u6781\u70b9\u3001\u5bc6\u52d2\u8865\u507f\u4e0e\u7a33\u5b9a\u6027\u3002<\/span>\n      <\/a>\n      <a class=\"asuka-route-step\" href=\"https:\/\/www.asuka002.com\/index.php\/2026\/06\/11\/rail-to-rail-input-output-stage-%e5%a4%8d%e7%8e%b0%e7%ac%ac%e4%b8%80%e9%98%b6%e6%ae%b5\/\">\n        <span class=\"route-number\">03 \/ \u590d\u73b0<\/span>\n        <strong>Rail-to-Rail Input\/Output Stage \u590d\u73b0\u7b2c\u4e00\u9636\u6bb5<\/strong>\n        <span class=\"route-desc\">\u8bb0\u5f55 180 nm \u5de5\u827a\u4e0b\u7684\u7ed3\u6784\u4e0e\u504f\u7f6e\u3002<\/span>\n      <\/a>\n    <\/div>\n  <\/section>\n\n  <section class=\"asuka-home-section\" aria-labelledby=\"asuka-topics-title\">\n    <h2 id=\"asuka-topics-title\">\u5206\u7c7b\u9605\u8bfb<\/h2>\n    <div class=\"asuka-topic-grid\">\n      <a class=\"asuka-topic\" href=\"https:\/\/www.asuka002.com\/index.php\/category\/%e5%ad%a6%e4%b9%a0\/rfic\/\"><strong>\u5c04\u9891 IC<\/strong><span>\u8bba\u6587\u9605\u8bfb\u4e0e\u7535\u8def\u7b14\u8bb0<\/span><\/a>\n      <a class=\"asuka-topic\" href=\"https:\/\/www.asuka002.com\/index.php\/category\/%e5%ad%a6%e4%b9%a0\/%e6%a8%a1%e6%8b%9fic%e5%ad%a6%e4%b9%a0\/\"><strong>\u6a21\u62df IC<\/strong><span>\u57fa\u7840\u4e0e\u8bbe\u8ba1\u7ec3\u4e60<\/span><\/a>\n      <a class=\"asuka-topic\" href=\"https:\/\/www.asuka002.com\/index.php\/category\/%e7%94%b5%e5%bd%b1%e7%95%aa%e5%89%a7\/\"><strong>\u7535\u5f71\u4e0e\u756a\u5267<\/strong><span>\u770b\u8fc7\u7684\u4f5c\u54c1<\/span><\/a>\n      <a class=\"asuka-topic\" href=\"https:\/\/www.asuka002.com\/index.php\/category\/%e7%94%9f%e6%b4%bb\/\"><strong>\u751f\u6d3b<\/strong><span>\u968f\u624b\u8bb0\u5f55<\/span><\/a>\n    <\/div>\n  <\/section>\n\n  <section class=\"asuka-home-search\" aria-labelledby=\"asuka-search-title\">\n    <div>\n      <span class=\"eyebrow\">FIND A NOTE<\/span>\n      <h2 id=\"asuka-search-title\">\u627e\u4e00\u7bc7\u7b14\u8bb0<\/h2>\n      <p>\u6309\u7535\u8def\u3001\u8bba\u6587\u6216\u7535\u5f71\u540d\u68c0\u7d22\u3002<\/p>\n    <\/div>\n    <form action=\"https:\/\/www.asuka002.com\/\" method=\"get\" role=\"search\">\n      <label for=\"asuka-site-search\">\u7ad9\u5185\u641c\u7d22<\/label>\n      <input id=\"asuka-site-search\" type=\"search\" name=\"s\" placeholder=\"\u8f93\u5165\u5173\u952e\u8bcd\" aria-controls=\"asuka-search-results\" required=\"\">\n      <button type=\"submit\">\u641c\u7d22<\/button>\n    <\/form>\n    <div class=\"asuka-search-results\" id=\"asuka-search-results\" hidden=\"\">\n      <p class=\"asuka-search-summary\" role=\"status\" aria-live=\"polite\"><\/p>\n      <div class=\"asuka-search-list\"><\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"asuka-home-section asuka-friends\">\n    <span>\u53cb\u94fe<\/span>\n    <a href=\"https:\/\/www.xsdzz.xyz\">www.xsdzz.xyz<\/a>\n    <a href=\"https:\/\/xuanzhizheng.github.io\/Cognis\/\">xuanzhizheng.github.io<\/a>\n  <\/div>\n<\/div>\n<script id=\"asuka-search-script\">\n(function () {\n  'use strict';\n\n  function normalize(value) {\n    return String(value == null ? '' : value)\n      .normalize('NFKC')\n      .toLowerCase()\n      .replace(\/[\\s\\p{P}\\p{S}]\/gu, '');\n  }\n\n  function oneEditWithin(text, query) {\n    const haystack = Array.from(text);\n    const needle = Array.from(query);\n    if (needle.length < 3 || haystack.length === 0) return false;\n    for (let size = needle.length - 1; size <= needle.length + 1; size++) {\n      for (let offset = 0; offset + size <= haystack.length; offset++) {\n        const part = haystack.slice(offset, offset + size);\n        let i = 0;\n        let j = 0;\n        let edits = 0;\n        while (i < part.length) {\n          if (j >= needle.length || edits > 1) break;\n          if (part[i] === needle[j]) { i++; j++; continue; }\n          edits++;\n          if (part.length > needle.length) i++;\n          else if (part.length < needle.length) j++;\n          else { i++; j++; }\n        }\n        edits += part.length - i + needle.length - j;\n        if (edits <= 1) return true;\n      }\n    }\n    return false;\n  }\n\n  function rankPosts(posts, query) {\n    const term = normalize(query);\n    if (!term) return [];\n    const results = posts.map(function (post) {\n      const title = normalize(post.title);\n      const categories = (post.categories || []).map(normalize);\n      const excerpt = normalize(post.excerpt);\n      const content = normalize(post.content);\n      let score = 0;\n      let source = '';\n      if (title === term) { score = 160; source = '\u6807\u9898'; }\n      else if (title.startsWith(term)) { score = 145; source = '\u6807\u9898'; }\n      else if (title.includes(term)) { score = 130; source = '\u6807\u9898'; }\n      else if (categories.some(function (category) { return category === term; })) { score = 120; source = '\u5206\u7c7b'; }\n      else if (categories.some(function (category) { return category.includes(term); })) { score = 110; source = '\u5206\u7c7b'; }\n      else if (oneEditWithin(title, term)) { score = 100; source = '\u76f8\u8fd1\u6807\u9898'; }\n      else if (categories.some(function (category) { return oneEditWithin(category, term); })) { score = 90; source = '\u76f8\u8fd1\u5206\u7c7b'; }\n      else if (excerpt.includes(term)) { score = 45; source = '\u6458\u8981'; }\n      else if (content.includes(term)) { score = 15; source = '\u6b63\u6587'; }\n      return { post: post, score: score, source: source };\n    }).filter(function (result) { return result.score > 0; })\n      .sort(function (a, b) {\n        return b.score - a.score || String(b.post.date || '').localeCompare(String(a.post.date || ''));\n      });\n    if (!results.length || results[0].score < 90) return results;\n    const relatedCategories = new Set(results.filter(function (result) { return result.score >= 90; })\n      .flatMap(function (result) { return result.post.categories || []; }));\n    return results.filter(function (result) {\n      if (result.score >= 90) return true;\n      if (result.score < 45) return false;\n      return (result.post.categories || []).some(function (category) { return relatedCategories.has(category); });\n    });\n  }\n\n  if (typeof module === 'object') {\n    if (module.exports) {\n      module.exports = { normalize: normalize, rankPosts: rankPosts };\n      return;\n    }\n  }\n  if (typeof document === 'undefined') return;\n\n  const area = document.querySelector('.asuka-home-search');\n  if (!area) return;\n  const form = area.querySelector('form');\n  const input = area.querySelector('input[type=\"search\"]');\n  const panel = area.querySelector('.asuka-search-results');\n  const summary = panel.querySelector('.asuka-search-summary');\n  const list = panel.querySelector('.asuka-search-list');\n  let indexPromise;\n  let requestNumber = 0;\n  let timer;\n\n  function plainText(html) {\n    let value = String(html || '');\n    for (let count = 0; count < 3; count++) {\n      const decoded = new DOMParser().parseFromString(value, 'text\/html').body.textContent.trim();\n      if (decoded === value) break;\n      value = decoded;\n    }\n    return value;\n  }\n\n  async function getAll(type, fields, searchTerm) {\n    const path = '\/wp-json\/wp\/v2\/' + type;\n    async function getPage(number) {\n      const url = new URL(path, location.origin);\n      url.searchParams.set('per_page', '100');\n      url.searchParams.set('page', String(number));\n      url.searchParams.set('_fields', fields);\n      if (searchTerm) url.searchParams.set('search', searchTerm);\n      const response = await fetch(url.toString(), { credentials: 'same-origin' });\n      if (!response.ok) throw new Error('Search index is unavailable');\n      return { data: await response.json(), pages: Number(response.headers.get('X-WP-TotalPages')) || 1 };\n    }\n    const first = await getPage(1);\n    if (first.pages === 1) return first.data;\n    const rest = await Promise.all(Array.from({ length: first.pages - 1 }, function (_, n) { return getPage(n + 2); }));\n    return first.data.concat(...rest.map(function (page) { return page.data; }));\n  }\n\n  function loadIndex() {\n    if (!indexPromise) {\n      indexPromise = Promise.all([\n        getAll('posts', 'id,title,excerpt,link,categories,date'),\n        getAll('categories', 'id,name')\n      ]).then(function (data) {\n        const categoryNames = new Map(data[1].map(function (category) { return [category.id, plainText(category.name)]; }));\n        return data[0].map(function (post) {\n          return {\n            id: post.id,\n            title: plainText(post.title ? post.title.rendered : ''),\n            excerpt: plainText(post.excerpt ? post.excerpt.rendered : ''),\n            categories: (post.categories || []).map(function (id) { return categoryNames.get(id) || ''; }),\n            link: post.link,\n            date: post.date\n          };\n        });\n      }).catch(function (error) { indexPromise = null; throw error; });\n    }\n    return indexPromise;\n  }\n\n  async function bodyMatches(query, indexedPosts) {\n    const found = await getAll('posts', 'id', query);\n    const indexedById = new Map(indexedPosts.map(function (post) { return [post.id, post]; }));\n    return found.map(function (item) { return indexedById.get(item.id); })\n      .filter(Boolean)\n      .map(function (post) { return { post: post, score: 15, source: '\u6b63\u6587' }; });\n  }\n\n  function showResults(results, query) {\n    panel.hidden = false;\n    list.replaceChildren();\n    summary.textContent = results.length ? '\u627e\u5230 ' + results.length + ' \u7bc7\u76f8\u5173\u5185\u5bb9' : '\u6ca1\u6709\u627e\u5230\u201c' + query + '\u201d\u76f8\u5173\u7684\u7b14\u8bb0';\n    results.slice(0, 8).forEach(function (result) {\n      const post = result.post;\n      const link = document.createElement('a');\n      link.className = 'asuka-search-hit';\n      link.href = post.link;\n      const meta = document.createElement('span');\n      meta.className = 'asuka-search-hit-meta';\n      meta.textContent = (post.categories.filter(Boolean).join(' \u00b7 ') || '\u6587\u7ae0') + ' \/ ' + result.source;\n      const title = document.createElement('strong');\n      title.textContent = post.title;\n      link.append(meta, title);\n      if (post.excerpt) {\n        const desc = document.createElement('span');\n        desc.className = 'asuka-search-hit-desc';\n        desc.textContent = post.excerpt.slice(0, 90);\n        link.append(desc);\n      }\n      list.append(link);\n    });\n  }\n\n  async function search(submitted) {\n    const query = input.value.trim();\n    const current = ++requestNumber;\n    if (!query) { panel.hidden = true; return; }\n    panel.hidden = false;\n    summary.textContent = '\u6b63\u5728\u627e\u7b14\u8bb0\u2026';\n    list.replaceChildren();\n    try {\n      const posts = await loadIndex();\n      let results = rankPosts(posts, query);\n      if (!results.length || results[0].score < 90) {\n        try {\n          const seen = new Set(results.map(function (result) { return result.post.id; }));\n          const extra = await bodyMatches(query, posts);\n          results = results.concat(extra.filter(function (result) { return !seen.has(result.post.id); }));\n        } catch (error) {\n          if (!results.length) throw error;\n        }\n      }\n      if (current === requestNumber) showResults(results, query);\n    } catch (_) {\n      if (current === requestNumber) {\n        if (submitted) form.submit();\n        else {\n          summary.textContent = '\u6682\u65f6\u65e0\u6cd5\u641c\u7d22\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5';\n          list.replaceChildren();\n        }\n      }\n    }\n  }\n\n  input.addEventListener('input', function () {\n    clearTimeout(timer);\n    timer = setTimeout(function () { search(false); }, 220);\n  });\n  form.addEventListener('submit', function (event) {\n    if (!input.value.trim()) return;\n    event.preventDefault();\n    clearTimeout(timer);\n    search(true);\n  });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>ASUKA \/ NOTES \u7b14\u8bb0\u4e0e\u6587\u7ae0 \u5c04\u9891 IC\u3001\u6a21\u62df IC\uff0c\u4ee5\u53ca\u7535\u5f71\u548c\u65e5\u5e38\u8bb0\u5f55\u3002 \u6700\u8fd1\u66f4\u65b0 \u00b7 \u5c04\u9891 IC Haikun Jia\uff1a\u78c1\u8026\u5408\u8c10\u632f\u5668\u4e0e\u5168 Ka \u6ce2\u6bb5\u529f\u653e \u53cc\u6a21\u6001\u5e73\u5766\u6761\u4ef6\u3001\u5339\u914d\u8bbe\u8ba1\u4e0e\u5b9e\u6d4b\u3002 \u9605\u8bfb\u7b14\u8bb0 \u2192 \u9605\u8bfb\u8def\u7ebf \u4ece\u5355\u7ea7\u589e\u76ca\u3001\u9891\u7387\u8865\u507f\u5230\u8f68\u5230\u8f68\u7ed3\u6784 01 \/ \u57fa\u7840 \u5957\u7b52\u5f0f\u5171\u6e90\u5171\u6805 \u4ece\u8bbe\u8ba1\u6307\u6807\u5230\u504f\u7f6e\u4e0e\u589e\u76ca\u4f30\u7b97\u3002 02 \/ \u8865\u507f \u4e8c\u7ea7\u8fd0\u653e \u68b3\u7406\u6781\u70b9\u3001\u5bc6\u52d2\u8865\u507f\u4e0e\u7a33\u5b9a\u6027\u3002 03 \/ \u590d\u73b0 Rail-to-Rail Input\/Output Stage \u590d\u73b0\u7b2c\u4e00\u9636\u6bb5 \u8bb0\u5f55 180 nm \u5de5\u827a\u4e0b\u7684\u7ed3\u6784\u4e0e\u504f\u7f6e\u3002 \u5206\u7c7b\u9605\u8bfb \u5c04\u9891 IC\u8bba\u6587\u9605\u8bfb\u4e0e\u7535\u8def\u7b14\u8bb0 \u6a21\u62df IC\u57fa\u7840\u4e0e\u8bbe\u8ba1\u7ec3\u4e60 \u7535\u5f71\u4e0e\u756a\u5267\u770b\u8fc7\u7684\u4f5c\u54c1 \u751f\u6d3b\u968f\u624b\u8bb0\u5f55 FIND A NOTE \u627e\u4e00\u7bc7\u7b14\u8bb0 \u6309\u7535\u8def\u3001\u8bba\u6587\u6216\u7535\u5f71\u540d\u68c0\u7d22\u3002 \u7ad9\u5185\u641c\u7d22 \u641c\u7d22 \u53cb\u94fe www.xsdzz.xyz xuanzhizheng.github.io<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-18","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.asuka002.com\/index.php\/wp-json\/wp\/v2\/pages\/18","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.asuka002.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.asuka002.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.asuka002.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.asuka002.com\/index.php\/wp-json\/wp\/v2\/comments?post=18"}],"version-history":[{"count":23,"href":"https:\/\/www.asuka002.com\/index.php\/wp-json\/wp\/v2\/pages\/18\/revisions"}],"predecessor-version":[{"id":490,"href":"https:\/\/www.asuka002.com\/index.php\/wp-json\/wp\/v2\/pages\/18\/revisions\/490"}],"wp:attachment":[{"href":"https:\/\/www.asuka002.com\/index.php\/wp-json\/wp\/v2\/media?parent=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}