中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

        Verilog HDL基礎(chǔ)知識(shí)2之運(yùn)算符

        作者: 時(shí)間:2024-02-19 來(lái)源:電子森林 收藏

        Verilog HDL 介紹

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

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


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

        例子:我們?cè)谏蓵r(shí)鐘的時(shí)候,必須需選擇合適的timescale和precision。當(dāng)我們使用“PERIOD/2”計(jì)算延遲的時(shí)候,必須保證除法不會(huì)舍棄小數(shù)部分,所以實(shí)際上我們應(yīng)該使用實(shí)數(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)系運(yùn)算符

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

        邏輯運(yùn)算符

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

        條件運(yùn)算符

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


        例子:使用?:。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);
        位運(yùn)算符

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

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

        移動(dòng)位運(yùn)算符

        在 Verilog 中有兩種移位運(yùn)算符:左移位運(yùn)算符和右移位運(yùn)算符,這兩種移位運(yùn)算符都用 0來(lái)填補(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
        拼接位運(yùn)算符

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


        例子:連接操作。
        {a, b[3:0], w, 3'b101}
        等價(jià)于
        {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ùn)算符的優(yōu)先級(jí)

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



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

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉