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

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

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

為什么語句的不完整會導(dǎo)致鎖存器的產(chǎn)生?

西西 ? 來源:博客園 ? 作者:caiqingfei ? 2020-06-26 09:19 ? 次閱讀

verilog中if與case語句必須完整,即if要加上else,case后要加上default語句,以防止鎖存器的發(fā)生,接下來就來說說其中原因。

鎖存器與觸發(fā)器最大的區(qū)別在于,鎖存器是電平觸發(fā),而觸發(fā)器是邊沿觸發(fā)。鎖存器在不鎖存數(shù)據(jù)時,輸出隨輸入變化;但一旦數(shù)據(jù)鎖存時,輸入對輸出不產(chǎn)生任何影響。

為什么語句的不完整會導(dǎo)致鎖存器的產(chǎn)生?

解:

老阮 (2014-10-21 19:30:10)

1、時序電路,生成觸發(fā)器,觸發(fā)器是有使能端的,使能端無效時數(shù)據(jù)不變,這是觸發(fā)器的特性。

2、組合邏輯,由于數(shù)據(jù)要保持不變,只能通過鎖存器來保存。

樓主位的第二個代碼就是在enable為低時,數(shù)據(jù)不變,因此要生成鎖存器。 第一個代碼,由于是時序邏輯,生成的觸發(fā)器在enable無效時就可以保存數(shù)據(jù)。跟鎖存器無關(guān)。

walkman416

個人理解: 所謂生成latch其實(shí)是針對使用always語句描述一個組合邏輯而言,因?yàn)槿绻枋鰰r序邏輯總是使用時鐘或者時鐘+復(fù)位作為敏感列表?xiàng)l件,所生成的電路總是組合邏輯+DFF;如果是描述組合邏輯,敏感列表中必然沒有時鐘復(fù)位,而是組合邏輯的輸入信號。在FPGA設(shè)計(jì),避免使用latch,不利于時序分析和仿真。 樓上有提到latch比DFF省資源, 這個在FPGA設(shè)計(jì)中其實(shí)還好, 因?yàn)樵贔PGA中DFF就是一個專用的硬件資源,并且數(shù)量也比較多。

使用always描述組合邏輯時,好的習(xí)慣是使用always @(*)作為敏感列表, 并且需要檢查每個分支都有明確的賦值,從而避免生成latch.

黎釋注

我是這么理解的,在一份資料看的,

時序電路=組合邏輯電路+儲存電路;

儲存電路有兩個:鎖存器(latch)和觸發(fā)器;

邊沿觸發(fā)產(chǎn)生觸發(fā)器,

電平觸發(fā)產(chǎn)生鎖存器,

多個觸發(fā)器組成寄存器,

當(dāng)描述的是時序電路,寄存器變量對應(yīng)的寄存器,

描述的是完整的組合邏輯電路,對應(yīng)為硬件連線,

當(dāng)描述的是不完整組合邏輯,則寄存器對應(yīng)的是鎖存

總結(jié):

1,存儲單元按照觸發(fā)的方式分為電平觸發(fā)和邊沿觸發(fā),電平觸發(fā)的為鎖存器,邊沿觸發(fā)的觸發(fā)器。 2,對于if,case的完整性,@老阮已經(jīng)說的很清楚了,在FPGA建議使用觸發(fā)器。

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

    關(guān)注

    1

    文章

    63

    瀏覽量

    16160
  • 時序電路
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

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

    關(guān)注

    8

    文章

    906

    瀏覽量

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

    關(guān)注

    14

    文章

    2000

    瀏覽量

    61192
收藏 人收藏

    評論

    相關(guān)推薦

    BMP解碼顯示圖片不完整

    再次請教原子個你的那個圖片解碼的(BMP部分的)工程已經(jīng)移植完畢(用的是znFAT32文件系統(tǒng))但是顯示的圖片不完整(左邊顯示的是圖片的右一半,右邊邊顯示的是圖片的左一半)
    發(fā)表于 07-10 04:35

    怎么實(shí)現(xiàn)二進(jìn)制計(jì)數(shù)?

    ,因?yàn)樗鼈兛赡?b class='flag-5'>會導(dǎo)致時序問題。警告:Xst:737 - 找到信號的8位
    發(fā)表于 03-13 09:16

    QT解決串口數(shù)據(jù)接收不完整問題

    1. 相關(guān)文章匯總(1)QT解決串口數(shù)據(jù)接收不完整問題(貌似貼出的代碼可以存下串口接受的全部數(shù)據(jù))(2)qt中使用串口類接收數(shù)據(jù)不完整 (3)Qt5.7串口接收數(shù)據(jù)不完整因?yàn)榇诒緛砭筒皇且淮谓邮?/div>
    發(fā)表于 08-18 06:58

    如何解決串口接收數(shù)據(jù)不完整?

    如何解決串口接收數(shù)據(jù)不完整?
    發(fā)表于 11-22 07:37

    stm32 printf打印出錯導(dǎo)致信息不完整怎么解決?

    stm32 printf打印出錯導(dǎo)致信息不完整怎么解決?
    發(fā)表于 12-02 08:02

    怎樣去解決stm32串口DMA數(shù)據(jù)接收不完整的問題呢

    stm32串口DMA數(shù)據(jù)接收不完整問題說明最近做了一個項(xiàng)目需要用串口來接收模塊端的應(yīng)答數(shù)據(jù),由于使用了實(shí)時操作系統(tǒng),考慮中斷嵌套或被打斷的問題導(dǎo)致數(shù)據(jù)接收不完整的問題,使用串口dma接收數(shù)據(jù),但
    發(fā)表于 02-21 06:19

    rt-thread使用ps顯示的線程名字不完整怎么解決?

    使用ps顯示的線程名字不完整
    發(fā)表于 05-09 10:04

    verilog中if與case語句不完整產(chǎn)生的原因分析

      在很多地方都能看到,verilog中if與case語句必須完整,即if要加上else,case后要加上default語句,以防止
    發(fā)表于 09-16 09:29 ?24次下載

    不完整地址轉(zhuǎn)發(fā)表的拓?fù)浒l(fā)現(xiàn)方法

    出的AFT基本推導(dǎo)規(guī)則BRR的完備性.此外還對基于不完整AFT進(jìn)行拓?fù)浒l(fā)現(xiàn)的NP難問題進(jìn)行了討論,深入剖析了任意實(shí)際的局域網(wǎng)絡(luò)的不完整AFT通過BRR推導(dǎo)完成后的各種可能情況,并分析了單純依靠AFT進(jìn)行拓?fù)浒l(fā)現(xiàn)的局限性.該工作對于基于AFT進(jìn)
    發(fā)表于 01-12 16:28 ?0次下載
    <b class='flag-5'>不完整</b>地址轉(zhuǎn)發(fā)表的拓?fù)浒l(fā)現(xiàn)方法

    stm32串口DMA數(shù)據(jù)接收不完整問題說明

    stm32串口DMA數(shù)據(jù)接收不完整問題說明最近做了一個項(xiàng)目需要用串口來接收模塊端的應(yīng)答數(shù)據(jù),由于使用了實(shí)時操作系統(tǒng),考慮中斷嵌套或被打斷的問題導(dǎo)致數(shù)據(jù)接收不完整的問題,使用串口dma接收數(shù)據(jù),但
    發(fā)表于 12-24 19:37 ?21次下載
    stm32串口DMA數(shù)據(jù)接收<b class='flag-5'>不完整</b>問題說明

    APM32F091RCT6_SPI_從機(jī)接收數(shù)據(jù)不完整

    APM32F091RCT6_SPI_從機(jī)接收數(shù)據(jù)不完整
    發(fā)表于 11-09 21:04 ?0次下載
    APM32F091RCT6_SPI_從機(jī)接收數(shù)據(jù)<b class='flag-5'>不完整</b>

    淺談C語言中的三種不完整類型

    不完整類型(Incomplete types)是缺少足夠信息來確定該類型對象大小的對象類型,不完整類型可以在翻譯單元的某些點(diǎn)完整
    發(fā)表于 12-16 09:52 ?511次閱讀

    如何獲取ChatGPT回答不完整的內(nèi)容

    ____tz_zs 對于 ChatGPT 回答不完整的情況(篇幅限制,沒有說完),可以輸入“繼續(xù)”指令,讓其繼續(xù)回答下去,獲得完整內(nèi)容。 如下圖,發(fā)問 “使用web3js 調(diào)用 eth鏈智能合約” 直到這里才是獲得了剛剛問題 “使用web3js 調(diào)用 eth鏈智能合約”
    發(fā)表于 02-10 10:48 ?0次下載
    如何獲取ChatGPT回答<b class='flag-5'>不完整</b>的內(nèi)容

    C語言中的不完整類型是什么

    C語言中存在這樣一種類型,名叫不完整類型(Incomplete types),雖然我們可能不太理解,或許也沒有仔細(xì)研究過,但是在實(shí)際的編程中,我們卻已經(jīng)用到過很多次了。
    的頭像 發(fā)表于 02-21 10:03 ?1323次閱讀

    時序邏輯產(chǎn)生

    時序邏輯電路本身并不直接“產(chǎn)生,但是時
    的頭像 發(fā)表于 08-28 11:03 ?416次閱讀