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

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

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

關(guān)于FPGA中鎖存器的生成:if語句和case語句的完整性影響

FPGA設(shè)計論壇 ? 來源:未知 ? 2023-02-09 21:05 ? 次閱讀
鎖存器(Latch)是數(shù)字邏輯電路中很重要的一種基本電路,常見的鎖存器包括三個端口:數(shù)據(jù)輸入口、數(shù)據(jù)輸出口、使能端。當(dāng)使能端為高電平時,輸入口的數(shù)據(jù)直接送到輸出口,此時輸入輸出口可以看成是直接連通的;當(dāng)使能端為低電平時,輸出口的數(shù)據(jù)保持之前的數(shù)據(jù)不變,無論輸入口的數(shù)據(jù)怎么變化,輸出都保持不變,就是把原來的狀態(tài)鎖存下來了(所以才叫鎖存器)。鎖存器與觸發(fā)器的區(qū)別在于:**鎖存器是電平觸發(fā),而觸發(fā)器是邊沿觸發(fā)。**鎖存器在不鎖存數(shù)據(jù)時,輸出隨輸入變化;但一旦數(shù)據(jù)鎖存時,輸入對輸出不產(chǎn)生任何影響。

數(shù)字電路設(shè)計中,不規(guī)范的描述語言,往往會產(chǎn)生意想不到的鎖存器,導(dǎo)致綜合出的數(shù)字電路出現(xiàn)邏輯錯誤。

在數(shù)字電路中,產(chǎn)生意外的鎖存器的情況一般有以下兩種:

1、if…else…語句結(jié)構(gòu)中沒有else

是不是在所有情況下,只要if后邊沒有else就會產(chǎn)生鎖存器呢?

(1)缺少else時,先看時序電路代碼和RTL圖:

沒有else時,再看組合邏輯電路代碼和RTL圖:


小結(jié):
(1)缺少else時,時序電路的RTL圖生成的是一個FDRE,即D型觸發(fā)器,沒有生成鎖存器。
(2)缺少else時,組合邏輯電路的RTL圖中生成了一個LDCE,即帶異步復(fù)位的鎖存器 。

(2) if…else…完整時,先看時序電路代碼和RTL圖:

再看組合邏輯電路代碼和RTL圖:

小結(jié):
(1)if…else,結(jié)構(gòu)完整時,時序電路的RTL圖生成的還是一個FDRE,即D型觸發(fā)器,與沒有else時結(jié)果一樣。
(2)if…else,結(jié)構(gòu)完整時,組合邏輯電路的RTL圖中生成了一個LUT2,即查找表,不再生成鎖存器了 。
結(jié)論:
在時序電路中,if…else…結(jié)構(gòu)完整與否對是否生成鎖存器沒有關(guān)系
在組合邏輯電路中,if…else…結(jié)構(gòu)完整與否,直接影響組合邏輯電路是否生成鎖存器。
在組合邏輯電路中,if…else…結(jié)構(gòu)不完整時會導(dǎo)致電路生成不必要的鎖存器,可能會導(dǎo)致綜合出的組合邏輯電路的邏輯是錯誤的。

2、case結(jié)構(gòu)中的分支沒有包含所有情況且沒有default語句、
此種情況經(jīng)測試,與if…else…結(jié)構(gòu)是否完整的結(jié)果是一樣的。此處就省略去一萬個字了。

因此,在設(shè)計組合邏輯電路時,要注意將 if…else… 結(jié)構(gòu)中的else寫完整,case結(jié)構(gòu)中一定要加上default語句,這樣可以減少綜合出鎖存器的可能性。





掃描二維碼獲取

更多精彩

FPGA設(shè)計論壇




歡迎關(guān)注至芯科技

至芯官網(wǎng):www.zxopen.com

至芯科技技術(shù)論壇:www.fpgaw.com

至芯科技淘寶網(wǎng)址:

https://zxopen.taobao.com

至芯科技FPGA初級課程(B站):

https://space.bilibili.com/521850676

至芯科技FPGA在線課程(騰訊課堂):

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839

更多資料下載歡迎注冊http://www.fpgaw.com




掃碼加微信回復(fù)加群

邀請您加入FPGA學(xué)習(xí)交流群




歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!




點個在看你最好看





原文標(biāo)題:關(guān)于FPGA中鎖存器的生成:if語句和case語句的完整性影響

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

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598977

原文標(biāo)題:關(guān)于FPGA中鎖存器的生成:if語句和case語句的完整性影響

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

收藏 人收藏

    評論

    相關(guān)推薦

    d解決了sr的什么問題

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

    信號完整性與電源完整性-電源完整性分析

    電子發(fā)燒友網(wǎng)站提供《信號完整性與電源完整性-電源完整性分析.pdf》資料免費下載
    發(fā)表于 08-12 14:31 ?14次下載

    電路的中間是什么元件

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

    什么是信號完整性

    在現(xiàn)代電子通信和數(shù)據(jù)處理系統(tǒng),信號完整性(Signal Integrity, SI)是一個至關(guān)重要的概念。它涉及信號在傳輸過程的質(zhì)量保持,對于確保系統(tǒng)性能和穩(wěn)定性具有決定性的影響。本文將從信號
    的頭像 發(fā)表于 05-28 14:30 ?649次閱讀

    assign語句和always語句的用法

    的用法和功能。 一、Assign語句 Assign語句的定義和語法 Assign語句用于在HDL連續(xù)賦值,它允許在設(shè)計為信號或變量分配一
    的頭像 發(fā)表于 02-22 16:24 ?1557次閱讀

    單片機if是什么語句

    單片機的if語句是一種條件語句,用于根據(jù)不同的條件執(zhí)行不同的代碼塊。在程序執(zhí)行過程,條件語句用來決定是否執(zhí)行特定的代碼段。在單片機編程
    的頭像 發(fā)表于 01-05 14:04 ?1259次閱讀

    單片機for語句的運用

    單片機的for語句是一種常見的循環(huán)控制結(jié)構(gòu),用于重復(fù)執(zhí)行一段代碼塊,可以簡化程序的編寫和減少代碼量。本文將詳細(xì)介紹單片機for語句的運用。 一、for
    的頭像 發(fā)表于 01-05 14:02 ?1523次閱讀

    oracle執(zhí)行sql查詢語句的步驟是什么

    Oracle數(shù)據(jù)庫是一種常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有強大的SQL查詢功能。Oracle執(zhí)行SQL查詢語句的步驟包括編寫SQL語句、解析SQL語句生成執(zhí)行計劃、執(zhí)行SQL
    的頭像 發(fā)表于 12-06 10:49 ?775次閱讀

    java的switch語句 case的取值

    expression的值與value2的值匹配時執(zhí)行的代碼塊 break ;... default : // 當(dāng)expression的值與所有case的值都不匹配時執(zhí)行的代碼塊 } 以下是關(guān)于switch
    的頭像 發(fā)表于 11-30 16:05 ?713次閱讀

    java switch case的語法規(guī)則

    在Java,switch case語句是一種用于多分支選擇的控制流語句。它允許根據(jù)某個表達(dá)式的值來執(zhí)行不同的代碼塊。下面是關(guān)于switch
    的頭像 發(fā)表于 11-30 14:40 ?1321次閱讀

    case后邊可以跟多個語句

    是的,"case" 后面可以跟多個語句。在編程語言中,"case" 通常被用于 switch 語句中,用于檢查一個變量或表達(dá)式是否匹配某個特定的值。當(dāng)匹配成功時,可以執(zhí)行一個或多個
    的頭像 發(fā)表于 11-30 14:19 ?4717次閱讀

    Switch casecase順序

    ,并按照順序進(jìn)行比較,匹配時就跳轉(zhuǎn)到滿足條件的語句執(zhí)行。所以,可以對case的值依照發(fā)生的可能進(jìn)行排序,把最有可能的放在第一位,這樣可以提高性能。 此外,在case
    的頭像 發(fā)表于 11-20 18:16 ?655次閱讀

    select語句的基本語法

    SELECT語句是SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)的一種查詢語句,用于從數(shù)據(jù)庫檢索數(shù)據(jù)。它是數(shù)據(jù)庫操作中最常用和基本的
    的頭像 發(fā)表于 11-17 16:23 ?1361次閱讀

    SELECT語句的基本格式

    SELECT語句是SQL中最基本和最重要的語句之一。它被用于從數(shù)據(jù)庫檢索數(shù)據(jù)。在本文中,我們將詳細(xì)介紹SELECT語句的基本格式和各個組成部分。 SELECT
    的頭像 發(fā)表于 11-17 15:10 ?2359次閱讀

    數(shù)字IC設(shè)計為什么要避免呢?

    上學(xué)時,老師說判斷語句要把條件寫全, **不然會生成,做項目時又說多比特寄存信號的賦值一
    的頭像 發(fā)表于 11-09 12:28 ?1398次閱讀
    數(shù)字IC設(shè)計<b class='flag-5'>中</b>為什么要避免<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>呢?