smb_if #(.ADDR_SZ(8), .SLAVE_NUM(8)) i_smbif();
Iを以下のように私のトップモジュールで宣言され
interface smb_if #(
parameter shortint ADDR_SZ = 8,
parameter shortint DATA_SZ = 8,
parameter shortint SLAVE_NUM = 8
);
logic [DATA_SZ-1:0] wrdata;
logic [DATA_SZ-1:0] rddata [SLAVE_NUM-1:0];
logic [ADDR_SZ-1:0] rdaddr;
logic [ADDR_SZ-1:0] wraddr;
logic wr; // =1 means 'write, =0 means 'read
logic wrcmd; //
logic rd; // =1 means 'write, =0 means 'read
logic rdcmd; // =1 means 'write, =0 means 'read
logic [ADDR_SZ-1:0] rdaddr_old;
logic clrcmd;
logic [SLAVE_NUM-1:0] sel ; // one-hot; =1 means 'selected'
modport master (
input rddata, output wrdata, output rdaddr, output rdaddr_old, output clrcmd, output wraddr,
output wr, output wrcmd, output rd, output rdcmd, output sel
);
modport slave (
output rddata, input wrdata, input rdaddr, input rdaddr_old, input clrcmd, input wraddr,
input wr, input wrcmd, input rd, input rdcmd, input sel
);
endinterface:smb_if
インタフェースのインスタンスを以下のように定義されたインターフェースを使用して、以下の合成たいインターフェイスポートを私のモジュールに接続してください
.smb_page_sel (i_smbif.master.sel ), // Page selection
.smb_addw (i_smbif.master.wraddr ), // data address for write
.smb_dataw (i_smbif.master.wrdata ), // data to be written on a write cycle
.smb_wr (i_smbif.master.wr ), // from SMB top: what diff with wr?
.smb_wrcmd (i_smbif.master.wrcmd ), // register file write command
.smb_addptr (i_smbif.master.rdaddr ), // data address for read
.smb_rd (i_smbif.master.rd),
// etc.
私はデザインco精緻化中のmpiler(解析は正常に実行されました)
誰かが回避策を提案できますか?私は おかげでずっと