開発日記

Erlangをダラダラ書きます。

System Verilog

テスト・シミュレーションのメモ(System verilog)

`timescale `default_nettype module clk, rst その他信号 その他定数 テストするモジュールの宣言 initial $display logic宣言した信号初期化 クロック生成 クロックごとの処理 遅延追加 デバッグ出力 $finish だんだん完成に近づいていく. `timescale `ti…

メモリとHexファイルの話

Hexファイルの形式 実装1 実装2 FPGAを触っていると,バイナリをHexファイルに変換して読み込みたいときがある. (例えば,RISC-Vを自作しているときとか..FPGA内蔵メモリにHexファイルを埋め込みたい.. 今回は32bit命令を扱うメモリを例に考える. Hex…

Verilog 注意点

always文 assign文 数値 ビット論理演算 シフト演算 演算の優先順位 連結 function文 組み合わせ回路 always文 always文の中で代入する際は,ノンブロッキング代入<=を使用する. always文では,代入する変数はregとして宣言する必要がある. assign文 assig…

Verilog function文 注意点

function文の入力信号 悪い例 良い例 今回の教訓: 出力に関係する信号は全て定義しよう! function文の入力信号 function文は入力信号を省略した記述が可能だが,そこには落とし穴がある. 下記の2項目に注意 function文で入力信号として定義していない信号…

System verilog 文法メモ

前置き 文法 reg wire logic parameter, localparam struct module task function 演算 符号あり 算術右シフト 前置き どの部分が並列に実行されているか(always) どの部分は常に繋がっているか(alwaysの外) 値はどのように初期化するか(initial) C言…

Verilogのシミュレーション(Vivado),メモ

コマンド xvlog xelab xsim GUI xsimでguiオプションをつけて表示. 波形を選択 右クリックからAdd to Wave Window ドラッグ&ドロップで他にも信号を追加 Run All でシミュレーション実行 波形確認 信号追加 Restart から Run All 波形を右クリック,Radixか…

FPGA RAM・ROM

RAM Distributed RAM (分散RAM) Block RAM(BRAM) ROM その他参考文献 結論 RAM 配列になっていてビットの範囲を指定して読み出されるものをRAMで作ると資源を節約できる. 例:Instruction memory, Data memory, Register file 全ビットが同時に読み出さ…

モジュール間の依存性の排除,System verilog

メリット 流れ interfaceA,Bで異なる処理を実装 モジュールCでA,Bの共通の処理を実装. メインモジュールでinterfaceをインスタンス化し渡す. 参考 メリット 新しい処理を追加したければ,新たなinterfaceを作成して,メインモジュールで繋げるだけで良い.…