2011-04-01から1ヶ月間の記事一覧

modportで定義した信号にclockingを適用する

interfaceではmodportを使うことで信号の向きを定義できるが、このmodportにclockingを適用したい場合は、下記のように書けばよい。 interface bus_if(input clk); 〜 // clockingブロックで信号の向きと遅延を設定 default clocking cb @(posedge clk); def…

interface内のtaskでclockingを使う

interface内ではtaskを定義できる。 interface bus_if(input clk); logic cs; logic [31:0] addr; logic [31:0] data; task write(input [31:0] ad, dt); @(posedge clk); #1; cs = 1'b1; addr = ad; data = dt; @(posedge clk); #1; cs = 1'b0; addr = 32'h…

Interfaceを使ってVerilog記述のRTLと接続

Verilogで書いたRTLとSystemVerilogで書いたテスト用モデルをInterfaceを使って繋ぎたい場合は、RTLのインスタンス呼び出し時のポートリストに『インターフェイス名.信号名』と書くことで上手くいった。記述量はあんまり減っていないような気がするけど・・…

コマンドラインでModelsimを実行する方法

コマンドラインでModelsimを実行する方法をよく忘れるのでメモ。作業ディレクトリを作成 $ vlib dir プロジェクト名と作業ディレクトリを関連付ける $ vmap prj dir_path コンパイル vlog test1.v test2.v \ -f file_list \ -work prj \ ←プロジェクト名 -in…

Verilogでセマフォ

『SystemVerilogによるLSI設計』に組み込みのセマフォを使わずに、中身を自分で定義している箇所があった(294ページ)。これはちょっと書き換えるとVerilogで使えそう。 module Semaphore; parameter initial_keys = 1; integer keys = initial_keys; task ge…

はじめまして

VerilogやSystemVerilogなどLSI設計についてのメモを書く予定。 SystemVerilogはまだ勉強を始めたばかり。