99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

設(shè)計(jì)一個(gè)計(jì)數(shù)器來(lái)講解時(shí)序邏輯

FPGA技術(shù)江湖 ? 來(lái)源:叁芯智能FPGA課程 ? 2023-08-14 09:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、時(shí)序邏輯

時(shí)序邏輯是Verilog HDL 設(shè)計(jì)中另一類重要應(yīng)用。從電路特征上看來(lái),其特點(diǎn)為任意時(shí)刻的輸出不僅取決于該時(shí)刻的輸入,而且還和電路原來(lái)的狀態(tài)有關(guān)。

從電路行為上講,不管輸入如何變化,僅當(dāng)時(shí)鐘的沿(上升沿或下降沿)到達(dá)時(shí),才有可能使輸出發(fā)生變化。

1、在描述時(shí)序電路的always塊中的reg型信號(hào)都會(huì)被綜合成寄存器,這是和組合邏輯電路所不同的。
2、時(shí)序邏輯中推薦使用非阻塞賦值“<=”。

3、時(shí)序邏輯的敏感信號(hào)列表只需要加入所用的時(shí)鐘觸發(fā)沿即可,其余所有的輸入和條件判斷信號(hào)都不用加入,這是因?yàn)闀r(shí)序邏輯是通過(guò)時(shí)鐘信號(hào)的跳變沿來(lái)控制的。

二、時(shí)序邏輯在FPGA里RTL實(shí)現(xiàn)

我們寫(xiě)一個(gè)簡(jiǎn)單的寄存器,看看fpga是怎樣實(shí)現(xiàn)時(shí)序邏輯的

module  counter(
    input           a,
    input               clk,
     
    output  reg     q
);
 
    always@(posedge clk)begin
        q <= a;
    end
 
endmodule

我們看一下fpga的芯片規(guī)劃器

c63e649e-3a32-11ee-9e74-dac502259ad0.png

從芯片規(guī)劃器,可以看出來(lái)幾個(gè)細(xì)節(jié)。

1、我們用了一個(gè)查找表、一個(gè)寄存器。對(duì)FPGA來(lái)說(shuō),這個(gè)寄存器你就算不使用他也是在那里的

2、我么的輸出信號(hào)是與clk同步的,必須要等到clk的上升沿到來(lái)是,輸出才會(huì)更新,因此就實(shí)現(xiàn)了寄存器的功能

三、同步復(fù)位、異步復(fù)位

1、同步復(fù)位:其實(shí)就是你的操作和時(shí)鐘的上升沿同步

舉個(gè)例子,你要將q設(shè)置為0,下面這代碼就是同步復(fù)位,q <= 0,是在時(shí)鐘上升沿到來(lái)時(shí)執(zhí)行的,所以是同步復(fù)位

module  counter(
    input           a,
    input               clk,
     
    output  reg     q
);
 
    always@(posedge clk)begin
        q <= 0;
    end
 
endmodule

2、異步復(fù)位:其實(shí)就是你的操作和時(shí)鐘沒(méi)有關(guān)系

舉個(gè)例子,你要將q設(shè)置為0,下面這代碼就是異步復(fù)位,q <= 0,無(wú)論時(shí)鐘是什么狀態(tài),只有rst_n到來(lái)就執(zhí)行清零

module  counter(
    input                   a,
    input                       clk,
    input                       rst_n,
    output  reg [7:0]   q
);
 
    always@(posedge clk,negedge rst_n)begin
        if(!rst_n)
            q <= 0;
        else   
            q <= q + 1'b1;
    end
endmodule

四、競(jìng)爭(zhēng)冒險(xiǎn)

競(jìng)爭(zhēng)冒險(xiǎn):意思是,在我時(shí)鐘的上升沿進(jìn)行采樣時(shí),輸入信號(hào)處于不穩(wěn)定狀態(tài),這個(gè)會(huì)給電路帶來(lái)亞穩(wěn)態(tài)的問(wèn)題

c6946eca-3a32-11ee-9e74-dac502259ad0.png

為了解決競(jìng)爭(zhēng)冒險(xiǎn),我們只要滿足信號(hào)的建立時(shí)間和保持時(shí)間即可

c6aeecaa-3a32-11ee-9e74-dac502259ad0.png

五、verilog語(yǔ)法補(bǔ)充

1、parameter 定義全局變量

parameter   T =     26'd49_000_000;

2、defparam重新定義參數(shù),這個(gè)主要是在仿真腳本修改例化的模塊的內(nèi)部參數(shù)

defparam counter_inst.T = 26'd49;
 
counter counter_inst(
.clk        (clk),
.rst_n  (rst_n),   
.flag       (flag)

六、計(jì)數(shù)器設(shè)計(jì)

設(shè)計(jì)一個(gè)1秒的計(jì)數(shù)器,當(dāng)時(shí)間到一秒后給出一個(gè)flag信號(hào)

1、代碼實(shí)現(xiàn) verilog.v

module  counter(
    input               clk,
    input               rst_n,
    output  reg     flag
);
 
    reg [25:0] count;
     
    parameter   T =     26'd49_000_000;
     
    always@(posedge clk,negedge rst_n)begin
        if(!rst_n)begin
            flag <= 1'b0;
            count <= 0;
            end
        else    if(count == T)begin
                flag <= 1'b1;
                count <= 0;
            end
        else
            begin
                count <= count + 1'b1;
                flag <= 1'b0;
            end
    end
 
endmodule

2、仿真腳本

我在仿真腳本將時(shí)間參數(shù)改為T(mén)改為 T=26‘d49;方便仿真

`timescale 1ns/1ps
 
 
module counter_tb;
 
    reg             clk;
    reg             rst_n;
    wire                flag;
     
    defparam counter_inst.T = 26'd49;
     
    counter counter_inst(
    .clk        (clk),
    .rst_n  (rst_n),   
    .flag       (flag)
);
 
    always #10 clk = ~clk;
 
    initial begin
        clk = 0;
        rst_n = 0;
        #20;
        rst_n = 1;
        #5000000;
        $stop;
    end
 
endmodule

3、仿真結(jié)果

1、可以看出脈沖flag只持續(xù)了一個(gè)周期

c6ddfb8a-3a32-11ee-9e74-dac502259ad0.png

2、可以看出脈沖的觸發(fā)是50個(gè)計(jì)數(shù)值

c70bc6fa-3a32-11ee-9e74-dac502259ad0.png

七、計(jì)數(shù)器里隱藏的加法器問(wèn)題

我們?cè)O(shè)計(jì)的這個(gè)計(jì)數(shù)器,里面其實(shí)用了一個(gè)加法器,加法器是組合邏輯(因?yàn)榻M合邏輯只取決于輸入)

當(dāng)我們給加法器一個(gè)初值0的時(shí)候,加法器的輸出立即就輸出1,這就是仿真的時(shí)候,開(kāi)始復(fù)位拉高后,count在第一個(gè)clk上升沿就為1的原因

c75139c4-3a32-11ee-9e74-dac502259ad0.png







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618604
  • 邏輯電路
    +關(guān)注

    關(guān)注

    13

    文章

    502

    瀏覽量

    43351
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124543
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1367

    瀏覽量

    112299
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2291

    瀏覽量

    96425
  • 時(shí)序邏輯電路
    +關(guān)注

    關(guān)注

    2

    文章

    94

    瀏覽量

    16853
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5682

    瀏覽量

    104837
  • FPGA開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    10

    文章

    125

    瀏覽量

    31983
  • Verilog語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8555

原文標(biāo)題:筆記連載精選 |【時(shí)序邏輯、競(jìng)爭(zhēng)冒險(xiǎn)、同步復(fù)位、異步復(fù)位】之【計(jì)數(shù)器設(shè)計(jì)、verilog語(yǔ)法補(bǔ)充】

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    時(shí)序邏輯電路的精華——計(jì)數(shù)器

    時(shí)序邏輯電路的精華——計(jì)數(shù)器
    的頭像 發(fā)表于 12-29 09:23 ?1606次閱讀

    時(shí)序電路設(shè)計(jì)的計(jì)數(shù)器詳解

    500ms的時(shí)間進(jìn)行閃爍,如果有示波器也可以測(cè)量這時(shí)候的引腳波形進(jìn)行觀察。圖3-10 RTLviewer圖3-11 實(shí)驗(yàn)現(xiàn)象至此,就完成了個(gè)基本的時(shí)序邏輯,
    發(fā)表于 01-24 06:35

    中規(guī)模集成時(shí)序邏輯設(shè)計(jì)

    中規(guī)模集成時(shí)序邏輯設(shè)計(jì):計(jì)數(shù)器:在數(shù)字邏輯系統(tǒng)中,使用最多的時(shí)序電路要算計(jì)數(shù)器了。它是
    發(fā)表于 09-01 09:09 ?13次下載

    時(shí)序邏輯電路

    實(shí)驗(yàn)十六  時(shí)序邏輯電路? 實(shí)驗(yàn)(1) 計(jì)數(shù)器?、實(shí)驗(yàn)?zāi)康?⒈ 熟悉計(jì)數(shù)器的設(shè)計(jì)方法及工作原理。?⒉ 了解同步
    發(fā)表于 09-24 22:17 ?3494次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路

    計(jì)數(shù)器,計(jì)數(shù)器的工作原理是什么?

    計(jì)數(shù)器,計(jì)數(shù)器的工作原理是什么? 在數(shù)字系統(tǒng)中使用最多的時(shí)序電路是計(jì)數(shù)器。計(jì)數(shù)器不僅能用于對(duì)時(shí)鐘脈沖進(jìn)行
    發(fā)表于 03-08 13:50 ?6.2w次閱讀

    基于Multisim的計(jì)數(shù)器設(shè)計(jì)仿真

    計(jì)數(shù)器是常用的時(shí)序邏輯電路器件,文中介紹了以四位同步二進(jìn)制集成計(jì)數(shù)器74LS161和異步二-五-十模值計(jì)數(shù)器74LS290為主要芯片,設(shè)計(jì)實(shí)
    發(fā)表于 07-26 11:38 ?134次下載
    基于Multisim的<b class='flag-5'>計(jì)數(shù)器</b>設(shè)計(jì)仿真

    計(jì)數(shù)器時(shí)序電路

    1、了解時(shí)序電路的經(jīng)典設(shè)計(jì)方法(D觸發(fā)、JK觸發(fā)邏輯門(mén)組成的時(shí)序
    發(fā)表于 07-10 14:37 ?17次下載

    計(jì)數(shù)器邏輯功能測(cè)試實(shí)驗(yàn)報(bào)告

    本文主要介紹了計(jì)數(shù)器邏輯功能測(cè)試實(shí)驗(yàn)報(bào)告。時(shí)序邏輯電路中,有種電路叫計(jì)數(shù)器
    發(fā)表于 06-27 08:00 ?15次下載
    <b class='flag-5'>計(jì)數(shù)器</b><b class='flag-5'>邏輯</b>功能測(cè)試實(shí)驗(yàn)報(bào)告

    采用中規(guī)模集成計(jì)數(shù)器進(jìn)行任意進(jìn)制計(jì)數(shù)器設(shè)計(jì)的解決方案

    計(jì)數(shù)器是數(shù)字邏輯系統(tǒng)中的基本部件, 它是數(shù)字系統(tǒng)中用得最多的時(shí)序邏輯電路,其主要功能就是用計(jì)數(shù)器的不同狀態(tài)來(lái)記憶輸入脈沖的個(gè)數(shù)。除此以外還具
    的頭像 發(fā)表于 05-30 08:24 ?1.7w次閱讀
    采用中規(guī)模集成<b class='flag-5'>計(jì)數(shù)器</b>進(jìn)行任意進(jìn)制<b class='flag-5'>計(jì)數(shù)器</b>設(shè)計(jì)的解決方案

    MOD計(jì)數(shù)器時(shí)序

    計(jì)數(shù)器的工作是通過(guò)每個(gè)時(shí)鐘脈沖將計(jì)數(shù)器的內(nèi)容提前個(gè)計(jì)數(shù)來(lái)計(jì)數(shù)。當(dāng)被時(shí)鐘輸入激活時(shí)推進(jìn)其數(shù)字或狀
    的頭像 發(fā)表于 06-23 07:47 ?1.6w次閱讀
    MOD<b class='flag-5'>計(jì)數(shù)器</b>和<b class='flag-5'>時(shí)序</b>圖

    單片機(jī)計(jì)數(shù)器工作原理及講解

    計(jì)數(shù)器給人們工作計(jì)數(shù)工作帶來(lái)了很大的便利,大大提高了工作效率,今天這篇文章就為大家講解下 單片機(jī)計(jì)數(shù)器的工作原理。
    的頭像 發(fā)表于 10-08 11:58 ?5413次閱讀
    單片機(jī)<b class='flag-5'>計(jì)數(shù)器</b>工作原理及<b class='flag-5'>講解</b>

    同步計(jì)數(shù)器和異步計(jì)數(shù)器是什么 同步計(jì)數(shù)器和異步計(jì)數(shù)器的主要區(qū)別?

    在數(shù)字電子產(chǎn)品中,計(jì)數(shù)器是由系列觸發(fā)組成的時(shí)序邏輯電路。顧名思義,計(jì)數(shù)器用于計(jì)算輸入在負(fù)或正
    的頭像 發(fā)表于 03-25 17:31 ?2.8w次閱讀
    同步<b class='flag-5'>計(jì)數(shù)器</b>和異步<b class='flag-5'>計(jì)數(shù)器</b>是什么 同步<b class='flag-5'>計(jì)數(shù)器</b>和異步<b class='flag-5'>計(jì)數(shù)器</b>的主要區(qū)別?

    時(shí)序邏輯電路設(shè)計(jì)之計(jì)數(shù)器

    前面已經(jīng)學(xué)習(xí)了時(shí)序邏輯電路中的基本單元:觸發(fā),這次就用其來(lái)整點(diǎn)活,實(shí)現(xiàn)計(jì)數(shù)器的設(shè)計(jì),計(jì)數(shù)器可以說(shuō)是任何和
    的頭像 發(fā)表于 05-22 16:54 ?6462次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路設(shè)計(jì)之<b class='flag-5'>計(jì)數(shù)器</b>

    時(shí)序邏輯電路設(shè)計(jì)之同步計(jì)數(shù)器

    時(shí)序電路的考察主要涉及分析與設(shè)計(jì)兩個(gè)部分,上文介紹了時(shí)序邏輯電路的些分析方法,重點(diǎn)介紹了同步時(shí)序
    的頭像 發(fā)表于 05-22 17:01 ?4571次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路設(shè)計(jì)之同步<b class='flag-5'>計(jì)數(shù)器</b>

    時(shí)序邏輯電路設(shè)計(jì)之異步計(jì)數(shù)器

    上文介紹了同步計(jì)數(shù)器的設(shè)計(jì)原則以及各注意事項(xiàng),本文承接上文繼續(xù)介紹異步計(jì)數(shù)器以及三種常用的集成計(jì)數(shù)器的相關(guān)內(nèi)容。
    的頭像 發(fā)表于 05-22 17:07 ?6315次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路設(shè)計(jì)之異步<b class='flag-5'>計(jì)數(shù)器</b>