在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Verilog HDL基礎(chǔ)知識2之運算符

            Verilog HDL基礎(chǔ)知識2之運算符

            作者: 時間:2024-02-19 來源:電子森林 收藏

            Verilog HDL 介紹

            本文引用地址:http://www.biyoush.com/article/202402/455478.htm
            算術(shù)

            首先我們介紹的是算術(shù),所謂算術(shù)邏輯運算符就是我們常說的加、減、乘、除等,這類運算符的抽象層級較高,從數(shù)字邏輯電路實現(xiàn)上來看,它們都是基于與、或、非等基礎(chǔ)門邏輯組合實現(xiàn)的,如下。


            1. /是除法運算,在做整數(shù)除時向零方向舍去小數(shù)部分。
            2. %是取模運算,只可用于整數(shù)運算,而其他操作符既可用于整數(shù)運算,也可用于實數(shù)運算。

            例子:我們在生成時鐘的時候,必須需選擇合適的timescale和precision。當(dāng)我們使用“PERIOD/2”計算延遲的時候,必須保證除法不會舍棄小數(shù)部分,所以實際上我們應(yīng)該使用實數(shù)除法“PERIOD/2.0”。

            parameter PERIOD=15;initial begin clk <= 0; forever #(PERIOD/2) clk = ~clk; 
            end  // Not correctinitial begin clk <= 0; forever #(PERIOD/2.0) clk = ~clk; 
            end  // Not correct

            關(guān)系運算符

            關(guān)系運算符主要是用來做一些條件判斷用的,在進(jìn)行關(guān)系運算符時,如果聲明的關(guān)系是假的,則返回值是 0,如果聲明的關(guān)系是真的,則返回值是 1;所有的關(guān)系運算符有著相同的優(yōu)先級別,關(guān)系運算符的優(yōu)先級別低于算術(shù)運算符的優(yōu)先級別。如下。

            邏輯運算符

            邏輯運算符是連接多個關(guān)系表達(dá)式用的,可實現(xiàn)更加復(fù)雜的判斷,一般不單獨使用,都需要配合具體語句來實現(xiàn)完整的意思,如下。

            條件運算符

            Verilog 語言為了讓連續(xù)賦值的功能更加完善,于是又從 C 語言中引入了條件操作符來構(gòu)建從兩個輸入中選擇一個作為輸出的條件選擇結(jié)構(gòu),功能等同于 always 中的 if-else 語句,如下。


            例子:使用?:。wire [15:0] bus = bus_enable ? drive ? bus_data : 16'bz;
            wire [7:0] data = (sel_a ? data_a :
                               sel_b ? data_b :
                               sel_c ? data_c : 8'bz);
            位運算符

            位運算符是一類最基本的運算符,可以認(rèn)為它們直接對應(yīng)數(shù)字邏輯中的與、或、非門等邏輯門。

            位運算符的與、或、非與邏輯運算符邏輯與、邏輯或、邏輯非,雖然它們處理的數(shù)據(jù)類型不一樣,但是從硬件實現(xiàn)角度上來說,它們沒有區(qū)別的,如下。

            移動位運算符

            在 Verilog 中有兩種移位運算符:左移位運算符和右移位運算符,這兩種移位運算符都用 0來填補(bǔ)移出的空位。如下。


            例子:<<操作。
            //In this example, the reg result is assigned the binary value 0100,
            // which is 0001 shifted to the left two positions and zero-filled.module shift;
              reg [3:0] start, result;
              initial begin
                start = 1;
                result = (start << 2);
              endendmodule
            拼接位運算符

            在 Verilog 中有一個特殊的運算符,就是我們的位拼接運算符。用這個運算符可以把兩個或多個信號的某些位拼接起來進(jìn)行運算操作。如下。


            例子:連接操作。
            {a, b[3:0], w, 3'b101}
            等價于
            {a, b[3], b[2], b[1], b[0], w, 1'b1, 1'b0, 1'b1}
            例子:復(fù)制操作。
            {4{w}}          // This yields the same value as {w, w, w, w}。
            {b, {3{a, b}}}  // This yields the same value as {b, a, b, a, b, a, b}。
            運算符的優(yōu)先級

            運算符一多,必然涉及到優(yōu)先級的問題,為了便于大家查看這些運算符的優(yōu)先級,我們將它們制作成了表格,如下。



            關(guān)鍵詞: FPGA verilog HDL 運算符

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉