女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

FPGA的設(shè)計(jì)中為什么避免使用鎖存器

454398 ? 來(lái)源:科學(xué)計(jì)算technomania ? 作者:貓叔 ? 2020-11-16 11:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

FPGA的設(shè)計(jì)中,避免使用鎖存器是幾乎所有FPGA工程師的共識(shí),Xilinx和Altera也在手冊(cè)中提示大家要慎用鎖存器,除非你明確知道你確實(shí)需要一個(gè)latch來(lái)解決問(wèn)題。而且目前網(wǎng)上大多數(shù)文章都對(duì)鎖存器有個(gè)誤解,我們后面會(huì)詳細(xì)說(shuō)明。

這篇文章,我們包含如下內(nèi)容:
①鎖存器、觸發(fā)器和寄存器的原理和區(qū)別,為什么鎖存器不好?
② 什么樣的代碼會(huì)產(chǎn)生鎖存器?
③ 為什么鎖存器依然存在于FPGA中?

鎖存器、觸發(fā)器和寄存器的原理和區(qū)別,為什么鎖存器不好?

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

鎖存器

1. 什么是鎖存器?

鎖存器就是用來(lái)存儲(chǔ)狀態(tài)信息,就是將這個(gè)狀態(tài)一直保持。鎖存器對(duì)脈沖的電平敏感,也就是電平觸發(fā),在有效的電平下,鎖存器處于使能狀態(tài),輸出隨著輸入發(fā)生變化,此時(shí)它不鎖存信號(hào),就像一個(gè)緩沖器一樣;在鎖存器沒(méi)有使能時(shí),則數(shù)據(jù)被鎖住,輸入信號(hào)不起作用,此時(shí)輸出一直為鎖存的狀態(tài)信息。我們常見(jiàn)的鎖存器有SR鎖存器、D鎖存器、JK鎖存器等。

2. 鎖存器的工作過(guò)程

我們以最簡(jiǎn)單的D鎖存器為例來(lái)說(shuō)明鎖存器的工作過(guò)程,D鎖存器有3個(gè)接口,也可以認(rèn)為是4個(gè),因?yàn)檩敵龅膬蓚€(gè)Q和Q只是單純的反向關(guān)系。


其中D為輸入信號(hào),當(dāng)E為高時(shí),輸出Q即為輸入的D;當(dāng)E為低時(shí),Q保持E為高時(shí)的最后一次狀態(tài),也就是鎖存過(guò)程。


3. 為什么鎖存器不好?

從上面的圖中可以看出,鎖存器對(duì)毛刺不敏感,很容易在信號(hào)上產(chǎn)生毛刺;而且也沒(méi)有時(shí)鐘信號(hào),不容易進(jìn)行靜態(tài)時(shí)序分析。正是因?yàn)檫@兩個(gè)原因,我們?cè)贔PGA設(shè)計(jì)時(shí),盡量不用鎖存器。

當(dāng)然,目前網(wǎng)上還有一種說(shuō)法是FPGA中只有LUT和FF的資源,沒(méi)有現(xiàn)成的Latch,所以如果要用Latch,需要更多的資源來(lái)搭出來(lái)。但這一觀點(diǎn),是錯(cuò)誤的,我們后面會(huì)有專(zhuān)門(mén)的講解。

觸發(fā)器

1. 什么是觸發(fā)器

觸發(fā)器(Flip-Flop,簡(jiǎn)寫(xiě)為 FF),也叫雙穩(wěn)態(tài)門(mén),又稱(chēng)雙穩(wěn)態(tài)觸發(fā)器。在中國(guó)臺(tái)灣及中國(guó)香港譯作“正反器”,是一種具有兩種穩(wěn)態(tài)的用于儲(chǔ)存的組件,可記錄二進(jìn)制數(shù)字信號(hào)“1”和“0”。

FPGA工程師,對(duì)觸發(fā)器再熟悉不過(guò)了,D觸發(fā)器應(yīng)該是我們平時(shí)寫(xiě)程序中用到最多的element。除了D觸發(fā)器,常見(jiàn)的觸發(fā)器還有T觸發(fā)器、SR觸發(fā)器、JK觸發(fā)器等。觸發(fā)器對(duì)脈沖邊沿敏感,其狀態(tài)只在時(shí)鐘脈沖的上升沿或下降沿的瞬間改變。

2. 觸發(fā)器的工作過(guò)程

我們以D觸發(fā)器為例來(lái)說(shuō)明觸發(fā)器的工作過(guò)程,D觸發(fā)器接口如下:


觸發(fā)器只在時(shí)鐘邊沿時(shí)起作用,所以哪怕輸入的信號(hào)中有毛刺,輸出還是比較干凈的。


還有一點(diǎn)需要了解的是,F(xiàn)PGA中最小的單元是門(mén)電路,門(mén)電路又組成了鎖存器,鎖存器組成了寄存器。

寄存器

用來(lái)存放數(shù)據(jù)的一些小型存儲(chǔ)區(qū)域,用來(lái)暫時(shí)存放參與運(yùn)算的數(shù)據(jù)和運(yùn)算結(jié)果,它被廣泛的用于各類(lèi)數(shù)字系統(tǒng)和計(jì)算機(jī)中。其實(shí)寄存器就是一種常用的時(shí)序邏輯電路,但這種時(shí)序邏輯電路只包含存儲(chǔ)電路。寄存器的存儲(chǔ)電路是由鎖存器或觸發(fā)器構(gòu)成的,因?yàn)橐粋€(gè)鎖存器或觸發(fā)器能存儲(chǔ)1位二進(jìn)制數(shù),所以由N個(gè)鎖存器或觸發(fā)器可以構(gòu)成N位寄存器。工程中的寄存器一般按計(jì)算機(jī)中字節(jié)的位數(shù)設(shè)計(jì),所以一般有8位寄存器、16位寄存器等。

什么樣的代碼會(huì)產(chǎn)生鎖存器?

在組合邏輯中,如果條件描述不全就會(huì)容易產(chǎn)生Latch:
? if語(yǔ)句中缺少了else語(yǔ)句
? case語(yǔ)句中沒(méi)有給出全部的情況。

也就是下面的情況:

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

這個(gè)前提是組合電路中,在時(shí)序電路的if語(yǔ)句中,及時(shí)沒(méi)有else,也不會(huì)綜合出Latch的。

上面這兩種寫(xiě)法容易出現(xiàn)在什么地方呢?最常見(jiàn)的就是狀態(tài)機(jī),我見(jiàn)過(guò)不少的FPGA工程師在寫(xiě)狀態(tài)機(jī)時(shí),case語(yǔ)句中沒(méi)有給出變量的全部情況。

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

我們?cè)谇懊嬲f(shuō)過(guò)網(wǎng)上有一種說(shuō)法是:FPGA中只有LUT和FF的資源,沒(méi)有現(xiàn)成的Latch,所以如果要用Latch,需要更多的資源來(lái)搭出來(lái)。這種說(shuō)法是錯(cuò)誤的,因?yàn)樵赬ilinx的FPGA中,6 系列之前的器件中都有Latch;6系列和7系列的FPGA中,一個(gè)Slice中有50%的storage element可以被配置為L(zhǎng)atch或者Flip-Flop,另外一半只能被配置為Flip-Flop。比如7系列FPGA中,一個(gè)Slice中有8個(gè)Flip-Flop,如果被配置成了Latch,該Slice的另外4個(gè)Flip-Flop就不能用了。這樣確實(shí)造成了資源的浪費(fèi)。


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


我們以下面的代碼來(lái)說(shuō)明Flip-Flop和Latch在Ultrascale的FPGA中Implementation后的結(jié)果。

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實(shí)現(xiàn)后的Schematic和Device如下:


Latch實(shí)現(xiàn)后的Schematic和Device如下:


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

所以,F(xiàn)PGA中沒(méi)有Latch的說(shuō)法在Xilinx的FPGA中是不對(duì)的。

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

① 首先就是因?yàn)镕PGA電路的靈活性,保留Latch并不影響FPGA的資源,因?yàn)閟torage element可以直接被配置為Flip-Flop。

② 其次就是有些功能是必須要使用Latch的,比如很多處理器的接口就需要一個(gè)Latch來(lái)緩存數(shù)據(jù)或地址。

最后要說(shuō)明的一點(diǎn)是:鎖存器雖然在FPGA中不怎么被使用,但在CPU中卻很常見(jiàn),因?yàn)殒i存器比Flip-Flop快很多。

編輯:hfy


聲明:本文內(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)注

    1644

    文章

    22009

    瀏覽量

    616606
  • 鎖存器
    +關(guān)注

    關(guān)注

    8

    文章

    923

    瀏覽量

    42253
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2034

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    D的基本實(shí)現(xiàn)

    在Verilog HDL實(shí)現(xiàn)(Latch)通常涉及對(duì)硬件描述語(yǔ)言的基本理解,特別是關(guān)于信號(hào)如何根據(jù)控制信號(hào)的變化而保持或更新其值。
    的頭像 發(fā)表于 08-30 10:45 ?1711次閱讀

    的基本輸出時(shí)序

    在深入探討的輸出時(shí)序時(shí),我們需要詳細(xì)分析在不同控制信號(hào)下的行為表現(xiàn),特別是控制信號(hào)(
    的頭像 發(fā)表于 08-30 10:43 ?1117次閱讀

    SR的功能有哪些?

    信號(hào)滿(mǎn)足一定的條件時(shí),SR可以將輸入信號(hào)存儲(chǔ)在內(nèi)部,并通過(guò)輸出端將存儲(chǔ)的信息傳遞給其他電路。 保持功能 SR器具有保持功能,即在沒(méi)
    的頭像 發(fā)表于 08-28 10:55 ?1804次閱讀

    SR有約束項(xiàng)的原因

    SR作為數(shù)字電路的一個(gè)基礎(chǔ)元件,其設(shè)計(jì)和使用過(guò)程存在約束項(xiàng)的原因是多方面的。這些約束項(xiàng)旨在確保SR
    的頭像 發(fā)表于 08-28 10:51 ?1173次閱讀

    rs不定狀態(tài)的含義是什么

    RS(Reset-Set Latch)的不定狀態(tài),是指在特定輸入條件下,
    的頭像 發(fā)表于 08-28 10:42 ?1427次閱讀

    d解決了sr的什么問(wèn)題

    D(Data Latch)和SR(Set-Reset Latch)是數(shù)字電路中常見(jiàn)的
    的頭像 發(fā)表于 08-28 09:16 ?1121次閱讀

    常用的d型號(hào)有哪些

    D是一種常見(jiàn)的數(shù)字邏輯電路,用于存儲(chǔ)一個(gè)二進(jìn)制位的狀態(tài)。以下是一些常用的D型號(hào)及其特
    的頭像 發(fā)表于 08-28 09:13 ?1847次閱讀

    的結(jié)構(gòu)組成及工作原理

    (latch)是數(shù)字電路的一種基本存儲(chǔ)單元,用于存儲(chǔ)和保持一個(gè)或多個(gè)位的狀態(tài)。
    的頭像 發(fā)表于 08-28 09:09 ?1631次閱讀

    rs和sr有什么區(qū)別嗎

    RS和SR是數(shù)字電路兩種常見(jiàn)的存儲(chǔ)單元
    的頭像 發(fā)表于 07-23 14:15 ?2242次閱讀

    的組成、功能及應(yīng)用

    (Latch)是一種具有記憶功能的數(shù)字電路元件,用于存儲(chǔ)和保持?jǐn)?shù)字信號(hào)的狀態(tài)。在數(shù)字
    的頭像 發(fā)表于 07-23 11:32 ?4386次閱讀

    電路通過(guò)什么觸發(fā)的

    (Latch)是一種在數(shù)字電路中廣泛使用的存儲(chǔ)元件,它能夠存儲(chǔ)一位二進(jìn)制信息。電路的
    的頭像 發(fā)表于 07-23 11:31 ?909次閱讀

    電路的中間是什么元件

    電路概述 定義與功能 (Latch)是數(shù)字電路
    的頭像 發(fā)表于 07-23 11:29 ?684次閱讀

    原態(tài)和新態(tài)的定義

    (Latch)是一種存儲(chǔ)單元,用于存儲(chǔ)一位二進(jìn)制信息。在數(shù)字電路
    的頭像 發(fā)表于 07-23 10:21 ?1157次閱讀

    工作時(shí)是什么觸發(fā)方式

    (Latch)是一種存儲(chǔ)電路,用于存儲(chǔ)一位二進(jìn)制信息。在數(shù)字電路設(shè)計(jì)中非常常見(jiàn),它可
    的頭像 發(fā)表于 07-23 10:17 ?902次閱讀

    是時(shí)序邏輯電路嗎

    在數(shù)字電子學(xué)(Latch)和觸發(fā)(Flip-Flop)是兩種基本的存儲(chǔ)元件,它們?cè)跀?shù)字系統(tǒng)
    的頭像 發(fā)表于 07-23 10:16 ?707次閱讀
    主站蜘蛛池模板: 屏边| 谷城县| 麻城市| 合川市| 民乐县| 那坡县| 百色市| 隆化县| 新蔡县| 贡觉县| 额尔古纳市| 盘锦市| 保康县| 偃师市| 大英县| 敦煌市| 石棉县| 石嘴山市| 永州市| 神农架林区| 巴楚县| 唐海县| 响水县| 芦溪县| 获嘉县| 株洲市| 吉安市| 桐柏县| 抚松县| 临安市| 芜湖县| 禹州市| 汉川市| 泰兴市| 盖州市| 班玛县| 织金县| 瓮安县| 威海市| 长乐市| 黄骅市|