常見的關系運算符(位拼運算符)


寫在前面的話

位拼運算符是將多個小的表達式合並形成一個大的表達式,用符號{}來實現多個表達式的連接運算,各個表達式之間用“,”隔開。位拼運算符是夢翼師兄特別喜歡的一種運算符,它聰慧靈秀,不但可以進行簡單的數據拼接,更是可以用來執行移位操作,而且數據永遠是循環的,不會丟失,用途非常廣泛。

代碼實例

    /****************************************************          

    *   Engineer        :   夢翼師兄

    *   QQ               :   761664056

    *   The module function:位拼接運算符模塊

    *****************************************************/

01  module shift(clk,rst_n,led_out);

02  input clk;//系統輸入

03  input rst_n;//系統復位

04

05  output reg [3:0]led_out;//led驅動端口

06

07  always@(posedge clk or negedge rst_n)

08      begin

09          if(!rst_n)

10              begin

11                  led_out<=4'b0111;//讓其中一盞燈點亮

12              end 

13          else 

14              begin

15                  led_out<={led_out[0],led_out[3:1]};//實現流水燈

16              end 

17      end 

18  endmodule 

編寫測試代碼如下

    /****************************************************          

    *   Engineer        :   夢翼師兄

    *   QQ               :   761664056

    *   The module function:位拼接運算符測試模塊

    *****************************************************/

01  `timescale 1ns/1ps 

02  module tb;

03  reg clk;

04  reg rst_n;

05

06  wire [3:0]led_out;

07

08  initial

09      begin

10          clk=0;

11          rst_n=0;

12          # 1000.1 rst_n=1;

13      end 

14

15  always #10 clk=~clk;    

16      

17  shift shift(

18      .clk(clk),

19      .rst_n(rst_n),

20      .led_out(led_out)

21   );

22  endmodule 

查看仿真波形如下:

 

從仿真圖可以看出,每個時鍾周期,0都會向右移動一位。到最右邊時就會放返回最左邊繼續循環,使用拼位的運算符,在很多場合-如串並轉換等,會使代碼編寫變得簡單。

代碼的意思是,每次把最低位放到最高位,讓前三位放到后面,這樣邏輯就實現了移位,形成了循環。

 


免責聲明!

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



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