PLICの実装をいろいろチェックしたくて、Chipyardで生成される構成をチェックしている。
- RocketChipのシングルコア構成。割込み挿入インタフェース
auto_int_in_0
は1ビットのみ。出力はauto_int_out_1_0 / auto_int_out_0_0
の2ビット。
module TLPLIC( input clock, input reset, input auto_int_in_0, output auto_int_out_1_0, output auto_int_out_0_0, output auto_in_a_ready, input auto_in_a_valid, input [2:0] auto_in_a_bits_opcode, input [2:0] auto_in_a_bits_param, input [1:0] auto_in_a_bits_size, input [7:0] auto_in_a_bits_source, input [27:0] auto_in_a_bits_address, input [7:0] auto_in_a_bits_mask, input [63:0] auto_in_a_bits_data, input auto_in_a_bits_corrupt, input auto_in_d_ready, output auto_in_d_valid, output [2:0] auto_in_d_bits_opcode, output [1:0] auto_in_d_bits_size, output [7:0] auto_in_d_bits_source, output [63:0] auto_in_d_bits_data );
- RocketChipの2コア構成。割込み挿入インタフェース
auto_int_in_0
は1ビットのみ。出力はauto_int_out_[3-1]_0
の4ビット。
module TLPLIC( input clock, input reset, input auto_int_in_0, output auto_int_out_3_0, output auto_int_out_2_0, output auto_int_out_1_0, output auto_int_out_0_0, output auto_in_a_ready, input auto_in_a_valid, input [2:0] auto_in_a_bits_opcode, input [2:0] auto_in_a_bits_param, input [1:0] auto_in_a_bits_size, input [9:0] auto_in_a_bits_source, input [27:0] auto_in_a_bits_address, input [7:0] auto_in_a_bits_mask, input [63:0] auto_in_a_bits_data, input auto_in_a_bits_corrupt, input auto_in_d_ready, output auto_in_d_valid, output [2:0] auto_in_d_bits_opcode, output [1:0] auto_in_d_bits_size, output [9:0] auto_in_d_bits_source, output [63:0] auto_in_d_bits_data );
- RocketChipの4コア構成。割込み挿入インタフェース
auto_int_in_0
は1ビットのみ。出力はauto_int_out_[7-1]_0
の8ビット。
module TLPLIC( input clock, input reset, input auto_int_in_0, output auto_int_out_7_0, output auto_int_out_6_0, output auto_int_out_5_0, output auto_int_out_4_0, output auto_int_out_3_0, output auto_int_out_2_0, output auto_int_out_1_0, output auto_int_out_0_0, output auto_in_a_ready, input auto_in_a_valid, input [2:0] auto_in_a_bits_opcode, input [2:0] auto_in_a_bits_param, input [1:0] auto_in_a_bits_size, input [9:0] auto_in_a_bits_source, input [27:0] auto_in_a_bits_address, input [7:0] auto_in_a_bits_mask, input [63:0] auto_in_a_bits_data, input auto_in_a_bits_corrupt, input auto_in_d_ready, output auto_in_d_valid, output [2:0] auto_in_d_bits_opcode, output [1:0] auto_in_d_bits_size, output [9:0] auto_in_d_bits_source, output [63:0] auto_in_d_bits_data );