程佳佳,賈俊霞(重慶科創職業學院,重慶 402160)
基于 CPLD的VHDL語言設計優化
程佳佳,賈俊霞
(重慶科創職業學院,重慶402160)
摘要:通過對CPLD器件的介紹以及VHDL語言特點的闡述,本文描述和分析了在邏輯電路編程中常見的毛刺信號電路并給出了相應的消除方法、程序和仿真波形。
關鍵詞:語言;CPLD器件;設計
由于市場產品的需求和市場競爭的促進,新的可編程邏輯器件不斷涌現,新器件的主要特點是向超高速、高密度、低功耗和低電壓等方向發展,含多種專用端口和附加功能模塊的FPGA不斷涌現。目前新器件的邏輯規模已達數百萬至千萬門級,工作頻率也越來越高,功耗不斷降低,出現了成為零功耗的CPLD器件。隨著可編程邏輯器件和開發技術不斷發展,EDA技術已經滲透到各行各業的各個領域,而CPLD器件正是集成電路設計者首選。
CPLD是復雜可編程邏輯器件,它和簡單PLD都是乘積項結構器件,也就是由可編程的與陣列和或陣列組成的。簡單PLD由于陣列規模小、功能弱、編程不便,基本被淘汰。CPLD器件由于進行了擴展,內部結構更加復雜,可提供更多的乘積項,因而構成復雜的邏輯函數。
VHD L全名 Very-H igh-SpeedIntegratedCircuitHardware D esc riptionLanguage,即超高速集成電路的硬件描述語言,在電子工程技術等相關領域,事實上VHD L已成為通用硬件描述語言。1995年我國國家技術監督局指定的CAD通用技術規范推薦VHD L作為我國電子設計自動化硬件描述語言的國家標準。
所謂硬件描述語言,VHDL具有很強的電路描述能力和建模能力,能多個層次對數字系統進行建模和描述。它主要用于描述數字系統的結構、行為、功能和接口,應用VHD L進行工程設計具有自動化設計程度高、與具體硬件電路無關和與設計平臺無關的特性,系統移植性強和修改方便等優點。因此VHDL成為了CPLD編程最常用的語言工具。
而正因此,VHDL程序無法精確到電路的門級電路結構,無法精確硬件電路的動作。因而導致出現競爭冒險(具體表現即為毛刺現象),嚴重者會導致系統的嚴重故障。本文以下就最易出現毛刺信號的電路作出詳細的分析以及給出對應的優化設計方法。
在數字邏輯電路中,當輸入信號的狀態改變時,輸出端可能會出現不正常的干擾信號,是電路產生錯誤的輸出,這種現象稱為競爭-冒險現象。產生競爭冒險現象的原因主要是門電路的延遲。在VHDL設計中,電路的行為很容易用各種功能描述語句描述,但是門級電路由軟件自動綜合布局。因此由于信號在CPLD的內部走線和通過邏輯單元時造成的延遲及競爭冒險現象在CPLD的設計中是不可避免的。
知道了毛刺產生的條件,就可以通過改變設計,破壞其條件來減少毛刺的發生。還可以對電路進行改進,以消除毛刺對系統的影響。濾波法和添加冗余項法在很多數字電子技術的教科書中都有介紹,此處不再贅述。也曾有人提出了采樣法和利用格雷碼減少同時變化信號數量的方法,都是不錯的方法。但是我們也可以通過VHDL程序本身去消除毛刺。
這種方法是從VHDL語言入手,找出毛刺產生的根本原因,改變程序本身,產生滿足要求的功能模塊,來代替原有的邏輯功能塊。如例1中的由于信號的不同步而導致了毛刺,弄清楚了這個原因,則很容易通過同步輸入信號的方法而消除毛刺。解決方案如下:
process(clk)
begin
if clk’event and clk=’1’then
y<=(a and b) or (c and d);
end process;
而在VHDL語言中,數據的載體即數據對象包括常量,變量和信號。變量和信號可以實現賦值。但是信號是具有實際物理意義的,可以理解為實際電路連線中的電信號的流動,因此信號的賦值并不是立即的,而是存在一定的延時。而下面的程序則是因為VHDL語言中賦值語句本身的語言特性而導致了延時與毛刺現象。
例2
Entity maoci_1 is
Port(clk: in std_logic;
Co:out std_logic);
End;
Architecture one of maoci_1 is
signals:std_logic;
Signal q:std_logic_vector(3 downto 0):="0000";
Begin
Process(clk)
Begin
If s='1' then q<="0101" ;
Elsif clk'event and clk='1' then q<=q-1;
End if;
End process;
s<=q(3);
co<=q(2);
End one;
例2仿真波形毛刺。分析可知例2程序中是由于s值代入的延時而造成了q的不定狀態。因此修改設計,去掉信號s而直接對q預判,消除毛刺。
毛刺信號的出現經常會影響到整個邏輯電路的穩定性,因此判斷邏輯電路中判斷毛刺是否存在以及如何消除毛刺信號將是設計人員要長期研究的課題。本文中的方法能有效的消除毛刺,可供VHDL編程設計人員參考。
參考文獻:
[1]閻石.數字電子技術基礎(第五版)[J].高等教育出版社,1983(4).
[2]潘松,王國棟.VHDL實用教程〔M〕.電子科技大學出版社,2000.(1).
[3]崔建明.電工電子EDA仿真技術[M].高等教育出版社, 2004.
[4]李衍編.EDA技術入門與提高王行[M].西安電子科技大學出版社,2005.
[5]王鳳英,崔國瑋.計數器的VHDL設計與實現 [M]. 現代電子技術,2007(09).