カテゴリ:Hardware > HDL/RTL

randomize()における制約のまとめページです。SystemVerilogにおける乱数生成関数を用いたテストベンチの記述、検証において乱数への制約を適切に加えることで効率的な検証を行うことを目指します。 目次randomize()制約:記述方法3選inside:出現値(範囲)指定制約dist:出 …
続きを読む

randomizeにおける制約solve-beforeを使用することで、値の組み合わせの出現確率を調節することができます。これだけ読んでもよく意味が分からないと思うので、以下で詳細をまとめます。 目次solve-beforeを使用しない場合solve-beforeを使用した場合randomize()制約一覧 …
続きを読む

if-elseを用いることでrandomizeによる乱数生成において、条件分岐による制約(constraint)を記述することが出来ます。複数制約の重ね掛けも可能という点はimplication(->)を用いた制約と使い方が類似しているようにも思います。目次if-elseを用いた制約例randomize()制約一 …
続きを読む

randomize()の制約の一つ、implication(->)を使うことで、制約間の関係を指定することができます。implicationという名前ですが、コード記述内では「->」のような記述方法を使います。以下でこのimplicationの使用方法についてまとめます。 目次制約implicateの使用例1制 …
続きを読む

乱数を生成するrandomize()の制約(constraint)の一つ、uniqueについて使用例をまとめます。乱数の制約uniqueは対応しているツールに制限が大きいような気がしています。少なくとも無料で使うことのできるVivado(vsim)やiverilogなどで使用していた特定のバージョンで …
続きを読む

制約(constraint)の一つdistを用いて、randomize()による乱数生成における出現確率の重みづけを行います。ちなみに、distは配分(Distribution)の略のらしいです。 目次distにおける":/"と":="の違いは?dist":/"で出現確率を指定dist":="で出現確率を指定randomize()制 …
続きを読む

randomize()における制約(constraint)の一つ、insideによる制約の活用方法についてまとめます。SystemVerilogでinsideというメンバシップ演算子が追加されていますが、ここで取り上げているのは乱数における制約についてとなります。 目次乱数で出現する値を直接指定乱数の …
続きを読む

企業や大学などにおいても基本無料でHDLをシミュレーションして回路を合成可能なAMD(Xilinx)のVivadoはよく使われていると思います。ですが、ただでさえソフトウェア開発に比べやることの多いRTLでの回路記述~実行までの手順中に、GUI環境の操作に慣れることに必死で肝心 …
続きを読む

HDL初心者ながらにVerilogで簡単な回路を記述して、FPGAに回路を合成したときにソフトウェアとの違いに悩まされた時のメモ症状としては、回路を記述した後に、波形シミュレーションを行い信号線の動きを丁寧に確かめたにも関わらず、実際に回路に実装してみると、まったく動 …
続きを読む