スキル一覧に戻る

design-logic-circuit

pjt222
更新日 Yesterday
3 閲覧
17
2
17
GitHubで表示
メタdesign

について

このClaudeスキルは、機能仕様や真理値表からゲートレベル組み合わせ論理回路を設計します。基本ゲートを用いた回路実装、NAND/NORユニバーサル変換の対応、加算器やマルチプレクサなどの標準コンポーネント構築が可能です。ブール論理を検証済みのハードウェア実装可能なネットワークに変換する際にご利用ください。

クイックインストール

Claude Code

推奨
メイン
npx skills add pjt222/agent-almanac -a claude-code
プラグインコマンド代替
/plugin add https://github.com/pjt222/agent-almanac
Git クローン代替
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/design-logic-circuit

このコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします

ドキュメント

Design Logic Circuit

Spec → combinational circuit. Define I/O, derive min Bool expr, map → gate schematic, (optional) convert to universal gate basis (NAND/NOR), verify via exhaustive sim.

Use When

  • Bool fn → gate net (physical or sim)
  • Std combinational blocks (adders, muxes, decoders, comparators)
  • Convert arbitrary → NAND-only / NOR-only for mfg
  • Teach/review digital logic spec → schematic
  • Prep combinational datapath for build-sequential-circuit or simulate-cpu-architecture

In

  • Required: Spec — truth table, Bool expr, verbal I/O desc, or std block name (e.g., "4-bit ripple-carry adder")
  • Required: Target gate lib — unrestricted (AND/OR/NOT), NAND-only, NOR-only, or std cell lib
  • Optional: Optimize goal — min gate count, min prop delay (critical path), min fan-out
  • Optional: Max fan-in (e.g., 2-input only)
  • Optional: Don't-cares

Do

Step 1: Spec

Interface + behavior before synthesis:

  1. Inputs: Names, widths, ranges. Multi-bit → bit order (MSB/LSB-first).
  2. Outputs: Names + widths.
  3. Truth table: Every input combo → outputs. Many inputs → algebraic or minterms/maxterms.
  4. Don't-cares: Input combos that can't occur (BCD 1010-1111) → mark.
  5. Timing: Prop delay constraints. Combinational = no clock → worst-case gate delay through critical path.
## Circuit Specification
- **Name**: [descriptive name]
- **Inputs**: [list with bit widths]
- **Outputs**: [list with bit widths]
- **Function**: [verbal description]
- **Truth table or minterm list**: [table or Sigma notation]
- **Don't-care set**: [d(...) or "none"]

→ Unambiguous spec, every legal input → exactly one output.

If err: Ambiguous (missing cases, conflicting outputs) → clarify. Don't assume don't-care unless told.

Step 2: Derive min Bool expr

evaluate-boolean-expression skill:

  1. Single-output: Each bit → min SOP (or POS, whichever fewer gates).
  2. Multi-output: Shared sub-exprs → factor out. Fewer gates + more routing.
  3. XOR detection: Checkerboard patterns in K-map. XOR expensive in NAND/NOR-only, efficient in std libs.
  4. Record: Min expr each output + literal count + term count.
## Minimal Expressions
| Output | Minimal SOP | Literals | Terms |
|--------|-------------|----------|-------|
| F1     | [expression] | [count] | [count] |
| F2     | [expression] | [count] | [count] |
- **Shared sub-expressions**: [list, if any]

→ Min expr each output + shared sub-exprs ID'd.

If err: Non-minimal (more literals than expected) → re-run K-map or Quine-McCluskey. >6 vars → Espresso.

Step 3: Map → gate schematic

Bool → gate network:

  1. Direct SOP: Product term → multi-input AND. Sum → OR fed by ANDs. Complemented var → NOT (or use NAND/NOR to absorb).
  2. Gate assignment: Each gate:
    • Type (AND, OR, NOT, XOR, NAND, NOR)
    • Inputs (name or from other gate)
    • Output name
    • Fan-in
  3. Fan-in decomp: Exceeds max → tree of smaller. 4-input AND w/ 2-input → 2 two-input ANDs feeding 3rd.
  4. Notation: Text netlist or structured.
## Gate-Level Netlist
| Gate ID | Type | Inputs       | Output | Fan-in |
|---------|------|-------------|--------|--------|
| G1      | NOT  | A           | A'     | 1      |
| G2      | AND  | A', B       | w1     | 2      |
| G3      | AND  | A, C        | w2     | 2      |
| G4      | OR   | w1, w2      | F      | 2      |

- **Total gates**: [count]
- **Critical path depth**: [number of gate levels from input to output]

→ Complete netlist, every output traceable to primary inputs, no floating.

If err: Dangling wires or feedback loops (invalid combinational) → recheck. Every signal = exactly one driver, every gate input connects.

Step 4: Convert → universal basis (optional)

NAND-only or NOR-only:

  1. NAND-only:
    • AND → NAND + NOT (NAND tied inputs)
    • OR → De Morgan: A + B = ((A')*(B'))' = NAND(A', B') → NOTs then NAND
    • NOT → A' = NAND(A, A)
    • Bubble pushing: Cancel adjacent inversions. 2 NOTs series cancel. NAND → NOT = AND.
  2. NOR-only:
    • OR → NOR + NOT
    • AND → De Morgan: A * B = ((A')+(B'))' = NOR(A', B')
    • NOT → NOR(A, A)
    • Bubble push cancels inversions.
  3. Gate count: Before + after. NAND/NOR-only typ more gates but simplify mfg.
## Universal Gate Conversion
- **Target basis**: [NAND-only / NOR-only]
- **Gates before conversion**: [count]
- **Gates after conversion**: [count]
- **Gates after bubble-push optimization**: [count]
- **Conversion netlist**: [updated table]

→ Functionally equiv, redundant inversions eliminated via bubble push.

If err: More inversions than expected → re-examine bubble push. Common: forgetting NAND/NOR self-dual under complementation. De Morgan consistently from outputs back → inputs.

Step 5: Verify via exhaustive sim

Correct for every input:

  1. Approach: ≤16 inputs (65,536 combos) → exhaustive. Larger → targeted vectors + corner cases + random.
  2. Propagate: Each combo, propagate gate by gate in topological order.
  3. Compare: Check each output vs truth table. Don't-cares → 0 or 1.
  4. Record: Mismatches w/ input + expected vs actual.
  5. Timing (optional): Count gate levels longest path. × per-gate delay → worst-case prop.
## Simulation Results
- **Total test vectors**: [count]
- **Vectors passed**: [count]
- **Vectors failed**: [count, with details if any]
- **Critical path**: [gate sequence, e.g., G1 -> G3 -> G7 -> G9]
- **Critical path depth**: [N gate levels]
- **Estimated worst-case delay**: [N * gate_delay]

→ All vectors pass. Functional + critical path docs.

If err: Vector fails → trace path gate by gate. First gate w/ incorrect output. Common: wire wrong input, missing inversion, NAND/NOR conversion err.

Check

  • All I/O named + widths spec'd
  • Truth table covers all legal combos
  • Bool exprs min (K-map/Quine-McCluskey)
  • Every gate all inputs connected + exactly one output
  • No combinational feedback
  • Fan-in constraints respected
  • NAND/NOR conversion preserves equivalence
  • Bubble push eliminates redundant inversions
  • Exhaustive sim passes (non-don't-cares)
  • Critical path depth docs

Traps

  • Combinational feedback: Output → own input chain = latch, not combinational. State needed → build-sequential-circuit.
  • Forget inversions in NAND/NOR: Most common err = dropping NOT in De Morgan. Bubble push systematically outputs → inputs, not ad hoc.
  • Exceed fan-in w/o decomp: 5-input AND not in 2-input lib. Balanced tree min delay, not linear chain.
  • Ignore don't-cares: Unexploited → bigger circuit. Always include when avail.
  • Gate vs wire delay: Intro design → gate delay dominates. Real VLSI → wire delay can exceed. Note when estimating.
  • Multi-output hazards: Shared gates → change one affects shared sub-expr. Verify all outputs after any mod.

  • evaluate-boolean-expression — derive min Bool expr for this skill
  • build-sequential-circuit — add state (flip-flops) → sequential
  • simulate-cpu-architecture — use blocks (ALU, mux, decoder) as datapath

GitHub リポジトリ

pjt222/agent-almanac
パス: i18n/caveman-ultra/skills/design-logic-circuit
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

関連スキル

content-collections

メタ

このスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。

スキルを見る

polymarket

メタ

このスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。

スキルを見る

creating-opencode-plugins

メタ

このスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。

スキルを見る

sglang

メタ

SGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。

スキルを見る