2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonによる非重複クロック信号の生成と可視化

Last updated at Posted at 2025-07-01

🎯 概要(Overview)

本記事では、PythonとMatplotlib を使って、理想的な非重複クロック信号を生成・可視化する方法を紹介します。対象は、**アナログ・デジタル混載回路(例:パイプラインADC、サンプル&ホールド、DFF制御回路)**などにおけるタイミング設計・検証用途です。

生成するクロックは以下の4種類:

  • clk1:基本クロック(第1フェーズ)
  • clk2:非重複時間を挟んだ第2フェーズクロック
  • clkDFF:Dフリップフロップ制御用クロック(位相ずれあり)
  • clkDFF2clkDFFの後続クロック

🧮 コード実装(Python + matplotlib)

以下に示すのは、10クロック周期(100ms)分の波形を生成し、4段表示で個別プロットする完全なコードです。

import numpy as np
import matplotlib.pyplot as plt

# --- Parameter Definition ---
T = 0.01              # Clock period [s]
nov = 1.0e-6          # Non-overlap time [s]
delay = 0.5e-6        # Delay for DFF clocks [s]
w = T / 2 - 2 * nov   # High level width [s]

# Time vector for 10 cycles
t = np.linspace(0, 10 * T, 5000)

# --- Generate clk1 ---
tp1 = np.mod(t, T)
clk1 = (tp1 >= 0) & (tp1 < w)

# --- Generate clk2 ---
tp2 = np.mod(t - (w + 2 * nov), T)
clk2 = (tp2 >= 0) & (tp2 < w)

# --- Generate clkDFF ---
tp3 = np.mod(t - T / 4 - delay, T)
clkDFF = (tp3 >= 0) & (tp3 < w)

# --- Generate clkDFF2 ---
tp4 = np.mod(t - T / 4 - w - 2 * nov - delay, T)
clkDFF2 = (tp4 >= 0) & (tp4 < w)

# --- Plot clocks separately with color customization ---
fig, axs = plt.subplots(4, 1, figsize=(12, 6), sharex=True)

axs[0].plot(t * 1000, clk1.astype(int), drawstyle='steps-post', color='blue')
axs[0].set_ylabel("clk1")
axs[0].set_title("Ideal Clock Signals (10 Cycles)")

axs[1].plot(t * 1000, clk2.astype(int), drawstyle='steps-post', color='red')
axs[1].set_ylabel("clk2")

axs[2].plot(t * 1000, clkDFF.astype(int), drawstyle='steps-post', color='green')
axs[2].set_ylabel("clkDFF")

axs[3].plot(t * 1000, clkDFF2.astype(int), drawstyle='steps-post', color='purple')
axs[3].set_ylabel("clkDFF2")
axs[3].set_xlabel("Time [ms]")

plt.tight_layout()
plt.show()

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?