国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA的設計中為什么避免使用鎖存器

454398 ? 來源:科學計算technomania ? 作者:貓叔 ? 2020-11-16 11:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

FPGA的設計中,避免使用鎖存器是幾乎所有FPGA工程師的共識,Xilinx和Altera也在手冊中提示大家要慎用鎖存器,除非你明確知道你確實需要一個latch來解決問題。而且目前網上大多數文章都對鎖存器有個誤解,我們后面會詳細說明。

這篇文章,我們包含如下內容:
①鎖存器、觸發器和寄存器的原理和區別,為什么鎖存器不好?
② 什么樣的代碼會產生鎖存器?
③ 為什么鎖存器依然存在于FPGA中?

鎖存器、觸發器和寄存器的原理和區別,為什么鎖存器不好?

鎖存器、觸發器和寄存器它們的英文分別為:Latch、Flip-Flop、Register。我們對這三個單詞的翻譯真的是非常直觀,從名字就能大概猜出它們的含義。

鎖存器

1. 什么是鎖存器?

鎖存器就是用來存儲狀態信息,就是將這個狀態一直保持。鎖存器對脈沖的電平敏感,也就是電平觸發,在有效的電平下,鎖存器處于使能狀態,輸出隨著輸入發生變化,此時它不鎖存信號,就像一個緩沖器一樣;在鎖存器沒有使能時,則數據被鎖住,輸入信號不起作用,此時輸出一直為鎖存的狀態信息。我們常見的鎖存器有SR鎖存器、D鎖存器、JK鎖存器等。

2. 鎖存器的工作過程

我們以最簡單的D鎖存器為例來說明鎖存器的工作過程,D鎖存器有3個接口,也可以認為是4個,因為輸出的兩個Q和Q只是單純的反向關系。


其中D為輸入信號,當E為高時,輸出Q即為輸入的D;當E為低時,Q保持E為高時的最后一次狀態,也就是鎖存過程。


3. 為什么鎖存器不好?

從上面的圖中可以看出,鎖存器對毛刺不敏感,很容易在信號上產生毛刺;而且也沒有時鐘信號,不容易進行靜態時序分析。正是因為這兩個原因,我們在FPGA設計時,盡量不用鎖存器。

當然,目前網上還有一種說法是FPGA中只有LUT和FF的資源,沒有現成的Latch,所以如果要用Latch,需要更多的資源來搭出來。但這一觀點,是錯誤的,我們后面會有專門的講解。

觸發器

1. 什么是觸發器

觸發器(Flip-Flop,簡寫為 FF),也叫雙穩態門,又稱雙穩態觸發器。在中國臺灣及中國香港譯作“正反器”,是一種具有兩種穩態的用于儲存的組件,可記錄二進制數字信號“1”和“0”。

FPGA工程師,對觸發器再熟悉不過了,D觸發器應該是我們平時寫程序中用到最多的element。除了D觸發器,常見的觸發器還有T觸發器、SR觸發器、JK觸發器等。觸發器對脈沖邊沿敏感,其狀態只在時鐘脈沖的上升沿或下降沿的瞬間改變。

2. 觸發器的工作過程

我們以D觸發器為例來說明觸發器的工作過程,D觸發器接口如下:


觸發器只在時鐘邊沿時起作用,所以哪怕輸入的信號中有毛刺,輸出還是比較干凈的。


還有一點需要了解的是,FPGA中最小的單元是門電路,門電路又組成了鎖存器,鎖存器組成了寄存器。

寄存器

用來存放數據的一些小型存儲區域,用來暫時存放參與運算的數據和運算結果,它被廣泛的用于各類數字系統和計算機中。其實寄存器就是一種常用的時序邏輯電路,但這種時序邏輯電路只包含存儲電路。寄存器的存儲電路是由鎖存器或觸發器構成的,因為一個鎖存器或觸發器能存儲1位二進制數,所以由N個鎖存器或觸發器可以構成N位寄存器。工程中的寄存器一般按計算機中字節的位數設計,所以一般有8位寄存器、16位寄存器等。

什么樣的代碼會產生鎖存器?

在組合邏輯中,如果條件描述不全就會容易產生Latch:
? if語句中缺少了else語句
? case語句中沒有給出全部的情況。

也就是下面的情況:

always @ *
begin
    if(en==1)
        q <= d;
end
input [1:0]d;
always @ (d)
begin
    case(d)
    0:       q0 <= 1'b1;
    1:       q2 <= 1'b1;
    2:       q2 <= 1'b1;
    3:       q3 <= 1'b1;
    default: q4 <= 1'b1;
end

這個前提是組合電路中,在時序電路的if語句中,及時沒有else,也不會綜合出Latch的。

上面這兩種寫法容易出現在什么地方呢?最常見的就是狀態機,我見過不少的FPGA工程師在寫狀態機時,case語句中沒有給出變量的全部情況。

為什么鎖存器依然存在于FPGA中?

我們在前面說過網上有一種說法是:FPGA中只有LUT和FF的資源,沒有現成的Latch,所以如果要用Latch,需要更多的資源來搭出來。這種說法是錯誤的,因為在Xilinx的FPGA中,6 系列之前的器件中都有Latch;6系列和7系列的FPGA中,一個Slice中有50%的storage element可以被配置為Latch或者Flip-Flop,另外一半只能被配置為Flip-Flop。比如7系列FPGA中,一個Slice中有8個Flip-Flop,如果被配置成了Latch,該Slice的另外4個Flip-Flop就不能用了。這樣確實造成了資源的浪費。


在UltraScale的FPGA中,所有的storage element都可以被配置成Flip-Flop和Latch。


我們以下面的代碼來說明Flip-Flop和Latch在Ultrascale的FPGA中Implementation后的結果。

Flip-Flop代碼:

module FF_top(
 input              clk,
 input [3:0]        data_i,
 input              data_ie,  //enable
 output reg [3:0]   o_latch
    );

always @ ( posedge clk )
begin
    if(data_ie)
        o_latch <= data_i;
end  

endmodule

Latch代碼:

module latch_top(
 input [7:0]        data_i,
 input              data_ie,  //enable
 output reg [7:0]   o_latch
    );

always @ * 
begin
    if(data_ie)
        o_latch[3:0] <= data_i[3:0];
end  


endmodule

Flip-Flop實現后的Schematic和Device如下:


Latch實現后的Schematic和Device如下:


可以看出,在使用Flip-Flop時,storage element被綜合成了FDRE,也就是觸發器;當使用Latch電路時,storage element被綜合成了LDCE。

所以,FPGA中沒有Latch的說法在Xilinx的FPGA中是不對的。

最后一個問題,既然Latch有這么多的問題,那為什么FPGA中還要保留?

① 首先就是因為FPGA電路的靈活性,保留Latch并不影響FPGA的資源,因為storage element可以直接被配置為Flip-Flop。

② 其次就是有些功能是必須要使用Latch的,比如很多處理器的接口就需要一個Latch來緩存數據或地址。

最后要說明的一點是:鎖存器雖然在FPGA中不怎么被使用,但在CPU中卻很常見,因為鎖存器比Flip-Flop快很多。

編輯:hfy


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22408

    瀏覽量

    636211
  • 鎖存器
    +關注

    關注

    8

    文章

    956

    瀏覽量

    44912
  • 觸發器
    +關注

    關注

    14

    文章

    2056

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MAX834/MAX835:小巧卻強大的微功耗電壓監測

    MAX834/MAX835:小巧卻強大的微功耗電壓監測 作為電子工程師,在設計電路時,對電源電壓的精確監測至關重要,特別是在電池供電系統,防止電池過放電是保障系統穩定運行和電池
    的頭像 發表于 02-26 14:25 ?170次閱讀

    探索TMAG5115:高性能霍爾效應的卓越特性與應用

    探索TMAG5115:高性能霍爾效應的卓越特性與應用 在電子工程師的日常設計,傳感的選擇至關重要,它直接影響著系統的性能和穩定性。
    的頭像 發表于 02-11 11:40 ?254次閱讀

    10 GHz 比較 HMC675LC3C:高速應用的理想之選

    10 GHz 比較 HMC675LC3C:高速應用的理想之選 在電子設計領域,高速、高精度的比較一直是眾多應用的核心組件。今天,我們就來深入了解一款性能卓越的 10 GHz
    的頭像 發表于 01-06 15:15 ?339次閱讀

    的時間借用概念與靜態時序分析

    對于基于的設計,靜態時序分析會應用一個稱為時間借用的概念。本篇博文解釋了時間借用的概念,若您的設計包含
    的頭像 發表于 12-31 15:25 ?5463次閱讀
    <b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b><b class='flag-5'>中</b>的時間借用概念與靜態時序分析

    MC74VHCT373A高速CMOS八路D型技術解析

    。MC74VHCT373A在4.5V至5.5V~DC~ 電源電壓下工作。這些設備均為無鉛、無鹵素,符合RoHS標準。MC74VHCT373A
    的頭像 發表于 11-22 14:06 ?1460次閱讀
    MC74VHCT373A高速CMOS八路D型<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>技術解析

    長晶口型CJ74HC573系列、CJ74HCT573系列與TI、安世對應料號替代指南

    在現代電子電路設計作為一種基本數字邏輯部件,廣泛應用于數據存儲、地址與總線驅動等場
    的頭像 發表于 11-19 17:15 ?798次閱讀
    長晶口型<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>CJ74HC573系列、CJ74HCT573系列與TI、安世對應料號替代指南

    一文讀懂MT8762霍爾:國產高性能磁傳感解決方案

    前言在工業自動化、智能家居和汽車電子的智能化升級浪潮,精確可靠的磁傳感技術已成為實現智能化控制的關鍵。麥歌恩(MagnTek,現隸屬納芯微)推出的MT8762霍爾,憑借其獨特的
    的頭像 發表于 10-18 08:03 ?746次閱讀
    一文讀懂MT8762霍爾<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>:國產高性能磁傳感解決方案

    ?SN74HCS373 Octal透明技術解析與應用指南

    Texas Instruments SN74HCS373/SN74HCS373-Q1八路透明D類包含八個D類
    的頭像 發表于 09-24 10:40 ?821次閱讀
    ?SN74HCS373 Octal透明<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>技術解析與應用指南

    ?TPIC6A259 8位可尋址技術文檔摘要

    該電源邏輯 8 位可尋址控制漏極開路 DMOS 晶體管輸出,專為數字系統的通用存儲應用而設計。具體用途包括工作寄存、串行保持寄存
    的頭像 發表于 09-09 10:30 ?958次閱讀
    ?TPIC6A259 8位可尋址<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>技術文檔摘要

    ?TPIC6B259 8位可尋址技術文檔摘要

    該電源邏輯 8 位可尋址控制漏極開路 DMOS 晶體管輸出,專為數字系統的通用存儲應用而設計。具體用途包括工作寄存、串行保持寄存
    的頭像 發表于 09-09 10:04 ?952次閱讀
    ?TPIC6B259 8位可尋址<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>技術文檔摘要

    SN74AC573 Octal D型透明技術解析與應用指南

    Texas Instruments SN74AC573/SN74AC573-Q1八路D型透明器具有三態輸出,可驅動高電容或相對低阻抗負載。 該
    的頭像 發表于 09-04 14:26 ?1176次閱讀
    SN74AC573 Octal D型透明<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>技術解析與應用指南

    Texas Instruments TMAG5213霍爾效應數據手冊

    Texas Instruments TMAG5213霍爾效應是斬波穩定霍爾效應傳感,在整個溫度范圍內具有出色的靈敏度穩定性。這些
    的頭像 發表于 08-02 15:13 ?1046次閱讀
    Texas Instruments TMAG5213霍爾效應<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>數據手冊

    型霍爾IC的定義和典型應用實例

    霍爾IC是一種能夠進行高/低電平數字信號輸出的傳感,交替檢測S極和N極磁場的霍爾IC被稱為型霍爾IC。
    的頭像 發表于 07-10 14:23 ?1665次閱讀
    <b class='flag-5'>鎖</b><b class='flag-5'>存</b>型霍爾IC的定義和典型應用實例

    Texas Instruments SN74LVC1G373單D型數據手冊

    Texas Instruments SN74LVC1G373單D型設計用于在1.65V至5.5V V~CC~ 范圍內運行。該器件特別適用于實施I/O端口、緩沖寄存
    的頭像 發表于 07-08 10:16 ?928次閱讀
    Texas Instruments SN74LVC1G373單D型<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>數據手冊

    一文讀懂Allegro先進磁性開關和

    Allegro 擁有豐富的霍爾效應和隧道磁阻(TMR)開關及產品,可廣泛應用于汽車、工業和消費電子等領域。本應用筆記旨在提供分步選型流程,協助設計師為具體應用場景選擇適配的 Allegro
    的頭像 發表于 06-12 17:26 ?1899次閱讀
    一文讀懂Allegro先進磁性開關和<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>