スポンサーリンク
UVM

uvm_phase 実行順序 UVM

はじめにuvm_phaseの種類と、各フェーズがトップダウン(Test階層→Env階層→Agent階層)で実行されるかボトムアップ(Agent階層→Env階層→Test階層)で実行されるかを調べました。uvm_phaseuvm_phaseの...
Systemverilog

alwaysとalways_ffの違い

はじめにVerilogではalwaysを使用してフロップフロップと組み合わせ回路の両方を作成しますが、SystemVerilogではフリップフロップ用にalways_ff、組み合わせ回路用にalways_combが追加されています。alwa...
Systemverilog

randcase 重み付きランダムセレクタ SystemVerilog

はじめにrandcaseは重み付きのランダムセレクタを作成できます。使い方randcase w1 : x = 1; w2 : x = 2;endcase上記は、x がw1/(w1 + w2) の確立で1, w2/(w1 + w2) の確立で...
Systemverilog

制約をON/OFFする constraint_mode SystemVerilog

はじめに同じランダム変数で複数パターンのconstraintを定義したいことがあります。しかし、constraintが競合しているとrandomize()がFailします。そこで、constraint_modeを使用することで、使用しないc...
Systemverilog

比較演算でワイルドカード =?=/!?= SystemVerilog

はじめにSystemVerilog 3.1では比較演算でワイルドカードを使用できます。=?=/!?=でワイルドカードを用いた比較演算を行えます。=?=は右辺と左辺が等しいときに真、!?=は右辺と左辺が等しくないときに真です。式ではx, zが...
Linux

function 関数を作成する zsh

はじめにfunctionを使用することでzshスクリプトで関数を作成します。使い方function <関数名> (){ <処理内容>}または<関数名> (){ <処理内容>}functionはあってもなくても大丈夫です。サンプルfuncti...
Systemverilog

always@*とalways_combの違い SystemVerilog

はじめにalways@*とalways_combは一見同じ動作をしそうですが、小さな違いがあります。両者の違いについてまとめました。always@*とalways_combの違いalways@*はマルチドライブできる。always_comb...
Systemverilog

SystemVerilog softでconstraintを上書きする

はじめにrand変数で定義した変数はrandomizeで値が確定します。withを付けることで、インラインで制約を付けることができますが、class内に宣言した制約とconflictするとrandomizeが失敗します。softを使用するこ...
Systemverilog

Verilog defineマクロで「”」を使う

はじめにVerilogのDefineマクロでダブルクォーテーション「"」を使用します。やり方「`」バッククォートでエスケープできます。`define DISPLAY(a) $display(`"a`");サンプルコードmodule top(...
Python

fontawesome Edgeで表示されるがIEでは表示されないときの対処法

はじめにEdge環境でFontawesomeが表示されるが、IEでは表示されないときの対処法です。対処法headタグに下記を追加します。なるべく最初に入れます。<head> <meta http-equiv="X-UA-Compatible...
スポンサーリンク