Verilog HDL按位操作符與歸約操作符的區別


 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)) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM