私はFPGAとCPUを使用するデザインをシミュレートしています。 CPUはSPIを介してFPGAと通信し、FPGAは通信されたデータに基づいていくつかの出力を制御します。Verilog testbench - タスクを使用してインクルードファイルから信号を駆動しますか?
私はシミュレーションを実行しており、シミュレートされたCPUテストベンチはSPIを介してFPGAレジスタを読み書きできます。今私はそれを少しクリーナーにするために私のコードをリファクタリングしたい。
私はテストベンチでインスタンス化されtb_system_interfaceモジュールが含まれていtb_system_interface.vと呼ばれる私のトップレベルのテストベンチでSPIを介してデータを送信する複数のタスクを、持っています。最低レベルのタスクは、spi_send_byteと呼ばれ、MOSIラインからデータを受け取り、MISOラインでデータを受け取り、SCLKを駆動します。他のより高いレベルのタスクを読み出して(例えば設定PWM値、設定された出力値、など)
私は新しいファイルにSPIトランザクションをリファクタリングしようとした出力を制御するFPGA上のレジスタの書き込み、tb_sim_spi_tasks.vと呼ばれます。私はこのファイルをtb_system.vファイルに含めます。もちろん、私のspi_send_byteタスクは、SPIシグナルを持つモジュールの内部に存在しないため、機能しません。
私は何をしようとしているのですか?モジュール定義を複数のファイルに分散することは可能でしょうか?あるいは、私のテストベンチによって出力されるタスクが設定できる何らかのグローバル変数?