1
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?

アナログ・デジタル混在回路のクロックの電源設計

1
Posted at

概要 / Overview

本関数 multi_clk_ideal_delay は、アナログ/デジタル混載回路(例:パイプラインADC、サンプル&ホールド回路、DFF群)において必要とされる理想的クロック信号および入力信号を同時に生成する、Simulink向けのMATLAB Functionモジュールである。


出力信号一覧 / Output Signal Summary

信号名 内容 / Description
clk1 フェーズ1の理想クロック信号(non-overlap付き)
clk2 clk1 に続くnon-overlap付きの理想クロック
clkDFF clk1 より1/4周期+遅延後に立ち上がるDFF制御クロック
clkDFF2 clkDFF に続く理想DFF制御クロック
ramp 勾配1のランプ入力信号(直線増加)
Vdd ステップ入力電圧(2msで0V→16Vに変化)
clk_last 周期1秒、デューティ比50%のサンプリングクロック

特徴 / Features

  • 🧭 マルチフェーズ・クロック生成
    クロック clk1 および clk2 は、非重複期間(non-overlap)を確保しつつ理想矩形波として動作。

  • ⏱️ 遅延クロック(DFF系)
    clkDFFclkDFF2 は、適切なタイミング遅延を伴うクロック信号として設計されており、Dラッチ制御やサンプル&ホールドに最適。

  • 📈 ランプ信号
    ramp = t により、簡単なアナログ入力として動作し、ADC特性検証等で使用可能。

  • 🔋 電源ステップ
    Vdd は 2ms 時点で 0V → 16V にステップアップし、電源立ち上がり条件下での挙動をテスト可能。

  • 🕐 サンプリングクロック
    clk_last は周期1秒・High期間0.5秒のクロック。ADC出力の最終ラッチタイミングや低速制御用に有効。


使用例 / Use Case in Simulink

この関数は Simulink の MATLAB Functionブロックにそのまま挿入して使用する。
以下のような構成で、回路ブロック(例:ADC、DFF、S/H)へ信号供給する役割を果たす:


+------------------------+      +------------------+
\| MATLAB Function (this) | -->  | DUT (e.g. ADC)   |
+------------------------+      +------------------+


応用 / Application Examples

  • パイプラインADCの段間制御クロック生成
  • 電源立ち上がり時の動作確認
  • クロック遅延と非重複時間のタイミング設計検証
  • Verilogテストベンチとの共通クロック生成
  • クロック/アナログ混載系のSimulinkモデリング

拡張提案 / Future Extensions

  • ノイズ付きVdd(例:tanh遷移やリップル)
  • 非対称デューティ比クロック対応
  • 周波数可変機能の追加(外部入力対応)

備考 / Notes

  • t は Simulink から供給される時間(scalar or vector)として動作
  • すべてのクロックは 0/1 の理想矩形波(smoothなし)

function [clk1, clk2, clkDFF, clkDFF2, ramp, Vdd, clk_last] = multi_clk_ideal_delay(t)
% Program Name: multi_clk_ideal_delay.m
% Creation Date: 20250629
% Overview: Generates 4 ideal non-overlapping clocks, a ramp signal, step Vdd, and 1Hz sampling clock
% Usage: Provide scalar or vector time t to get clocks, ramp, Vdd, and last sampling clock

% --- Parameter Definition / パラメータ定義 ---
T      = 0.01;         % Clock period [10ms] / クロック周期 [10ミリ秒]
nov    = 1.0e-6;       % Non-overlap time [1.0µs] / 非重複時間 [1.0マイクロ秒]
delay  = 0.5e-6;       % Delay for DFF clocks [0.5µs] / DFFクロック用遅延
w      = T / 2 - 2*nov; % High level width / Highレベルの有効幅
vstep  = 16.0;         % High level of Vdd after step / ステップ後の電圧 [16V]
t_step = 2e-3;         % Step occurs at t = 2ms / ステップの開始時刻 [2ミリ秒]

T_last = 1.0;          % Last sampling clock period [1 sec] / ラストクロック周期 [1秒]
w_last = 0.5;          % High duration of last clock [0.5 sec] / High期間 [0.5秒]

% --- Ideal clk1 ---
tp1 = mod(t, T);
clk1 = double(tp1 >= 0 & tp1 < w);

% --- Ideal clk2 ---
tp2 = mod(t - (w + 2*nov), T);
clk2 = double(tp2 >= 0 & tp2 < w);

% --- Ideal clkDFF ---
tp3 = mod(t - T/4 - delay, T);
clkDFF = double(tp3 >= 0 & tp3 < w);

% --- Ideal clkDFF2 ---
tp4 = mod(t - T/4 - w - 2*nov - delay, T);
clkDFF2 = double(tp4 >= 0 & tp4 < w);

% --- Ramp signal ---
ramp = t;

% --- Vdd: Step input (0V before t_step, 16V after) ---
if numel(t) > 1
    Vdd = vstep * double(t >= t_step);
else
    Vdd = vstep * double(t >= t_step);
end

% --- Last Sampling Clock (1Hz, 50% duty) ---
tp_last = mod(t, T_last);
clk_last = double(tp_last >= 0 & tp_last < w_last);  % High for 0.5s every 1s
end


本関数は、アナログ・デジタル混在回路のクロック/電源/入力テスト信号を一元的に生成するユーティリティ関数として、検証・教育・研究用途に活用可能である。

1
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
1
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?