在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如果在FPGA設(shè)計中不允許latch中現(xiàn),又如何避免呢?

FPGA設(shè)計論壇 ? 來源:FPGA設(shè)計論壇 ? 作者:FPGA設(shè)計論壇 ? 2022-11-08 15:07 ? 次閱讀

在進行FPGA設(shè)計的過程中,經(jīng)常會在編譯程序時發(fā)現(xiàn)有一些warning提示生成了一些latch,而且一般FPGA的設(shè)計規(guī)則也不建議有l(wèi)atch生成。那么,latch究竟是什么東西呢?如果在FPGA設(shè)計中不允許latch中現(xiàn),又如何避免呢?

1 鎖存器、觸發(fā)器和寄存器的比較

(1)鎖存器

鎖存器(latch)是電平觸發(fā)的存儲單元,數(shù)據(jù)存儲的動作(狀態(tài)轉(zhuǎn)換)取決于輸入時鐘(或者使能)信號的電平值,僅當(dāng)鎖存器處于使能狀態(tài)時,輸出才會隨著數(shù)據(jù)輸入發(fā)生變化。

分為普通鎖存器和門控鎖存器。普通鎖存器無控制信號,輸出狀態(tài)始終直接由輸入決定。在實際的數(shù)字系統(tǒng)中,為了協(xié)調(diào)各部分的工作,往往需要有一個特定的控制信號去控制鎖存器狀態(tài)轉(zhuǎn)換的時間,在控制信號無效時,輸出保持不變,不隨輸入變換;當(dāng)控制信號有效時,輸出由輸入決定,跟隨輸入變化。

①正是因為門控鎖存器在控制信號有效的期間內(nèi),都可以接收輸入信號,所以,激勵信號的任何變化,都將直接引起鎖存器輸出狀態(tài)的改變。這時輸入信號若發(fā)生多次變化,輸出狀態(tài)也可能發(fā)生多次變化,這一現(xiàn)象稱為鎖存器的空翻。

②其次,當(dāng)門控鎖存器的控制信號有效時,鎖存器就變成了一個組合電路,時序邏輯電路的模型就等效為兩個各組合電路互為反饋的反饋系統(tǒng),因此,系統(tǒng)有可能會因為瞬態(tài)特性不穩(wěn)定而產(chǎn)生振蕩現(xiàn)象。

(2) 觸發(fā)器(flip-flop)

觸發(fā)器(flip-flop)是邊沿敏感的存儲單元,數(shù)據(jù)存儲的動作(狀態(tài)轉(zhuǎn)換)由某一信號的上升或者下降沿進行同步的(限制存儲單元狀態(tài)轉(zhuǎn)換在一個很短的時間內(nèi))。(鐘控D觸發(fā)器其實就是 D 鎖存器,邊沿 D 觸發(fā)器才是真正的 D 觸發(fā)器)

觸發(fā)器分為兩種,一種是主從觸發(fā)器和邊沿觸發(fā)器。主從觸發(fā)器在時鐘有效期內(nèi)(主觸發(fā)器)接收數(shù)據(jù),在時鐘邊沿輸出狀態(tài)轉(zhuǎn)換。邊沿觸發(fā)器在時鐘邊沿期間, 觸發(fā)器才接收數(shù)據(jù)并使輸出狀態(tài)轉(zhuǎn)換。目前,主從觸發(fā)器基本上已經(jīng)很少見了,實際使用的大都是邊沿觸發(fā)器。

(3)寄存器(register)

寄存器(register)用來暫時存放參與運算的數(shù)據(jù)和運算結(jié)果。在實際的數(shù)字系統(tǒng)中,通常把能夠用來存儲一組二進制代碼的同步時序邏輯電路稱為寄存器。

區(qū)別與聯(lián)系:由于觸發(fā)器內(nèi)有記憶功能,因此利用觸發(fā)器可以方便地構(gòu)成寄存器。由于一個觸發(fā)器能夠存儲一位二進制碼,所以把 n 個觸發(fā)器的時鐘端口連接起來就能構(gòu)成一個存儲 n 位二進制碼的寄存器。

從寄存數(shù)據(jù)的角度來講,寄存器和鎖存器的功能是相同的;它們的區(qū)別在于寄存器是同步時鐘控制,而鎖存器是電位信號控制。一般的設(shè)計規(guī)則是:在絕大多數(shù)設(shè)計中避免產(chǎn)生鎖存器。它會讓您設(shè)計的時序完蛋,并且它的隱蔽性很強,非老手不能查出。

2 鎖存器具備的特點

(1)對毛刺敏感(使能信號有效時,輸出狀態(tài)可能隨輸入多次變化,產(chǎn)生空翻,對下一級電路很危險),不能異步復(fù)位,因此在上電后處于不確定的 狀態(tài)。

(2)鎖存器會使靜態(tài)時序分析變得非常復(fù)雜,不具備可重用性。(首先, 鎖存器沒有時鐘參與信號傳遞,無法做 STA;其次,綜合工具會將 latch 優(yōu)化掉,造成前后仿真結(jié)果不一致)

(3)在FPGA中基本的單元是由查找表和觸發(fā)器組成的,若生成鎖存器反而需要更多的資源。根據(jù)鎖存器的特點可以看出,在電路設(shè)計中,要對鎖存器特別謹(jǐn)慎,如果設(shè)計經(jīng)過綜合后產(chǎn)生出和設(shè)計意圖不一致的鎖存器,則將導(dǎo)致設(shè)計錯誤,包括仿真和綜合。因此,在設(shè)計中需要避免產(chǎn)生意想不到的鎖存器。如果組合邏輯的語句完全不使用 always 語句塊,就可以保證綜合器不會綜合出鎖存器。

(4)但如果鎖存器和觸發(fā)器兩者都由與非門搭建的話,鎖存器耗用的邏輯資源要比D觸發(fā)器少(D觸發(fā)器需要12個MOS管,鎖存器只需6個MOS管),鎖存器的集成度更高。

所以在的ASIC設(shè)計中會用到鎖存器。但鎖存器對毛刺敏感,無異步復(fù)位端,不能讓芯片在上電時 處在確定的狀態(tài);另外,鎖存器會使靜態(tài)時序分析變得很復(fù)雜,不利于設(shè)計的可重用,所以,在ASIC設(shè)計中,除了CPU這高速電路,或者RAM這種對面積很敏感的電路,一般不提倡用鎖存器。

3 鎖存器的出現(xiàn)以及解決辦法

在基于always的組合邏輯描述語句中容易綜合出鎖存器的地方:

在FPGA程序設(shè)計過程中,出現(xiàn)latch絕大多數(shù)情況是因為if和case語句的不完全描述,導(dǎo)致程序在綜合過程中出現(xiàn)了latch的功能行為。舉個簡單的例子,寫個譯碼器,輸入為a,輸出為b,其中a為2位輸入,b為8位輸出,若如下所寫:

always@( * )

case(a)

2‘b00: b = 8’d1;

2‘b01: b = 8’d5;

2‘b10: b = 8’d8;

2‘b11: b = 8’d17;

endcase

但是若將a的位數(shù)改為3,如下所寫:

always@( * )

case(a)

3‘b000: b = 8’d1;

3‘b001: b = 8’d5;

3‘b010: b = 8’d8;

3‘b011: b = 8’d17;

Endcase

可以看到,第二張綜合圖里面出現(xiàn)了latch。然而,兩段程序的不同僅僅是a的位數(shù)從2變到了3,這究竟是為什么?

其實這就是因為case的不完全描述所致。在第一段程序中,輸入a可能的四種取值都窮舉到了,所以是完全描述的。而第二段程序中,a變?yōu)榱?位數(shù),而取值只有3’b000、3’b001、3’b010、3’b011四個,而3’b100到3’b111之間的數(shù)據(jù)并沒有列舉出,雖然在實際執(zhí)行過程中輸入并不會出現(xiàn)未列舉出的數(shù)值,但是系統(tǒng)在編譯時并不知情,所以它會在3’b100到3’b111之間的值出現(xiàn)時將b的輸出鎖存,也就是出現(xiàn)了latch的功能行為

。 之所以在硬件設(shè)計中避免latch的出現(xiàn),主要原因是latch會產(chǎn)生毛刺(glitch),這種毛刺對下一級電路是很危險的。并且其隱蔽性很強,不易查出。因此,在設(shè)計中,應(yīng)盡量避免latch的使用。

從其產(chǎn)生原因可以看出,為了防止出現(xiàn)latch,對于if語句和case語句一定要做到完全描述,最常用的方法就是總是加上else和default。

總結(jié):

鎖存器產(chǎn)生的根本原因:當(dāng)組合邏輯需要保持時,就會綜合出鎖存器。

鎖存器的危害:

(1)latch會產(chǎn)生毛刺(glitch),這種毛刺對下一級電路是很危險的;

(2)不能異步復(fù)位,因此在上電后處于不確定的 狀態(tài);

(3)鎖存器會使靜態(tài)時序分析變得非常復(fù)雜,不具備可重用性

審核編輯 :李倩

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

    關(guān)注

    31

    文章

    5423

    瀏覽量

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

    關(guān)注

    14

    文章

    2032

    瀏覽量

    61891
  • Latch
    +關(guān)注

    關(guān)注

    1

    文章

    48

    瀏覽量

    16361

原文標(biāo)題:FPGA設(shè)計中如何才能不出現(xiàn)Latch鎖存器

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

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

    THS1209掃描工作模式下,如果在第一個CONV_CLK周期進行讀操作,讀出的數(shù)據(jù)雖然無效,但是否是允許的?

    沿自動出現(xiàn)在數(shù)據(jù)總線上? 2、如果在第一個CONV_CLK 周期進行讀操作,讀出的數(shù)據(jù)雖然無效,但是否是允許的? 3、如果在最后一個CONV_CLK時鐘周期結(jié)束時停止讀操作,很明顯還有4個轉(zhuǎn)換好的數(shù)據(jù)
    發(fā)表于 02-10 08:36

    THS1209如果在第一個CONV_CLK 周期進行讀操作,讀出的數(shù)據(jù)雖然無效,但是否是允許的?

    沿自動出現(xiàn)在數(shù)據(jù)總線上? 2、如果在第一個CONV_CLK 周期進行讀操作,讀出的數(shù)據(jù)雖然無效,但是否是允許的? 3、如果在最后一個CONV_CLK時鐘周期結(jié)束時停止讀操作,很明顯還有4個轉(zhuǎn)換
    發(fā)表于 02-05 07:45

    請問AFE5801的輸入輸出可以直接和FPGA的IO連嗎?

    請問AFE5801的輸入輸出可以直接和FPGA的IO連嗎?FPGA的bank電壓標(biāo)準(zhǔn)是LVDS25,AFE5801的輸出信號標(biāo)準(zhǔn)是差分LVDS信號。這樣連會不會導(dǎo)致信號采集不到? 還有,AFE5801如果在差分輸出端沒有外接1
    發(fā)表于 02-05 06:00

    如果在ldc1000evm上只更換電容,我并聯(lián)了一個0.1微法的電容,在GUI上如何設(shè)置參數(shù)?

    求大神幫忙,如果在ldc1000evm上只更換電容,我并聯(lián)了一個0.1微法的電容,在GUI上如何設(shè)置參數(shù)?
    發(fā)表于 12-26 06:12

    為什么不允許帶負(fù)荷解列發(fā)電機

    為什么不能通過先解列發(fā)電機的方式停機如果主汽門關(guān)閉了,而發(fā)電機沒有解列,會造成發(fā)電機逆的,這么思考的確也是有一定道理的,那么在現(xiàn)實為什么不允許這么做
    的頭像 發(fā)表于 12-17 10:58 ?718次閱讀

    通過JESD204B與FPGA連接時,出現(xiàn)p/n交叉的情況,是否可以p/n交叉連接?

    ADC的dx_m 方案2. 跨層布線。 方案1是否在電氣連接上不允許,或者如果可以,是否存在潛在的邏輯問題? 方案2,跨層布線對于3.2GHz的數(shù)據(jù)速率是否有影響? 或者是否有其他解決方法?謝謝!
    發(fā)表于 11-26 06:29

    差壓變送器的校準(zhǔn)太重要了!不允許你還不會!

    差壓變送器
    華泰天科
    發(fā)布于 :2024年09月12日 09:00:24

    電力系統(tǒng)不允許發(fā)生諧振的原因

    電力系統(tǒng)諧振是指在電力系統(tǒng),由于某些特定條件的滿足,導(dǎo)致系統(tǒng)內(nèi)部的電感和電容元件相互配合,形成一種振蕩現(xiàn)象。諧振現(xiàn)象在電力系統(tǒng)不允許發(fā)生的,因為它會帶來一系列嚴(yán)重的問題和危害。以下是對電力系統(tǒng)
    的頭像 發(fā)表于 08-22 14:21 ?1407次閱讀

    直線導(dǎo)軌的維護保養(yǎng)

    不允許用錘直接敲擊導(dǎo)軌,不允許通過滾動體傳遞壓力。 ? 三、導(dǎo)軌使用合適、準(zhǔn)確的安裝工具盡量使用專用工具,極力避免使用布類和短纖維之類的東西。 ? 四、防止導(dǎo)軌的銹蝕,直接用手拿取上銀導(dǎo)軌時,要充分洗去手上的汗液,并涂以優(yōu)質(zhì)
    的頭像 發(fā)表于 08-15 10:34 ?426次閱讀

    ESP8266是否不允許將pwm API與at命令固件一起使用?

    :esp_iot_sdk_v1.5.1/examples/at) 編譯和下載還可以,但它似乎沒有像我預(yù)期的那樣工作。 調(diào)用pwm_init()后,AT命令I(lǐng)/O太遲鈍,PWM信號波形也不穩(wěn)定。 是否不允許將 pwm API 與 at 命令固件一起使用? 您能給我展示有關(guān)此的工作示例或文檔嗎?
    發(fā)表于 07-22 06:05

    如果在不清楚適配器的是否支持QC3.0的情況下,嘗試切換至QC3.0協(xié)議,該如何判斷是否成功切換至QC3.0協(xié)議?

    如果在不清楚適配器的是否支持QC3.0的情況下,嘗試切換至QC3.0協(xié)議,該如何判斷是否成功切換至QC3.0協(xié)議? 因為QC2.0協(xié)議的class B支持的20V的切換方式和QC3.0的升壓的方式是一樣的
    發(fā)表于 07-20 11:56

    什么情況下變壓器不允許調(diào)壓

    定情況下,變壓器是不允許調(diào)壓的。 一、變壓器調(diào)壓的原理 變壓器調(diào)壓的原理主要基于電磁感應(yīng)原理。當(dāng)原邊繞組通過交流電時,會在鐵芯中產(chǎn)生交變磁通,這個交變磁通會感應(yīng)到副邊繞組,從而產(chǎn)生副邊電壓。通過改變原邊和副邊繞組
    的頭像 發(fā)表于 07-19 10:35 ?1393次閱讀

    SDMMC無法在Modustoolbox (MTB) 編譯怎么解決?

    我目前正在使用 XMC4700 Relax Kit 和 Modustoolbox。 我想啟用 SDMMC 外圍設(shè)備。 但遺憾的是,MTB 不允許我編譯設(shè)備配置器生成的代碼。 錯誤信息是 ERROR
    發(fā)表于 07-03 07:52

    不允許還有人不知道音叉液位開關(guān)!

    液位開關(guān)
    華泰天科
    發(fā)布于 :2024年07月01日 09:34:45

    老款HDZRC-5A直流電阻測試儀使用方法

    使用說明和注意事項,詳細(xì)了解其主要性能以及使用方法。注意事項:①測量過程不允許拆卸接線及直接關(guān)閉電源。②對于無載調(diào)壓變壓器,不允許測量過程中切換分接開關(guān)。③測量過程
    的頭像 發(fā)表于 06-17 11:01 ?846次閱讀
    老款HDZRC-5A直流電阻測試儀使用方法
    主站蜘蛛池模板: 人操人爱| 欧美午夜在线视频 | 成年全黄大色大黄 | 一区二区免费在线观看 | 在线精品91青草国产在线观看 | 夜夜精品视频 | 99久久无色码中文字幕 | 四虎精品视频 | 欧美性猛交xxxx乱大交 | 中国videos偷窥 | 国产成人一区二区在线不卡 | 免费黄色的视频 | 一区二区三区中文国产亚洲 | 天天摸夜夜添夜夜添国产 | 欧美另类bbw | 久草3| 天堂在线国产 | 亚洲性久久久影院 | 深夜视频在线观看免费 | 成人亚洲欧美在线电影www色 | tube69欧美最新片 | 亚洲黄色官网 | 亚洲最大的黄色网址 | 久草资源网站 | 六月激情丁香 | 伊人黄 | 天天尻| 黄大片18满岁水多 | 亚洲精品456人成在线 | 国产成人精品亚洲 | 国产操比视频 | h视频在线免费看 | 国产69精品久久 | 日韩a一级欧美一级 | 国产精品嫩草影院在线播放 | 亚洲资源最新版在线观看 | 五月天在线婷婷 | 久久久久久久久综合影视网 | 久久国产免费福利永久 | 欧美性色黄大片四虎影视 | 日韩一级片在线 |