sdaPipe <= {`DEB_I2C_LEN{1'b1}};
{{}} 為一種賦值運算符,將一個表達式放入雙重花括號中,而復制因子放在第一層花括號中,用來指定復制的次數。
{ }表示拼接,{第一位,第二位...};
{{ }}表示復制,{4{a}}等同於{a,a,a,a};
所以{13{1‘b1}}就表示將13個1拼接起來,即13'b1111111111111。
按位是二元操作符,是將操作符兩邊的操作數進行 操作符所規定的運算 ,
例如:a & b(a=1,b=1),出來結果為1;
歸約是一元操作符,是將操作數的幾個bit位當成1bit的操作數進行操作符所規定的運算,
例如:a=4’b1101,則 &a= 1&1&0&1 =0
具體到程序綜合的時候,綜合工具會根據你操作數的多少來區分你的意圖
$display(p1,p2, …,pn);
$write(p1,p2, …,pn);
這兩個函數和系統任務的作用都是用來輸出信息,即將參數p2到pn按參數p1給定的格式輸出。參數p1通常稱為:“格式控制”,參數p2至pn通常稱為“輸出列表”。
$display自動地在輸出后進行換行,$write則不是這樣。如果想在一行里輸出多個信息,可以使用$write。如:$display(“%d”,10) 和 $display(“%d\n”,10) 效果相同
wb_master_model #(.dwidth(8), .awidth(3)) u_wb_master_model (
.clk(clk),
.rst(rst),
.adr(adr),
.din(masterDin),
.dout(masterDout),
.cyc(cyc),
.stb(stb),
.we(we),
.sel(),
.ack(ack),
.err(1'b0),
.rty(1'b0)
);
#(.dwidth(8), .awidth(3))