新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > Verilog HDL基礎教程之:時序邏輯電路

        Verilog HDL基礎教程之:時序邏輯電路

        作者: 時間:2013-08-23 來源:網絡 收藏

        言中,使用always語句塊來實現。例如,實現一個帶有異步復位信號的D觸發器如下。

        本文引用地址:http://www.104case.com/article/189522.htm

        例1:帶異步復位的D觸發器1。

        wire Din;

        wire clock,rst;

        reg Dout;

        always @ (posedge clock or negedge rst) //帶有異步復位

        if(rst == 1’b0) Dout = 1’b0;

        else Dout = Din; //D觸發器數據輸出

        在例1中,每當時鐘clock上升沿到來后,輸出信號Dout的值便更新為輸入信號Din的值。當復位信號下降沿到來時,Dout的值就會變成0。必須注意的是,在中,通常使用非阻塞賦值,即使用“=”。當always塊整個完成之后,值才會更新,例如:

        例2:帶異步復位的D觸發器2。

        wire Din;

        wire clock,rst;

        reg Dout;

        always @ (posedge clock or negedge rst) //帶有異步復位

        if(rst == 1’b0) out = 1’b0;

        else begin

        Dout = Din; //D觸發器輸出值還處于鎖定狀態

        Dout = 1’b1; //D觸發器輸出值依然處于鎖定狀態

        End //D觸發器的輸出為1

        在例2中,Dout首先被賦值為Din,此時Dout的值并沒有發生改變;接著Dout又被賦值為1,此時Dout的值依然沒發生改變;直到這個always模塊完成,Dout的值才變成最后被賦的值,此例中Dout的值為1。

        中,always的時間控制是沿觸發的,可以單個信號也可以多個信號,中間需要用關鍵字“or”連接,例如:

        always @(posedge clock or posedge reset) begin //由兩個沿觸發的always塊

        end

        其中有一個時鐘信號和一個異步復位信號。

        always @(posedge clock1 or posedge clock2 or posedge reset) begin

        //由3個沿觸發的always塊

        end

        其中有兩個時鐘信號和一個異步復位信號。

        一般而言,同步時序邏輯電路更穩定,所以建議盡量使用一個時鐘觸發。

        電路相關文章:電路分析基礎




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 白城市| 凤冈县| 武隆县| 芒康县| 房山区| 和龙市| 乌兰察布市| 上林县| 玉树县| 泽库县| 竹溪县| 伽师县| 南城县| 温泉县| 诸城市| 高州市| 嘉义市| 潜山县| 云阳县| 尉犁县| 北京市| 大同县| 朝阳市| 方正县| 东安县| 南川市| 叙永县| 防城港市| 达孜县| 凯里市| 大姚县| 贵阳市| 青海省| 武陟县| 沭阳县| 工布江达县| 大方县| 金川县| 金乡县| 神木县| 兴安盟|