《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 數(shù)字系統(tǒng)設計中VHDL語言設計問題探討
數(shù)字系統(tǒng)設計中VHDL語言設計問題探討
謝正光
摘要: 從描述方法、設計規(guī)則、時序等方面分析了用硬件描述語言VHDL在EDA設計中容易出現(xiàn)問題的原因,并提出了相應的解決方案。
關鍵詞: 開發(fā)工具 VHDL EDA
Abstract:
Key words :

  摘  要: 從描述方法、設計規(guī)則、時序等方面分析了用硬件描述語言VHDLEDA設計中容易出現(xiàn)問題的原因,并提出了相應的解決方案。
  關鍵詞: VHDL語言  數(shù)字系統(tǒng)設計  問題

   VHDL語言作為一個系統(tǒng)設計語言的工業(yè)標準已被廣大的硬件設計者所接受。但因其具有龐大、繁瑣以及易于出錯的特性[1][2],且在實際設計過程中,每個設計工程師對語言規(guī)則、電路行為的理解程度和編程風格不同,造成同樣的系統(tǒng)功能綜合出來的電路結構往往大相徑庭,其電路的復雜程度和時延特性也差異較大,有時某些臃腫的電路還會產(chǎn)生難以預料的問題。因此,有必要對在VHDL設計中如何簡化電路結構及優(yōu)化電路設計的問題進行深入探討。
1   設計問題探討
1.1 描述方法對電路結構的影響

  用VHDL語言進行電路設計,其最終綜合出的電路的復雜程度除取決于該設計所要求功能的難易程度外,還受設計工程師對電路描述方法和設計規(guī)則理解程度的影響。最常見的使電路復雜化的原因之一是設計中存在許多本不必要的類似鎖存器的結構而導致電路復雜、工作速度低,且由于時序問題而導致不可預料的后果。
  VHDL語言中引入寄存器的是Wait和If語句。所以如果要描述一個組合電路和時序電路混合的系統(tǒng),可以將描述時序的部分放在具有邊沿檢測條件的If或Wait語句的進程中,而將描述組合電路的語句放在普通進程中。在此普通進程中,應盡量使用When...Else來代替If結構或If語句中必須帶有的Else。典型電路是FSM(有限狀態(tài)機)電路,建議用3個進程來描述。具體如下:

1.2 毛刺信號
  任何組合電路都可能是潛在毛刺信號的發(fā)生器。當毛刺信號影響后續(xù)電路時,整個設計就只能宣告失敗。因此,當后續(xù)電路對組合電路輸出的毛刺敏感時,最好的辦法是將此輸出進行鎖存后再輸出到下一級,如圖1所示。

 

1.3 時  序
  在原始設計電路中,應充分考慮在每一步時序上留有如圖2所示的充分裕量,以避免由于電壓、溫度和工藝等變化出現(xiàn)時序上的問題。


1.4 時鐘電路
  若時鐘電路設計不當,在環(huán)境因素(如溫度、電壓等)變化時,會導致電路邏輯混亂。時鐘電路設計過程中,建議盡可能使用如圖3所示的全局時鐘,少用門控時鐘,不用多級時鐘、級聯(lián)時鐘和多時鐘網(wǎng)絡。使用門控時鐘時要求門控時鐘只能由單個的“與門”或“或門”構成,且門的輸入信號中只能有1個信號作為時鐘信號。最好的辦法是將門控時鐘改為全局時鐘,以改善設計電路的可靠性,如圖4、圖5所示。并且用控制門控時鐘的控制信號作為觸發(fā)器的使能信號或用其控制輸入數(shù)據(jù)。


1.5 異步邏輯
  EDA(Electronics Design Automation)設計中,由EDA系統(tǒng)自動完成布線。特別是在FPGA設計中,為了均衡邏輯塊的資源,信號在整個芯片內部經(jīng)過的門數(shù)可能并非與邏輯表達式中所期望的一致,有時甚至無法正確估計某個信號的延時。因而常規(guī)的諸如利用增加冗余項或增加慣性延時環(huán)節(jié)來消除異步電路帶來的冒險方法均不一定能起作用。所以數(shù)字系統(tǒng)設計中盡量少用異步電路,或用選通脈沖在信號作用時間上加以控制來避開產(chǎn)生冒險的尖峰。
1.6 異步輸入
  許多輸入要求各異步系統(tǒng)之間進行同步通信,或者同步系統(tǒng)需要異步輸入控制。如果異步輸入不能滿足建立時鐘和保持時鐘的限制,則會導致受控的同步系統(tǒng)出現(xiàn)邏輯混亂。
  如果是寄存器的異步置位或清零端,最好用全局的置位或清零控制信號驅動;對于其他控制輸入可以插入D觸發(fā)器來解決異步輸入不穩(wěn)定的問題。
2  結  論
  通過以上討論可知,用VHDL語言進行電路設計時,涉及到VHDL語言的使用方法和對設計的理解程度。因此在編程前首先要對整個設計進行較深入的了解,科學地設計規(guī)劃,在進行具體設計時應注意以下問題:
  (1)保證時鐘無毛刺,盡量利用全局時鐘,少用門控時鐘。(2)盡量使用全局置位復位信號。(3)寄存所有對毛刺敏感的組合輸出,組合電路復雜時可采用“流水”技術。(4)同步所有異步輸入信號,盡量不用異步電路。(5)對同步時序電路應消除“滯留”狀態(tài)。(6)為每一步時序留有充分的裕度等。
參考文獻
1   IEEE Standard VHDL Language Reference Module.IEEE,Std 1076-1993.1993
2   IEEE Standard VHDL Mathermatical Packages.IEEE,Std 1076.2-1996.1996
 

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。