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

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

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

高質(zhì)量VerilogHDL描述方法

冬至子 ? 來源:Andy的ICer之路 ? 作者:AndyICer ? 2023-06-05 15:38 ? 次閱讀

剛剛初學(xué)VerilogHDL的時(shí)候,感覺語言風(fēng)格很像C語言,編程也是完全用軟件的思想去寫,但是使用過FPGA和學(xué)習(xí)了數(shù)集之后,才醒悟出何為“硬件思想”,本節(jié)主要介紹一下西交邱志雄老師一門課中的VerilogHDL描述方法。

VerilogHDL可綜合的四大法寶:always、if-else、case、assign ,本文將圍繞這四大法寶來講述。

有可綜合的法寶,那么可綜合風(fēng)格禁止出現(xiàn)的情況:function、for、fork-join、while等。

** If-else的硬件映射及優(yōu)化**

01

if-else的映射硬件結(jié)構(gòu)是多路選擇器Multiplexing Hardware(簡(jiǎn)稱Mux)。

圖片

我們來看看上面的第一段代碼,我們心中要出現(xiàn)該代碼描述的電路,該電路由兩個(gè)加法器和一個(gè)Mux組成。

圖片

接下來我們看第二段代碼:

圖片

該段代碼描述的電路應(yīng)該是兩個(gè)Mux和一個(gè)加法器組成:

圖片

兩段代碼描述的功能都一樣,但是電路面積卻不一樣,第二段代碼描述的電路少了一個(gè)加法器多了一個(gè)Mux,在同一個(gè)工藝庫下,二輸入Mux的晶體管數(shù)量比一位半加器少,因此第二段代碼描述的電路減少了硬件的面積。

從面積的角度看,第二段代碼更優(yōu),但是真的可以說第二段代碼比第一段代碼好嗎?很顯然,一般這么問,答案都為否定。

圖片

我們從傳播延遲的角度再來分析一下這兩個(gè)電路:

1、左圖的數(shù)據(jù)通道的延遲是一個(gè)加法器和一個(gè)Mux,控制通道的延遲是一個(gè)Mux。

2、右圖的數(shù)據(jù)通道的延遲依然是一個(gè)加法器和一個(gè)Mux,控制通道的延遲卻是一個(gè)加法器和一個(gè)Mux。

很顯然第二段代碼描述電路(右圖)的控制通道延遲比較大,如果Aflag到來的延遲比較晚的話,那么第二種電路的性能就會(huì)比第一種差。

綜上所述,在設(shè)計(jì)的時(shí)候要根據(jù)輸入約束,再來選擇兩種不同的設(shè)計(jì):是先加后選,還是先選后加。

** If的優(yōu)先級(jí)問題**

02

多if語句具有優(yōu)先級(jí)的判斷結(jié)構(gòu),即輸入信號(hào)是有不平等關(guān)系的,最后一級(jí)選擇信號(hào)具有最高優(yōu)先級(jí),具有優(yōu)先級(jí)的多選結(jié)構(gòu)會(huì)消耗組合邏輯,而且這種寫法比較亂,一般不推薦這種寫法。(case語句是無優(yōu)先級(jí)的)

但是在某些設(shè)計(jì)中,有些信號(hào)要求先到達(dá)(如關(guān)鍵使能信號(hào)、選擇信號(hào)等),而有些信號(hào)需要后到達(dá)(如慢速信號(hào)、有效時(shí)間較長(zhǎng)的信號(hào)等),此時(shí)則需要用if...if... 或者 if...else if...結(jié)構(gòu),一般最高優(yōu)先級(jí)給最遲到的關(guān)鍵信號(hào)。

圖片

圖片

電路之大敵——Latch

03

latch由電平觸發(fā),非同步控制,所以非常 容易產(chǎn)生毛刺(glitch) ,這是很大的危害,這對(duì)于下一級(jí)電路是極其危險(xiǎn)的,而且靜態(tài)時(shí)序分析會(huì)變得極為復(fù)雜,因此只要能用D觸發(fā)器的地方就不用latch。

易引入latch的途徑:使用不完備的條件判斷語句,如if缺少else,case缺少default。

邏輯復(fù)制 均衡負(fù)載

04

通過邏輯復(fù)制,降低關(guān)鍵信號(hào)的扇出,進(jìn)而降低該信號(hào)的傳播延遲,提高電路的性能。

圖片

資源共享 減小面積

05

如果電路中存在較多的公共單元,可以通過資源共享,來減小電路的面積,但是一般來說,共享會(huì)降低電路性能,所以還是要根據(jù)性能和面積而進(jìn)行取舍。

圖片

邏輯重組 降低延時(shí)

06

電路設(shè)計(jì)中,可以根據(jù)信號(hào)的延時(shí),對(duì)這些資源進(jìn)行順序的重排,以降低傳播延時(shí)。如下圖所示,信號(hào)A延遲比較高,可以把它盡可能地放到后面隱藏其延遲。

圖片

邏輯賦值

07

在時(shí)序電路中必須使用非阻塞賦值(<=), 組合邏輯電路必須使用阻塞賦值(=)。

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

    關(guān)注

    77

    文章

    9613

    瀏覽量

    137687
  • 時(shí)序電路
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    21674
  • 加法器
    +關(guān)注

    關(guān)注

    6

    文章

    183

    瀏覽量

    30067
  • VerilogHDL語言
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5787
  • 多路選擇器
    +關(guān)注

    關(guān)注

    1

    文章

    22

    瀏覽量

    6509
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何做一個(gè)高質(zhì)量的畢業(yè)設(shè)計(jì)?

    希望跟各位大峽討論一下,如何做一個(gè)高質(zhì)量的畢業(yè)設(shè)計(jì)? 畢業(yè)設(shè)計(jì)專業(yè)代理QQ:445384923
    發(fā)表于 01-26 09:14

    protel輸出高質(zhì)量gerber

    圖文并茂一步一步手把手教你輸出高質(zhì)量的gerber傻瓜式教學(xué)。。。。[hide] [/hide]
    發(fā)表于 12-12 15:43

    高質(zhì)量C編程指南—林銳

    高質(zhì)量C編程指南—林銳
    發(fā)表于 08-03 08:44

    高質(zhì)量C++、C編程指南

    高質(zhì)量C++、C編程指南
    發(fā)表于 08-06 11:58

    高質(zhì)量C&amp;C++

    高質(zhì)量C&C++
    發(fā)表于 08-16 19:45

    高質(zhì)量C++&C 編程指南

    高質(zhì)量C++&C 編程指南
    發(fā)表于 08-19 23:37

    原版PIC實(shí)戰(zhàn)項(xiàng)目-C(高質(zhì)量PDF版本)

    英文原版,高質(zhì)量保證。
    發(fā)表于 07-10 21:42

    高質(zhì)量C語言編程

    高質(zhì)量c語言,精,精,精,精華
    發(fā)表于 07-22 13:48

    編寫高質(zhì)量C語言代碼

    編寫高質(zhì)量C語言代碼 編寫高質(zhì)量C語言代碼 編寫高質(zhì)量C語言代碼
    發(fā)表于 07-31 17:47

    林銳《高質(zhì)量C語言編程》

    林銳《高質(zhì)量C語言編程》
    發(fā)表于 08-17 12:10

    高質(zhì)量C++與C編程指南

    高質(zhì)量C++與C編程指南
    發(fā)表于 03-09 10:54

    高質(zhì)量編程

    干貨,《495個(gè)C語言問題》、《華為內(nèi)部程序設(shè)計(jì)編碼規(guī)范》、《C語言:陷阱和缺陷》、《高質(zhì)量C編程[林銳]》
    發(fā)表于 02-27 19:39

    圖書推薦:高質(zhì)量C++編程指南

    高質(zhì)量C++編程指南
    發(fā)表于 06-12 13:49

    【下載】高質(zhì)量干貨-22本高質(zhì)量EMC電磁兼容性設(shè)計(jì)資料

    22本高質(zhì)量EMC電磁兼容性設(shè)計(jì)資料請(qǐng)君自取總體太大壓縮成兩個(gè)壓縮包。希望這些內(nèi)容能對(duì)大家在設(shè)計(jì)上有所幫助!
    發(fā)表于 03-20 00:02

    請(qǐng)問怎么才能設(shè)計(jì)出高質(zhì)量的印制線路板?

    怎么才能設(shè)計(jì)出高質(zhì)量的印制線路板?
    發(fā)表于 04-23 06:57