制約(constraint)の一つdistを用いて、randomize()による乱数生成における出現確率の重みづけを行います。ちなみに、distは配分(Distribution)の略のらしいです。 目次distにおける":/"と":="の違いは?dist":/"で出現確率を指定dist":="で出現確率を指定randomize()制 …
続きを読む
カテゴリ: Hardware
【SystemVerilog】insideでrandomize()乱数の範囲を制限
randomize()における制約(constraint)の一つ、insideによる制約の活用方法についてまとめます。SystemVerilogでinsideというメンバシップ演算子が追加されていますが、ここで取り上げているのは乱数における制約についてとなります。 目次乱数で出現する値を直接指定乱数の …
続きを読む
【Vivado】Verilog simulation(xsim)までコマンドで自動実行してFPGA実装する
企業や大学などにおいても基本無料でHDLをシミュレーションして回路を合成可能なAMD(Xilinx)のVivadoはよく使われていると思います。ですが、ただでさえソフトウェア開発に比べやることの多いRTLでの回路記述~実行までの手順中に、GUI環境の操作に慣れることに必死で肝心 …
続きを読む
【Verilog】Simulationが通ってもFPGAで動作しないRTL記述の例
HDL初心者ながらにVerilogで簡単な回路を記述して、FPGAに回路を合成したときにソフトウェアとの違いに悩まされた時のメモ症状としては、回路を記述した後に、波形シミュレーションを行い信号線の動きを丁寧に確かめたにも関わらず、実際に回路に実装してみると、まったく動 …
続きを読む
【Verilog】ビット数を自動で計算するclogb2定数関数は合成されるのか?
Verilogで表現したい数値に応じてwireやregのビット幅を考えて手動で入力するのが面倒なので、自動で必要なビット数を割り出してくれるマクロに$clog2というものがあります。ただし、Verilog 2001以前は$clog2がサポートされていないので、自作の関数を使うことでこの問題が …
続きを読む
【WaveDrom】仕様書やレポート資料用に電子回路の信号波形をテキスト描画/作成
電子回路や論理回路、RTLなどのデジタル回路技術と切り離せないタイミングチャート。各信号線の仕様を決める場合や、シミュレーション結果を示すとき、綺麗な波形を用いてわかりやすい説明を心掛けたいですが、PowerpointやVisioなどの作図ツールで手作業で作図するのは非常 …
続きを読む